逃
走
ス
キ
ル
概要
「逃走」の効果を持つスキルを作成します。
スキル毎に逃走倍率も設定可能です。
注:味方専用です。敵のスキルには設定しないでください。
スクリプト
RGSS
セクション:KGC_EscapeSkill
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆逃走スキル − KGC_EscapeSkill◆ #_/---------------------------------------------------------------------------- #_/ 逃走効果を持つスキルを作成します。 #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ $imported = {} if $imported == nil $imported["EscapeSkill"] = true if $game_special_elements == nil $game_special_elements = {} $data_system = load_data("Data/System.rxdata") end # 逃走スキル属性 $game_special_elements["skill_escape"] = $data_system.elements.index("逃走スキル") #============================================================================== # ■ Scene_Battle (分割定義 2) #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● フレーム更新 (パーティコマンドフェーズ : 逃げる) #-------------------------------------------------------------------------- alias update_phase2_escape_KGC_EscapeSkill update_phase2_escape def update_phase2_escape(skill = nil) # スキルでない場合は元の処理を実行 if skill == nil update_phase2_escape_KGC_EscapeSkill return end # 逃走できない場合は戻る return unless $game_temp.battle_can_escape # エネミーの素早さ平均値を計算 enemies_agi, enemies_number = 0, 0 for enemy in $game_troop.enemies next unless enemy.exist? enemies_agi += enemy.agi enemies_number += 1 end enemies_agi /= enemies_number if enemies_number > 0 # アクターの素早さ平均値を計算 actors_agi, actors_number = 0, 0 for actor in $game_party.actors next unless actor.exist? actors_agi += actor.agi actors_number += 1 end actors_agi /= actors_number if actors_number > 0 # 成功率計算 prob = 50 * actors_agi / [enemies_agi, 1].max # スキルの場合は倍率を掛ける prob = prob * skill.power / 100 if skill != nil # 逃走成功判定 success = rand(100) < prob # 逃走成功の場合 if success # 逃走 SE を演奏 $game_system.se_play($data_system.escape_se) # バトル開始前の BGM に戻す $game_system.bgm_play($game_temp.map_bgm) # バトル終了 battle_end(1) # 逃走失敗の場合 else # 戻る return end end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ #============================================================================== # ■ Scene_Battle (分割定義 4) #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示) #-------------------------------------------------------------------------- alias update_phase4_step5_KGC_EscapeSkill update_phase4_step5 def update_phase4_step5 # 逃走スキル判定 if @active_battler.current_action.kind == 1 && @active_battler.current_action.skill_id > 0 skill = $data_skills[@active_battler.current_action.skill_id] if skill.element_set.include?($game_special_elements["skill_escape"]) # 逃走判定 update_phase2_escape(skill) unless $scene.is_a?(Scene_Battle) @phase4_step = 1 return end end end # 元の処理を実行 update_phase4_step5_KGC_EscapeSkill end end
スクリプトを導入したら、属性[逃走スキル]を作り、スキルにセットします。
これで、逃走効果を持つスキルの完成です。
逃走成功率は
[通常の逃走成功率]×[スキルの威力]%
となります。
例えば[威力] 200 と設定すると、通常の2倍の成功率となります。