Eintragsdetails ansehen

IDProjektKategorieSichtbarkeitZuletzt aktualisiert
0002166EresseaATTACKIEREöffentlich2017-12-05 19:50
ReporterThoranBearbeitung durchEnno 
PrioritätnormalSchweregradschwerer FehlerReproduzierbarnicht getestet
Status geschlossenLösungerledigt 
Produktversion3.7.0 
Zielversion3.7.4Behoben in Version3.7.4 
Zusammenfassung0002166: Unsterbliche Hirntöter?
Beschreibung

Zusammen mit einer befreundeten Partei beschäftigen sich einige meiner Einheiten damit, im Astralraum Hirntöter zu erschlagen.

Auch diese Woche gab es wieder einen Kampf im Nebel (Auszüge s.u.). Wir prügeln 6 Runden lag auf 9 Hirntöter ein und allein meine Zwerge erzielen mehr als 1200 Treffer mit Flammenschwertern.

Entweder sind das die robustesten Hirntöter in ganz Eressea oder man kann ihnen seit dieser Woche nichts mehr anhaben. Bis einschl. letzter Auswertung war es gar kein Problem, die Hirntöter meistens in der ersten Kampfrunde zu beseitigen.

Zusätzliche Informationen
                In Nebel (0,0) findet ein Kampf statt.

Der Kampf wurde ausgelöst von Nikes Narrentruppe (1ie9) und Thorans
Axtträger (d08a).

Heer 0: Nikes Narrentruppe (1ie9)
...

Heer 1: Monster (ii)
Kämpft gegen: Heer 0(1ie9), Heer 2(d08a)
Hilft: Heer 1(ii)
... in der 1. Kampflinie:

  • Hirntöter (e87d), 9 Hirntöter, aggressiv; Wabernde grüne Schwaden
    treiben durch den Nebel und verdichten sich zu einer unheimlichen Kreatur,
    die nur aus einem langen Ruderschwanz und einem riesigen runden Maul zu
    bestehen scheint.

Heer 2: Thorans Axtträger (d08a)
Kämpft gegen: Heer 1(ii)
Hilft: Heer 0(1ie9), Heer 2(d08a)
Attacke gegen: Heer 1(ii)
... in der 1. Kampflinie:

    1. Rotte Rivevyd - 'Die Glühenden' (1knq), 7 Zwerge, Held, vorne, bewacht
      die Region, Talente: ...
    1. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao), 10 Zwerge, Held,
      vorne, bewacht die Region, Talente: ...
  1. Rotte Rivevyd - 'Die Glühenden' (1knq) überrascht den Gegner.

Einheiten vor der 0. Runde:
Heer 0(1ie9): 145, Heer 1(ii): 9, Heer 2(d08a): 17
4 Krieger von SjH Geisterjäger | Helden (jag0) benutzen ihre Flammenschwerter.
SjH Geisterjäger | Helden (jag0) tötete 0 Krieger.
7 Krieger von SjA Topor I (5jqx) benutzen ihre Flammenschwerter.
SjA Topor I (5jqx) tötete 0 Krieger.
2 Krieger von Geisterjaeger (ftjq) benutzen ihre Flammenschwerter.
Geisterjaeger (ftjq) tötete 0 Krieger.
7 Krieger von 1. Rotte Rivevyd - 'Die Glühenden' (1knq) benutzen ihre
Flammenschwerter.

  1. Rotte Rivevyd - 'Die Glühenden' (1knq) tötete 0 Krieger.
    10 Krieger von 7. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) benutzen
    ihre Flammenschwerter.
  2. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) tötete 0 Krieger.

