Project1

标题: 请教回血技能的对象为单个队友时目标为当前血比率最少的 [打印本页]

作者: morningboo    时间: 2014-11-22 11:24
标题: 请教回血技能的对象为单个队友时目标为当前血比率最少的
请教回血技能的对象选择为单个队友时,使用技能后对象为队友中当前血比率最少的(敌我均适用)
我写成这样,但是实际效果有问题,我方只给使用技能的人加血,敌方只给最后一个队员加血
RUBY 代码复制
  1. class RPG::UsableItem < RPG::BaseItem
  2. def need_selection?
  3. [1,6,7,9].include?(@scope)
  4. end
  5. def for_group1? #单个队友
  6. @scope==7
  7. end
  8.  
  9. end
  10. class Game_Action
  11. alias wdd_targets_for_opponents targets_for_opponents
  12.   def targets_for_opponents  
  13. if subject.is_a?(Game_Actor)   #行动方是我方
  14. if item.note.include?("单体回血") and item.for_group1?
  15.     return friends_unit.group_target104(@target_index)
  16. end
  17. else     #行动方是敌方
  18. if item.note.include?("单体回血") and item.for_group1?
  19.     return friends_unit.group_target104(@target_index)
  20. end
  21. end     
  22.   wdd_targets_for_opponents
  23.   end
  24.  
  25. end
  26. class Game_Unit
  27.  
  28. def group_target104(index)   #我方单体回血
  29.  
  30.    group104 = friends_unit.alive_members
  31.    group104 = [group104[0].hp_rate,group104[1].hp_rate,group104[2].hp_rate,group104[3].hp_rate,group104[4].hp_rate,group104[5].hp_rate].min
  32.   end
  33.  
  34. end



因为是截取的部分代码,可能不太完整,主要是核心问题,请各位大大指教

作者: taroxd    时间: 2014-11-22 11:32
opponent 不是对方的意思么……

另外,注意代码缩进。不养成缩进的好习惯的话,咱会拒绝看代码的哦~
作者: morningboo    时间: 2014-11-22 16:30
taroxd 发表于 2014-11-22 11:32
opponent 不是对方的意思么……

另外,注意代码缩进。不养成缩进的好习惯的话,咱会拒绝看代码的哦~ ...

对的呢,谢谢大大指正,应该是定义targets_for_friends
那么请问如何获得当前存活角色中hp或者hp_rate的角色呢?
(自己试了下,发现还是不行,还是只给自己补血)
作者: taroxd    时间: 2014-11-22 16:53
morningboo 发表于 2014-11-22 16:30
对的呢,谢谢大大指正,应该是定义targets_for_friends
那么请问如何获得当前存活角色中hp或者hp_rate的 ...


friend_unit.alive_members.min_by(&:hp_rate)

当英语都能看懂,我就不解释了
作者: morningboo    时间: 2014-11-22 17:28
taroxd 发表于 2014-11-22 16:53
friend_unit.alive_members.min_by(&:hp_rate)

当英语都能看懂,我就不解释了

谢谢大大解答,大大的办法真简单,自己刚刚也解决了,当然办法很笨,就不献丑了,请结贴,谢谢




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