Project1

标题: 技能伤害公式妙用的判定问题 [打印本页]

作者: 负零    时间: 2015-5-25 23:26
标题: 技能伤害公式妙用的判定问题
我的伤害公式判定存在漏洞,初衷是(被史莱姆打到后,注意是史莱姆打拥有ID300技能的人后,100%几率队伍各成员+5000的血,能P出来,说明进入判断了)
问题来了,如果是unless作为关键字,0号位正常加血,如果战斗中不存在1,2,3号位的角色,那么就会报错(报找不到"hp"的方法,这个我能理解);但如果用if作为关键字,则0号位不加血,应该怎么做判断,达到目的且不报错?求帮忙看看哪里出问题了,摸了一个小时{:2_254:}
RUBY 代码复制
  1. def make_damage_value(user, item)
  2.     value = item.damage.eval(user, self, $game_variables)
  3.     value *= item_element_rate(user, item)
  4.     value *= pdr if item.physical?
  5.     value *= mdr if item.magical?
  6.     value *= rec if item.damage.recover?
  7.     value = apply_critical(value) if @result.critical
  8.     value = apply_variance(value, item.damage.variance)
  9.     value = apply_guard(value)
  10.     @result.make_damage(value.to_i, item)
  11. #-------------------------
  12. # ● 祈祷
  13. #-------------------------       
  14. if self.skills.include?($data_skills[300])&&self.is_a?(Game_Actor)
  15.    if rand(100)<100
  16.         $game_party.members[0].hp+=5000 unless $game_party.battle_members.include?(0)
  17.         $game_party.members[1].hp+=5000 unless $game_party.battle_members.include?(1)
  18.         $game_party.members[2].hp+=5000 unless $game_party.battle_members.include?(2)
  19.         $game_party.members[3].hp+=5000 unless $game_party.battle_members.include?(3)
  20.         p $game_party.members[0].hp
  21.         p $game_party.members[1].hp
  22. #        4.times {|i|$game_party.members[i].hp+=self.def*5000 if $game_party.battle_members.include?(i) }
  23.         p"├祈祷发动,生命值增加5000"
  24.    else
  25.         p"├×祈祷不触发"
  26.         end
  27.    end
  28. end

作者: 三途亚梦    时间: 2015-5-26 00:40
  1. $game_party.members.each {|actor| actor.hp += 5000}
复制代码





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