LlGetAgentList

De DigiWiki.

Version du 25 juin 2012 à 23:49 par Djphil (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
//Displays up to 100 avatar key: name pairs detected in the entire region
list gaAgents;
 
default
{
    touch_start(integer total_number)
    {
        integer  i;
        integer  liCount;
 
        gaAgents = llGetAgentList(AGENT_LIST_REGION, []);
        liCount = llGetListLength(gaAgents);
        if (liCount > 0)
            if (llGetListEntryType(gaAgents,0) == TYPE_STRING)
                llOwnerSay("Error: "+llList2String(gaAgents,0));
            else
                for (i=0; i < liCount; ++i)
                    llOwnerSay(llList2String(gaAgents,i)+": "+llKey2Name(llList2String(gaAgents,i)));
   }
}
//Orders new list based off distance, and returns
//then on touch_start
default
{
 
	touch_start(integer num){
		list keys = llGetAgentList(AGENT_LIST_REGION,[]);
		list newkeys;
		integer i;
		for (i=0; i < llGetListLength(keys); ++i){
			newkeys += llVecDist(llGetPos(), llList2Vector(llGetObjectDetails(llList2Key(keys,i), [OBJECT_POS]), 0));
			newkeys += llList2Key(keys,i);
 
		}
 
		newkeys = llListSort(newkeys, 2, FALSE);
 
		for (i=0; i < llGetListLength(newkeys); ++i){
			llOwnerSay(llGetDisplayName(llList2Key(newkeys,i+1)) + " ["+(string)llRound(llList2Float(newkeys, i)) + "m]");
			++i;
		}
	}
}
Outils personnels
donate
Google Ads