Einheiten vor der 1. Runde:
Heer 0(1ie9): 145, Heer 1(ii): 9, Heer 2(d08a): 17
4 Krieger von SjH Geisterjäger | Helden (jag0) benutzen ihre Flammenschwerter.
SjH Geisterjäger | Helden (jag0) tötete 0 Krieger.
7 Krieger von SjA Topor I (5jqx) benutzen ihre Flammenschwerter.
SjA Topor I (5jqx) tötete 0 Krieger.
2 Krieger von Geisterjaeger (ftjq) benutzen ihre Flammenschwerter.
Geisterjaeger (ftjq) tötete 0 Krieger.
7 Krieger von 1. Rotte Rivevyd - 'Die Glühenden' (1knq) benutzen ihre
Flammenschwerter.

  1. Rotte Rivevyd - 'Die Glühenden' (1knq) tötete 0 Krieger.
    10 Krieger von 7. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) benutzen
    ihre Flammenschwerter.
  2. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) tötete 0 Krieger.

Einheiten vor der 2. Runde:
Heer 0(1ie9): 145, Heer 1(ii): 9, Heer 2(d08a): 17
4 Krieger von SjH Geisterjäger | Helden (jag0) benutzen ihre Flammenschwerter.
SjH Geisterjäger | Helden (jag0) tötete 0 Krieger.
7 Krieger von SjA Topor I (5jqx) benutzen ihre Flammenschwerter.
SjA Topor I (5jqx) tötete 0 Krieger.
2 Krieger von Geisterjaeger (ftjq) benutzen ihre Flammenschwerter.
Geisterjaeger (ftjq) tötete 0 Krieger.
7 Krieger von 1. Rotte Rivevyd - 'Die Glühenden' (1knq) benutzen ihre
Flammenschwerter.

  1. Rotte Rivevyd - 'Die Glühenden' (1knq) tötete 0 Krieger.
    10 Krieger von 7. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) benutzen
    ihre Flammenschwerter.
  2. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) tötete 0 Krieger.

Einheiten vor der 3. Runde:
Heer 0(1ie9): 145, Heer 1(ii): 9, Heer 2(d08a): 17
4 Krieger von SjH Geisterjäger | Helden (jag0) benutzen ihre Flammenschwerter.
SjH Geisterjäger | Helden (jag0) tötete 0 Krieger.
7 Krieger von SjA Topor I (5jqx) benutzen ihre Flammenschwerter.
SjA Topor I (5jqx) tötete 0 Krieger.
2 Krieger von Geisterjaeger (ftjq) benutzen ihre Flammenschwerter.
Geisterjaeger (ftjq) tötete 0 Krieger.
7 Krieger von 1. Rotte Rivevyd - 'Die Glühenden' (1knq) benutzen ihre
Flammenschwerter.

  1. Rotte Rivevyd - 'Die Glühenden' (1knq) tötete 0 Krieger.
    10 Krieger von 7. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) benutzen
    ihre Flammenschwerter.
  2. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) tötete 0 Krieger.

Einheiten vor der 4. Runde:
Heer 0(1ie9): 145, Heer 1(ii): 9, Heer 2(d08a): 17
4 Krieger von SjH Geisterjäger | Helden (jag0) benutzen ihre Flammenschwerter.
SjH Geisterjäger | Helden (jag0) tötete 0 Krieger.
7 Krieger von SjA Topor I (5jqx) benutzen ihre Flammenschwerter.
SjA Topor I (5jqx) tötete 0 Krieger.
2 Krieger von Geisterjaeger (ftjq) benutzen ihre Flammenschwerter.
Geisterjaeger (ftjq) tötete 0 Krieger.
7 Krieger von 1. Rotte Rivevyd - 'Die Glühenden' (1knq) benutzen ihre
Flammenschwerter.

  1. Rotte Rivevyd - 'Die Glühenden' (1knq) tötete 0 Krieger.
    10 Krieger von 7. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) benutzen
    ihre Flammenschwerter.
  2. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) tötete 0 Krieger.

Einheiten vor der 5. Runde:
Heer 0(1ie9): 145, Heer 1(ii): 9, Heer 2(d08a): 17
4 Krieger von SjH Geisterjäger | Helden (jag0) benutzen ihre Flammenschwerter.
SjH Geisterjäger | Helden (jag0) tötete 0 Krieger.
7 Krieger von SjA Topor I (5jqx) benutzen ihre Flammenschwerter.
SjA Topor I (5jqx) tötete 0 Krieger.
2 Krieger von Geisterjaeger (ftjq) benutzen ihre Flammenschwerter.
Geisterjaeger (ftjq) tötete 0 Krieger.
7 Krieger von 1. Rotte Rivevyd - 'Die Glühenden' (1knq) benutzen ihre
Flammenschwerter.

  1. Rotte Rivevyd - 'Die Glühenden' (1knq) tötete 0 Krieger.
    10 Krieger von 7. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) benutzen
    ihre Flammenschwerter.
  2. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) tötete 0 Krieger.

