Project1

标题: 战斗的时候防御补一定的HP和MP [打印本页]

作者: 54cn    时间: 2010-8-12 11:41
标题: 战斗的时候防御补一定的HP和MP
战斗时防御就可以补充一定的HPMP,这个怎么做啊
作者: wangswz    时间: 2010-8-12 12:42
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 防御時回復 - KGC_GuardRecover ◆ VX ◆
  3. #_/    ◇ Last update : 2008/08/10 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  防御時に HP/MP を回復する処理を追加します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ カスタマイズ項目 - Customize ★
  9. #==============================================================================

  10. module KGC
  11. module GuardRecover
  12.   # ◆ HP回復割合 [%] (アクター)
  13.   HP_RATE_ACTOR = 1
  14.   # ◆ MP回復割合 [%] (アクター)
  15.   MP_RATE_ACTOR = 1

  16.   # ◆ HP回復割合 [%] (敵)
  17.   HP_RATE_ENEMY = 2
  18.   # ◆ MP回復割合 [%] (敵)
  19.   MP_RATE_ENEMY = 2
  20. end
  21. end

  22. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  23. $imported = {} if $imported == nil
  24. $imported["GuardRecover"] = true

  25. #==============================================================================
  26. # ■ Game_Battler
  27. #==============================================================================

  28. class Game_Battler
  29.   #--------------------------------------------------------------------------
  30.   # ○ 防御時回復量の計算
  31.   #     hp_rate : HP 回復率
  32.   #     mp_rate : MP 回復率
  33.   #--------------------------------------------------------------------------
  34.   def make_guard_recover_value(hp_rate, mp_rate)
  35.     recover_hp = maxhp * hp_rate / 100
  36.     if hp_rate > 0
  37.       recover_hp = [1, recover_hp].max
  38.     elsif hp_rate < 0
  39.       recover_hp = [-1, recover_hp].min
  40.     end

  41.     recover_mp = maxmp * mp_rate / 100
  42.     if mp_rate > 0
  43.       recover_mp = [1, recover_mp].max
  44.     elsif mp_rate < 0
  45.       recover_mp = [-1, recover_mp].min
  46.     end

  47.     @hp_damage -= recover_hp
  48.     @mp_damage -= recover_mp
  49.   end
  50. end

  51. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  52. #==============================================================================
  53. # ■ Game_Actor
  54. #==============================================================================

  55. class Game_Actor < Game_Battler
  56.   #--------------------------------------------------------------------------
  57.   # ○ 防御時回復効果の適用
  58.   #--------------------------------------------------------------------------
  59.   def guard_recover_effect
  60.     clear_action_results
  61.     make_guard_recover_value(
  62.       KGC::GuardRecover::HP_RATE_ACTOR,
  63.       KGC::GuardRecover::MP_RATE_ACTOR)
  64.     execute_damage(nil)
  65.   end
  66. end

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

  68. #==============================================================================
  69. # ■ Game_Enemy
  70. #==============================================================================

  71. class Game_Enemy < Game_Battler
  72.   #--------------------------------------------------------------------------
  73.   # ○ 防御時回復効果の適用
  74.   #--------------------------------------------------------------------------
  75.   def guard_recover_effect
  76.     clear_action_results
  77.     make_guard_recover_value(
  78.       KGC::GuardRecover::HP_RATE_ENEMY,
  79.       KGC::GuardRecover::MP_RATE_ENEMY)
  80.     execute_damage(nil)
  81.   end
  82. end

  83. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  84. #==============================================================================
  85. # ■ Scene_Battle
  86. #==============================================================================

  87. class Scene_Battle < Scene_Base
  88.   #--------------------------------------------------------------------------
  89.   # ● 戦闘行動の実行 : 防御
  90.   #--------------------------------------------------------------------------
  91.   alias execute_action_guard_KGC_GuardRecover execute_action_guard
  92.   def execute_action_guard
  93.     execute_action_guard_KGC_GuardRecover

  94.     @active_battler.guard_recover_effect
  95.     if @active_battler.hp_damage != 0
  96.       display_damage(@active_battler)
  97.     elsif @active_battler.mp_damage != 0
  98.       display_mp_damage(@active_battler)
  99.     end
  100.   end
  101. end
复制代码

作者: 小鱼子    时间: 2010-8-12 12:43
在脚本:防御指令编辑中添加
$game_temp.common_event_id = 1
然后设置公共事件1为补充量即可……
不懂的话给我一百经验,帮你解决……
作者: a50    时间: 2010-8-12 15:13
:L看不懂




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