毒ステートのダメージ投下で少し問題が……
Posted: 2020年5月02日(土) 17:39
スキル【デスペラード】を発生させて、5ターン目で【敵に与えた総ダメージ】を敵に付加する毒ステートを作っています。
ステート:デスペラード
効果:自分の攻撃ターンが5回まわってくるまでに与えた総ダメージ量が、敵の毒のダメージに代入される。 ある程度の所まで出来ていますが、少し問題が……。
仕様としては
1.デスペラードを使う。
2.自分のターンが5回まわってくる間に敵にダメージを与える。
3.自分のターン5回目で総ダメージ量の毒ダメージが付加される。
4.総ダメージは重ね掛けが出来る。
そんな仕組みです。
問題は仕様に書いてある3と4で起きています。
ソースコードはGame_Battler.prototype.regenerateHpを書き換えていて
ちなみにこれを作動させると
この場合、oldvalueが見つからない と 返ってきました。
動いたり、動かなかったりしています。
・varをconstに変えてもエラーが出る。
ここでやりたい事は
・newvalueに与えた総ダメージ(変数44番)に代入する。
・oldvalueに今まであった総ダメージ(oldvalue)と新しく入ってきた総ダメージ(newvalue)を代入する。
この二つの工程です。
どなたかこの問題を解決できそうな方。
回答の方をよろしくお願いします。
ステート:デスペラード
効果:自分の攻撃ターンが5回まわってくるまでに与えた総ダメージ量が、敵の毒のダメージに代入される。 ある程度の所まで出来ていますが、少し問題が……。
仕様としては
1.デスペラードを使う。
2.自分のターンが5回まわってくる間に敵にダメージを与える。
3.自分のターン5回目で総ダメージ量の毒ダメージが付加される。
4.総ダメージは重ね掛けが出来る。
そんな仕組みです。
問題は仕様に書いてある3と4で起きています。
ソースコードはGame_Battler.prototype.regenerateHpを書き換えていて
コード: 全て選択
Game_Battler.prototype.regenerateHp = function() {
if (this.isStateAffected(16) && $gameVariables.value(45) == -1) {
var newvalue = $gameVariables.value(44);
console.log('デスぺラnewDamage_'+newvalue);
if (newvalue !== oldvalue) {
var oldvalue = oldvalue + newvalue;
console.log('デスぺラoldDamage_'+oldvalue);
}
this.gainHp(-oldvalue);
}
var value = Math.floor(this.mhp * this.hrg);
value = Math.max(value, -this.maxSlipDamage());
if (value !== 0) {
this.gainHp(value);
}
};
動いたり、動かなかったりしています。
・varをconstに変えてもエラーが出る。
ここでやりたい事は
・newvalueに与えた総ダメージ(変数44番)に代入する。
・oldvalueに今まであった総ダメージ(oldvalue)と新しく入ってきた総ダメージ(newvalue)を代入する。
この二つの工程です。
どなたかこの問題を解決できそうな方。
回答の方をよろしくお願いします。