Einheiten vor der 6. Runde:
Heer 0(1ie9): 145, Heer 1(ii): 9, Heer 2(d08a): 17

  1. Rotte Rivevyd - 'Die Glühenden' (1knq) erzielte 501 Treffer und tötete 0
    Gegner.
  2. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) erzielte 767 Treffer und
    tötete 0 Gegner.
    Heer 0(1ie9): 0 Tote, 0 Geflohene, 145 Überlebende.
    Heer 1(ii): 0 Tote, 0 Geflohene, 9 Überlebende.
    Heer 2(d08a): 0 Tote, 0 Geflohene, 17 Überlebende.
Parteid08a
SpielE2
Report955

Eintrags-Beziehungen

verwandt mit 0002168 erledigtEnno Kampf gegen Seeschlange überlebt - aber ertrunken? 

Notizen / Dateien

Enno

Enno

2015-11-28 13:21

Administrator   ~0006326

Da werde ich wohl in die Spieldaten schauen müssen, ob diese Einheiten irgendwie besonders sind.

Thoran

Thoran

2015-11-28 13:31

Reporter   ~0006328

Naja - bis einschließlich Auswertung 954 sind die Hirntöter immer "ohne Murren" gestorben. Also ist entweder diese eine Hirntötereinheit besonders oder meine Einheiten leidern unter einem Fluch oder in der Implementierung von Monstern/Kampfregeln hat sich was geändert.

Da mir so etwas erstmalig diese Auswertung untergekommen ist, tippe ich mal auf Letzteres.

Enno

Enno

2015-11-28 13:46

Administrator   ~0006329

Du bist nicht zufällig Empfänger von Testauswertungen für E2? Sonst könntest Du selber mal gucken, ob sich vor der Einführung von 3.7 Diskrepanzen zwischen Kämpfen in den beiden Reporten gezeigt haben (was auf Änderungen im Code schließen ließe).

Thoran

Thoran

2015-11-28 14:00

Reporter   ~0006330

Auf die Idee hätte ich auch schon vorher mal kommen können!

Auswertung 954:
---snip---
In Nebel (0,0) findet ein Kampf statt.
...
Heer 1: Monster (ii)
Kämpft gegen: Heer 0(1ie9), Heer 3(d08a)
Hilft: Heer 1(ii), Heer 2(-?-)
... in der 1. Kampflinie:

  • Hirntöter (LbLz), 3 Hirntöter, aggressiv; Wabernde grüne Schwaden
    treiben durch den Nebel und verdichten sich zu einer unheimlichen Kreatur,
    die nur aus einem langen Ruderschwanz und einem riesigen runden Maul zu
    bestehen scheint.
  • Hirntöter (eepb), 8 Hirntöter, aggressiv; Wabernde grüne Schwaden
    treiben durch den Nebel und verdichten sich zu einer unheimlichen Kreatur,
    die nur aus einem langen Ruderschwanz und einem riesigen runden Maul zu
    bestehen scheint.
    ...
    Einheiten nach dem Kampf:
    Heer 0(1ie9): 145, Heer 3(d08a): 17
    1. Rotte Rivevyd - 'Die Glühenden' (1knq) erzielte 70 Treffer und tötete 10
      Gegner.
    2. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) erzielte 113 Treffer und
      tötete 33 Gegner.
      Hirntöter (LbLz) verlor 3 Personen.
      Hirntöter (eepb) verlor 8 Personen.
      Hirntöter (z087) verlor 13 Personen.
      Hirntöter (urs5) verlor 19 Personen.
      Hirntöter (5ke0) verlor 12 Personen.
      Heer 0(1ie9): 0 Tote, 0 Geflohene, 145 Überlebende.
      Heer 1(ii): 11 Tote, 0 Geflohene, 0 Überlebende.
      Heer 2(-?-): 44 Tote, 0 Geflohene, 0 Überlebende.
      Heer 3(d08a): 0 Tote, 0 Geflohene, 17 Überlebende.
      ---snap---

