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

Project1

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

[已经解决] 请教如何设定当状态是26时该角色造成的伤害均带有20%吸血

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2014-2-20
帖子
15
跳转到指定楼层
1
发表于 2014-3-24 17:51:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RUBY 代码复制
  1. class Game_ActionResult
  2.   #--------------------------------------------------------------------------
  3.   # ● 生成伤害
  4.   #--------------------------------------------------------------------------
  5.   def make_damage(value, item)
  6.     @critical = false if value == 0
  7.     @hp_damage = value if item.damage.to_hp?
  8.     @mp_damage = value if item.damage.to_mp?
  9.     @mp_damage = [@battler.mp, @mp_damage].min
  10.     @hp_drain = @hp_damage if item.damage.drain?
  11.     def state?(state_id)
  12.       if @states.include?(26)
  13.         @hp_drain = (@hp_damage*0.2).to_i
  14.       end
  15.     end
  16.     @mp_drain = @mp_damage if item.damage.drain?
  17.     @hp_drain = [@battler.hp, @hp_drain].min
  18.     @success = true if item.damage.to_hp? || @mp_damage != 0
  19.   end

像设定一个状态26 当拥有此状态的角色攻击时不管是普攻还是技能都附带20%吸血。
上面这个判定不会生效
如果设置成下面这样又会出错
RUBY 代码复制
  1. @hp_drain = (@hp_damage*0.2).to_i if @states.include?(26)

求教该怎么设置当

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

2
发表于 2014-3-24 21:01:29 | 只看该作者
你要传个参数过去
  1. def make_damage(value,item, hp_drain_state)
  2.   #...
  3.   @hp_drain = @hp_damage*0.2 if hp_drain_state
  4.   #...
  5. end
复制代码
然后改调用它的地方
  1. @result.make_damage(value.to_i, item, state?(26))
复制代码

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2014-2-20
帖子
15
3
 楼主| 发表于 2014-3-26 15:16:42 | 只看该作者
Sion 发表于 2014-3-24 21:01
你要传个参数过去然后改调用它的地方

不好意思 这几天有事回复晚了
  1. class Game_ActionResult
  2.   #--------------------------------------------------------------------------
  3.   # ● 生成伤害
  4.   #--------------------------------------------------------------------------
  5.   def make_damage(value, item, hp_drain_state)
  6.     @critical = false if value == 0
  7.     @hp_damage = value if item.damage.to_hp?
  8.     @mp_damage = value if item.damage.to_mp?
  9.     @mp_damage = [@battler.mp, @mp_damage].min
  10.     @hp_drain = @hp_damage*0.2 if hp_drain_state
  11.     @hp_drain = @hp_damage if item.damage.drain?
  12.     @hp_drain = [@battler.hp, @hp_drain].min
  13.     @success = true if item.damage.to_hp? || @mp_damage != 0
  14.   end
  15. end

  16. class Game_Battler < Game_BattlerBase
  17.   #--------------------------------------------------------------------------
  18.   # ● 计算伤害
  19.   #--------------------------------------------------------------------------
  20.   def make_damage_value(user, item)
  21.     value = item.damage.eval(user, self, $game_variables)
  22.     value *= item_element_rate(user, item)
  23.     value *= pdr if item.physical?
  24.     value *= mdr if item.magical?
  25.     value *= rec if item.damage.recover?
  26.     value = apply_critical(value) if @result.critical
  27.     value = apply_variance(value, item.damage.variance)
  28.     value = apply_guard(value)
  29.     @result.make_damage(value.to_i, item, state?(26))
  30.   end
  31. end
复制代码
是做成上面这样吗?
但是好像附加26号状态后还是不能触发吸血呢
另外还有个小问题 怎么在点评的时候给别人加经验呢

点评

已经可以生效了 非常感谢  发表于 2014-3-27 08:47
就是楼下说的那样,state?(26) 改成 uer.state?(26) 就行了,加经验那是评分,用户组到了才有的功能。  发表于 2014-3-26 22:40
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2013-2-8
帖子
424
4
发表于 2014-3-26 20:54:27 手机端发表。 | 只看该作者
user.state?(26)

评分

参与人数 1星屑 +132 收起 理由
熊喵酱 + 132 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2014-2-20
帖子
15
5
 楼主| 发表于 2014-3-27 08:46:57 | 只看该作者
SuperMario 发表于 2014-3-26 20:54
user.state?(26)

已经正常生效了
非常感谢
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2377
在线时间
264 小时
注册时间
2015-4-11
帖子
45
6
发表于 2015-4-20 12:58:24 | 只看该作者
楼主 我新人看不明白能重新发一下完整的吗?{:2_284:}

点评

这样挖坟在别人的已解决的帖子里追问不好,会打扰到别人,有需要你可以私信楼主,或者发新的帖子并把该帖链接附上。写清问题,描述清楚问题。  发表于 2015-4-20 13:10

评分

参与人数 1星屑 -20 收起 理由
VIPArcher -20 挖坟=。=

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-28 04:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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