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 Donnerstag, 29. Januar 2015 13:48:07(UTC)
Die Funktion reset_script() durchsucht das Prim in dem sich dieses Skript befindet nach anderen Skripts, und setzt sie zurück (Reset).

Hier in diesem Beispiel passiert das jedes Mal wenn das Objekt gerezzt wird.
Code:

reset_scripts()
{
    integer ic;
    integer inum = llGetInventoryNumber(INVENTORY_SCRIPT);
    if (inum > 1)
    {
        for (ic = 0; ic < inum; ic++)
        {
            if (llGetInventoryName(INVENTORY_SCRIPT, ic) != llGetScriptName())
            {
                llResetOtherScript(llGetInventoryName(INVENTORY_SCRIPT, ic));
            }
        }
    }
}
default
{
    on_rez(integer start_param)
    {
        reset_scripts();
    }
}



Diese zweite Funktion löscht sämtlichen Inhalt aus einem Prim, auch das Skript selbst. In dem Beispiel wird das wieder beim Rezzen ausgelöst:

Code:

delete_everything()
{
    integer ic;
    integer inum = llGetInventoryNumber(INVENTORY_ALL);
    if (inum > 1)
    {
        for (ic = inum - 1; ic >= 0; ic--)
        {
            if (llGetInventoryName(INVENTORY_ALL, ic) != llGetScriptName())
            {
                llRemoveInventory(llGetInventoryName(INVENTORY_ALL, ic));
            }
        }
    }
    llRemoveInventory(llGetScriptName());
}
default
{
    on_rez(integer start_param)
    {
        delete_everything();
    }
}


Zu beachten ist hier, dass in der Funktion delete_everything in der for-Schleife rückwärts gezählt wird, ansonsten würde beispielsweise das 10. Inventarobjekt beim Versuch dieses zu löchen nicht mehr existieren, wenn man von 1 bis 10 hochzählt.
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-2019, Yet Another Forum.NET
Diese Seite wurde in 0.027 Sekunden generiert.

Datenschutzrichtlinie
Haftungsausschluss
Impressum
Datenschutzerklärung
AGB, ToS
Kontakt