Testauswertung 954:
---snip---
In Nebel (0,0) findet ein Kampf statt.
...
Heer 1: Monster (ii)
Kämpft gegen: Heer 0(1ie9), Heer 3(d08a)
Hilft: Heer 1(ii), Heer 2(-?-)
... in der 1. Kampflinie:

  • Hirntöter (LbLz), 3 Hirntöter, aggressiv; Wabernde grüne Schwaden
    treiben durch den Nebel und verdichten sich zu einer unheimlichen Kreatur,
    die nur aus einem langen Ruderschwanz und einem riesigen runden Maul zu
    bestehen scheint.
  • Hirntöter (eepb), 8 Hirntöter, aggressiv; Wabernde grüne Schwaden
    treiben durch den Nebel und verdichten sich zu einer unheimlichen Kreatur,
    die nur aus einem langen Ruderschwanz und einem riesigen runden Maul zu
    bestehen scheint.
    ...
    Einheiten vor der 6. Runde:
    Heer 0(1ie9): 145, Heer 1(ii): 11, Heer 2(-?-): 44, Heer 3(d08a): 17
    1. Rotte Rivevyd - 'Die Glühenden' (1knq) erzielte 469 Treffer und tötete 0
      Gegner.
    2. Rotte Cokêfolzas - 'Thorans Leibwächter' (39ao) erzielte 742 Treffer und
      tötete 0 Gegner.
      Heer 0(1ie9): 0 Tote, 0 Geflohene, 145 Überlebende.
      Heer 1(ii): 0 Tote, 0 Geflohene, 11 Überlebende.
      Heer 2(-?-): 0 Tote, 0 Geflohene, 44 Überlebende.
      Heer 3(d08a): 0 Tote, 0 Geflohene, 17 Ãœberlebende.
      ---snap---

Auch letzte Woche (also vor Einführung von 3.7) haben also in der Testauswertung alle Hirntöter den Kampf überlebt, während in der normalen Auswertung (V3.6.6) die Hirntöter in der ersten Kampfrunde gestorben sind.

Enno

Enno

2015-11-28 14:10

Administrator   ~0006331

Danke! Das sollte bei der Suche nach der Ursache helfen, denke ich.

argelas

argelas

2015-11-29 14:39

Reporter   ~0006334

Zu dem "mehr als 1200 Treffer mit Flammenschwertern", es ist aber schon noch so, dass Helden mit Flammenschwertern nur eine magische Flammenattacke und die restlichen 9 normal (wie Laenschwert?) machen, oder?

defaitist

defaitist

2015-12-01 22:45

Reporter   ~0006338

Tatsächlich 10 normale Attacken (die gegen Hirntöter wirkungslos sind) und 1 magische Feuerballattacke (Feuerball Stufe 1) zusätzlich. Jeder Feuerball wird dann statistisch als weitere Attacke gewertet. Das Waffentalent ist hier also rein defensiv wirkungsvoll um weniger getroffen zu werden.

Enno

Enno

2015-12-02 12:07

Administrator   ~0006343

Auszug aus dem Monster-Report (falls das hilft):

  • Hirntöter (e87d), 9 Hirntöter, aggressiv, Talente: Tarnung 11,
    Wahrnehmung 14, Waffenloser Kampf 11, "LERNE "Waffenloser Kampf"";
Thoran

Thoran

2015-12-02 12:20

Reporter   ~0006344

