Plasma Dark 様
説明の仕方が下手くそでした。(人に説明するのはあまり慣れていない物で……。)
質問された部分の説明をします。
ステート: デスペラード に関わる登場人物から整理しましょう。
ここで 自分 と表現されているのは、 ステート: デスペラード を付与するスキル(スキル: デスペラード)の使い手アクターであるという認識で合っていますか?
はい。デスペラードの使用者(ナツメ)で合っています。
デスペラードを使用して(ナツメ)のターンが回ってくる毎に
ステート:デスペラード発動までのカウント(変数45)が1ずつ減っていく仕組みです。
スキル発動前にコモンイベント13を発動させて、決め台詞を言ってカウント(変数45)に5を代入します。
このように書いています。
・【Game_Action.prototype.apply】で【Game_Action.prototype.executeHpDamage】にあるコモンイベント発動の為に変数21(変数名:CharacterSpesialAbirity)に3(コモンイベントに入れているNo3を動かす)を入れている。
(本当は、【Game_Action.prototype.apply】のナツメ専用技の条件で敵がステートNo(16):デスペラードにかかっている時としたかった……。やり方が分からない。)
コード: 全て選択
Game_Action.prototype.apply = function(target) {
var result = target.result();
this.subject().clearResult();
result.clear();
result.used = this.testApply(target);
result.missed = (result.used && Math.random() >= this.itemHit(target));
result.evaded = (!result.missed && Math.random() < this.itemEva(target));
result.physical = this.isPhysical();
result.drain = this.isDrain();
if (result.isHit()) {
if (this.item().damage.type > 0) {
result.critical = (Math.random() < this.itemCri(target));
var value = this.makeDamageValue(target, result.critical);
//ナツメ専用技
//敵がデスペラード時、ナツメのターンが回ってくるとデスペラード発生までのカウントが減る
if (this.subject().isActor() && this.subject().actorId() === 6) {
$gameVariables.setValue(21, 3)
console.log("ナツメ_デスペラード処理");
}
this.executeDamage(target, value);
}
this.item().effects.forEach(function(effect) {
this.applyItemEffect(target, effect);
}, this);
this.applyItemUserEffect(target);
}
};
・Game_Action.prototype.executeHpDamageの内部で$gameTemp.reserveCommonEvent(10)のNo3を発動させて
カウント(変数45)を1減らします。
コード: 全て選択
const _Game_Action_executeHpDamage = Game_Action.prototype.executeHpDamage;
Game_Action.prototype.executeHpDamage = function(target, value) {
_Game_Action_executeHpDamage.call(this, target, value);
if(this.isSkill() && target.isEnemy() && $gameVariables.value(45) >= 0){
//デスペラードに代入
$gameVariables.setValue(44,$gameVariables.value(44) + value);
console.log($gameVariables.value(44))
}
if (this.isSkill() && target.isEnemy() && !this.item().meta.noExpcount) {
$gameParty.gainExp(value);
//CharacterSpesialAbirity用のコモンイベント
$gameTemp.reserveCommonEvent(10)
}
}
そして、
2での 敵 とは、ステート: デスペラード 状態にかかった敵単体のことでしょうか。それとも、敵全体のことでしょうか。
スキル:デスペラードの効果は敵全体にステート:デスペラードを付加します。
敵全体に付加状態させた状態からデスペラード発動までのカウント(変数45)が減っていきます。
それから、重ね掛けの意図するところがうまく理解できませんでした。
ステート: デスペラード は5ターン目にダメージを与え、その時点で解除されるのでしょうか。
それとも、永続的に続いて5ターンごとにダメージを与えるものでしょうか。
ごめんなさい。【重ね掛け】の使い方を間違っていました。
正しくはステート:デスペラードが発動して、バトルが終わるまで永続的に【効果発動までの5ターンで敵に与えた総ダメージ量】を発動後1ターン毎に与え続けます。
その上、デスペラード(2回目)に使用するにあたって
1回目のデスペラードで与えたダメージ量に、今回の新たな2回目のデスペラードを加算する
(2回目のデスペラードで与えたダメージ量に、今回の新たな3回目のデスペラードを加算する)
という仕組みにしたいです。
Plasma Dark 様のおっしゃる通り
実をいうと、前回分のダメージを保存して置く書き方が分からず。
よく分からない書き方となっております。
また何か不明な点がございましたら
返信をお願いします。