Rang: Ehrenmitglied
Mitglied seit: 05.09.2014(UTC) Beiträge: 84  Wohnort: Tulln und Rostock Dankte: 1 mal(e)
|
Gibt man dieses Skript in ein Objekt, dann löscht sich das Objekt nach dem nächsten Rezzen nach einer gewissen Zeit automatisch. Das Skript hat auch "Control-Permissions", um auch in Sims zu funktionieren in denen Skripts deaktiviert sind, wenn es getragen wird. Allerdings wird das Detachen erst ausgeführt, wenn der Avatar wieder in einer Sim ist, in der Skripte erlaubt sind. Code:
float fTIMER = 60.0; //Sekunden nachdem das Objekt gelöscht wird.
string sMESSAGE1 = "Diese Demo löscht sich nach "; //Nachricht beim Start der Demo.
string sMESSAGE2 = " Minuten."; //Nachricht beim Start der Demo.
string sMESSAGE_DIE = "Die Demo wird jetzt gelöscht."; //Nachricht kurz vor dem Löschen.
float fSLEEP = 3.0; //Sekunden die nach der letzten Benachrichtigung verbleiben, bevor gelöscht wird.
fMessageStart()
{ //Nachricht beim Start der Demo.
llOwnerSay(sMESSAGE1 + (string)((integer)(fTIMER / 60.0)) + sMESSAGE2);
}
fMessageEnd()
{ //Nachricht beim Ende der Demo.
llOwnerSay(sMESSAGE_DIE);
}
integer iTIMER_STARTED = FALSE; //Global.
default
{
state_entry()
{
if (llGetAttached() != 0)
{
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
}
}
on_rez(integer start_param)
{
fMessageStart(); //Nachricht.
if (!iTIMER_STARTED)
{
iTIMER_STARTED = TRUE;
llSetTimerEvent(fTIMER);
}
}
attach(key id)
{
if (id) // is a valid key and not NULL_KEY
{
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
if (!iTIMER_STARTED)
{
iTIMER_STARTED = TRUE;
llSetTimerEvent(fTIMER);
}
}
}
timer()
{
llSetTimerEvent(0.0);
fMessageEnd(); //Nachricht.
llSleep(fSLEEP); //Kurze Wartezeit bevor tatsächlich gelöscht wird.
if (llGetAttached() != 0)
{
state die;
}
else
{
llDie();
}
}
run_time_permissions(integer perm)
{
if(perm & PERMISSION_TAKE_CONTROLS)
{
llTakeControls(CONTROL_ML_LBUTTON, TRUE, TRUE);
}
}
}
state die
{
state_entry()
{
if (llGetAttached() == 0)
{
llDie();
}
else
{
if (llGetPermissions() & PERMISSION_ATTACH)
{
llDetachFromAvatar();
}
else
{
llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
}
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_ATTACH)
{
if (llGetAttached() != 0)
{
llDetachFromAvatar();
}
}
}
on_rez(integer start_param)
{
if (llGetAttached() == 0)
{
llDie();
}
else
{
if (llGetPermissions() & PERMISSION_ATTACH)
{
llDetachFromAvatar();
}
else
{
llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
}
}
}
}
Bearbeitet vom Benutzer Mittwoch, 4. Februar 2015 01:11:07(UTC)
| Grund: Nicht angegeben |
It is the mark of an educated mind to be able to entertain a thought without accepting it. |
|
|
|
Das Forum wechseln
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.