Einfache Beispiele fuer Funktionen
Die Verwendung globaler Funktionen bietet sich immer dann an, wenn identische Befehle oder ganze Befehlsketten mehr als einmal in einem Script benoetigt werden. Dabei koennen Funktionen von jedem beliebigen Event aus aufgerufen werden. In den nachfolgenden Beispielen verwenden wir den Touch Event um die Funktion auszuloesen.
Funktion 01
Einfache globale Funktion
|
key owner;
Funktion() // globale Funktion
{
llSay(0, "Touched.");
}
default
{
state_entry()
{
owner = llGetOwner();
llSetObjectName("Funktion 01 " + llKey2Name(owner));
}
touch_start(integer total_number)
{
Funktion(); // globale Funktion als Anweisung, beachte das Semikolon
}
on_rez(integer Dae)
{
llResetScript();
}
}
|
Funktion 02
Kompletter Touch/Schalter in eine Globale Funktion ausgelagert.
|
key owner;
integer status = FALSE;
Schalter() // globale Funktion
{
if(status == FALSE)
{
status = TRUE;
llSay(0, "STATUS_TRUE");
}
else if(status == TRUE)
{
status = FALSE;
llSay(0, "STATUS_FALSE");
}
}
default
{
state_entry()
{
owner = llGetOwner();
llSetObjectName("Funktion 02 " + llKey2Name(owner));
}
touch_start(integer total_number)
{
Schalter(); // globale Funktion als Anweisung, beachte das Semikolon
}
on_rez(integer Dae)
{
llResetScript();
}
}
|
Funktion 03
Diese globale Funktion verwendet eine veraenderliche Variable.
|
key owner;
GetName(key UUID) // globale Funktion mit Variable
{
llSay(0, llKey2Name(UUID));
}
default
{
state_entry()
{
owner = llGetOwner();
llSetObjectName("Funktion 03 " + llKey2Name(owner));
}
touch_start(integer total_number)
{
key avatar = llDetectedKey(0);
GetName(avatar); // globale Funktion als Anweisung, beachte das Semikolon
}
on_rez(integer Dae)
{
llResetScript();
}
}
|
Funktion 04
Diese globale Funktion setzt mehrere dynamische Variablen voraus.
|
key owner;
integer counter = 0;
Name_Clicks(key UUID, integer number) // globale Funktion
{
llSay(0, llKey2Name(UUID) + ", clicks total: " + (string)number);
}
default
{
state_entry()
{
owner = llGetOwner();
llSetObjectName("Funktion 04 " + llKey2Name(owner));
}
touch_start(integer total_number)
{
key avatar = llDetectedKey(0);
counter++;
Name_Clicks(avatar, counter); // globale Funktion als Anweisung, beachte das Semikolon
}
on_rez(integer Dae)
{
llResetScript();
}
}
|
Funktion 05
Globale Funktion als dynamisch verwendete Variable.
|
key owner;
integer calc(integer num_1, integer num_2) // globale Funktion
{
return num_1 + num_2;
}
default
{
state_entry()
{
owner = llGetOwner();
llSetObjectName("Funktion 05 " + llKey2Name(owner));
}
touch_start(integer total_number)
{
integer number_1 = 2;
integer number_2 = 3;
llSay(0, "Result: " + (string)calc(number_1, number_2)); // globale Funktion als Variable im Befehl
}
on_rez(integer Dae)
{
llResetScript();
}
}
|