View Issue Details

IDProjectCategoryView StatusLast Update
0002165EresseaBEWACHEpublic2017-12-05 18:50
ReporterEnno Assigned ToEnno  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version3.7.0 
Target Version3.7.3Fixed in Version3.7.3 
Summary0002165: Monster bewachen nicht
Description

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.

- Händler (51Le), Monster (ii), 1 Juju-Zombie, hat: Geburtstagstorte, 11
  Elfenpferde, 204 Zauberbeutel, 18 Mistelzweige, 3 Schneebälle, 3
  Schneemänner; sie bauen ihre Marktstände auf und lassen sich viel Zeit
  damit, ihre merkwürdigen Gegenstände auszupacken.

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.

Steps To Reproduce

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.

Additional Information

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.

TagsNo tags attached.
Factionii
GameE2
Report955

Relationships

related to 0002163 closedEnno Monster attackieren Burginsassen (wenn Einheiten Ausserhalb einer Burg stehen) 
related to 0002147 closed Nicht alle beschworenen Kämpfer können bewachen 

Activities

Enno

Enno

2015-11-23 14:04

administrator   ~0006314

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!

Enno

Enno

2015-11-23 14:17

administrator   ~0006315

Ta-Da! Die Funktion update_guards macht das kaputt. Die checkt für alle bewachenden Einheiten , ob sie can_start_guarding erfüllen, und dabei werden Monster wohl nicht besonders behandelt? Wenn sie den Test nicht erfüllen (z.B. keine Waffe), dann wird ihr BEWACHE-Status gelöscht. Das muss sein, weil sonst ein Bewacher seine Schwerter jemand anderes geben könnte, usw., aber es ist in Bezug auf Monster falsch implementiert.

Solthar

Solthar

2015-11-23 14:47

developer   ~0006317

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.

Enno

Enno

2015-11-23 15:55

administrator   ~0006320

https://github.com/eressea/server/pull/407

Issue History

Date Modified Username Field Change
2015-11-23 12:28 Enno New Issue
2015-11-23 12:28 Enno Status new => assigned
2015-11-23 12:28 Enno Assigned To => Enno
2015-11-23 12:28 Enno Relationship added related to 0002163
2015-11-23 14:04 Enno Note Added: 0006314
2015-11-23 14:17 Enno Note Added: 0006315
2015-11-23 14:47 Solthar Note Added: 0006317
2015-11-23 14:54 Enno Target Version => 3.7.3
2015-11-23 15:55 Enno Note Added: 0006320
2015-11-23 15:55 Enno Status assigned => resolved
2015-11-23 15:55 Enno Fixed in Version => 3.7.3
2015-11-23 15:55 Enno Resolution open => fixed
2015-11-24 11:05 Solthar Relationship added related to 0002147
2017-12-05 18:50 Enno Status resolved => closed