list StoppedAvatars;
list Users;
default
{
state_entry()
{
llSetTimerEvent(0.25);
}
timer()
{
integer i;
list Avatars = llGetAgentList(AGENT_LIST_REGION, []);
for (i = 0; i < llGetListLength(Avatars); ++i)
{
if (llListFindList(Users, [llList2Key(Avatars, i)]) == -1)
{
vector Pos = llList2Vector(llGetObjectDetails(llList2Key(Avatars, i), [OBJECT_POS]), 0);
Users = Users + [llList2Key(Avatars, i), Pos];
}
if (llGetAgentInfo(llList2Key(Avatars, i)) & AGENT_FLYING && llListFindList(StoppedAvatars, [llList2Key(Avatars, i)]) == -1)
{
StoppedAvatars = StoppedAvatars + [llList2Key(Avatars, i)];
osSetSpeed(llList2Key(Avatars, i), 0);
}
if (!(llGetAgentInfo(llList2Key(Avatars, i)) & AGENT_FLYING) && llListFindList(StoppedAvatars, [llList2Key(Avatars, i)]) != -1)
{
integer Index = llListFindList(StoppedAvatars, [llList2Key(Avatars, i)]);
StoppedAvatars = llDeleteSubList(StoppedAvatars, Index, Index);
osSetSpeed(llList2Key(Avatars, i), 1);
}
}
for (i = 0; i < llGetListLength(Users); i = i + 2)
{
if (llListFindList(Avatars, [llList2Key(Users, i)]) == -1)
{Users = llDeleteSubList(Users, i, i + 1);}
else
{
vector Pos = llList2Vector(llGetObjectDetails(llList2Key(Users, i), [OBJECT_POS]), 0);
Users = llListReplaceList(Users, [Pos], i + 1, i + 1);
}
}
llSetText((string)llGetListLength(StoppedAvatars) + "/" + (string)(llGetListLength(Users) / 2), <1, 1, 1>, 1);
}
}
like(1)