Zur Frage mit dem magischen Angriffen: Hier ist es relativ unerheblich, wieviele magische Angriffe die Flammenschwerthelden tatsächlich machen, sofern es nur mindestens einer pro Kampfrunde ist.
Wir kämpfen im Nebel schon seit einiger Zeit gegen die Hirntöter (ist halt eine Art Beschäftigungstherapie). Auf meiner Seite sind da 17 Helden mit 17 Flammenschwerter dabei. Auf Seiten von Nikes Narrentruppe sind es weitere 13 Flammenschwerter. Das macht also pro Kampfwoche (einen magische Treffer mit dem Flammenschwert pro Kampfrunde angenommen - wir gewinnen immer der Taktikerrunde, deshalb also 6 Kampfrunden maximal): 6*(17+13) = 180 magische Treffer. Erfahrungsgemäß schaffen wir damit die Hirntöter immer relativ schnell und nur ganz ganz selten überleben da mal welche eine Kampfwoche (dann sind aber auch deutlich mehr Hirntöter in der Region als die paar, um die es hier geht).

Zu den Talentwerten der Hirntöter: Die haben kein Ausdauertalent. Ich kenne jetzt nicht ihre normalen Trefferpunkte - aber in der angegebenen Form sollten die nicht sonderlich viele Feuerbälle/Flammenschwerthiebe einstecken können. Das Waffentalent meiner Zwerge liegt bei 29 bzw. 26 - also deutlich über dem Talent im waffenlosen Kampf der Hirntöter. Also ist höchstwahrscheinlich so gut wie jeder Hieb auch ein Treffer.

CTD

CTD

2015-12-03 16:13

Entwickler   ~0006351

Mir ist aufgefallen das Enno hier https://github.com/eressea/server/commit/15ff621cbb7d64aac19bc0508de4f42fca87799d Änderungen an terminate und der Rüstungsberechnung / Magic resistens gemacht hat (alle in eine eigene Funktion gesteckt.

