Project1

标题: 如何设置这样类似“神圣之井”的技能? [打印本页]

作者: crow2006    时间: 2014-8-10 13:22
标题: 如何设置这样类似“神圣之井”的技能?
该技能具体效果说明及要求:
释放之后,每回合自动为我方在队、尚未牺牲、并且当前生命值最低的那名队员回复20%生命,如果两人血量一样多,按队列顺序生效。
持续4回合。
求教了。
作者: 双黄连2_副本2    时间: 2014-8-10 14:17
(感觉跟我的召唤术好像)
如果你的人物少就用战斗事件+公共事件解决,如果人物多就只能等待脚本帝出现了。
作者: crow2006    时间: 2014-8-10 17:45
本帖最后由 crow2006 于 2014-8-10 19:56 编辑
  1. class Game_Interpreter
  2. def 全神贯注
  3. $血1 = $game_party.members[0].hp / $game_party.members[0].maxhp
  4. $血2 = $game_party.members[1].hp / $game_party.members[1].maxhp
  5. $血3 = $game_party.members[2].hp / $game_party.members[2].maxhp
  6. $血4 = $game_party.members[3].hp / $game_party.members[3].maxhp  
  7. $血1 = 1 if $game_party.members[0].hp == 0
  8. $血2 = 1 if $game_party.members[1].hp == 0
  9. $血3 = 1 if $game_party.members[2].hp == 0
  10. $血4 = 1 if $game_party.members[3].hp == 0
  11. end  
  12. def 血1
  13. 全神贯注
  14. if $血1 <= $血2 and $血1 <= $血3 and $血1 <= $血4 and $game_party.members[0].hp > 0
  15.   return true
  16. else
  17.   return false
  18. end
  19. end
  20. def 血2
  21. 全神贯注
  22. if $血2 <= $血1 and $血2 <= $血3 and $血2 <= $血4 and $game_party.members[1].hp > 0
  23.   return true
  24. else
  25.   return false
  26. end
  27. end
  28. def 血3
  29. 全神贯注
  30. if $血3 <= $血1 and $血3 <= $血2 and $血3 <= $血4 and $game_party.members[2].hp > 0
  31.   return true
  32. else
  33.   return false
  34. end
  35. end
  36. def 血4
  37. 全神贯注
  38. if $血4 <= $血1 and $血4 <= $血2 and $血4 <= $血3 and $game_party.members[3].hp > 0
  39.   return true
  40. else
  41.   return false
  42. end
  43. end
  44. end
复制代码
我已经做出来了,但是还不够优化,请求帮助:
I:编写上述脚本;
II:每回合战斗结束执行战斗事件:根据上述脚本判定使用技能的角色;
(下略)
III:实现如下效果:角色释放某个针对自身的单体技能后,附加编号368的状态,每回合开始前,该角色能够自动对当前HP比例最低、且尚未死亡的成员释放快速治疗。
求助:上述战斗事件如何写比较简洁?我这样要设置4个角色,很繁琐。请求优化。


作者: 正太君    时间: 2014-8-11 12:44
其中班尼特有神圣之井技能...
神圣之井.rar (577.47 KB, 下载次数: 62)
RUBY 代码复制
  1. #==============================================================================
  2. # ★ 神圣之井技能设计
  3. #------------------------------------------------------------------------------
  4. #   本脚本来自rpg.blue
  5. #  作者:正太君(聪仔)
  6. #------------------------------------------------------------------------------
  7. #   使用时请保留版权信息,谢谢...
  8. #==============================================================================
  9. # 请设置神圣之井状态的ID:
  10.   SSZJ_STA = 21
  11. # 请设置恢复动画的ID:
  12.   SSZJ_ANI = 39
  13. # 请设置恢复最大HP的比例:
  14.   SSZJ_REC = 0.2
  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.  
  33. class Scene_Battle
  34.   alias :new_turn_end :turn_end unless method_defined? :new_turn_end
  35.   def turn_end
  36.     $game_party.sszj_recover
  37.     new_turn_end
  38.   end
  39. end

作者: crow2006    时间: 2014-8-11 14:52
正太君 发表于 2014-8-11 12:44
其中班尼特有神圣之井技能...

#====================================================================== ...

谢谢聪仔,我这就学习一下




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