[Bug]Trigger @UserStats

Bugs und Bugfixes bitte im Topic mit [Bug] und [Fix] makieren.

Moderator: Mods - Sphere

Antworten
Nachricht
Autor
Tynian

[Bug]Trigger @UserStats

#1 Beitrag von Tynian » 29 Mär 2006 03:36

Code: Alles auswählen

@UserStats  	Whenever you open your status gump, or your stats get updated, this is called.
Das ist so nicht korrekt. Der trigger wird bei jedem normalen Dialog ausgelöst (Beispielsweise .info), was äußerst irritierend sein kann wenn man damit arbeitet.
Der Trigger besitzt eine argn3 Referenz, welche 1 ist wenn der Statsdialog (der mit den drei Balken für HP, Stam und Mana) geöffnet wird. Gei einem normalen Statgain ist argn3 0 - genauso wie bei jeder anderen Dialogöffnung.

Ich vermute der Trigger sollte so funktionieren, dass man unterscheiden kann "hat der grad nen statgain bekommen oder hat der grad das statwindow geöffnet" was eigentlich eine praktische Sache wäre. Im Prinzip ähnlich wie der Trigger @UserSkills, nur eben für stats.

Fix gibts dafür keinen, wer mit dem Trigger umgeht muss eben vorsichtig sein und eben abfangen ob ein Dialog offen ist oder ob stats gegaint haben.

Bug bemerkt auf:
Sphere 0.55 R 4.0.2 für Linux
Sphere 0.55 R 4.0.2 für Windows

Tynian

Daskaras
Moderator (Sphere)
Beiträge: 857
Registriert: 13 Jan 2004 14:43

#2 Beitrag von Daskaras » 29 Mär 2006 06:27

da muß man mit argn2 arbeiten soviel ich weiß
if (<argn2> == 1)
dein code hier
endif
dann sollte dein code nur erscheinen, wenn du auch wirklich das ganze auf dein statgump beziehst.
oder so in der richtung.
muß man mal testen

Tynian

#3 Beitrag von Tynian » 29 Mär 2006 07:34

Du kannst mir vertrauen, in den seltenen Fällen in denen ich etwas poste habe ich das vorher ausgiebigst getestet.
Argn1 sowie Argn2 zeigen in keinem aller von mir getesteten Fälle eine Veränderung, sie werden immer mit "0" zurückgegeben, egal was ich wann wie oft aufrufe oder welche stats gainen.

Kleiner Nachtrag: Der Trigger scheint in den merkwürdigsten Situationen aufgerufen zu werden. Als ich zum Beispiel mal einen NPC mit ".remove" entfernen wollte kam die Debugmeldung, dass der Trigger aufgerufen wurde. Dies ließ sich dann allerdings nichtmehr reproduzieren, so dass ich diesbezüglich leider keine genaueren Angaben machen kann.

Thaile

#4 Beitrag von Thaile » 29 Mär 2006 16:28

Also der Triger wird immer gefeuert wenn die Stats upgedatet werden.
Wenn man also ein GUMPmenü öffnet werden die Stats vorher noch upgedatet sprich der Trigger wird gefeuert. Ich vermute mal das passiert jedes mal wenn die Stats neu zum Client gesendet werden.
Viel wird man in der Version nicht machen können in dieser Richtung...

Tynian

#5 Beitrag von Tynian » 31 Mär 2006 10:41

Ich weiß nicht, ich habe da inzwischen recht viel herumprobiert und die Sinnlosigkeit dieses Triggers wird leider immer größer.
Er wird bei fast jeder Interaktion aufgerufen. Beispielsweise wenn man auf ein Pferd aufsteigt oder wenn man ein Item anhebt und es woanders ablegt. Selbst bei einem Environchange wird dieser Trigger ausgelöst.

Was bringt ein Trigger der bei fast jeder Aktion ausgelöst wird und sich kaum bis garnicht kontrollieren lässt?
Trigger sind dazu da um Aktionen und Ereignisse zu erkennen und eine Möglichkeit zu bieten dort einen Hebel anzusetzen um etwas bestimmtes dort zu verändern.
Also um eine Veränderung der Stats zu erkennen ist dieser Trigger definitiv ungeeignet, deswegen kann ich allen nur raten, die diesen Trigger dafür verwenden wollen: Hände weg davon, der Trigger ist sehr schwer zu kontrollieren

VD
Administrator
Beiträge: 370
Registriert: 13 Jan 2004 18:19

#6 Beitrag von VD » 31 Mär 2006 10:48

rein Spekulativ:
was man mit dem Trigger machen könnte, wäre z.b. das Statusgump-Packet durch ein anderes zu ersetzen.
Ansonsten ist zumindest erklärbar warum das andauernd feuert, wenn sich irgendwas am Char tut. Denn der Server weiss normal nicht, ob der Client das Statusfenster noch offen hat, deshalb muss ers immer wenn sich ein Wert ändert, der drinnen vorkommt senden.

Wenn du die Werte durchgehst (Stats,Followers,Gold, ...) stellst fest, dass sich praktisch bei jeder Aktion mit der sich was am Char ändert, potentiell auch eine der Grössen ändern kann => Statusgump wird geupdatet => Trigger feuert

VD

Benutzeravatar
Torfo
Moderator (Sphere)
Beiträge: 828
Registriert: 13 Jan 2004 12:00
Kontaktdaten:

#7 Beitrag von Torfo » 31 Mär 2006 16:54

1.) Kein Bug
2.) Falscher Ort für einen Bugreport. Richtig wäre: http://www.sphere-italia.org/mantis (allerdings nur, wenn der Bug in 56b auch noch auftaucht)
Bild

Antworten