Ticket #41316

イーク窟での強制終了バグ(Re: 変愚蛮怒3.0.0Alpha2リリースまでの要望/報告 (フォーラムメッセージ #86779 からの引用))

Eröffnet am: 2021-01-23 21:43 Letztes Update: 2021-01-26 22:47

Auswertung:
Verantwortlicher:
Typ:
Status:
Geschlossen
Komponente:
(Keine)
Priorität:
9 - Höchste
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
1

Details

フォーラム 変愚蛮怒3.0.0Alpha開発フォーラム [#86779] からの引用

[forum: 86779]

メッセージ #86590 への返信

引き続きの不具合報告、要望はこちらでお願いします。スレッドの運用の仕方についてはまだ検討中ではあります。

イークの洞窟にてシャベルを使って財宝を回収中、一歩歩いたら必ずゲームが終了するバグに遭遇しました。
詳細な発生条件を報告することは困難ですが、セーブデータがあるので可能であればアップロード致します。

Ticket-Verlauf (3/11 Historien)

2021-01-23 21:43 Aktualisiert von: deskull
  • New Ticket "イーク窟での強制終了バグ(Re: 変愚蛮怒3.0.0Alpha2リリースまでの要望/報告 (フォーラムメッセージ #86779 からの引用))" created
2021-01-24 08:31 Aktualisiert von: tx105
Kommentar

これでよろしいでしょうか? イーク洞窟におけるクラッシュです。展開は自己責任と思われます。

2021-01-24 08:35 Aktualisiert von: deskull
Kommentar

ありがとうございます。再現できるかどうかは他の作業を追って確認します。

2021-01-24 23:00 Aktualisiert von: dis-
Kommentar

自動セーブのメッセージが入ったあとに無限ループに入っています。

賞金首の決定ルーチンでレベルキャップの条件を満たせず無限ループに入っているのを確認しました。

地上や鉄獄ではなくイーク洞で0時を迎えると発生しやすく、5Fくらいまで潜ってからだと再現しやすいようです。

少し根が深そうなので修正方法を検討中です。

(Edited, 2021-01-24 23:55 Aktualisiert von: dis-)
2021-01-25 09:19 Aktualisiert von: hourier
  • Verantwortlicher Update from deskull to hourier
  • Lösung Update from Keine to Accepted
  • Details Updated
Kommentar

本件、何とか再現できそうなのでこちらで確認してみます
不明点があったら相談するかもしれませんがよろしくお願いします

2021-01-25 21:46 Aktualisiert von: hourier
  • Verantwortlicher Update from hourier to deskull
Kommentar

determine_daily_bounty() の中で、過去にphase_out処理をしていたのをget_mon_num() に押し込んだが、その時の調整ミスと思われる事象で本件が発生していることが分かりました
お手数ですがご確認下さい、恐らくget_mon_num() を修正した方が良さそうです

2021-01-25 22:13 Aktualisiert von: deskull
  • Priorität Update from 5 - Mittel to 9 - Höchste
2021-01-26 01:09 Aktualisiert von: deskull
Kommentar

賞金首選択時の最低階足切りと、ダンジョン生成の組み合わせによって無限ループになる。根源的な原因は不明だがとにかく、こんなことが起きないようになるべく従来の使用通りのまま、対応する。

2021-01-26 22:47 Aktualisiert von: deskull
  • Status Update from Offen to Geschlossen
  • Lösung Update from Accepted to Gefixt
Kommentar

https://osdn.net/projects/hengband/scm/git/hengband/commits/c02230e80f4eafddd5a5365030bb9837820582c3 ここまででひとまず修正完了できたと思われる。

  • バグ修正がやりづらかったのでget_mon_num()に最低階条件処理を移動させる。
    • その結果起きたエンバグは一通り潰す。
  • イーク窟で賞金首エンドレスループが発生した原因はget_mon_num_prep()時に同ダンジョンのMONSTER_DIV値が0のせいでentry->prob2値が0になるモンスターが続出し賞金首候補がなくなってwhileの中でグルグルするため。entry->prob2に最低値1を保証。
  • ついでに「cheat_hear」フラグでこの辺周りのデバッグメッセージを表示するよう仕様追加。

将来的にこの辺の秘伝のソースはいい加減潰すがひとまず今回はこれでバグが残ってない限り完了扱いとし、一度マージする。

(Edited, 2021-01-26 22:47 Aktualisiert von: deskull)

Dateianhangliste

Bearbeiten

Please login to add comment to this ticket » Anmelden