Eintragsdetails ansehen
ID | Projekt | Kategorie | Sichtbarkeit | Meldungsdatum | Zuletzt aktualisiert |
---|---|---|---|---|---|
0002165 | Eressea | BEWACHE | öffentlich | 2015-11-23 13:28 | 2017-12-05 19:50 |
Reporter | Enno | Bearbeitung durch | Enno | ||
Priorität | normal | Schweregrad | kleinerer Fehler | Reproduzierbar | nicht getestet |
Status | geschlossen | Lösung | erledigt | ||
Produktversion | 3.7.0 | ||||
Zielversion | 3.7.3 | Behoben in Version | 3.7.3 | ||
Zusammenfassung | 0002165: Monster bewachen nicht | ||||
Beschreibung | In Bug 2163 meldet Xolgrim einen Kampf, in dem es gegen Insassen einer Burg geht. So weit, so falsch. Aber bei der Untersuchung fiel mir auf, dass dort ein Monster ist, welches selbst bei 100% Agression nicht attackieren will: Ewiger Markt (ebay), Größe 10, Befestigung.
Statt den Original-Bug von Xolgrim weiter zur Analyse zu benutzen, mache ich hier mal einen neuen Bug auf. Die Einheit bewacht nicht, obwohl sie shcon lange in der Region ist. | ||||
Schritte zur Reproduktion | Nach einer Auswertung sollte die Einheit bewachen, und im Debugger sehe ich, dass sie den BEWACHE Befehl in plan_monsters gibt. Zu diesem Zeitpunkt ist UFL_GUARD noch nicht gesetzt, weswegen is_guard() keine Attacke erlaubt. Ich bemerke, dass in guard_on_cmd() Monster besonders gehandhabt werden, evtl. geht dabei etwas schief? is_guard() testet außer UFL_GUARD noch auf das Rassen-Flag RCF_UNARMEDGUARD, welches bei Juju-Zombies nicht gesetzt ist. | ||||
Zusätzliche Informationen | is_guard(u, GUARD_TAX) ist während plan_monsters false, weil die Einheit das UFL_GUARD flag nicht gesetzt hat, und selbst wenn, dann weil sie keine Waffe mit dem nötigen Skill hat. Alternativ sollten Monster zum Bewachen keine Waffen oder Skills benötigen, aber das ist an der Einheiten-Rasse fest gemacht, und für Juju-Zombies ist das Flag RCF_UNARMEDGUARD nicht gesetzt. Alles falsch. Das sollte nicht an der Rasse fest sein (Design-Bug), und das Flag sollte gesetzt sein (unbekannter Bug). Letzteres kann ich mal verfolgen. Bewachung ist ein Minenfeld voller Missverständnisse und Sonderregeln. Seufz. | ||||
Tags | Keine Tags zugeordnet. | ||||
Partei | ii | ||||
Spiel | E2 | ||||
Report | 955 | ||||
In setguard wird UFL_GUARD gesetst (u->flags ist 134217728). In write_unit sind die flags schon wieder 0, was ist dazwischen passiert? Im Report steht ja auch nichts von "bewacht", das muss also shcon vorher geschehen sein. Watchpoints to the rescue! |
|
Ta-Da! Die Funktion |
|
Ich finde schon, dass das Flag an die Rasse gehört (oder ich verstehe was falsch). Skelette in Spielerparteien sollten unbewaffnet bewachen können und Hoppelhäschen, auch wenn sie in der Monsterpartei sind, nicht. Aber Zombies sollten es natürlich können, das ist dann aber eher ein Konfigurationsbug. |
|
Änderungsdatum | Benutzername | Feld | Änderung |
---|---|---|---|
2015-11-23 13:28 | Enno | Neuer Eintrag | |
2015-11-23 13:28 | Enno | Status | neu => zugewiesen |
2015-11-23 13:28 | Enno | Bearbeitung durch | => Enno |
2015-11-23 13:28 | Enno | Beziehung hinzugefügt | verwandt mit 0002163 |
2015-11-23 15:04 | Enno | Notiz hinzugefügt: 0006314 | |
2015-11-23 15:17 | Enno | Notiz hinzugefügt: 0006315 | |
2015-11-23 15:47 | Solthar | Notiz hinzugefügt: 0006317 | |
2015-11-23 15:54 | Enno | Zielversion | => 3.7.3 |
2015-11-23 16:55 | Enno | Notiz hinzugefügt: 0006320 | |
2015-11-23 16:55 | Enno | Status | zugewiesen => erledigt |
2015-11-23 16:55 | Enno | Behoben in Version | => 3.7.3 |
2015-11-23 16:55 | Enno | Lösung | offen => erledigt |
2015-11-24 12:05 | Solthar | Beziehung hinzugefügt | verwandt mit 0002147 |
2017-12-05 19:50 | Enno | Status | erledigt => geschlossen |