Project1

标题: [RM脚本] 逃跑放到技能里 [打印本页]

作者: ikki    时间: 2006-10-9 01:31
标题: [RM脚本] 逃跑放到技能里
脚本来源:日本KGC网站
脚本说明:就是一个技能,技能威力设置为大于0的数值才起作用,效果为角色逃跑。{/gg}
逃跑公式:逃跑成功率*技能威力
插入在MAIN的前面,设置一个属性叫做逃跑,拥有逃跑属性的技能即为逃跑技能。

  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/  ◆逃走スキル - KGC_EscapeSkill◆
  3. #_/----------------------------------------------------------------------------
  4. #_/ 逃走効果を持つスキルを作成します。
  5. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  6. $imported = {} if $imported == nil
  7. $imported["EscapeSkill"] = true

  8. if $game_special_elements == nil
  9.   $game_special_elements = {}
  10.   $data_system = load_data("Data/System.rxdata")
  11. end
  12. # 逃走スキル属性
  13. $game_special_elements["skill_escape"] = $data_system.elements.index("逃跑")

  14. #==============================================================================
  15. # ■ Scene_Battle (分割定義 2)
  16. #==============================================================================

  17. class Scene_Battle
  18.   #--------------------------------------------------------------------------
  19.   # ● フレーム更新 (パーティコマンドフェーズ : 逃げる)
  20.   #--------------------------------------------------------------------------
  21.   alias update_phase2_escape_KGC_EscapeSkill update_phase2_escape
  22.   def update_phase2_escape(skill = nil)
  23.     # スキルでない場合は元の処理を実行
  24.     if skill == nil
  25.       update_phase2_escape_KGC_EscapeSkill
  26.       return
  27.     end

  28.     # 逃走できない場合は戻る
  29.     return unless $game_temp.battle_can_escape

  30.     # エネミーの素早さ平均値を計算
  31.     enemies_agi, enemies_number = 0, 0
  32.     for enemy in $game_troop.enemies
  33.       next unless enemy.exist?
  34.       enemies_agi += enemy.agi
  35.       enemies_number += 1
  36.     end
  37.     enemies_agi /= enemies_number if enemies_number > 0
  38.     # アクターの素早さ平均値を計算
  39.     actors_agi, actors_number = 0, 0
  40.     for actor in $game_party.actors
  41.       next unless actor.exist?
  42.       actors_agi += actor.agi
  43.       actors_number += 1
  44.     end
  45.     actors_agi /= actors_number if actors_number > 0
  46.     # 成功率計算
  47.     prob = 50 * actors_agi / [enemies_agi, 1].max
  48.     # スキルの場合は倍率を掛ける
  49.     prob = prob * skill.power / 100 if skill != nil
  50.     # 逃走成功判定
  51.     success = rand(100) < prob
  52.     # 逃走成功の場合
  53.     if success
  54.       # 逃走 SE を演奏
  55.       $game_system.se_play($data_system.escape_se)
  56.       # バトル開始前の BGM に戻す
  57.       $game_system.bgm_play($game_temp.map_bgm)
  58.       # バトル終了
  59.       battle_end(1)
  60.     # 逃走失敗の場合
  61.     else
  62.       # 戻る
  63.       return
  64.     end
  65.   end
  66. end

  67. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  68. #==============================================================================
  69. # ■ Scene_Battle (分割定義 4)
  70. #==============================================================================

  71. class Scene_Battle
  72.   #--------------------------------------------------------------------------
  73.   # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  74.   #--------------------------------------------------------------------------
  75.   alias update_phase4_step5_KGC_EscapeSkill update_phase4_step5
  76.   def update_phase4_step5
  77.     # 逃走スキル判定
  78.     if @active_battler.current_action.kind == 1 &&
  79.         @active_battler.current_action.skill_id > 0
  80.       skill = $data_skills[@active_battler.current_action.skill_id]
  81.       if skill.element_set.include?($game_special_elements["skill_escape"])
  82.         # 逃走判定
  83.         update_phase2_escape(skill)
  84.         unless $scene.is_a?(Scene_Battle)
  85.           @phase4_step = 1
  86.           return
  87.         end
  88.       end
  89.     end

  90.     # 元の処理を実行
  91.     update_phase4_step5_KGC_EscapeSkill
  92.   end
  93. end
复制代码

