string skype_handle = "PUT-SKYPE-NAME-HERE"; key skype_request_id = NULL_KEY; // id of http request showStatus(string skype_status) { // build up our message string message = "Skype"; message += "\nName: " + skype_handle; message += "\nStatus: " + skype_status; // write out the message as hovering text llSetText(message, <.5,.5,1>, 1); } default { touch_start(integer total_number) { // make sure owner has specified handle if(skype_handle == "") { // send message to debugger llWhisper(DEBUG_CHANNEL, "skype_handle can not be empty."); return; } // prevent extra requests happening at the same time if(skype_request_id != NULL_KEY) return; // make a request over the internet skype_request_id = llHTTPRequest("http://mystatus.skype.com/" + skype_handle + ".txt", [HTTP_METHOD, "GET"], ""); // set a timeout for http request llSetTimerEvent(5); } http_response(key request_id, integer status, list metadata, string body) { // is this a response to our request? if(request_id == skype_request_id) { // show status showStatus(body); // change to view state state viewing; } } timer() { // didn't get a response in time. showStatus("No Response"); // change to view state state viewing; } } state viewing { state_entry() { // set next timer for 3 minutes llSetTimerEvent(180); } timer() { state default; } state_exit() { // stop the timer llSetTimerEvent(0); // hide the text llSetText("", ZERO_VECTOR, 0); // reset the request id skype_request_id = NULL_KEY; } }