1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
    Information ausblenden
  3. 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.
    Information ausblenden

llSetTimerEvent oder "jump" mit llSleep

Dieses Thema im Forum "Fragen zu Scripting" wurde erstellt von SuperMarkus Paine, 1. März 2017.

  1. SuperMarkus Paine

    SuperMarkus Paine Aktiver Nutzer

    Beiträge:
    188
    Zustimmungen:
    1
    Punkte für Erfolge:
    18
    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.
     
  2. Archon Short

    Archon Short Administrator Mitarbeiter

    Beiträge:
    5.147
    Zustimmungen:
    730
    Punkte für Erfolge:
    124
    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
     
    Daemonika Nightfire gefällt das.
  3. Daemonika Nightfire

    Daemonika Nightfire Forumsgott/göttin

    Beiträge:
    7.218
    Zustimmungen:
    147
    Punkte für Erfolge:
    63
    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
     
    Roya Congrejo gefällt das.
  4. SuperMarkus Paine

    SuperMarkus Paine Aktiver Nutzer

    Beiträge:
    188
    Zustimmungen:
    1
    Punkte für Erfolge:
    18
    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.
     
  5. Archon Short

    Archon Short Administrator Mitarbeiter

    Beiträge:
    5.147
    Zustimmungen:
    730
    Punkte für Erfolge:
    124
    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.
     
  6. SuperMarkus Paine

    SuperMarkus Paine Aktiver Nutzer

    Beiträge:
    188
    Zustimmungen:
    1
    Punkte für Erfolge:
    18
    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(?).
     
  7. Daemonika Nightfire

    Daemonika Nightfire Forumsgott/göttin

    Beiträge:
    7.218
    Zustimmungen:
    147
    Punkte für Erfolge:
    63
    In dem Fall nutz doch einfach einen llSetTimerEvent(3422); um die gewuenschte Funktion genau nach dieser angegebenen Zeit auszuloesen. ;)

    LG
    Dae