查看: 1926|回复: 3

[已经解决] 伤害判断先后的问题求解

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

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

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

×
问题描述如下,请见图:
QQ截图20150526190332.png
[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
        p "被攻击后有HP:#{$game_party.members[0].hp}"
        $game_party.members.each {|actor| actor.hp += 5000}
        p"├祈祷发动,生命值增加5000"
        p "回复后HP:#{$game_party.members[0].hp}"
  else
p"├×祈祷#{bcf}"
  end
  end
end[/pre]
梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2015-5-26 20:28:08 | 显示全部楼层
从你改的这个脚本来看,触发顺序是:计算人物受到的伤害时,先回复了血量,然后才减去受到的伤害,既先人物HP+5000,然后再人物HP-受到的伤害

点评

感谢tan神两天来的细心盖楼教授,感激不尽,认可该楼。  发表于 2015-5-28 12:37
if self.skills.include?($data_skills[300])&&self.is_a?(Game_Actor)改成if self.is_a?(Game_Actor)&&self.skills.include?($data_skills[300])  发表于 2015-5-28 11:52
有的,毕竟make_damage_value(user, item)的定义就是放在Game_Battler下的,make_damage_value(user, item)里可以用,Game_Battler下其他函数也可以用  发表于 2015-5-28 11:44
似乎没有self的定义,所以找不到skills的方法。求教如何处理?  发表于 2015-5-28 10:33
把你那段祈祷的代码,放到 Game_Battler里def item_apply(user, item)下的execute_damage(user)后面  发表于 2015-5-27 20:43

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2015-5-26 20:31:01 | 显示全部楼层
make_damage_value的方法是计算这次技能伤害的值,还没把伤害实际作用出去哦。

点评

请问是Game_ActionResult的make_damage(value, item)?看了下代码@result.make_damage(value.to_i, item)应该已经执行了,我的代码放置也是在最后的。  发表于 2015-5-27 15:06
我理解了,感谢指点,我去找找输出伤害的部分。  发表于 2015-5-27 14:55
回复

使用道具 举报

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2015-5-28 13:18:46 | 显示全部楼层
请问你是怎么让控制台显示出这些判断来的?我打开控制台进行游戏测试,全程只有一句日文

点评

我还以为是游戏内部有功能让我看到各种触发条件判断的信息呢  发表于 2015-5-29 14:10
人家脚本里写的很明确了呀,比如 p "被攻击后有HP:#{$game_party.members[0].hp}"  发表于 2015-5-28 18:27
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部