Eintragsdetails ansehen
ID | Projekt | Kategorie | Sichtbarkeit | Meldungsdatum | Zuletzt aktualisiert |
---|---|---|---|---|---|
0002286 | Eressea | General | öffentlich | 2017-02-25 21:55 | 2017-05-26 06:33 |
Reporter | Enno | Bearbeitung durch | Enno | ||
Priorität | normal | Schweregrad | kleinerer Fehler | Reproduzierbar | nicht getestet |
Status | geschlossen | Lösung | erledigt | ||
Produktversion | 3.10.7 | ||||
Zielversion | 3.11 | Behoben in Version | 3.11 | ||
Zusammenfassung | 0002286: Partei aus Durchreiseregion fehlt im CR | ||||
Beschreibung | In meinem CR habe ich diese Einheit: EINHEIT 409963 "Matrosen";Name 761808;Partei 3;Anzahl "Meermenschen";Typ 581426;Schiff Aber keine Informationen zu der Partei 761808. Der NR sagt, das sei Tiamats Kinder (gbtc). Kann es daran liegen, dass dies eine Durchreiseregion ist, und ich die Partei in keiner anderen Region sehe? | ||||
Tags | Keine Tags zugeordnet. | ||||
Partei | ufo | ||||
Spiel | E2 | ||||
Report | 1014 | ||||
In der NR-Parteienliste fehlt die Partei auch! |
|
Ich habe einen ähnlichen Fall und auch hier ist es eine Partei aus einer Durchreiseregion. (Runde 396, Partei drac, gesichtete Einheit: - Bärtiger Heiopei (er49), Heiopei (qit), 1 Zwerg. |
|
Das war im Testreport von E3. |
|
@Solthar: War das nur im Testreport? Diskrepanzen zwischen Testreport und offizieller Version bitte immer sofort melden, die sind mir fast wichtiger als "normale" Bugreports. |
|
Ja, das betraf in dem Fall nur den Testreport. |
|
Muss ich mir also unbedingt vor dem Wochenende noch ansehen. Seufz. |
|
Region ist 900467642 Man würde erwarten, dass cb_add_address in der Region aufgerufen wird, wenn mein Report erzeugt wird, das passiert aber wohl nicht. Entweder ist die Durchreise also nicht registriert worden, oder die Region ist nicht im Report-Interval? |
|
travelthru_add wird in der Region nie aufgerufen. Warum? |
|
In meinem Report steht an der Region "Die Region wurde durchquert von Zeitreisender (vnzi)." Das passt zu der Beobachtung ja mal gar nicht. |
|
Kann es sein, dass die Einheit bei einer Neu-AW vor NACH verschwunden ist? Im Kampf gestorben? |
|
Oh, shit, ja. Die dummen Skelette in Bisur greifen ihn an. |
|
Wenn ich die Monsterattacke blockiere, wird die Durchreise in travelthru_add registriert. Prima. OMG! Das ist gar keine andere Partei. Das sind Kleine Mannen, die sich als Tiamats Kinder parteigetarnt haben. Warum führt das im CR dazu, das keine Partei gezeigt wird? Evtl. ist die Durchreise die ganze Zeit ein roter Hering gewesen. |
|
Was geht hier vor? Die KM haben mir kein HELFE PARTEITARNUNG gesetzt, also:
Dann wird das kurz darauf noch einmal berechnet (Warum?):
Das ist natürlich wieder Tiamat. Es wird dann ein ;Partei Attribut in den CR geschrieben mit sf->no (Tiamat), aber da ich die Partei anderswo nicht im CR habe, ist sie nicht in der Adressliste. |
|
Das Problem ist hier also, dass die Partei nicht in der Adressliste steht, weil ich sie nicht sehe. Ich sehe aber eine Einheit, die als Tiamat getarnt ist, deren Tarnung ich nicht erkennen kann (aber die natürlich dadurch jetzt aufgeflogen ist). |
|
Hm, meine Beobachtung stammt aber aus dem Testreport E3 und da gibt es diese Art von Parteitarnung gar nicht. Ist das demnach ein eigener Bug? |
|
Das kann natürlich sein, dass das ein anderes Problem ist. Ich habe das gestern nicht mehr reproduziert, nachdem ich zwei Stunden an der Parteitarnungs-Sache gesessen habe, bis ich die auf ihre Ursache reduziert hatte. Werde ich dann wohl heute Abend machen. |
|
Wir haben uns entschieden, dass ich die Partei in der Adressliste haben sollte. Ich habe das Problem gerade eben auf einen roten Unit-Test reduziert. |
|
Hier liegt der Hund begraben:
ballied ist false (weil sf==lastf), und is_allied ist auch false (Allianzen sind eh nur ein E3-Feature). Was soll der Code? Speziell das mit lastf ist komisch. |
|
Oh, lastf!=sf heisst einfach, das die Partei, die wir für die vorherige Einheit registriert haben, nicht die gleiche ist, wie diese hier. Weil, wenn es die gleiche ist, kann man sich den teuren call nach add_seen_faction_i sparen. Hier ist das aber so: Die Einheit ist getarnt als die Partei der Einheit vor ihr. Oh, ich sehe gerade, der Test denn ich eben geschrieben habe ist eh verkehrt, weil selist_find anders funktioniert, als ich gedacht hatte. |
|
Jetzt ist mein Test nicht mehr rot, muss mir was neues überlegen. Da ist eine Einheit der Partei, als die sich getarnt wird, in der Region. Das darf ja für unseren Bug nicht sein. |
|
Oh, lauter falsche Fehler. Der Code-Path ist ein anderer für Durchreiseregionen (add_travelthru_addresses), und mein Test hat das nicht richtig reproduziert. Da wird am Ende cb_add_address aufgerufen, was für eine Durchreise-Region die Parteien allee Einheiten einträgt, wenn man diese sehen kann. Dabei wird in cansee_unit ein Parameter stealthmod übergeben, der -1 ist, weil das vorher von stealth_modifier(r->seen.mode) so bestimmt wurde. Der Adress-Code glaube also, die Einheit sei nicht sichtbar! Das glaubt aber der Rest des Report-Codes nicht? |
|
Der Code, der die Einheit ausgibt, sieht so aus:
Der ruft also cansee auf, und nicht cansee_unit. Testet aber dafür auf Schiffe und Gebäude (was cansee_unit auch tut). Das ist offenbar so, weil cansee alle Einheiten in der Region nach einem Wahrnehmer durchsuchen muss. |
|
Die von mir gesehene Einheit steht auf einem Schiff, deshalb sollte sie auch für Durchreisende immer sichtbar sein. Mein Test bildet das nicht ab. |
|
Oh, ich glaube, der Aufruf von cansee_unit() hat die Einheiten in der falschen Reihenfolge! Das ist es. Heureka! |
|
fixed in commit 7f03417 |
|
fixed, awaiting merge into eressea/server |
|
Die Version 3.11 ist historisch, alle gefixten Bugs scheinen keine Probleme zu haben. |
|
Änderungsdatum | Benutzername | Feld | Änderung |
---|---|---|---|
2017-02-25 21:55 | Enno | Neuer Eintrag | |
2017-02-25 21:56 | Enno | Notiz hinzugefügt: 0006987 | |
2017-02-26 12:51 | Enno | Bearbeitung durch | => Enno |
2017-02-26 12:51 | Enno | Status | neu => zugewiesen |
2017-02-26 22:35 | Solthar | Notiz hinzugefügt: 0006988 | |
2017-02-26 22:47 | Solthar | Notiz hinzugefügt: 0006989 | |
2017-02-27 03:50 | Enno | Notiz hinzugefügt: 0006990 | |
2017-02-27 08:53 | Solthar | Notiz hinzugefügt: 0006991 | |
2017-02-27 11:00 | Enno | Zielversion | => 3.11 |
2017-02-27 11:00 | Enno | Notiz hinzugefügt: 0006992 | |
2017-02-28 18:36 | Enno | Notiz hinzugefügt: 0007006 | |
2017-02-28 18:39 | Enno | Notiz hinzugefügt: 0007007 | |
2017-02-28 18:43 | Enno | Notiz hinzugefügt: 0007008 | |
2017-02-28 19:17 | Enno | Notiz hinzugefügt: 0007009 | |
2017-02-28 19:18 | Enno | Notiz hinzugefügt: 0007010 | |
2017-02-28 20:06 | Enno | Notiz hinzugefügt: 0007012 | |
2017-02-28 20:17 | Enno | Notiz hinzugefügt: 0007013 | |
2017-02-28 20:18 | Enno | Notiz hinzugefügt: 0007014 | |
2017-03-01 11:42 | Solthar | Notiz hinzugefügt: 0007018 | |
2017-03-01 12:32 | Enno | Notiz hinzugefügt: 0007020 | |
2017-03-01 19:55 | Enno | Notiz hinzugefügt: 0007022 | |
2017-03-01 20:07 | Enno | Notiz hinzugefügt: 0007023 | |
2017-03-01 20:36 | Enno | Notiz hinzugefügt: 0007024 | |
2017-03-01 20:41 | Enno | Notiz hinzugefügt: 0007025 | |
2017-03-01 20:55 | Enno | Notiz hinzugefügt: 0007026 | |
2017-03-01 21:00 | Enno | Notiz hinzugefügt: 0007027 | |
2017-03-01 21:04 | Enno | Notiz hinzugefügt: 0007028 | |
2017-03-01 21:09 | Enno | Notiz hinzugefügt: 0007029 | |
2017-03-01 21:11 | Enno | Notiz hinzugefügt: 0007030 | |
2017-03-01 21:13 | Enno | Status | zugewiesen => erledigt |
2017-03-01 21:13 | Enno | Lösung | offen => erledigt |
2017-03-01 21:13 | Enno | Behoben in Version | => 3.11 |
2017-03-01 21:13 | Enno | Notiz hinzugefügt: 0007033 | |
2017-03-06 15:26 | Enno | Beziehung hinzugefügt | verwandt mit 0002303 |
2017-05-26 06:33 | Enno | Notiz hinzugefügt: 0007218 | |
2017-05-26 06:33 | Enno | Status | erledigt => geschlossen |