-
Notifications
You must be signed in to change notification settings - Fork 53
Description
Hi,
Currently on SphereServer there’s no easy way to access all objects.
For example, if I’m on map0 and run:
[function getdoors]
foritems 7168 or 9999999999999
if (<type> == t_door)
serv.log <uid>
endif
endfor
or
[function gethealers]
forchars 7168 or 9999999999999
if (<baseid> == c_healer_f)
serv.log <uid>
endif
endfor
this command only accesses objects (items) on map0.
I can’t access objects located on map1–2–3–4–5, unless I manually loop through each map using forinstances — which is a very long and inefficient process.
and in order for me to operate on all doors I need to traverse the entire map0~5
If we had a function similar to GUILDSTONES.COUNT / GUILDSTONES., we could easily access all dynamic objects on the server without all this manual work.
For example, something like:
[function getdoors]
for 0 <serv.itemlist.count>
ref1=<serv.itemlist.<dlocal._for>.uid>
if (<ref1.type> == t_door)
serv.log <ref1>
endif
endfor
And for characters:
[function gethealers]
for 0 <serv.charlist.count>
ref1=<serv.charlist.<dlocal._for>.uid>
if (<ref1.baseid> == c_healer_f)
serv.log <ref1>
endif
endfor
I’m suggesting adding a similar function — something like multis.count / multis..uid — that would work the same way as guildstones or townstones, allowing us to iterate over all items or characters across all maps.
I need to be able to access objects on the entire server, not just on one map. For example, if I want to change the color of only +12 (power) weapons, I have to enter the IDs of all the power weapons one by one with forinstanes.