Difference between revisions of "Basic Sim Status Button Indicator HUD"
Ackley Bing (talk | contribs) |
Ackley Bing (talk | contribs) |
||
Line 20: | Line 20: | ||
key datarequestID; | key datarequestID; | ||
integer listenhandle; | integer listenhandle; | ||
SimStutusButtonColor(string data) | |||
{ | { | ||
vector simstatuscolor; | vector simstatuscolor; | ||
Line 37: | Line 37: | ||
{ | { | ||
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); | llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); | ||
SimStutusButtonColor(""); | |||
} | } | ||
touch_start(integer n) | touch_start(integer n) | ||
Line 61: | Line 61: | ||
datarequestID=llRequestSimulatorData(homeregion=llGetRegionName(),DATA_SIM_STATUS); | datarequestID=llRequestSimulatorData(homeregion=llGetRegionName(),DATA_SIM_STATUS); | ||
} | } | ||
if (message=="No" && homeregion=="") | if (message=="No" && homeregion=="") SimStutusButtonColor(""); | ||
} | } | ||
timer() | timer() | ||
Line 72: | Line 72: | ||
{ | { | ||
if (requested==datarequestID) llOwnerSay("Sim http://maps.secondlife.com/secondlife/"+(llEscapeURL(homeregion))+" is "+data+(string)(datarequestID="")); | if (requested==datarequestID) llOwnerSay("Sim http://maps.secondlife.com/secondlife/"+(llEscapeURL(homeregion))+" is "+data+(string)(datarequestID="")); | ||
SimStutusButtonColor(data); | |||
} | } | ||
run_time_permissions(integer perms) | run_time_permissions(integer perms) |
Revision as of 18:15, 16 August 2014
<lsl> // Generic Sim Status Button Indicator // HUD / 1 prim // by Ackley Bing // January 2013 // // A HUD button for remote monitoring of sims. // Color indicates the sim status // Green = SIM available // When the sim goes down it turns red/black // // To use put this in a prim and attach to your preferred HUD location. // Go to the sim you want to monitor and and click the prim // Click and HOLD the hud button to choose another sim. // // Modify // Attach / Connect this to your HUD/Vehicle/etc any way you like.
string homeregion; vector homepos; key datarequestID; integer listenhandle; SimStutusButtonColor(string data) {
vector simstatuscolor; if ( data == "up" ) simstatuscolor = <0.0,1.0,0.0>; // set color to green else if ( data == "down" ) simstatuscolor = <1.0,0.0,0.0>; // set color to red else if ( data == "starting" || data == "stopping" ) simstatuscolor = <1.0,1.0,0.0>; // set color to yellow else simstatuscolor = <0.0,0.0,0.0>; // set color to black
llSetPrimitiveParams( [ PRIM_COLOR, 4, simstatuscolor, 1.0 ] ); llSetText(homeregion, simstatuscolor, 1.0*(homeregion!="") );
} string VecXY2String(vector Pos){return "/"+(string)((integer)Pos.x)+"/"+(string)((integer)Pos.y);} default {
state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); SimStutusButtonColor(""); } touch_start(integer n) { llResetTime(); } touch_end(integer n) { if(llGetTime()<5.0 && homeregion != "") datarequestID=llRequestSimulatorData(homeregion,DATA_SIM_STATUS); else { llSetTimerEvent(30.0); llListenRemove(listenhandle); listenhandle = llListen(1, "", llGetOwner(), ""); llDialog(llGetOwner(), "Monitor Sim Status for "+llGetRegionName()+"?", ["Yes","No"], 1); } } listen(integer channel, string name, key id, string message) { if (message=="Yes") { homepos=llGetPos(); datarequestID=llRequestSimulatorData(homeregion=llGetRegionName(),DATA_SIM_STATUS); } if (message=="No" && homeregion=="") SimStutusButtonColor(""); } timer() { llListenRemove(listenhandle); if (homeregion!="") llRequestSimulatorData(homeregion,DATA_SIM_STATUS); else llSetTimerEvent(0.0); } dataserver(key requested, string data) { if (requested==datarequestID) llOwnerSay("Sim http://maps.secondlife.com/secondlife/"+(llEscapeURL(homeregion))+" is "+data+(string)(datarequestID="")); SimStutusButtonColor(data); } run_time_permissions(integer perms) { llTakeControls((perms && PERMISSION_TAKE_CONTROLS)*CONTROL_BACK, TRUE, TRUE); }
} </lsl>