モンスター自爆後に正しくデータをワイプしない不具合(クローン地獄にて (フォーラムメッセージ #80540 からの引用))
断言はできませんが、手榴弾が自爆して死んだときにprocess_monster()から出ないのが原因だと思います。
/* このとき手榴弾が自爆してm_ptr->r_idxが0になったあとも処理が続く*/
(匿名) への返信
断言はできませんが、手榴弾が自爆して死んだときに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になったあとも処理が続く*/
アドバイスありがとうございます。一度ウィザードモードでロレント生やして試してみます。
この件、以前イーク窟で検証したが再現できなかった。クエストでないと駄目かもしれない。
v2.2.0ですがもの言えぬ証人クエストに入ってデバッグコマンドで手榴弾出して自爆させてみたら左上に@が出てきました
(匿名) への返信
v2.2.0ですがもの言えぬ証人クエストに入ってデバッグコマンドで手榴弾出して自爆させてみたら左上に@が出てきました
ありがとうございます、試してみます。クエスト固有の現象なんでしょうか。
問題を十分に把握できました。修正箇所は匿名氏の指摘通りの場所で問題なさそうです。
しばしば現象が確認されなかった原因は手榴弾のmon_take_hit_mon()の自傷処理によりdelete_monster_idx()で手榴弾の枠がリセットされた後に行われる不正な移動処理が必ずしも発生しなかったためです。手榴弾の不規則な移動処理がx=0,y=0からx=1,y=1に行われた場合にのみ、ID=0となっているプレイヤーが該当の位置に表示されるという顛末でした。
以下のように修正して完了。
フォーラム 変愚蛮怒フォーラム [#80540] からの引用
[forum: 80540]