パラメータが巻き戻る現象についての考察

2024.09.18 01:16

現状の処理として、

・シナリオ、エネミー、フィールドイベント

が全て同時に実行されるような作りをしている場合、最後に実行された処理によって全て上書きされる可能性が高い。


例えば

の2つが同時に動くとすると、


  1. エネミーにスキル攻撃する
  2. エネミーが反撃してダメージを受ける & シナリオのトリガー(スキル使用)によってプレイヤーのatkを+1する
  3. プレイヤーのatkが上昇し、HPのダメージは無かったことになる

ダメージを受けてHPの低下が反映された後に、atk+1という順になればいいけれど、それぞれが同時に動くため、どっちが先に処理が終わったとしても、最後に反映された変更で上書きされてしまう。


a. HP8 ATK1 ( ダメージ2が反映された方 )

b. HP10 ATK2 ( atk+1が反映された方 )

で、ダメージ処理"a"はあったが、その後の"b"が上書きしちゃっている。

ここで、"b"が実行されるまでに十分な時間(ダメージを受けて、それをローカルに取得して反映されるまでの500ms程度)があれば、おそらく問題ない。


ユーザー側の暫定対処法


WoRの実装としての対処法