设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1699|回复: 3
打印 上一主题 下一主题

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

[复制链接]

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
跳转到指定楼层
1
发表于 2015-5-26 19:07:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
问题描述如下,请见图:

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 计算伤害
  3.   #--------------------------------------------------------------------------
  4.   def make_damage_value(user, item)
  5.     value = item.damage.eval(user, self, $game_variables)
  6.     value *= item_element_rate(user, item)
  7.     value *= pdr if item.physical?
  8.     value *= mdr if item.magical?
  9.     value *= rec if item.damage.recover?
  10.     value = apply_critical(value) if @result.critical
  11.     value = apply_variance(value, item.damage.variance)
  12.     value = apply_guard(value)
  13.     @result.make_damage(value.to_i, item)
  14. #-------------------------
  15. # ● 祈祷
  16. #-------------------------       
  17. if self.skills.include?($data_skills[300])&&self.is_a?(Game_Actor)
  18.   if rand(100)<100
  19.         p "被攻击后有HP:#{$game_party.members[0].hp}"
  20.         $game_party.members.each {|actor| actor.hp += 5000}
  21.         p"├祈祷发动,生命值增加5000"
  22.         p "回复后HP:#{$game_party.members[0].hp}"
  23.   else
  24. p"├×祈祷#{bcf}"
  25.   end
  26.   end
  27. end

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
2
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
3
发表于 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
回复 支持 反对

使用道具 举报

Lv3.寻梦者

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

开拓者

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

点评

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 03:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表