Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Schicksalsklinge: Umfassender Bugfix-Patch
siebenstreich schrieb:Hierfür müsste man soweit ich sehe Zeile 204 "arg7 &&" ersetzen durch "arg7 && (bp_needed != bp_bak-1) &&"
Also so?


Code:
if ((obj_id == bp_needed)      &&
        ((!arg7 ) ||
        (arg7 && (bp_needed != bp_bak-1) &&
                ((!host_readbs(Real2Host(ds_readd(CHESSBOARD_CPY)) + (lvar8 * 25) + lvar7)) ||
                (host_readbs(Real2Host(ds_readd(CHESSBOARD_CPY)) + (lvar8 * 25) + lvar7) == (arg8 + 10)) ||
                (host_readbs(Real2Host(ds_readd(CHESSBOARD_CPY)) + (lvar8 * 25) + lvar7) == (arg8 + 30))) &&
                (lvar8 < 24) && (lvar8 >= 0) && (lvar7 < 24) && (lvar7 >= 0))))
{
Dann hängt es bei jedem einzelnen gegnerischen Zug, kann also nicht richtig sein.

Das folgende beseitigt das Einfrieren aber anscheinend erfolgreich:
Code:
if ((obj_id == bp_needed)      &&
        ((!arg7 ) ||
        ((bp_needed == bp_bak-1) ||
                ((!host_readbs(Real2Host(ds_readd(CHESSBOARD_CPY)) + (lvar8 * 25) + lvar7)) ||
                (host_readbs(Real2Host(ds_readd(CHESSBOARD_CPY)) + (lvar8 * 25) + lvar7) == (arg8 + 10)) ||
                (host_readbs(Real2Host(ds_readd(CHESSBOARD_CPY)) + (lvar8 * 25) + lvar7) == (arg8 + 30))) &&
                (lvar8 < 24) && (lvar8 >= 0) && (lvar7 < 24) && (lvar7 >= 0))))
{
(Das "arg7" kann man sich schenken, wenn vorher "!arg7" abgefragt wurde.) Ich weiß jetzt nicht, ob es das ist, was Du meintest, oder ob ich damit die Hinterteil-Abfrage letztendlich ganz abgeknipst habe. Letztendlich verhindert es aber das Einfrieren.

Sollte man diese Lösung akzeptieren, würde aber immer noch der Fehler verbleiben, dass rätselhafterweise Felder, die eigentlich frei sein sollten wegen Tod eines Gegners trotzdem als blockiert gelten.
Zitieren


Nachrichten in diesem Thema
RE: Schicksalsklinge: Umfassender Bugfix-Patch - von NRS - 10.01.2021, 03:59



Benutzer, die gerade dieses Thema anschauen: 5 Gast/Gäste