作者: ikki    时间: 2006-10-9 01:31
标题: [RM脚本] 逃跑放到技能里
脚本来源:日本KGC网站
脚本说明:就是一个技能,技能威力设置为大于0的数值才起作用,效果为角色逃跑。{/gg}
逃跑公式:逃跑成功率*技能威力
插入在MAIN的前面,设置一个属性叫做逃跑,拥有逃跑属性的技能即为逃跑技能。

  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/  ◆逃走スキル - KGC_EscapeSkill◆
  3. #_/----------------------------------------------------------------------------
  4. #_/ 逃走効果を持つスキルを作成します。
  5. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  6. $imported = {} if $imported == nil
  7. $imported["EscapeSkill"] = true

  8. if $game_special_elements == nil
  9.   $game_special_elements = {}
  10.   $data_system = load_data("Data/System.rxdata")
  11. end
  12. # 逃走スキル属性
  13. $game_special_elements["skill_escape"] = $data_system.elements.index("逃跑")

  14. #==============================================================================
  15. # ■ Scene_Battle (分割定義 2)
  16. #==============================================================================

  17. class Scene_Battle
  18.   #--------------------------------------------------------------------------
  19.   # ● フレーム更新 (パーティコマンドフェーズ : 逃げる)
  20.   #--------------------------------------------------------------------------
  21.   alias update_phase2_escape_KGC_EscapeSkill update_phase2_escape
  22.   def update_phase2_escape(skill = nil)
  23.     # スキルでない場合は元の処理を実行
  24.     if skill == nil
  25.       update_phase2_escape_KGC_EscapeSkill
  26.       return
  27.     end

  28.     # 逃走できない場合は戻る
  29.     return unless $game_temp.battle_can_escape

  30.     # エネミーの素早さ平均値を計算
  31.     enemies_agi, enemies_number = 0, 0
  32.     for enemy in $game_troop.enemies
  33.       next unless enemy.exist?
  34.       enemies_agi += enemy.agi
  35.       enemies_number += 1
  36.     end
  37.     enemies_agi /= enemies_number if enemies_number > 0
  38.     # アクターの素早さ平均値を計算
  39.     actors_agi, actors_number = 0, 0
  40.     for actor in $game_party.actors
  41.       next unless actor.exist?
  42.       actors_agi += actor.agi
  43.       actors_number += 1
  44.     end
  45.     actors_agi /= actors_number if actors_number > 0
  46.     # 成功率計算
  47.     prob = 50 * actors_agi / [enemies_agi, 1].max
  48.     # スキルの場合は倍率を掛ける
  49.     prob = prob * skill.power / 100 if skill != nil
  50.     # 逃走成功判定
  51.     success = rand(100) < prob
  52.     # 逃走成功の場合
  53.     if success
  54.       # 逃走 SE を演奏
  55.       $game_system.se_play($data_system.escape_se)
  56.       # バトル開始前の BGM に戻す
  57.       $game_system.bgm_play($game_temp.map_bgm)
  58.       # バトル終了
  59.       battle_end(1)
  60.     # 逃走失敗の場合
  61.     else
  62.       # 戻る
  63.       return
  64.     end
  65.   end
  66. end

  67. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  68. #==============================================================================
  69. # ■ Scene_Battle (分割定義 4)
  70. #==============================================================================

  71. class Scene_Battle
  72.   #--------------------------------------------------------------------------
  73.   # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  74.   #--------------------------------------------------------------------------
  75.   alias update_phase4_step5_KGC_EscapeSkill update_phase4_step5
  76.   def update_phase4_step5
  77.     # 逃走スキル判定
  78.     if @active_battler.current_action.kind == 1 &&
  79.         @active_battler.current_action.skill_id > 0
  80.       skill = $data_skills[@active_battler.current_action.skill_id]
  81.       if skill.element_set.include?($game_special_elements["skill_escape"])
  82.         # 逃走判定
  83.         update_phase2_escape(skill)
  84.         unless $scene.is_a?(Scene_Battle)
  85.           @phase4_step = 1
  86.           return
  87.         end
  88.       end
  89.     end

  90.     # 元の処理を実行
  91.     update_phase4_step5_KGC_EscapeSkill
  92.   end
  93. end
复制代码

作者: 轮回者    时间: 2006-10-9 03:14
没人理?我支持一下……
作者: 叼烟的男孩    时间: 2006-10-9 03:22
试试效果怎么样
好的话再顶
作者: kira    时间: 2006-10-9 08:35
做一个这样的技能用得到脚本吗{/gg}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1