Difference between revisions of "User:Daemonika Nightfire/Scripts/Ablaufsteuerung"
Jump to navigation
Jump to search
m (→for) |
m |
||
Line 71: | Line 71: | ||
{ | { | ||
llSay(0, (string)i); | llSay(0, (string)i); | ||
i++; // der index erhoeht sich bei jedem Durchgang um 1. | |||
} | |||
} | |||
on_rez(integer Dae) | |||
{ | |||
llResetScript(); | |||
} | |||
} | |||
</source> | |||
|- | |||
|} | |||
===do while=== | |||
* Text | |||
{| width="100%" {{Prettytable}} | |||
|- {{Hl2}} | |||
! '''do while Schleife''' | |||
! '''alternative Methode''' | |||
|- | |||
||<source lang="lsl2"> | |||
key owner; | |||
integer limit = 10; // limit | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
owner = llGetOwner(); | |||
llSetObjectName("Schleife 02 " + llKey2Name(owner)); | |||
} | |||
touch_start(integer total_number) | |||
{ | |||
integer i = 0; // index | |||
// in dieser Schleife wird erst am Ende die Anweisung erteilt. | |||
do | |||
{ | |||
llSay(0, (string)i); // gibt den aktuellen index Wert zurueck. | |||
} | |||
while(++i < limit); // index counter in der while Anweisung. | |||
} | |||
on_rez(integer Dae) | |||
{ | |||
llResetScript(); | |||
} | |||
} | |||
</source> | |||
||<source lang="lsl2"> | |||
key owner; | |||
integer limit = 10; // limit | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
owner = llGetOwner(); | |||
llSetObjectName("Schleife 02b " + llKey2Name(owner)); | |||
} | |||
touch_start(integer total_number) | |||
{ | |||
integer i = 0; // index | |||
do | |||
{ | |||
llSay(0, (string)i); // gibt den aktuellen index Wert zurueck. | |||
i++; // index counter innerhalb der Schleife. | |||
} | |||
while(i < limit); | |||
} | |||
on_rez(integer Dae) | |||
{ | |||
llResetScript(); | |||
} | |||
} | |||
</source> | |||
|- | |||
|} | |||
===while=== | |||
* Text | |||
{| width="100%" {{Prettytable}} | |||
|- {{Hl2}} | |||
! '''while Schleife''' | |||
! '''alternative Methode''' | |||
|- | |||
||<source lang="lsl2"> | |||
key owner; | |||
integer limit = 10; // limit | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
owner = llGetOwner(); | |||
llSetObjectName("Schleife 03 " + llKey2Name(owner)); | |||
} | |||
touch_start(integer total_number) | |||
{ | |||
integer i = 0; // index | |||
// dieses mal steht die while Anweisung mit counter am Anfang | |||
while(++i < limit) | |||
{ | |||
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 03b " + llKey2Name(owner)); | |||
} | |||
touch_start(integer total_number) | |||
{ | |||
integer i = 0; // index | |||
while(i < limit) | |||
{ | |||
llSay(0, (string)i); // gibt den aktuellen index Wert zurueck. | |||
i++; // der index erhoeht sich bei jedem Durchgang um 1. | i++; // der index erhoeht sich bei jedem Durchgang um 1. | ||
} | } |
Revision as of 10:37, 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,...
// in der Anweisung festgestellt ob der index kleiner als das limit ist.
for(; i < limit;)
{
llSay(0, (string)i);
i++; // der index erhoeht sich bei jedem Durchgang um 1.
}
}
on_rez(integer Dae)
{
llResetScript();
}
}
|
do while
- Text
do while Schleife | alternative Methode |
---|---|
key owner;
integer limit = 10; // limit
default
{
state_entry()
{
owner = llGetOwner();
llSetObjectName("Schleife 02 " + llKey2Name(owner));
}
touch_start(integer total_number)
{
integer i = 0; // index
// in dieser Schleife wird erst am Ende die Anweisung erteilt.
do
{
llSay(0, (string)i); // gibt den aktuellen index Wert zurueck.
}
while(++i < limit); // index counter in der while Anweisung.
}
on_rez(integer Dae)
{
llResetScript();
}
}
|
key owner;
integer limit = 10; // limit
default
{
state_entry()
{
owner = llGetOwner();
llSetObjectName("Schleife 02b " + llKey2Name(owner));
}
touch_start(integer total_number)
{
integer i = 0; // index
do
{
llSay(0, (string)i); // gibt den aktuellen index Wert zurueck.
i++; // index counter innerhalb der Schleife.
}
while(i < limit);
}
on_rez(integer Dae)
{
llResetScript();
}
}
|
while
- Text
while Schleife | alternative Methode |
---|---|
key owner;
integer limit = 10; // limit
default
{
state_entry()
{
owner = llGetOwner();
llSetObjectName("Schleife 03 " + llKey2Name(owner));
}
touch_start(integer total_number)
{
integer i = 0; // index
// dieses mal steht die while Anweisung mit counter am Anfang
while(++i < limit)
{
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 03b " + llKey2Name(owner));
}
touch_start(integer total_number)
{
integer i = 0; // index
while(i < limit)
{
llSay(0, (string)i); // gibt den aktuellen index Wert zurueck.
i++; // der index erhoeht sich bei jedem Durchgang um 1.
}
}
on_rez(integer Dae)
{
llResetScript();
}
}
|