WriteRunningStateToSyserr: LUA_ERROR FIX

03/14/2014 13:49 ebert.tonna#1
Beispiel syserr Server:

SYSERR: Sep 8 18:36:30 :: WriteRunningStateToSyserr: LUA_ERROR: quest costume_system.start click

Ursache: game.get_event_flag als IF Bedingung gesetzt

Falsch Beispiel:

PHP Code:
when 22117.chat."Einschalten?" begin
            
if game.get_event_flag("zauberhimmel")== 1 then  << Hier falsch !!!
                
game.set_event_flag("zauberhimmel",0)
                
say("Run eingeschaltet!")
            else
                return
            
end
        end 
Fehler wird in die syserr geschrieben
WriteRunningStateToSyserr: LUA_ERROR:

Richtig Beispiel:
PHP Code:
when 22117.chat."Einschalten?" with pc.is_gm() and game.get_event_flag("zauberhimmel")== 1 begin << hier isses richtig
            
if pc.is_gm() and pc.get_name() == ("[GA]Shoxx"then
                game
.set_event_flag("zauberhimmel",0)
                
say("Run eingeschaltet!")
            else
                
say("Du bist nicht Shoxx")
                return
            
end
        end 
Erklärung: Ein game.get_event_flag ist kein Ereignis was geprüft wird, sondern es ist ein Ereignis was schon fest steht.

Beispiel: Du steckst dir 1 Euro in die Hosentasche, du weisst also du hast diesen 1 Euro in der Hosentasche, also musst du nicht mehr prüfen ob du einen 1 EURO in der Hose hast.

Ein game.event_flag ist ein Wert der schon global festgelegt wurde.
Siehe quest Tabelle ganz oben. DwPID == 0.

Du kannst also NICHTS prüfen was schon feststeht.
Ein game.event_flag darf also nicht in einer IF Abfrage stehen sondern nur in einer When Bedingung.

Quote:
Da liegst du wohl ganz schön daneben.
Selbst Ymir hat diese so genutzt, die Function "game.get_event_flag" tut, wie der Befehl
selbst schon sagt "get", einen Wert zurückgeben. Für ungesetzte Flags wird 0 returned,
für gesetzte Flags der Wert, der eben gesetzt wurde.
Vollkommen richtig was Yoshi hier noch erwähnt hat.

Wenn ein
Quote:
if game.get_event_flag("zauberhimmel")== 0 then
ist dann wird der Fehler ebenfalls geschrieben.

Vielen Dank Yoshi
03/14/2014 13:58 iYoshix3#2
Da liegst du wohl ganz schön daneben.
Selbst Ymir hat diese so genutzt, die Function "game.get_event_flag" tut, wie der Befehl
selbst schon sagt "get", einen Wert zurückgeben. Für ungesetzte Flags wird 0 returned,
für gesetzte Flags der Wert, der eben gesetzt wurde.
03/14/2014 14:06 ebert.tonna#3
Stimmt auch wieder Yoshi, das sollte ich wohl noch dazu schreiben wegen dem Wert 0, genauso isses auch.
05/20/2014 13:24 Lord iRemix#4
Der Wahnsinn!!
Ein Fix für ein nicht existierendes Problem.

Hab es extra nochmal getestet.

Quest:

[Only registered and activated users can see links. Click Here To Register...]


syserr:

[Only registered and activated users can see links. Click Here To Register...]


Aber gute Lösung, die im Grunde genau das gleiche ist, wie bei der "falschen" Variante.
05/20/2014 15:02 Lord iRemix#5
So mal zum Thema was vernünftiges:

Der Fehler hat 0 mit Eventflags zu tun (die Funktion wird nichtmal beim Setzen/Abfragen von Eventflags aufgerufen).
Nach 2 Minuten Suchen im Source findet man schon, wann der Fehler kommen kann.
Der Fehler kommt, z.B bei 'nem item select/findnpcbyvnum/input/confirm usw.

Die Eventflags werden so wie jegliche andere Information in der player.quest Tabelle gespeichert und können auf jeden beliebigen Wert abgefragt werden.


#closerequest, da der Thread und die Lösung einfach total am Error vorbeigehen.


Der Thread erinnert mich irgendwie an den Post:

Quote:
Originally Posted by ebert.tonna View Post
Jo release mal das und speise uns doch bitte nicht mit deinem Abfall ab.
Ich werde beantragen das du mein Klopapier was ich benutzt habe auch noch benutzen musst da ich auch schon besseres Klopapier habe.

Wie wäre denn das?
05/20/2014 16:57 Mr. 'Avenue™#6
Sorry, aber dein Release hat soviel Sinn wie ein angelecktes Thunfisch-Brötchen.
Du kritisierst dauernd nur andere, merkst aber gar nicht, dass du selbst nur Müll produzierst. Statt mal was gutes, was auch vielen hilft, zu teilen, released du nur Shit, der das Volk verdummt. Nenn dich mal 'Massenverdummungswaffe' oder so.

Dann noch so einen Scheiß von sich geben:
Quote:
Originally Posted by ebert.tonna View Post
Jo release mal das und speise uns doch bitte nicht mit deinem Abfall ab.
Ich werde beantragen das du mein Klopapier was ich benutzt habe auch noch benutzen musst da ich auch schon besseres Klopapier habe.

Wie wäre denn das?
Wie wäre es mal, wenn du was nützliches released, statt nur unnötigen Dreck?

Zum Thread: Hat mir leider nicht geholfen. Naja, hab solch einen Error nicht mal.