View Issue Details

IDProjectCategoryView StatusLast Update
0002313EresseaGeneralpublic2017-12-05 18:49
ReporterSolthar Assigned ToEnno  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version3.12 
Target Version3.12Fixed in Version3.12 
Summary0002313: Einheitenzahl falsch
Description

Im Testreport ist die Einheitenzahl falsch:

   Deine Partei hat 14667 Personen in 231 von maximal 250 Einheiten.

Es solten aber 227 Einheiten sein. Auch die Punktzahl weicht leicht ab, obwohl der Testreport praktisch identisch mit dem normalen Report ist.

TagsNo tags attached.
Factiondrac
GameE3
Report398

Activities

Enno

Enno

2017-03-12 09:47

administrator   ~0007136

Das ist eine geplante Änderung: Untote, Vertraute und andere non-humanoide Einheiten zählen jetzt auch zu den Einheiten. Die erhöhte Punktzahl ist ein Resultat davon: Mehr Einheiten => mehr Personen => mehr Punkte.

Solthar

Solthar

2017-03-12 10:29

developer   ~0007137

Hm, ich habe aber keine Untoten, Vertraute oder andere Einheiten außer Goblins und Dämonen. Und ich zähle 227.

Solthar

Solthar

2017-03-12 10:34

developer   ~0007138

Vielleicht ist es ein Zufall, aber ich habe diese Woche 4 TEMP-Einheiten erzeugt, was der Differenz entspricht. Diese mitgerechnet habe ich aber trotzdem nur 227.

Enno

Enno

2017-03-12 11:08

administrator   ~0007139

Nach dem Lesen der Daten: 225 Nach MACHE TEMP: 229

Oh, ich glaube ich sehe das Problem: REKRUTIERE macht eine temporäre Einheit, die es dann mit der Original-Einheit "mischt", um die Talente zu berechnen. Das ist ein doofer Hack, und an der Stelle geht das bestimmt schief.

Enno

Enno

2017-03-12 11:47

administrator   ~0007140

Das mit den zwei Einheiten wird gemacht, um equip_unit aufzurufen (neue Personen kriegen je nach Rasse Talentboni und Gegenstände). Das ist ein bisschen übertriebener Aufwand.

Enno

Enno

2017-03-12 11:48

administrator   ~0007141

Der Rechenfehler passiert wohl in remove_unit - da wird die Einheit aus der Parteiliste entfernt, aber der nu,_units Zähler nicht aktualisiert.

Enno

Enno

2017-03-12 12:00

administrator   ~0007142

Habe den Fehler in einem Test reproduziert. Dabei einen zweiten Fehler entdeckt: Wenn eine Einheit auf einem Schiff stirbt, das mit ZERSTÖRE versenkt wird, oder im Chaos von einer Flutwelle verschluckt, dann wird auch die Anzahl Einheiten nicht angepasst. Wieder ist remove_unit Schuld.

Ich glaube, ich muss auch noch testen, dass gewisse Einheiten von der Zählung ausgeschlossen werden. Einige Zauber erzeugen Einheiten, die dann in age_unit wieder mit remove_unit gelöscht werden.

Enno

Enno

2017-03-12 12:42

administrator   ~0007143

gefixt in PR https://github.com/eressea/server/pull/676

Enno

Enno

2017-03-12 12:44

administrator   ~0007144

Anzeige ist jetzt: Deine Partei hat 14668 Personen in 227 von maximal 250 Einheiten.

Solthar

Solthar

2017-03-12 12:52

developer   ~0007145

Das ist eine Person mehr, als es sein sollte. Mir ist nicht klar, wo die plötzlich herkommt. Jedenfalls nicht aus einem Kampf. Ich hatte diese Woche keine Verluste.

Enno

Enno

2017-03-12 13:15

administrator   ~0007146

Hmm. Hmmm. Mal gucken: Datenfile geladen, nach readgame: 14650 Dann wird eine Zusammenfassung geschrieben, dabei setzt make_summary f->num_people = 0; Das sollte auf keinen Fall so sein, denke ich. make_summary rechnet die Anzahl dann komplett neu aus, kümmert sich dabei aber nicht um Zaubersprüche. Du hast scheinbar vor kurzem einmal Traumdeuten o.ä. gezaubert?

Das mit der Neuberechnung mache ich mal lieber weg, danach sollte das wieder in Ordnung sein.

Enno

Enno

2017-03-12 13:21

administrator   ~0007147

Jetzt aber: Deine Partei hat 14667 Personen in 227 von maximal 250 Einheiten.

Issue History

Date Modified Username Field Change
2017-03-12 09:45 Solthar New Issue
2017-03-12 09:47 Enno Note Added: 0007136
2017-03-12 09:47 Enno Product Version 3.11.1 => 3.12
2017-03-12 10:29 Solthar Note Added: 0007137
2017-03-12 10:34 Solthar Note Added: 0007138
2017-03-12 11:08 Enno Note Added: 0007139
2017-03-12 11:08 Enno Assigned To => Enno
2017-03-12 11:08 Enno Status new => assigned
2017-03-12 11:47 Enno Note Added: 0007140
2017-03-12 11:48 Enno Note Added: 0007141
2017-03-12 12:00 Enno Note Added: 0007142
2017-03-12 12:42 Enno Status assigned => resolved
2017-03-12 12:42 Enno Resolution open => fixed
2017-03-12 12:42 Enno Fixed in Version => 3.12
2017-03-12 12:42 Enno Note Added: 0007143
2017-03-12 12:44 Enno Note Added: 0007144
2017-03-12 12:52 Solthar Status resolved => feedback
2017-03-12 12:52 Solthar Resolution fixed => reopened
2017-03-12 12:52 Solthar Note Added: 0007145
2017-03-12 13:15 Enno Note Added: 0007146
2017-03-12 13:21 Enno Status feedback => resolved
2017-03-12 13:21 Enno Resolution reopened => fixed
2017-03-12 13:21 Enno Note Added: 0007147
2017-05-14 11:16 Enno Target Version => 3.12
2017-12-05 18:49 Enno Status resolved => closed