查看: 2128|回复: 1

[已经解决] 技能伤害公式妙用的判定问题

[复制链接]
梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
回帖
668
发表于 2015-5-25 23:26:57 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

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

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2015-5-26 00:40:49 | 显示全部楼层
  1. $game_party.members.each {|actor| actor.hp += 5000}
复制代码

点评

队伍里没角色还进入战斗啊···  发表于 2015-5-27 04:36
认可盖楼。  发表于 2015-5-26 18:44
我回去试试,这样就不会陷入“没有角色导致报错”的问题中吗?  发表于 2015-5-26 09:30

评分

参与人数 1星屑 +150 收起 理由
VIPArcher + 150 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部