logo

Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden.Neue Registrierungen sind deaktiviert.

Mitteilung

Icon
Error

Einloggen


Beitrag melden
Geschrieben von: MartinRJ Fayray Offline Geschrieben Mittwoch, 4. Februar 2015 00:21:07(UTC)
Gibt man dieses Skript in ein Objekt, dann löscht sich das Objekt nach dem nächsten Rezzen nach einer gewissen Zeit automatisch.

Das Skript hat auch "Control-Permissions", um auch in Sims zu funktionieren in denen Skripts deaktiviert sind, wenn es getragen wird. Allerdings wird das Detachen erst ausgeführt, wenn der Avatar wieder in einer Sim ist, in der Skripte erlaubt sind.

Code:

float fTIMER = 60.0; //Sekunden nachdem das Objekt gelöscht wird.
string sMESSAGE1 = "Diese Demo löscht sich nach "; //Nachricht beim Start der Demo.
string sMESSAGE2 = " Minuten."; //Nachricht beim Start der Demo.
string sMESSAGE_DIE = "Die Demo wird jetzt gelöscht."; //Nachricht kurz vor dem Löschen.
float fSLEEP = 3.0; //Sekunden die nach der letzten Benachrichtigung verbleiben, bevor gelöscht wird.


fMessageStart()
{ //Nachricht beim Start der Demo.
    llOwnerSay(sMESSAGE1 + (string)((integer)(fTIMER / 60.0)) + sMESSAGE2);
}

fMessageEnd()
{ //Nachricht beim Ende der Demo.
    llOwnerSay(sMESSAGE_DIE);
}

integer iTIMER_STARTED = FALSE; //Global.

default
{
    state_entry()
    {
        if (llGetAttached() != 0)
        {
            llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
        }
    }
    on_rez(integer start_param)
    {
        fMessageStart(); //Nachricht.
        if (!iTIMER_STARTED)
        {
            iTIMER_STARTED = TRUE;
            llSetTimerEvent(fTIMER);
        }
    }
    attach(key id)
    {
        if (id) // is a valid key and not NULL_KEY
        {
            llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
            if (!iTIMER_STARTED)
            {
                iTIMER_STARTED = TRUE;
                llSetTimerEvent(fTIMER);
            }
        }
    }
    timer()
    {
        llSetTimerEvent(0.0);
        fMessageEnd(); //Nachricht.
        llSleep(fSLEEP); //Kurze Wartezeit bevor tatsächlich gelöscht wird.
        if (llGetAttached() != 0)
        {
            state die;
        }
        else
        {
            llDie();
        }
    }
    run_time_permissions(integer perm)
    {
        if(perm & PERMISSION_TAKE_CONTROLS)
        {
            llTakeControls(CONTROL_ML_LBUTTON, TRUE, TRUE);
        }
    }
}

state die
{
    state_entry()
    {
        if (llGetAttached() == 0)
        {
            llDie();
        }
        else
        {
            if (llGetPermissions() & PERMISSION_ATTACH)
            {
                llDetachFromAvatar();
            }
            else
            {
                llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
            }
        }
    }
    run_time_permissions(integer perm)
    {
        if (perm & PERMISSION_ATTACH)
        {
            if (llGetAttached() != 0)
            {
                llDetachFromAvatar();
            }
        }
    }
    on_rez(integer start_param)
    {
        if (llGetAttached() == 0)
        {
            llDie();
        }
        else
        {
            if (llGetPermissions() & PERMISSION_ATTACH)
            {
                llDetachFromAvatar();
            }
            else
            {
                llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
            }
        }
    }
}
Geben Sie den Meldetext hier ein.
Fett Kursiv Unterstrichen   Hervorheben Zitat Sprachauswahl für Syntax Highlighting Bild einfügen Link einfügen   Unsortierte Liste Sortierte Liste   Linksbündig Zentriert Rechtsbündig   Herausrücken Einrücken   Weitere BBCodes
Schriftfarbe: Schriftgröße:
Melden Abbruch

Powered by YAF.NET | YAF.NET © 2003-2020, Yet Another Forum.NET
Diese Seite wurde in 0.023 Sekunden generiert.

Datenschutzrichtlinie
Haftungsausschluss
Impressum
Datenschutzerklärung
AGB, ToS
Kontakt