Eintragsdetails ansehen
ID | Projekt | Kategorie | Sichtbarkeit | Meldungsdatum | Zuletzt aktualisiert |
---|---|---|---|---|---|
0003014 | Drachensgrab | Kampf | öffentlich | 2024-03-10 21:15 | 2024-03-13 17:00 |
Reporter | oglbi | Bearbeitung durch | Solthar | ||
Priorität | normal | Schweregrad | kleinerer Fehler | Reproduzierbar | nicht getestet |
Status | zugewiesen | Lösung | offen | ||
Zusammenfassung | 0003014: Bergwaechter halten sich nicht an die Kampfregeln und toeten ohne Ueberzahl Einheiten in der 4. Reihe (fliehe) | ||||
Beschreibung | Der Kampfbericht ist aus dem nr. Der Kampf fand im Tutorial statt. In einem Berg kam es zu einem Kampf zwischen Bergwaechtern. Mein Wahrnehmer stand auf fliehe und griff nicht an. Alle gegnerischen Nichtbergwaechter fluechteten. Wer immer den Wahrnehmer angriff hatte nicht die Uebermacht um ihn nach vorne zu holen. | ||||
Tags | Keine Tags zugeordnet. | ||||
Angehängte Dateien | Kampf_Berg_nr.log (2,852 Bytes)
In Besbotugir (-1,-2) findet ein Kampf statt. Der Kampf wurde ausgelöst von einer unbekannten Partei, bugs (541i) und einer unbekannten Partei. Heer 0: Unbekannte Partei Kämpft gegen: Heer 1 (541i), Heer 2 (541i) Hilft: Heer 3(xL6a), Heer 4(agb), Heer 5(-?-) Attacke gegen: Heer 1(541i) ... in der 1. Kampflinie: - Bergwächter (ybs0), 1 Waldbergwächter, aggressiv, bewacht die Region. Heer 1: bugs (541i) Kämpft gegen: Heer 0 (-?-), Heer 5 (-?-) Hilft: Heer 2(541i) ... in der 4. Kampflinie: * bug (woir), 1 Insekt, flieht, Talente: Wahrnehmung 6, hat: 40 Silber. Heer 2: bugs (541i) Kämpft gegen: Heer 0 (-?-), Heer 3 (xL6a), Heer 4 (agb) Hilft: Heer 1(541i) Attacke gegen: Heer 3(xL6a), Heer 4(agb) ... in der 1. Kampflinie: * Bergwächter (rkd3), 1 Bergwächter, vorne, bewacht die Region. * Bergwächter (1Lkr), 1 Bergwächter, vorne, bewacht die Region. * Bergwächter (mz8i), 1 Bergwächter, vorne (erschöpft), bewacht die Region, hat: 12 Höhlenglimme, 3 Eulenaugen, Speer. Heer 3: Mondelfen Kebelins (xL6a) Kämpft gegen: Heer 2 (541i) Hilft: Heer 0(-?-), Heer 4(agb) ... in der 4. Kampflinie: - Seher Mali'rohel (601v), 1 Mondelf, flieht. Heer 4: Anbeter des Großen Baums (agb) Kämpft gegen: Heer 2 (541i) Hilft: Heer 0(-?-), Heer 3(xL6a), Heer 5(-?-) ... in der 4. Kampflinie: - Manno Horn (man), 1 Waldmensch, flieht, hat: 11 Steine. Heer 5: Unbekannte Partei Kämpft gegen: Heer 1 (541i) Hilft: Heer 0(-?-), Heer 4(agb) Attacke gegen: Heer 1(541i) ... in der 1. Kampflinie: + Bergwächter (zsrd), 1 Mondbergwächter, aggressiv, bewacht die Region. Einheiten vor der 1. Runde: Heer 0(-?-): 1, Heer 1(541i): 0+0+0+1, Heer 2(541i): 3, Heer 3(xL6a): 0+0+0+1, Heer 4(agb): 0+0+0+1, Heer 5(-?-): 1 Einheiten vor der 2. Runde: Heer 0(-?-): 1, Heer 2(541i): 3, Heer 3(xL6a): 0+0+0+1, Heer 5(-?-): 1 Einheiten vor der 3. Runde: Heer 0(-?-): 1, Heer 2(541i): 3, Heer 3(xL6a): 0+0+0+1, Heer 5(-?-): 1 Einheiten vor der 4. Runde: Heer 0(-?-): 1, Heer 2(541i): 3, Heer 5(-?-): 1 Einheiten vor der 5. Runde: Heer 0(-?-): 1, Heer 2(541i): 3, Heer 5(-?-): 1 Einheiten vor der 6. Runde: Heer 0(-?-): 1, Heer 2(541i): 3, Heer 5(-?-): 1 Bergwächter (rkd3) erzielte 1 Treffer und tötete 0 Gegner. Bergwächter (mz8i) erzielte 1 Treffer und tötete 0 Gegner. bug (woir) verlor 1 Personen. Seher Mali'rohel (601v) verlor 0 Personen und 1 flohen. Manno Horn (man) verlor 0 Personen und 1 flohen. Heer 0(-?-): 0 Tote, 0 Geflohene, 1 Überlebende. Heer 1(541i): 1 Tote, 0 Geflohene, 0 Überlebende. Heer 2(541i): 0 Tote, 0 Geflohene, 3 Überlebende. Heer 3(xL6a): 0 Tote, 1 Geflohene, 0 Überlebende. Heer 4(agb): 0 Tote, 1 Geflohene, 0 Überlebende. Heer 5(-?-): 0 Tote, 0 Geflohene, 1 Überlebende. | ||||
Partei | 541i | ||||
Report | 31 | ||||
Steffen, dieser Bug ist für dich! |
|
Also erstmal fehlt da noattack, das ist schon gefixt, aber nicht im Tutorial aktiv. Dann aber: Bergwächter (zsrd) erzielte 1 Treffer und tötete 1 Gegner. Man kann irgendwie die Wer-hasst-wen-Matrix aufrufen, wie geht das, @Enno? Auch noch komisch in meinem Test: ZEIGE Bergwächter sagt Bergwächter: Keine Informationen über diese Rasse verfügbar. 1000 Trefferpunkte, Angriff: 6, Verteidigung: 8, Rüstung: 12. 2 Angriffe: ein magischer Angriff, ein unbewaffneter Angriff (2d40). Wieso ein magischer Angriff? Ist das im Spiel auch so? |
|
Die natürliche Attacke (type=4) sollte als "ein unbewaffneter Angriff" angezeigt werden. Woher das auf den magischen Angriff kommt, kann ich auch nicht sagen. Die wer-gegen-wen Matrix ist nicht einfach zu lesen. Das ist irgendwie in side.enemies und side.relations gespiechert (siehe Aber ich glaube auch, Heer 5 und 2 haben kein Verhältnis zueinander, und deshalb kann Heer 5 problemlos auf Heer 1 prügeln. Das ist sicherlich so eine von den Situationen, wo die Effekte unerwartet sind, das ist lange bekannt, dass es die gibt, und ich glaube wir sind mal zu dem Schluss gekommen, dass man da nichts machen kann, finde aber die Details dazu nicht mehr. |
|
Hab das getestet, es liegt wirklich daran, dass Heer 2 attackiert hat. Wenn es das nicht tut, oder wenn es zusätzlich 0 und 5 attackiert, läuft es wie gewünscht. Das ist blöd, weil Heer 2 hier eigentlich nix falsch gemacht hat, außer nicht alle zu attackieren, und das ist, wenn die getarnt sind, unter Umständen gar nicht möglich. Das lohnt sich vielleicht doch noch mal zu diskutieren. Solthar versteht die Kampfregeln immer noch nicht |
|
Okay, ich bin mir sicher ich habe einen Fehler in join_allies gefunden und wahrscheinlich repariert. Ich weiß nur nicht, wie ich das testen soll oder was ich überhaupt testen soll. |
|
Den Kampf zu testen ist unheimlich schwierig, das stimmt. Fang doch mal damit an, den Fehler zu beschreiben. Was ist denn das erwartete Verhalten? |
|
Wenn ein Verbündeter von mir attackiert wird, der niemand attackiert hat, dann schicke ich auch meine kampfbereiten Truppen, um dem zu helfen. Es würde also helfen, erst einmal ein Szenario zu konstruieren, dass den Kampf simuliert. Wie man darum einen Test konstruiert, ist erstmal zweitrangig, erster Test ist, das in einem Report zu sehen, und im Debugger betrachten zu können. Leider habe ich gerade echt wenig Zeit. Meine Tutoriums-Partei befindet sich nämlich auch in einem Krieg. |
|
Situation:
Ist:
Wenn eine Einheit aus 0 angreift, sucht sie sich Gegner aus allen Feinden. Das ist nur 1. Heer 2 hilft nicht, weil 0 kein gemeinsamer Feind ist. Das kann eher nicht Absicht sein. Soll: 2 sollte Feind von 0 und 5 werden, weil beide 1 attackieren und 2 und 1 alliiert sind. Fehlerquelle: https://github.com/eressea/server/blob/e0b3c73047a640175f5e15683aa97f11ab00ec61/src/battle.c#L3650-L3651 In dieser Schleife sucht u (sagen wir u aus Heer 2) einen Verbündeten s (findet s = Heer 1) und dann einen Feind se von s, der nicht mit u alliiert ist (se = Heer 0). Dann nimmt u am Kampf teil. join_battle liefert aber false, weil u schon im Kampf ist. Also bricht die Schleife ab, anstatt weiter unten set_enemy(se, c->side, false); auszuführen. Das korrigiert gibt neu:
Das ist das, was ich in diesem Beispiel will, aber macht das einen anderen Testfall kaputt? Randbemerkung: Sobald 1 hier irgendwen attackiert, wird ihnen nicht mehr von 2 geholfen, denn Feinde von verbündeten Aggressoren werden nicht meine Feinde. Das soll Verrat verhinden. Randbemerkung 2: Ich kann den Kampf zwar simulieren, aber aus dem Kampfbericht ist es immer wahnsinnig schwer herauszubekommen, wer wirklich auf wen einschlägt. Die Angaben sind irreführend bis Fehlerhaft. Oben heißt es zum Beispiel "Heer 2 ... Hilft: Heer 1(541i)", was aber nicht wirklich stimmt, das gibt nur die friendly-Matrix wieder, aber die enemy-Matrix muss mindestens mit ausgegeben werden. |
|
Änderungsdatum | Benutzername | Feld | Änderung |
---|---|---|---|
2024-03-10 21:15 | oglbi | Neuer Eintrag | |
2024-03-10 21:15 | oglbi | Datei hinzugefügt: Kampf_Berg_nr.log | |
2024-03-11 09:39 | Enno | Bearbeitung durch | => Solthar |
2024-03-11 09:39 | Enno | Status | neu => zugewiesen |
2024-03-11 09:40 | Enno | Notiz hinzugefügt: 0010113 | |
2024-03-12 11:23 | Solthar | Notiz hinzugefügt: 0010117 | |
2024-03-12 11:24 | Solthar | Notiz bearbeitet: 0010117 | |
2024-03-12 12:09 | Enno | Notiz hinzugefügt: 0010118 | |
2024-03-12 19:38 | Solthar | Notiz hinzugefügt: 0010120 | |
2024-03-12 23:33 | Solthar | Notiz hinzugefügt: 0010122 | |
2024-03-13 10:17 | Enno | Notiz hinzugefügt: 0010124 | |
2024-03-13 10:17 | Enno | Notiz bearbeitet: 0010124 | |
2024-03-13 14:16 | Enno | Notiz hinzugefügt: 0010125 | |
2024-03-13 16:19 | Enno | Projekt | Eressea => Drachensgrab |
2024-03-13 17:00 | Solthar | Notiz hinzugefügt: 0010126 |