查看: 4227|回复: 18

[已经解决] 会心一击机率

[复制链接]
梦石
0
星屑
50
在线时间
94 小时
注册时间
2016-10-21
回帖
32
发表于 2017-4-6 16:22:51 来自手机 | 显示全部楼层 |阅读模式

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

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

×
我想做一个增加会心一击率的功能,当1号开关打开时会心一击几率怎加一倍,脚本里该怎么改。
梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2017-4-6 20:14:28 | 显示全部楼层
本帖最后由 guoxiaomi 于 2017-4-6 20:37 编辑

Game_Battler 3 第 55-66 行:
[pre lang="ruby" line="55"]      # 伤害符号正确的情况下
      if self.damage > 0
        # 会心一击修正
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
        end
        # 防御修正
        if self.guarding?
          self.damage /= 2
        end
      end[/pre]
知道改哪里了吧~

[pre lang="ruby"]        if rand(100) < 4 * attacker.dex / self.agi * (($game_switches[1])? 2 : 1)[/pre]

评分

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

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 1 0

使用道具 举报

梦石
0
星屑
50
在线时间
94 小时
注册时间
2016-10-21
回帖
32
 楼主| 发表于 2017-4-6 20:32:34 来自手机 | 显示全部楼层
guoxiaomi 发表于 2017-4-6 20:14
Game_Battler 3 第 55-66 行:
      # 伤害符号正确的情况下
      if self.damage > 0

这我知道了但是该怎么改

点评

上面修改过了  发表于 2017-4-6 21:51
回复

使用道具 举报

梦石
0
星屑
50
在线时间
94 小时
注册时间
2016-10-21
回帖
32
 楼主| 发表于 2017-4-6 22:06:54 来自手机 | 显示全部楼层
guoxiaomi 发表于 2017-4-6 20:14
Game_Battler 3 第 55-66 行:
      # 伤害符号正确的情况下
      if self.damage > 0

看见了,刚没注意,谢了
回复

使用道具 举报

梦石
0
星屑
50
在线时间
94 小时
注册时间
2016-10-21
回帖
32
 楼主| 发表于 2017-4-7 20:47:59 来自手机 | 显示全部楼层
guoxiaomi 发表于 2017-4-6 20:14
Game_Battler 3 第 55-66 行:
      # 伤害符号正确的情况下
      if self.damage > 0

如果是直接乘上变量的数值该怎么写,并且是两个变量,变量1或变量2中间用or连接吗

点评

详细描述你的需求。对于ruby的语法,可以看看教程  发表于 2017-4-7 21:56
回复

使用道具 举报

梦石
0
星屑
50
在线时间
94 小时
注册时间
2016-10-21
回帖
32
 楼主| 发表于 2017-4-8 20:11:11 来自手机 | 显示全部楼层
guoxiaomi 发表于 2017-4-6 20:14
Game_Battler 3 第 55-66 行:
      # 伤害符号正确的情况下
      if self.damage > 0

那个问题我已经知道了,但这样写的话,敌人的会心一击率也会增加,只要自己和队员会心一击率增加该怎么写

点评

if rand(100) < 4 * attacker.dex / self.agi * (($game_switches[1] && attacker.is_a?(Game_Actor))? 2 : 1)  发表于 2017-4-8 20:23
回复

使用道具 举报

梦石
0
星屑
50
在线时间
94 小时
注册时间
2016-10-21
回帖
32
 楼主| 发表于 2017-4-8 20:24:48 来自手机 | 显示全部楼层
guoxiaomi 发表于 2017-4-6 20:14
Game_Battler 3 第 55-66 行:
      # 伤害符号正确的情况下
      if self.damage > 0

嗯,知道了谢了
回复

使用道具 举报

梦石
0
星屑
50
在线时间
94 小时
注册时间
2016-10-21
回帖
32
 楼主| 发表于 2017-4-8 22:34:47 | 显示全部楼层
破碎记忆 发表于 2017-4-8 20:11
那个问题我已经知道了,但这样写的话,敌人的会心一击率也会增加,只要自己和队员会心一击率增加该怎么写 ...


这样写会出错

点评

图片看不到,我猜你已经写到了9楼里  发表于 2017-4-9 00:27
回复

使用道具 举报

梦石
0
星屑
50
在线时间
94 小时
注册时间
2016-10-21
回帖
32
 楼主| 发表于 2017-4-8 22:37:36 | 显示全部楼层
guoxiaomi 发表于 2017-4-6 20:14
Game_Battler 3 第 55-66 行:
      # 伤害符号正确的情况下
      if self.damage > 0

   if rand(100) < (4 * attacker.dex / self.agi) * (($game_variables[8]&& attacker.is_a?(Game_Actor)) or($game_variables[7]))
我这样写会出错?
回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2017-4-9 00:35:33 | 显示全部楼层
破碎记忆 发表于 2017-4-8 22:37
if rand(100) < (4 * attacker.dex / self.agi) * (($game_variables[8]&& attacker.is_a?(Game_Actor ...

报错是不是 ‘true can't be coerced into Fixnum’

我发现如果是 (123 && true) or (456) ,会返回 true……然后 true 和前面的乘法一算就报错了

建议你再看看 ruby 的基本语法……这复杂难懂的写法,是很不好的
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部