Project1

标题: 求助,指定角色自动回血回蓝的脚本 [打印本页]

作者: 一绪    时间: 2017-7-22 10:25
标题: 求助,指定角色自动回血回蓝的脚本
如题,指定角色在战斗时每回合按百分比自动回血回魔,行走在地图上按步数回血回魔直到加满。依靠状态也可以,还请详细一点说明,谢谢_(:зゝ∠)_
作者: 封尘    时间: 2017-7-22 13:32
这个是我现在正在用的,不知道能不能满足你的要求,具体功能就是附加这个状态之后可以每回合可以恢复血量,状态ID和回复量都是可以设定的,在脚本的开头。
  1. #==============================================================================
  2. # ★ 神圣之井技能设计
  3. #------------------------------------------------------------------------------
  4. #   本脚本来自rpg.blue
  5. #  作者:正太君(聪仔)
  6. #------------------------------------------------------------------------------
  7. #   使用时请保留版权信息,谢谢...
  8. #==============================================================================
  9. # 请设置神圣之井状态的ID:
  10.   SSZJ_STA = 18
  11. # 请设置恢复动画的ID:
  12.   SSZJ_ANI = 98
  13. # 请设置恢复最大HP的比例:
  14.   SSZJ_REC = 0.5
  15. #==============================================================================
  16. class Game_Party < Game_Unit
  17.   def sszj_recover
  18.     member = shenshengzhijing
  19.     return if member.nil?
  20.     member.animation_id = SSZJ_ANI
  21.     add_hp = (member.maxhp * SSZJ_REC).round
  22.     member.damage_num(-add_hp)
  23.   end
  24.   
  25.   def shenshengzhijing
  26.     members = []
  27.     self.members.each{|i| members.push(i) if i.hp > 0 and i.state?(SSZJ_STA)}
  28.     members.sort!{|a, b| a.hp * 1.0 / a.maxhp <=> b.hp * 1.0 / b.maxhp}
  29.     return members[0]
  30.   end
  31. end

  32. class Scene_Battle
  33.   alias :new_turn_end :turn_end unless method_defined? :new_turn_end
  34.   def turn_end
  35.     $game_party.sszj_recover
  36.     new_turn_end
  37.   end
  38. end
复制代码

作者: 张咚咚    时间: 2017-7-22 13:43
本帖最后由 张咚咚 于 2017-7-22 23:06 编辑

RUBY 代码复制
  1. class Game_Party < Game_Unit
  2.   #--------------------------------------------------------------------------
  3.   # ● 走一步时含有指定状态自动回复
  4.   #--------------------------------------------------------------------------
  5.   alias qqeat_increase_steps increase_steps
  6.   def increase_steps
  7.     qqeat_increase_steps
  8.     members.each{|a|a.states.each{|s|
  9.       if s.id == 8 #当含有8号状态时
  10.         a.hp += 10 #HP+10
  11.         a.mp += 5 #MP+5
  12.       end
  13.     }}
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 战斗结束时含有指定状态自动回复
  17.   #--------------------------------------------------------------------------
  18.   alias qqeat_do_auto_recovery do_auto_recovery
  19.   def do_auto_recovery
  20.     qqeat_do_auto_recovery
  21.     members.each{|a|a.states.each{|s|
  22.       if s.id == 8 #当含有8号状态时
  23.         a.hp += a.maxhp * 0.1 #HP+10%
  24.         a.mp += a.maxmp * 0.05 #MP+5%
  25.       end
  26.     }}
  27.   end
  28. end

作者: 一绪    时间: 2017-7-22 14:49
封尘 发表于 2017-7-22 13:32
这个是我现在正在用的,不知道能不能满足你的要求,具体功能就是附加这个状态之后可以每回合可以恢复血量, ...

请问一下指定角色是在哪里设定呢?非常感谢
作者: 一绪    时间: 2017-7-22 14:51
封尘 发表于 2017-7-22 13:32
这个是我现在正在用的,不知道能不能满足你的要求,具体功能就是附加这个状态之后可以每回合可以恢复血量, ...

啊抱歉,已经明白了,非常感谢_(:зゝ∠)_
作者: 一绪    时间: 2017-7-22 14:53
张咚咚 发表于 2017-7-22 13:43
class Game_Party < Game_Unit
  #-------------------------------------------------------------------- ...

帮大忙啦,非常感谢!




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