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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2377
在线时间
264 小时
注册时间
2015-4-11
帖子
45
跳转到指定楼层
1
发表于 2015-4-20 23:44:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
是这样的,我想设置一个状态,角色附加上这个状态以后,攻击或是使用技能造成的伤害均有20%的吸血能力。
下面是已解决的那个帖子,我用下面的方法老是报错
请教如何设定当状态是26时该角色造成的伤害均带有20%吸血
https://rpg.blue/thread-357310-1-1.html



class Game_ActionResult
  #--------------------------------------------------------------------------
  # ● 生成伤害
  #--------------------------------------------------------------------------
  def make_damage(value, item, hp_drain_state)
    @critical = false if value == 0
    @hp_damage = value if item.damage.to_hp?
    @mp_damage = value if item.damage.to_mp?
    @mp_damage = [@battler.mp, @mp_damage].min
    @hp_drain = @hp_damage*0.2 if hp_drain_state
    @hp_drain = @hp_damage if item.damage.drain?
    @hp_drain = [@battler.hp, @hp_drain].min
    @success = true if item.damage.to_hp? || @mp_damage != 0
  end
end

class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 计算伤害
  #--------------------------------------------------------------------------
  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,user.state?(26))
  end
end



我吧这些分别复制到相应位置之后,测试发现老是报错是哪里出了问题? 求大神分解{:2_280:}

Lv1.梦旅人

梦石
0
星屑
108
在线时间
1006 小时
注册时间
2008-11-9
帖子
1658
2
发表于 2015-4-21 12:01:05 | 只看该作者
脚本中原方法是两个参数,而你复写之后是三个参数,原先的默认调用当然会出错
RUBY 代码复制
  1. def make_damage(value, item, hp_drain_state)

hp_drain_state加个默认值就好,改为
RUBY 代码复制
  1. def make_damage(value, item, hp_drain_state = false)

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2377
在线时间
264 小时
注册时间
2015-4-11
帖子
45
3
 楼主| 发表于 2015-4-21 22:14:06 | 只看该作者
判约之轮 发表于 2015-4-21 12:01
脚本中原方法是两个参数,而你复写之后是三个参数,原先的默认调用当然会出错
def make_damage(value, item ...

照那样改了还是报错。 我是分别在哪两个地方改的,

PKD]RW3VMO_{7C`E[X])OK7.png (14.76 KB, 下载次数: 35)

PKD]RW3VMO_{7C`E[X])OK7.png

点评

这个错误是end的个数或位置不对造成的,你都改了些什么?  发表于 2015-4-21 22:19
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
108
在线时间
1006 小时
注册时间
2008-11-9
帖子
1658
4
发表于 2015-4-21 22:27:51 | 只看该作者
本帖最后由 判约之轮 于 2015-4-21 22:29 编辑
13791224182 发表于 2015-4-21 22:14
照那样改了还是报错。 我是分别在哪两个地方改的,


假如你之前也是这个错误……那么就不会是这个脚本本身的问题
这个页名以及160行的行号我想应该不会是其他自定义脚本,开个新工程,把对应的完好脚本页覆盖进去也许会是一个好的解决办法
如果这都不行……我也帮不了你了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2377
在线时间
264 小时
注册时间
2015-4-11
帖子
45
5
 楼主| 发表于 2015-4-21 23:01:32 | 只看该作者
判约之轮 发表于 2015-4-21 22:27
假如你之前也是这个错误……那么就不会是这个脚本本身的问题
这个页名以及160行的行号我想应该不会是其他 ...

太感谢了。成功了{:2_280:}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-1 10:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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