User:Trinity Coulter/Online indicator

From Second Life Wiki
Jump to navigation Jump to search

Someone was asking for an online indicator that would check the description field of a prim for an avatar key and tell you their online status. I made this so that it would get the owner's key by default when you set out the prim, but its free to change how you like :)

<lsl> key query_id; key current_avie_key; integer action = DATA_NAME; string avie_name; string online_status = "offline";

default {

   state_entry()
   {
       llSetObjectDesc((string)llGetOwner());
       llSetTimerEvent(5.0);
   }
   
   on_rez(integer start_param)
   {
       llResetScript();
   }
   
   timer()
   {
       if (current_avie_key == (key)llGetObjectDesc())
       {
           action = DATA_ONLINE;
           query_id = llRequestAgentData(current_avie_key, action);
       }
       else
       {
           action = DATA_NAME;
           current_avie_key = (key)llGetObjectDesc();
           query_id = llRequestAgentData(current_avie_key, action);
           online_status = "offline";
       }
   }
   touch_start(integer total_number)
   {
       llSay(0, "Touched.");
   }
   
   dataserver(key queryid, string data)
   {
       if(action == DATA_NAME)
       {
           avie_name = data;
       }
       
       if(action == DATA_ONLINE)
       {
           if(data == "1")
           {
               online_status = "online";
           }
           else
           {
               online_status = "offline";
           }
       }
       
       if(online_status == "online")
       { llSetColor(<0,1,0>,ALL_SIDES); }
       else
       { llSetColor(<1,0,0>,ALL_SIDES); }
       llSetText(avie_name + " is " + online_status,<1,1,1>,1.0);
   }

} </lsl>