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

Project1

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

[已经解决] 如何提升暴击(必杀)伤害?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
274 小时
注册时间
2013-12-14
帖子
113
跳转到指定楼层
1
发表于 2015-3-9 18:58:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何通过使用道具或附加状态,使暴击伤害提升?
比如:未使用道具态时是1.5倍,使用道具后则变为2倍。

Lv3.寻梦者

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

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2015-3-9 23:14:38 | 只看该作者
估计你动用过make_damage_value来写技能吧,那么就把改的方法告诉你。
  1.   def make_damage_value(user, item)
  2.     value = item.damage.eval(user, self, $game_variables)
  3.     value *= item_element_rate(user, item)
  4.     value *= pdr if item.physical?
  5.     value *= mdr if item.magical?
  6.     value *= rec if item.damage.recover?
  7.     value = apply_critical(value) if @result.critical
  8.     value = apply_variance(value, item.damage.variance)
  9.     value = apply_guard(value)
  10.     @result.make_damage(value.to_i, item)
  11.   end
复制代码
这是make_damage_value原方法,
其中这句
  1.     value = apply_critical(value) if @result.critical
复制代码
是当此次攻击判断为暴击的时候调用暴击计算的方法,也就是
  1.   def apply_critical(damage)
  2.     damage * 3
  3.   end
复制代码
这个方法的作用是单纯的将传递过来的“伤害”乘以三倍,并返回到make_damage_value中。
所以只要改动这个方法就行了,根据你的要求是想要根据user(使用者)的状态改变暴击伤害倍数,
那么我们要做的是给这个方法追加一个新的参数,让这个方法能够根据user进行判断。
  1.   def apply_critical(damage, user)
  2.     damage *= user.state?(2) 2 : 1.5
  3.   end
复制代码
这样的效果就是如果使用者处在状态2,则暴击效果为2倍,否则是1.5倍
然后改变make_damage_value中的判断是否暴击的那一行,让它在判断为暴击的时候能够传递使用者的参数过来进行判断,
  1.     value = apply_critical(value, user) if @result.critical
复制代码
以上就是实现的具体过程。

点评

我这整层楼就是在说怎么修改……而且还是一步步说的,你找对地方,买我发的东西替换对了就行了。  发表于 2015-3-11 02:20
不能直接拿来替换Game_Battler的那三行么...... 脚本盲球教一下应该怎么修改...  发表于 2015-3-11 01:51
没有任何问题,只说明你没看懂我写的什么,然后没写对,仅此而已。  发表于 2015-3-11 00:34
不是,damage *= user.state?(2) 2 : 1.5这一句好像有问题....  发表于 2015-3-11 00:20
都说了这是实现的方法,不是现成的脚本。  发表于 2015-3-11 00:15

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
274 小时
注册时间
2013-12-14
帖子
113
3
 楼主| 发表于 2015-3-10 06:54:17 | 只看该作者
本帖最后由 blueeyescyj 于 2015-3-10 07:22 编辑
三途亚梦 发表于 2015-3-9 23:14
估计你动用过make_damage_value来写技能吧,那么就把改的方法告诉你。这是make_damage_value原方 ...


感谢万分。我突然之间也想到了一个解决办法。
我可以设置一个属性,名为“必杀”,假定是10号属性。
那么,直接把必杀伤害的计算方法改成
damage * 3*a.element_rate(10)
这样就可以直接通过对10号的属性比率的更改作出不同的伤害了,装备,道具也可以使用了吧。
理论上我觉得是可行的……但总觉得有哪里不对的样子。

点评

谢谢帮忙,可以结贴了。  发表于 2015-3-11 01:27
可以的,只要两个一致就可以。  发表于 2015-3-11 00:45
直接a改user可以的吧  发表于 2015-3-11 00:40
首先你得有个“a”,你把我告诉你的方法里def apply_critical(damage, user)中的“user”改成“a”应该就可以了。  发表于 2015-3-10 19:20
damage * 3*a.element_rate(10)没写错什么吧,感觉不能直接这么写的样子= =  发表于 2015-3-10 19:17
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-21 19:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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