SphereCommunity
Spawns - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: General Help (/Forum-General-Help)
+--- Thread: Spawns (/Thread-Spawns)



Spawns - Art - 10-13-2012 04:28 PM

Greetings. Can i get uid of creature from worldgem bit spawn point?


RE: Spawns - Skul - 10-13-2012 04:54 PM

No, there is no way, you can check with forchars though and look for memory_isspawned, here's an example
Code:
[function getuidfromspawn]
local.uid=<uid>
forchars <strarg <streat <streat <morep>>>>
  if (<memoryfindtype.0200.link>==<local.uid>)
    local.return=<uid>
  endif
endfor
return <local.return>
Use it from the worldgem bit, assuming it is the default object in the code below
Code:
if (<uid.<getuidfromspawn>.ischar>)
  uid.<getuidfromspawn>.say Hello, my UID is: <getuidfromspawn>
endif



RE: Spawns - Art - 10-14-2012 04:51 PM

Hm, but NPC may be far away from the spawn point. I want write own system for lost NPC teleportation. I should check with timer, how long away from spawn NPC. Put memory item on every NPC ? I think it's too expensive.. check all npc with forinstances? Maybe expensive too? So i though maybe spawn point can control NPC.


RE: Spawns - Skul - 10-14-2012 08:56 PM

Use TIMERF Art. Rather than a memory object, that'll save some resources, here's an example:
Code:
[function lostnpcteleport]
if (<memoryfindtype.0200>)
  if (<distance <memoryfindtype.0200.link>> >= 50) //50 tile away or more?
    go=<memoryfindtype.0200.link.p> //teleport to the spawn gem
  endif
  timerf 60, lostnpcteleport
endif
Then on your NPCs in @create add:
Code:
timerf 60, npclostteleport