Difference between revisions of "User:Daemonika Nightfire/Scripts/Schalter"

From Second Life Wiki
Jump to navigation Jump to search
Line 3: Line 3:
      
      
  TRUE & FALSE sind Boolesche Variablen mit endlichen Werten.
  TRUE & FALSE sind Boolesche Variablen mit endlichen Werten.
  Diese Schaltvariablen sind auf den Mathematiker Georg Boole im Jahr 1847 zurueck zu fuehren.
  Diese Schaltvariablen sind auf den Mathematiker George Boole im Jahr 1847 zurueck zu fuehren.
  Gleichbedeutend mit 1 & 0 - ja & nein - richtig & falsch, koennen wir damit einen Status-Wechsel erzeugen.
  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
  Mehr Details hier: https://de.wikipedia.org/wiki/Boolesche_Variable

Revision as of 07:19, 23 February 2019

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 George 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);
        }
    }
}