User:Daemonika Nightfire/Scripts/Schalter

From Second Life Wiki
Jump to navigation Jump to search

Schalter Einleitung

Warum spreche ich hier von einem Schalter? Ganz einfach, weil es das ist.

TRUE & FALSE sind Boolesche Variablen mit endlichen Werten.
Diese Schaltvariablen sind auf den Mathematiker Georg Boole im Jahr 1847 zurueck zu fuehren.
Gleichbedeutend mit 1 & 0 - ja & nein - richtig & falsch, koennen wir damit einen Status-Wechsel erzeugen.
Mehr Details hier: https://de.wikipedia.org/wiki/Boolesche_Variable

touch

Einfacher Schalter Schalter als globale Funktion
integer schalter = FALSE;

default
{
    state_entry()
    {
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
    }

    touch_start(integer total_number)
    {
        if(schalter == FALSE)
        {
            schalter = TRUE;
            llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
        }
        else if(schalter == TRUE)
        {
            schalter = FALSE;
            llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
        }
    }
}
integer schalter = FALSE;

SchalterFunktion()
{
    if(schalter == FALSE)
    {
        schalter = TRUE;
        llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
    }
    else if(schalter == TRUE)
    {
        schalter = FALSE;
        llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
    }
}

default
{
    state_entry()
    {
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
    }

    touch_start(integer total_number)
    {
        SchalterFunktion();
    }
}

listener

Einfacher Schalter Schalter als globale Funktion
integer schalter = FALSE;

default
{
    state_entry()
    {
        llListen(1, "", llGetOwner(), "");
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
    }

    listen(integer Channel, string Name, key ID, string Text)
    {
        if(Text == "schalte")
        {
            if(schalter == FALSE)
            {
                schalter = TRUE;
                llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
            }
            else if(schalter == TRUE)
            {
                schalter = FALSE;
                llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
            }
        }
    }
}
integer schalter = FALSE;

SchalterFunktion()
{
    if(schalter == FALSE)
    {
        schalter = TRUE;
        llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
    }
    else if(schalter == TRUE)
    {
        schalter = FALSE;
        llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
    }
}

default
{
    state_entry()
    {
        llListen(1, "", llGetOwner(), "");
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
    }

    listen(integer Channel, string Name, key ID, string Text)
    {
        if(Text == "schalte")
        {
            SchalterFunktion();
        }
    }
}

collision

Einfacher Schalter Schalter als globale Funktion
integer schalter = FALSE;

default
{
    state_entry()
    {
        // llVolumeDetect(TRUE); // Diese Funktion ist fuer phantom Objekte.
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
    }

    collision_start(integer num)
    {
        if(schalter == FALSE)
        {
            schalter = TRUE;
            llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
        }
        else if(schalter == TRUE)
        {
            schalter = FALSE;
            llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
        }
    }
}
integer schalter = FALSE;

SchalterFunktion()
{
    if(schalter == FALSE)
    {
        schalter = TRUE;
        llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
    }
    else if(schalter == TRUE)
    {
        schalter = FALSE;
        llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
    }
}

default
{
    state_entry()
    {
        // llVolumeDetect(TRUE); // Diese Funktion ist fuer phantom Objekte.
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
    }

    collision_start(integer num)
    {
        SchalterFunktion();
    }
}

timer

Einfacher Schalter Schalter als globale Funktion
integer schalter = FALSE;

default
{
    state_entry()
    {
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
        llSetTimerEvent(5);
    }

    timer()
    {
        if(schalter == FALSE)
        {
            schalter = TRUE;
            llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
        }
        else if(schalter == TRUE)
        {
            schalter = FALSE;
            llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
        }
    }
}
integer schalter = FALSE;

SchalterFunktion()
{
    if(schalter == FALSE)
    {
        schalter = TRUE;
        llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
    }
    else if(schalter == TRUE)
    {
        schalter = FALSE;
        llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
    }
}

default
{
    state_entry()
    {
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
        llSetTimerEvent(5);
    }

    timer()
    {
        SchalterFunktion();
    }
}

sensor

Einfacher Schalter Schalter als globale Funktion
integer schalter = FALSE;

default
{
    state_entry()
    {
        llSensorRemove();
        
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
        llSensorRepeat("", "", AGENT_BY_LEGACY_NAME, 3.0, PI, 1.0);
    }

    sensor(integer num_detected)
    {
        if(schalter == FALSE)
        {
            schalter = TRUE;
            llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
        }
        else if(schalter == TRUE)
        {
            schalter = FALSE;
            llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
        }
    }
}
integer schalter = FALSE;

SchalterFunktion()
{
    if(schalter == FALSE)
    {
        schalter = TRUE;
        llSetText("eingeschaltet, schalter ist nun TRUE", <0,1,0>, 1.0);
    }
    else if(schalter == TRUE)
    {
        schalter = FALSE;
        llSetText("ausgeschaltet, schalter ist nun FALSE", <1,0,0>, 1.0);
    }
}

default
{
    state_entry()
    {
        llSensorRemove();
        
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
        llSensorRepeat("", "", AGENT_BY_LEGACY_NAME, 3.0, PI, 1.0);
    }

    sensor(integer num_detected)
    {
        SchalterFunktion();
    }
}

Anders als bei den ersten beiden Sensor Beispielen, verhaelt sich dieser Sensor etwas anders, doch das Ergebnis ist das gleiche.

integer schalter = FALSE;

default
{
    state_entry()
    {
        llSensorRemove();
        
        llSetText("Reset, schalter startet ausgeschaltet", <1,1,1>, 1.0);
        llSensorRepeat("", "", AGENT_BY_LEGACY_NAME, 3.0, PI, 1.0);
    }

    sensor(integer num_detected)
    {
        if(schalter == FALSE)
        {
            schalter = TRUE;
            llSetText("eingeschaltet, Tuer ist geoeffnet", <0,1,0>, 1.0);
        }
    }
    
    no_sensor()
    {
        if(schalter == TRUE)
        {
            schalter = FALSE;
            llSetText("ausgeschaltet, Tuer ist geschlossen", <1,0,0>, 1.0);
        }
    }
}