Eintragsdetails ansehen

IDProjektKategorieSichtbarkeitZuletzt aktualisiert
0002144EresseaGeneralöffentlich2019-10-03 21:55
ReporterJulian Bearbeitung durchMrTurner  
PrioritätnormalSchweregradkleinerer FehlerReproduzierbarimmer
Status geschlossenLösungerledigt 
Behoben in Version3.7.0 
Zusammenfassung0002144: Geburtstagstorte hat keine Beschreibung (ZEIGE)
Beschreibung

Iredor (ovi9) in Bachtal (1, -1): 'ZEIGE Geburtstagstorte' - Dazu gibt es keine Informationen.

TagsKeine Tags zugeordnet.
Parteiftkf
SpielE2
Report948

Notizen / Dateien

Enno

Enno

2015-10-10 11:10

Administrator   ~0006170

Die ist zu irgend einem Geburtstag von Eressea mal ausgehändigt worden, evtl. gibt es da noch eine Spur zu im Code, ansonsten weiß ich auch nicht, wann das war.

MrTurner

MrTurner

2015-11-03 01:08

Tester   ~0006190

Es gibt zur Torte sogar Texte in DE und EN in der E2 strings.xml unter dem Namen "birthdaycake". Eine entsprechende Ressource ist in der items.xml definiert.

Die ausgegebene Fehlermeldung deutet aber darauf hin, dass die Verarbeitung des Befehls in reshow() in die Hose geht (genauer zwischen Zeile 2454 und 2485 in laws.c).

Vielleicht ist was mit dem item_type im Argen? Ich kann nur noch nicht recht nachvollziehen was...

Enno

Enno

2015-11-03 06:03

Administrator   ~0006191

Test schreiben, der das excerziert, und im Debugger verfolgen, warum reshow es nicht ausführt?

MrTurner

MrTurner

2015-11-04 00:59

Tester   ~0006196

Ich glaube nicht, dass das funktionieren wird, da die locale da wieder mit drin hängt.

"itype = finditemtype(s, u->faction->locale);"

Hab's trotzdem mal versucht und bekomme an der Stelle NULL zurück. Aber das liegt wohl eher an der Testumgebung als am Bug. Oder?

Enno

Enno

2015-11-04 07:51

Administrator   ~0006197

Man kann da zwei Dinge tun:

  1. Den Test in Lua schreiben, wo die Regeln des Spieles geladen sind. Der Test wird dann etwas größer, und das muss mit dem Server debugged werden, nicht mit test_eressea - wenn gewünscht, schreibe ich dazu eine Anleitung

  2. Die Locale im Unit-Test mit den notwendigen Werten befüllen. Siehe z.B. test_finditemtype für ein Beispiel, wie man das macht.

MrTurner

MrTurner

2015-11-04 16:02

Tester   ~0006200

  1. Zumindest ein paar grundsätzliche Hinweise würde ich wohl brauchen. Gerne auch über kurz über Slack.

  2. Halte ich für weniger sinnvoll, weil ich das Gefühl habe damit Umstände zu konstruieren, die mich weiter vom eigentlichen Fehler entfernen.

Enno

Enno

2015-11-04 16:30

Administrator   ~0006201

