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

From Second Life Wiki
Jump to navigation Jump to search
m
m
Line 2: Line 2:


==Ablaufsteuerung==
==Ablaufsteuerung==
* Auch auf dieser Seite verwende ich das gleiche Format wie bei den anderen tutorials. Der OwnerKey und die entsprechende Funktion zum umbenennen des Objects im state_entry dient lediglich der Erkennbarkeit fuer den Inworld Unterricht.
==Schleifen==
* Folgende Beispiele verwenden ein kuenstliches Limit (limit) und einen Index (i) welcher einem Counter (Zaehlwerk) entspricht. Das limit und der index muessen nicht zwangslaeufig gleich sein.
===for===
* Diese einfache for Schleife beginnt bei 0 und zaehlt 10x hoch.
* Waerend dessen wiedeholt sie entsprechend oft die Funktion, bis das das limit erreicht wurde.
{| width="100%" {{Prettytable}}
|- {{Hl2}}
! '''for Schleife'''
! '''alternative Methode'''
|-
||<source lang="lsl2">
key owner;
integer limit = 10; // limit
default
{
    state_entry()
    {
        owner = llGetOwner();
        llSetObjectName("Schleife 01 " + llKey2Name(owner));
    }
    touch_start(integer total_number)
    {
        integer i; // index
       
        // innerhalb der for Anweisung wird der index auf 0 gesetzt,...
        // festgestellt ob der index kleiner als das limit ist,...
        // und am schluss der index um je 1 erhoeht.
        for(i = 0; i < limit; ++i)
        {
            llSay(0, (string)i); // gibt den aktuellen index Wert zurueck.
        }
    }
   
    on_rez(integer Dae)
    {
        llResetScript();
    }
}
</source>
||<source lang="lsl2">
key owner;
integer limit = 10; // limit
default
{
    state_entry()
    {
        owner = llGetOwner();
        llSetObjectName("Schleife 01b " + llKey2Name(owner));
    }
    touch_start(integer total_number)
    {
        integer i = 0; // index
       
        // bei dieser Methode wird der index vorher auf 0 gesetzt,...
        // innerghalb der for Anweisung festgestellt ob der index kleiner als das limit ist.
        for(; i < limit;)
        {
            llSay(0, (string)i);
            i++; // der index erhoeht sich innerhalb der schleife bei jedem Durchgang um 1.
        }
    }
   
    on_rez(integer Dae)
    {
        llResetScript();
    }
}
</source>
|-
|}

Revision as of 09:06, 11 January 2020

Ablaufsteuerung

  • Auch auf dieser Seite verwende ich das gleiche Format wie bei den anderen tutorials. Der OwnerKey und die entsprechende Funktion zum umbenennen des Objects im state_entry dient lediglich der Erkennbarkeit fuer den Inworld Unterricht.

Schleifen

  • Folgende Beispiele verwenden ein kuenstliches Limit (limit) und einen Index (i) welcher einem Counter (Zaehlwerk) entspricht. Das limit und der index muessen nicht zwangslaeufig gleich sein.

for

  • Diese einfache for Schleife beginnt bei 0 und zaehlt 10x hoch.
  • Waerend dessen wiedeholt sie entsprechend oft die Funktion, bis das das limit erreicht wurde.
for Schleife alternative Methode
key owner;

integer limit = 10; // limit

default
{
    state_entry()
    {
        owner = llGetOwner();
        llSetObjectName("Schleife 01 " + llKey2Name(owner));
    }

    touch_start(integer total_number)
    {
        integer i; // index
        
        // innerhalb der for Anweisung wird der index auf 0 gesetzt,...
        // festgestellt ob der index kleiner als das limit ist,...
        // und am schluss der index um je 1 erhoeht.
        for(i = 0; i < limit; ++i) 
        {
            llSay(0, (string)i); // gibt den aktuellen index Wert zurueck.
        }
    }
    
    on_rez(integer Dae)
    {
        llResetScript();
    }
}
key owner;

integer limit = 10; // limit

default
{
    state_entry()
    {
        owner = llGetOwner();
        llSetObjectName("Schleife 01b " + llKey2Name(owner));
    }

    touch_start(integer total_number)
    {
        integer i = 0; // index
        
        // bei dieser Methode wird der index vorher auf 0 gesetzt,...
        // innerghalb der for Anweisung festgestellt ob der index kleiner als das limit ist.
        for(; i < limit;)
        {
            llSay(0, (string)i);
            i++; // der index erhoeht sich innerhalb der schleife bei jedem Durchgang um 1.
        }
    }
    
    on_rez(integer Dae)
    {
        llResetScript();
    }
}