2012-06-23

RGSS-毎ターンHP・SP回復

ShareLink
«RGSS一覧

戦闘開始時にSPを0にして、徐々にSPが溜まっていく…
そんなシステムを作りたかったので
今回は毎ターンSPが回復するシステムを紹介。



【今回の変更点】
・Scene_Battle 1
・Scene_Battle 4




■Scene_Battle 1

戦闘のはじめに、アクターとエネミーのSPをリセットします。

「トループを準備」
$game_troop.setup(@troop_id)の下に
以下のように入れます。
for actor in $game_party.actors
 actor.sp = 数値
end


SPをリセットする必要はないよ~
という方は次へ。


■Scene_Battle 4

「フレーム更新 メインフェーズステップ1」
# 未行動バトラーが存在しない場合 (全員行動した)
if @action_battlers.size == 0
 for actor in $game_party.actors
  actor.sp += 1
  @status_window.refresh
 end

 # パーティコマンドフェーズ開始
 start_phase2
 return
end

上記青文字部分を追加します。

ここでリフレッシュさせておかないと、
数値が反映されないので…
(SPを最初に0にリセットさせたとして)
「SPが1あるのにバトルが進行しないと表示が0のまま」
になります。
SP1あって使えるスキルが、SP0のままで使えるのか?!
みたいなヘンな事になるので忘れずに。

同じくエネミーも毎ターンSPを回復させたいよ
っていう方は同じように
for enemy in $game_troop.enemies
 enemy.sp += 数値
end

と書き込めばOK。

エネミーの場合はステータスが表示されていないので
特にリフレッシュする必要はないです。
戦闘開始時にSPをリセットする場合
エネミーの分もアクターと同じくリセットしておきましょう。



はじめは0から、だんだんspが回復していって
ターンが経てば経つほど強いスキルが使える!!!
でも、デフォルト状態だと戦闘終了後もSPは戦闘終了時のままです。
なので、戦闘が終了・中断されたら全回復させるとか
そういった処理をすると良いかもしれません。

よろしければこっちの記事を参考に(*・ω・)っ「レベルアップ・戦闘終了後に全回復


また、spの部分をhpに変えれば
毎ターンHPが回復するようにもできます。
逆に、どんどんターン毎に減っていくというシステムも。

ここには書いてませんが、とあるアイテムを装備していると毎ターン回復するというようにも改造できますので色々やってみてくださいね。
気が向いたら特定アイテム装備で毎ターン回復orダメージの方法も書きます。
…要望があればすぐ書くかもですが。

category: