• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

llSetTimerEvent oder "jump" mit llSleep

SuperMarkus Paine

Aktiver Nutzer
huhu

Wieder eine kleine Frage: Was meint ihr ist besser, lagfreier etc?
Hier ein Beispiel wo das Ergebnis das selbe ist, ich mir aber nicht sicher bin was weniger die Sim belastet.

Code:
default{
 state_entry(){
  @tada;
  llSay(0,"HUHU");
  llSleep(5);
  jump tada;
}  }
oder
Code:
default{
 state_entry(){
  llSetTimerEvent(5);
}
 timer(){
  llSay(0,"HUHU");
}}

Es geht mir nicht um die Sinnlosigkeit des Scripts, nicht um das Ergebnis, es geht mir darum ob ein xx Sekundenschlaf des Scripts + jump Befehl besser ist als ein xx Timerevent.

THX für eure Gedanken.
 
Bei Version A kommt das Script nicht aus dem state_entry hinaus und hängt somit dort fest.
1. Es startet
2. Es sagt "huhu"
3. Das GANZE Script schläft für 5 Sekunden
4. Es springt zurück an den Start

Nimm da nochmal ein touch_start oder link_message mit hinein und versuche damit etwas zu machen, wenn ich mich nicht irre wird beides nicht möglich sein.
Andere Dinge auch nicht
 
Der Timer ist definitiv die bessere Variante, da das llSleep das Script fuer die angegebene Zeit stoppt, allerdings bei Lag wesentlich laenger dauern kann.
Mit dem Timer loest du einen neuen Event aus, der wie Archon schon sagt, das Script sauber weiter laufen laesst und wesentlich weniger anfaellig fuer lag ist.

Kurz gesagt, llSleep ist einfach pfui. :)

LG
Dae
 
huhu

THX für die Antworten.
Ich dachte immer das llSleep besser ist, weil es das Script zum Ruhen zwingt. Und wie jeder weiss, wer ruht sündigt nicht.
@ Archon. das ist in der tat nicht möglich. Aber in diesem Fall auch nicht gewollt.
 
Dann kann das Script nur die Sachen im Loop machen, aber auf nichts weiter reagieren, also auch nicht wenn Du im Loop z.B. einen Sensor triggerst.
Ein Script mit bedingungslosem Loop sollte man nicht basteln, da es da auch schneller zu Bugs kommt, ein Timer ist da immer besser.
Anders ist es bei bedingten Loops, die irgendwann enden, sowas nutzte ich z.B. um Dinge zu bewegen, aber auch da ist do while besser.
Sleep nutze ich bei mir nur mit ganz kleinen Werten (<0.2) um z.B. per llRegionSayTo komplexe Daten an ein anderes Objekt zu übermitteln.
 
Wie gesagt: alles nicht gewollt.
Plan war: blinke auf, schlaf 3422 Sekunden, loop nach oben, blinke auf, schlaf 3422 Sekunden, loop nach oben ...
Habs auf euren anraten über ein Timer gemacht... funzt genauso, aber wohl besser und lagfreier(?).
 
In dem Fall nutz doch einfach einen llSetTimerEvent(3422); um die gewuenschte Funktion genau nach dieser angegebenen Zeit auszuloesen. ;)

LG
Dae
 

Users who are viewing this thread

Zurück
Oben Unten