Dabei hat er aber in der battle.h das extern von terminate entfernt:

  • extern bool terminate(troop dt, troop at, int type, const char *damage,
  • int calculate_armor(troop dt, const struct weapon_type dwtype, const struct weapon_type awtype, double *magres);
  • bool terminate(troop dt, troop at, int type, const char *damage,
    bool missile);

Die Flammenschwerter werden aber in der weapons.c abgehandelt, welche terminate aufruft. Dazu sollte das schon extern sein, oder? Mich überrascht das da der compiler nicht meckert, aber andererseits wir das auch über wp->type->attack(&ta, wp->type, &dead); gemacht, und der Funktionsname steht in der xml Datei für die Flammenschwerter (attack_firesword).

Ich denke irgendwo da liegt das Problem, vermutlich reicht es das extern wieder vor das terminate zu schreiben.

defaitist

defaitist

2015-12-03 17:47

Reporter   ~0006353

Tatsache, wenn man sich die Kampfberichte mal anschaut, haben die magischen Flammenschwertattacken die letzten beiden Runden tatsächlich keine Opfer verursacht:

100 Krieger von 7. Schwadron Blau (kj2) benutzen ihre Flammenschwerter.

  1. Schwadron Blau (kj2) tötete 0 Krieger.

Gegen normale Untote.

Enno

Enno

2015-12-05 11:05

Administrator   ~0006359

extern bool terminate(troop dt, troop at, int type, const char *damage,

  • int calculate_armor(troop dt, const struct weapon_type dwtype,
    const struct weapon_type
    awtype, double *magres);
  • bool terminate(troop dt, troop at, int type, const char *damage,
    bool missile);

Ich muss wohl mal extern erklären (ich habe das früher auch falsch verstanden). extern ist kein Hint an den Linker, wie dllexport oder so etwas.

Das extern Keyword ist für Variablen, damit die nur an einer Stelle definiert werden (sonst jammert der Linker über doppelte Symbole). Wenn man Variablen in einer .h Datei deklariert, muss man die extern deklarieren, weil sie im .c File definiert sind. Also, "int my_global;" darf nur in einer .c Datei stehen. Damit die anderen .c Module es aber benutzen können, wird ihnen davon in der .h Datei erzählt. Wenn dort auch "int my_global;" stünde, würde jedes .c Modul, dass ein #include "my_stuff.h" macht, die Variable neu definieren (weil #include in C wörtlich "lieber Präprozessor, klatsch die Zeilen aus dieser .h Datei hier in meinen Source" heisst). Wenn man aber extern davor schreibt, heisst das "ich weiss, das nach dem Linken irgendwo in unserem Binary eine Variable sieses Typs/Namens sein wird, und die meine ich hier".

Für Funktionen braucht man das nicht, weil der Compiler weiß, was eine Deklaration und was eine Definition ist. Ich darf in beliebig vielen Modulen "int foo(void);" schreiben, solange die Funktion keinen Body hat. Es ist optional, extern davor zu schreiben, aber verwirrend. Früher habe ich das im Header einfach vor alles gemacht, weil ich keine Ahnung hatte. Heute sehe ich das als technical debt des Codes an, und lösche es, wann immer ich in einem Header sowieso schon editiere.

Enno

Enno

2015-12-05 11:33

Administrator   ~0006360

Ich glaueb also eher, dass es an der Magieresistenz liegt, aber die Stelle im Code (Änderung an terminate) ist eine gute Idee, wo das schief gelaufen sein könnte.

CTD

CTD

2015-12-05 11:34

Entwickler   ~0006361

Oh, vielen Danke. Wieder was gelernt. Aber dann müssen wir uns noch mal die ausgelagerte Rüstungsschutzberechnung anschauen, da wird auch die Magieresistenz berechnet, und wenn die irgendwie auf 100% kommt, dann wäre magischer Schaden ja auch 0. Ich denke irgendwo da liegt das Problem.

Enno

Enno

2015-12-05 11:36

Administrator   ~0006362

Ich werde heute mal gucken, was die Werte sind, in den diversen Branches, mit den Daten für Report 955. Der Kampf sollte ja einfach reproduzierbar sein (einfacher als die doofen Seeschlangen jedenfalls).

Enno

Enno

2015-12-05 11:53

Administrator   ~0006363

Ich glaube ich hab's: Beim Eintritt in calculate_armor ist magres = 0.0, und dann kommt diese Zeile:
double res =
magres - magic_resistance(du) * 3.0;

da wird die berechnete Resistenz ganz doll negativ. Die Formel ist bekloppt, ich muss mal gucken wie die vor der Änderung war, und entsprechende Tests schreiben.

CTD

CTD

2015-12-05 12:45

Entwickler   ~0006364

Die wurde irgendwo in terminate mit 1.0 initialisiert, und dann immer die magres abgezogen, und zum schluss das Ergebniss mit dem Schaden multipliziert.

Besser man macht das mit der Magress schön als Werte zwischen 1 und 100 (also Prozente) und dann erst ganz am Schluss beim anwenden auf den Schaden die eigentlich Berechnung. Ist einfach Übersichtlicher.

Enno

Enno

2015-12-05 12:58

Administrator   ~0006365

Dazu kommt noch, die Magieresistenz der Einheit bestimmt sich hauptsächlich aus ihrem Magietalent, und das haben diese Hirntöter ja massenhaft. Aber die Formel ist pervers. Leider heute morgen viel zu tun, noch nicht nach dem Original geguckt.

Enno

Enno

2015-12-05 13:31

Administrator   ~0006366

Notiz für mich: Das war in 3.6.6 noch anders, dort sah die alte Formel so aus wie in https://gist.github.com/ennorehling/7e96ad529e32c658cb6a

Enno

Enno

2015-12-05 13:59

Administrator   ~0006367

Wenn ich da statt 0.0 wieder 1.0 hinein plugge, kommt als Magieresistenz 70% raus, nicht -30%. Da die mit dem Schaden multipliziert wird, hat das scheinbar Hitpoints zurück gegeben (damage -0,3 ist negativ), statt reduzierten Schaden zu machen (damage 0.7).

Ich werde da noch etwas coverage drumrum bauen, und einen PR vorbereiten. Problem ist so gut wie gelöst.

Thoran

Thoran

2015-12-05 15:07

Reporter   ~0006368

Wann wird das denn aktiv geschaltet? Im Astralraum sind Hirntöter ja unproblematisch und da könnte man auf das nächste offizielle Release warten. Aber es gibt ab und an auch mal Hirntöter in der normalen Ebene und die können recht nervig sein, wenn sie nicht zu vernichten sind.

Solthar

Solthar

2015-12-05 15:13

Entwickler   ~0006369

Danke, das bestätigt, dass ich zumindest in diesem Punkt C (auch erst kürzlich) verstanden habe.

Zumindest den Teil mit dem magischen Schaden kann ich erklären:

battle.c:1222
ar = calculate_armor(dt, dwtype, awtype, magic ? &res : 0);
if (ar < 0) {
return false;
}

if (magic) {
    da = (int)(_max(da * res, 0));
}

Da wird in calculate_armor die Magieresistzenz berechnet, dann aber falsch benutzt. Es müsste _max(da * (1.0 - res), 0) heißen. Das löst wahrscheinlich diesen Bug, aber nicht 0002168.

Total Off Topic: Kennt ihr das Firefox-Plugin Lazarus: Form Recovery? Das speichert sämtliche Formulareingaben für eine gewisse Zeit, so dass man sie später wieder zurückkriegt, falls der Browser abstürzt oder die Seite Schluckauf hat. Das hat mir hier auf Mantis schon so viel Ärger erstpart...

Enno

Enno

2015-12-05 17:19

Administrator   ~0006370

Dieser bug ist nominiert für eine Reparatur vor der Auswertung heute Abend.

Enno

Enno

2015-12-05 17:20

Administrator   ~0006371

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

Eintrags-Historie

Änderungsdatum Benutzername Feld Änderung
2015-11-24 23:01 Thoran Neuer Eintrag
2015-11-28 13:21 Enno Bearbeitung durch => Enno
2015-11-28 13:21 Enno Status neu => zugewiesen
2015-11-28 13:21 Enno Notiz hinzugefügt: 0006326
2015-11-28 13:31 Thoran Notiz hinzugefügt: 0006328
2015-11-28 13:46 Enno Notiz hinzugefügt: 0006329
2015-11-28 14:00 Thoran Notiz hinzugefügt: 0006330
2015-11-28 14:10 Enno Notiz hinzugefügt: 0006331
2015-11-29 14:39 argelas Notiz hinzugefügt: 0006334
2015-12-01 22:45 defaitist Notiz hinzugefügt: 0006338
2015-12-02 12:07 Enno Notiz hinzugefügt: 0006343
2015-12-02 12:20 Thoran Notiz hinzugefügt: 0006344
2015-12-03 16:13 CTD Notiz hinzugefügt: 0006351
2015-12-03 17:47 defaitist Notiz hinzugefügt: 0006353
2015-12-05 10:29 Solthar Beziehung hinzugefügt verwandt mit 0002168
2015-12-05 11:05 Enno Notiz hinzugefügt: 0006359
2015-12-05 11:33 Enno Notiz hinzugefügt: 0006360
2015-12-05 11:34 CTD Notiz hinzugefügt: 0006361
2015-12-05 11:36 Enno Notiz hinzugefügt: 0006362
2015-12-05 11:53 Enno Notiz hinzugefügt: 0006363
2015-12-05 12:45 CTD Notiz hinzugefügt: 0006364
2015-12-05 12:58 Enno Notiz hinzugefügt: 0006365
2015-12-05 13:31 Enno Notiz hinzugefügt: 0006366
2015-12-05 13:59 Enno Notiz hinzugefügt: 0006367
2015-12-05 15:07 Thoran Notiz hinzugefügt: 0006368
2015-12-05 15:13 Solthar Notiz hinzugefügt: 0006369
2015-12-05 17:19 Enno Notiz hinzugefügt: 0006370
2015-12-05 17:19 Enno Zielversion => 3.7.4
2015-12-05 17:20 Enno Notiz hinzugefügt: 0006371
2015-12-05 17:20 Enno Status zugewiesen => erledigt
2015-12-05 17:20 Enno Behoben in Version => 3.7.4
2015-12-05 17:20 Enno Lösung offen => erledigt
2017-12-05 19:50 Enno Status erledigt => geschlossen