Ticket #37856

モンスター自爆後に正しくデータをワイプしない不具合(クローン地獄にて (フォーラムメッセージ #80540 からの引用))

Eröffnet am: 2018-01-03 13:49 Letztes Update: 2020-12-30 22:20

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

Details

フォーラム 変愚蛮怒フォーラム [#80540] からの引用

[forum: 80540]

Windows7 Home x64 ver2.2.0.92 クローン地獄にて画面左上に@が誤表示されました v2.1.5でも同様の現象に1回遭遇しました 再起動で正常な状態に戻ります 画像はしたらばの変愚スレその45の>>25に張っておきました

Ticket-Verlauf (3/10 Historien)

2018-01-03 13:49 Aktualisiert von: deskull
  • New Ticket "クローン地獄にて (フォーラムメッセージ #80540 からの引用)" created
2018-01-03 15:57 Aktualisiert von: None
Kommentar

断言はできませんが、手榴弾が自爆して死んだときにprocess_monster()から出ないのが原因だと思います。

if (m_ptr->r_idx == MON_SHURYUUDAN)
mon_take_hit_mon(m_idx, 1, &fear, _("は爆発して粉々になった。", " explodes into tiny shreds."), m_idx);

/* このとき手榴弾が自爆してm_ptr->r_idxが0になったあとも処理が続く*/

2018-01-03 16:57 Aktualisiert von: deskull
  • Details Updated
Kommentar

(匿名) への返信

断言はできませんが、手榴弾が自爆して死んだときにprocess_monster()から出ないのが原因だと思います。 if (m_ptr->r_idx == MON_SHURYUUDAN) mon_take_hit_mon(m_idx, 1, &fear, _("は爆発して粉々になった。", " explodes into tiny shreds."), m_idx); /* このとき手榴弾が自爆してm_ptr->r_idxが0になったあとも処理が続く*/

アドバイスありがとうございます。一度ウィザードモードでロレント生やして試してみます。

2018-12-20 23:20 Aktualisiert von: deskull
Kommentar

この件、以前イーク窟で検証したが再現できなかった。クエストでないと駄目かもしれない。

2018-12-20 23:46 Aktualisiert von: None
Kommentar

v2.2.0ですがもの言えぬ証人クエストに入ってデバッグコマンドで手榴弾出して自爆させてみたら左上に@が出てきました

2018-12-23 07:22 Aktualisiert von: deskull
Kommentar

(匿名) への返信

v2.2.0ですがもの言えぬ証人クエストに入ってデバッグコマンドで手榴弾出して自爆させてみたら左上に@が出てきました

ありがとうございます、試してみます。クエスト固有の現象なんでしょうか。

2018-12-23 09:45 Aktualisiert von: deskull
Kommentar

問題を十分に把握できました。修正箇所は匿名氏の指摘通りの場所で問題なさそうです。

しばしば現象が確認されなかった原因は手榴弾のmon_take_hit_mon()の自傷処理によりdelete_monster_idx()で手榴弾の枠がリセットされた後に行われる不正な移動処理が必ずしも発生しなかったためです。手榴弾の不規則な移動処理がx=0,y=0からx=1,y=1に行われた場合にのみ、ID=0となっているプレイヤーが該当の位置に表示されるという顛末でした。

2018-12-23 16:43 Aktualisiert von: deskull
  • Status Update from Offen to Geschlossen
Kommentar

以下のように修正して完了。

  • mon_take_hit_mon()で自滅した場合は即return。
  • 今後類似のトラブルが発生してもランタイムエラーで緊急セーブが発生しないよう、最大HP及び最大最大HPのゼロ除算の回避処理を追加。
2020-12-30 22:18 Aktualisiert von: deskull
2020-12-30 22:20 Aktualisiert von: deskull
  • Summary Updated

Dateianhangliste

Keine Anhänge

Bearbeiten

Please login to add comment to this ticket » Anmelden