敵キャラのMP増減 / ツクールVXAceスクリプト(RGSS3)wiki
ツクールVXAceで敵キャラのMP増減をスクリプトで行うなら以下の通りです。
$game_troop.members[敵ID].mp += 増減する値
サンプルコード(モンスター1のMPを15減らす)
$game_troop.members[0].mp += -15
#または
$game_troop.members[0].mp -= 15
上下の式は同じ意味を持ちます。
「=」にすることによって値を代入することも出来ます。
サンプルコード(モンスター1のMPを15にする)
$game_troop.members[0].mp = 15
または以下の通りです。
iterate_enemy_index(敵ID) {|enemy| enemy.mp -= 増減する値}
#敵ID=-1以下で敵グループ全体
サンプルコード(モンスター全体のMPを15減らす)
iterate_enemy_index(-1) {|enemy| enemy.mp -= 15}
コード解説
前者の例では敵単体を減らしたいときのみに、後者の例では敵全体を対象とする場合があるときに使用すると良いでしょう。
$game_troop.members[敵ID]では敵グループから敵のデータを指定しています。
$game_troop.members[敵ID].mpは代入したり、参照したすることできる、少し特殊なメソッドです。
サンプルコードにあるように等号を変えることにより計算することができます。
また、"value = 10 + $game_troop.members[0].mp"等とすることによって値を計算に使用することも出来ます。
後者の例の{}内"enemy"とは通常"$game_troop.members"のことを指しています。
これはiterate_enemy_indexメソッド内で自動的に"$game_troop.members"を指定してくれているためです。
後者は少し見慣れない形ですが、これはブロックと呼ばれるもので、処理の塊のようなものです。(無名メソッドのような振る舞い)
興味のある方は「Ruby ブロック」と検索してみて下さい。
ここではenemyという変数を使い、0以上のときはその数値のIDの敵を、-1以下のときは敵グループの要素の数だけ(つまり、敵の数だけ){}内の処理を行います。
ツクールVXAceスクリプトリファレンスwikiトップページへ戻る
オリジナルシステムなどの製作依頼・相談があればプラグイン・マップ等個別製作依頼のページまでお願いします。