Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

archiv:opensim:downloads:scripts:skype_multiuser [2024/01/09 22:25] – Externe Bearbeitung 127.0.0.1archiv:opensim:downloads:scripts:skype_multiuser [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
 +===== Skype Online Status - Multi-User Version =====
 +
 +<code>
 +// zwischen die Anführungszeichen Deinen Skype-Name einfügen
 +string skype_handle = "";
 +// you are done!  no more changes!
 +
 +key     notecode;
 +string  notecard;
 +integer noteline;
 +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);
 +}
 +
 +// AMD64 ADD: readnotecard() liest eine zeile
 +// Im Dataserver Event wird die gewünschte Variable dann gefüllt
 +// Sollte einmal beim rezzen/reseten und Inventory Change durchgeführt werden
 +readnotecard()
 +{
 +    // Der name der NC ist egal
 +    notecard = llGetInventoryName(INVENTORY_NOTECARD, 0);
 +    // Wenn aber keine da ist, setze die Variable auch auf leer und beende das ganze
 +    if (notecard == "")
 +    {
 +        skype_handle = "";
 +        return;
 +    }
 +    // Lesen beginnen bei Zeile Null (anfang)
 +    noteline = 0;
 +    // Ab hier gehts im Dataserver Event weiter
 +    notecode = llGetNotecardLine(notecard, noteline);
 +}
 +
 +default
 +{
 +    on_rez(integer start_param)
 +    {
 +        readnotecard();
 +    }
 +    state_entry()
 +    {
 +        llSetTimerEvent(0);
 +        readnotecard();
 +    }
 +    changed(integer change)
 +    {
 +        // Änderung im Inventar des Objekts
 +        if (change & CHANGED_INVENTORY)
 +        {
 +            // NC am besten neu einlesen
 +            readnotecard();
 +        }
 +    }
 +    dataserver(key queryid, string data)
 +    {
 +        if (queryid == notecode)
 +        {
 +            // Für den Fall dass die NC leer ist
 +            if (data != EOF) 
 +            {
 +                skype_handle = data;
 +            }
 +            else
 +            {
 +                skype_handle = "";
 +            }
 +        }
 +    }
 +    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;
 +    }
 +}
 +</code>
  
Navigation

Alternative Startseite
Helpdesk
Links
Maps
Radio
Suchmaschine


Drucken/exportieren