Eintragsdetails ansehen
ID | Projekt | Kategorie | Sichtbarkeit | Meldungsdatum | Zuletzt aktualisiert |
---|---|---|---|---|---|
0002343 | Eressea | General | öffentlich | 2017-06-24 15:01 | 2017-12-05 19:48 |
Reporter | Enno | Bearbeitung durch | Enno | ||
Priorität | normal | Schweregrad | kleinerer Fehler | Reproduzierbar | nicht getestet |
Status | geschlossen | Lösung | erledigt | ||
Produktversion | 3.13.0 | ||||
Zielversion | 3.13.0 | Behoben in Version | 3.13.0 | ||
Zusammenfassung | 0002343: 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? | ||||
Tags | Keine Tags zugeordnet. | ||||
Partei | r5o | ||||
Spiel | E2 | ||||
Report | 1030 | ||||
Der Fehler tritt nicht auf, wenn ich das aktuelle 1030 Datenfile mit dem aktuellen 13.12.2 Code lese. |
|
Es gibt keine Einheit o430 im 1029 Datenfile, ich nehme also an, dass das eine neue TEMP-Einheit war? Mal schauen. |
|
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. |
|
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. |
|
Das betrifft offenbar eine ganze Menge Einheiten. |
|
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. |
|
Zum debuggen: Erster Fall in dieser Woche ist Einheit 742917, die 1 Person an eine TEMP-Einheit gibt. |
|
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. |
|
Ä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.0 |
2017-08-31 21:33 | Enno | Beziehung hinzugefügt | verwandt mit 0002362 |
2017-12-05 19:48 | Enno | Status | erledigt => geschlossen |