Dann musst Du den Test schreiben, die Tests leben im Verzeichnis scripts/tests/*.lua. Da die Torte ein E2-Feature ist, wrde ich den Test erst einmal in scripts/test/e2/e2features.lua unterbringen.

Eine neue Funktion mit Namen test_birthdaycake einfuegen, das Framework findet die von alleine solange sie mit test_ anfaengt. Dann dein Szenario konstruieren, wie die anderen Tests das auch machen.

function test_birthdaycake() r = region.create(0,0, "plain") f = faction.create("cake@eressea.de", "human", "de") u = unit.create(f, r, 1) u:add_item("birthdaycake", 1) u:clear_orders() u:add_order("ZEIGE Geburtstagstorte") process_orders() end

Die hat jetzt zwar kein assert, weil man erfolgreiches ZEIGE schlecht pruefen kann, aber wenn der Code ausgefuerht wird, kann man das schon einmal im Debugger verfolgen (breakpoint in reshow setzen und abwarten).

Die Tests werden normal in runtests.bat ausgefuehrt, hier musst Du aber deinen Visual Studio Debugger einrichten, das er die richtige Kommandozeile hat und so. Also scripts/run-tests-e2.lua als Kommandozeilen-Parameter haben, und aus dem richtigen Verzeichnis aus aufrufen.

Du kannst Dir dann auch noch die Reporte ausgeben lassen, wenn das einfacher ist als den Debugger zu benutzen, mit:

init_reports() print("writing reports for faction " .. tostring(f)) write_report(f)

aber am Ende kommt man um debugging sicher nicht herum.

MrTurner

MrTurner

2015-11-04 17:24

Tester   ~0006202

Interessante Wendung der Geschehnisse: der Test ist erfolgreich. ^^ Ich bekomme die Beschreibung von locale und sie wird als Meldung weitergegeben.

Weitere Untersuchungen müssen bis später warten.

Enno

Enno

2015-11-04 17:25

Administrator   ~0006203

Das habe ich bei mir auch so festgestellt. Bugreport ungültig? Evtl. sollte ich noch einmal mit den Spieldaten von Runde 948 und aktuellem Code auswerten?

MrTurner

MrTurner

2015-11-04 17:27

Tester   ~0006204

Wäre vielleicht sinnvoll, aber ich weiß nicht wie viel Aufwand das für dich bedeutet.

Enno

Enno

2015-11-04 17:53

Administrator   ~0006205

Immer noch: Iredor (ovi9) in Bachtal (1,-1): 'ZEIGE Geburtstagstorte' - Dazu gibt es keine Informationen.

Jetzt mal im Debugger gucken, warum.

Enno

Enno

2015-11-04 18:08

Administrator   ~0006206

Ich glaube, die Einheit hat zu Beginn der Woche keine Torte gehabt, und ZEIGE geht nur, wenn man selbst eine besitzt. Im Report hat sie allerdigns drei Stück - kann es sein, dass sie die erst durch GIB oder RESERVIERE bekommen hat?

Enno

Enno

2015-11-04 19:04

Administrator   ~0006207

Ich würde diese Meldung als unreproduzierbar schliessen.

Julian

Julian

2015-11-04 20:53

Reporter   ~0006208

Hab eben mal nachgeschaut: Die Einheit hat seit 948 durchgängig die drei Torten. Wenn das Debuggen zuviel Arbeit ist, bzw. es nicht reproduzierbar ist, dann schließt den Report! Ist ja nun wirklich kein kritischer Bug, mich hätte nur die Beschreibung interessiert, weil ich die Dinger einem Juju-Zombi aus seinen toten Klauen entrissen habe und eben nicht wusste was ich damit machen kann. Mittlerweile habe ich zumindest auch herausgefunden, dass man die Dinger nicht benutzen kann... ;-) (951: Iredor (ovi9) in Bachtal (1,-1): 'BENUTZE 1 Geburtstagstorte' - Diesen Gegenstand kann man nicht benutzen.)

MrTurner

MrTurner

2015-11-04 22:00

Tester   ~0006209

@Julius: Ja, die Torte scheint rein dekorativ zu sein. Die Frage ist laut Enno gerade, ob die Einheit die Torten in 948 erst bekommen hat oder vor und nach 948 hatte.

@Enno: Sollte es wirklich an einer ungünstigen GIB-Konstellation gelegen haben. wäre es noch eine Überlegung wert, ob hierfür eine kontextuellere (Fehler-)Meldung notwendig wäre (zumindest "Die Einheit hat keinen solchen Gegenstand" oder ähnliches), weil das dann ja nicht nur ein Problem von Geburtstagstorten wäre. Aber ansonsten gebe ich dir recht.

Julian

Julian

2015-11-04 22:11

Reporter   ~0006210

Die Einheit ovi9 hatte die Torten durchgängig von 948-952. Sie wurde nicht übergeben und nicht reserviert.

Enno

Enno

2015-11-05 09:35

Administrator   ~0006211

Dann sollte ich evtl. nochmal eine spätere Auswertung als die von 947 nach 948 testen? @MrTurner: kontextuelle Fehlermeldung ist eine sehr gute Idee.

Enno

Enno

2015-11-05 09:52

Administrator   ~0006212

In den BEfehlen gefunden: EINHEIT b67s GIB ovi9 2 Geburtstagstorte

EINHEIT xhs4 GIB ovi9 1 Geburtstagstorte

Der hatte die also in der Tat noch nicht, als er ZEIGE gemacht hat.

Enno

Enno

2015-11-05 09:56

Administrator   ~0006213

Ich habe mal in deien Befehle für ovi9 in Runde 949 ein ZEIGE eingefügt. Resultat:

Talenttrunk (Gewicht: 0 GE): Keine Informationen. Geburtstagstorte (Gewicht: 0 GE): Eine Geburtstagstorte mit 10 Kerzen. Herzlichen Glückwunsch, Eressea!

Bug ist also keiner, aber bessere Fehelrmeldung könnten wir trotzdem gebrauchen.

MrTurner

MrTurner

2015-11-05 14:08

Tester   ~0006214

Habe eine existierende Benachrichtigung gefunden, die passt (error36) und die Behandlung in reshow() entsprechend angepasst.

https://github.com/eressea/server/pull/370

Eintrags-Historie

Änderungsdatum Benutzername Feld Änderung
2015-10-07 22:26 Julian Neuer Eintrag
2015-10-10 11:10 Enno Notiz hinzugefügt: 0006170
2015-11-03 00:15 MrTurner Bearbeitung durch => MrTurner
2015-11-03 00:15 MrTurner Status neu => zugewiesen
2015-11-03 01:08 MrTurner Notiz hinzugefügt: 0006190
2015-11-03 06:03 Enno Notiz hinzugefügt: 0006191
2015-11-04 00:59 MrTurner Notiz hinzugefügt: 0006196
2015-11-04 07:51 Enno Notiz hinzugefügt: 0006197
2015-11-04 16:02 MrTurner Notiz hinzugefügt: 0006200
2015-11-04 16:30 Enno Notiz hinzugefügt: 0006201
2015-11-04 17:24 MrTurner Notiz hinzugefügt: 0006202
2015-11-04 17:25 Enno Notiz hinzugefügt: 0006203
2015-11-04 17:27 MrTurner Notiz hinzugefügt: 0006204
2015-11-04 17:53 Enno Notiz hinzugefügt: 0006205
2015-11-04 18:08 Enno Notiz hinzugefügt: 0006206
2015-11-04 19:04 Enno Notiz hinzugefügt: 0006207
2015-11-04 20:53 Julian Notiz hinzugefügt: 0006208
2015-11-04 22:00 MrTurner Notiz hinzugefügt: 0006209
2015-11-04 22:11 Julian Notiz hinzugefügt: 0006210
2015-11-05 09:35 Enno Notiz hinzugefügt: 0006211
2015-11-05 09:52 Enno Notiz hinzugefügt: 0006212
2015-11-05 09:56 Enno Notiz hinzugefügt: 0006213
2015-11-05 14:08 MrTurner Notiz hinzugefügt: 0006214
2015-11-05 14:08 MrTurner Status zugewiesen => erledigt
2015-11-05 14:08 MrTurner Behoben in Version => 3.7.0
2015-11-05 14:08 MrTurner Lösung offen => erledigt
2017-12-05 19:50 Enno Status erledigt => geschlossen
2019-10-03 21:55 Enno Kategorie Featurewunsch => General