Eintragsdetails ansehen

IDProjektKategorieSichtbarkeitZuletzt aktualisiert
0002343Eressea[Alle Projekte] Generalöffentlich2017-06-25 14:08
ReporterEnnoBearbeitung durchEnno 
PrioritätnormalAuswirkungkleinerer FehlerReproduzierbarnicht getestet
Status erledigtLösungerledigt 
Produktversion3.13 
Zielversion3.13Behoben in Version3.13 
Zusammenfassung0002343: Einheit hat 0 Trefferpunkte
Beschreibung

Ich habe gerade eine Test-Auswertung mit der aktuellen develop-Version gemacht (von 1029.dat nach 1030). Wenn ich danach das 1030.dat Datenfile einlese, bekomme ich diese Meldung:

ERROR: Einheit o430 hat 7 Personen, und 0 Trefferpunkte

In 1030-r5o.nr sehe ich, dass die Einheit wohl gehungert hat:

Bauern (o430) verliert in Vilrét (19,-14) 3 von 10 Personen durch
Unterernährung.

Aber die verbleibenden 7 Zwerge sollten dann doch wenigstens noch einen Trefferpunkt haben? Ist beim Hunger etwas kaputt?

Parteir5o
SpielE2
Report1030

Eintrags-Beziehungen

verwandt mit 0002326 erledigtEnno Untote Helden fehlen in der Kampfübersicht 

Notizen / Dateien

Enno

Enno

2017-06-24 15:03

Administrator   ~0007301

Der Fehler tritt nicht auf, wenn ich das aktuelle 1030 Datenfile mit dem aktuellen 13.12.2 Code lese.

Enno

Enno

2017-06-25 11:27

Administrator   ~0007304

Es gibt keine Einheit o430 im 1029 Datenfile, ich nehme also an, dass das eine neue TEMP-Einheit war? Mal schauen.

Enno

Enno

2017-06-25 11:31

Administrator   ~0007305

Die Einheit ist die erste von Partei 35196, die hungert (einfacher Breakpoint), und hat schon zum Einstieg der Funktion 0 HP. Da für 3 Personen das Silber fehlt, und alle mehr Schaden nehmen, als sie Trefferpunkte haben (also 1 oder mehr) sterben drei Personen.

Enno

Enno

2017-06-25 11:36

Administrator   ~0007306

Die Einheit wird mit "MACHE TEMP zevi" erstellt und bekommt 24 * 0 Trefferpunkte (weil neue Einheiten 0 Personen haben). Das könnte man mal vereinfachen. Wenn sie rekrutiert, sollte sie mehr kriegen.

Enno

Enno

2017-06-25 11:38

Administrator   ~0007307

Das betrifft offenbar eine ganze Menge Einheiten.

Enno

Enno

2017-06-25 11:44

Administrator   ~0007308

Der Fehler ist in clone_men, wo die HP von Einheiten bei der Rekrutierung gesetzt werden. Die Funktion ist relativ neu, und erst für den Bugfix von Bug 2326 in den 3.13 Branch eingeflossen.

Enno

Enno

2017-06-25 13:46

Administrator   ~0007309

Zum debuggen: Erster Fall in dieser Woche ist Einheit 742917, die 1 Person an eine TEMP-Einheit gibt.

Enno

Enno

2017-06-25 13:48

Administrator   ~0007310

Aha, ich sehe den Fehler:
hp -= u->hp;
dst->hp += hp;
Früher wurde erst die Originaleinheit um Leute und Trefferpunkt reduziert, dann der Unterschied zu dst addiert. Das muss natürlich anders sein, jetzt.

Eintrags-Historie

Änderungsdatum Benutzername Feld Änderung
2017-06-24 15:01 Enno Neuer Eintrag
2017-06-24 15:01 Enno Status neu => zugewiesen
2017-06-24 15:01 Enno Bearbeitung durch => Enno
2017-06-24 15:03 Enno Notiz hinzugefügt: 0007301
2017-06-25 11:27 Enno Notiz hinzugefügt: 0007304
2017-06-25 11:31 Enno Notiz hinzugefügt: 0007305
2017-06-25 11:36 Enno Notiz hinzugefügt: 0007306
2017-06-25 11:38 Enno Notiz hinzugefügt: 0007307
2017-06-25 11:44 Enno Notiz hinzugefügt: 0007308
2017-06-25 11:45 Enno Beziehung hinzugefügt verwandt mit 0002326
2017-06-25 13:46 Enno Notiz hinzugefügt: 0007309
2017-06-25 13:48 Enno Notiz hinzugefügt: 0007310
2017-06-25 14:08 Enno Status zugewiesen => erledigt
2017-06-25 14:08 Enno Lösung offen => erledigt
2017-06-25 14:08 Enno Behoben in Version => 3.13