查看: 4726|回复: 10

[已经解决] 状态的设置

[复制链接]
梦石
0
星屑
2245
在线时间
1015 小时
注册时间
2015-10-17
回帖
1077
发表于 2015-12-7 11:02:03 | 显示全部楼层 |阅读模式

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

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

×
设置一个暴击的状态,就像毒,麻痹一样的状态,然后技能和魔法勾上这个状态后,用的技能和魔法也有一定概率出暴击,这怎么做呢

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2015-12-7 13:51:49 | 显示全部楼层
脚本【Game_Battler 3】里面,【● 应用通常攻击效果/def attack_effect(attacker)】这段里面,
应用会心一击的这几句,

  1.         # 会心一击修正
  2.         if rand(100) < 4 * attacker.dex / self.agi
  3.           self.damage *= 2
  4.           self.critical = true
  5.         end
复制代码
改成:

  1.         # 会心一击修正
  2.         if attacker.state?(17)
  3.           critical_state = rand(100) < 80
  4.         else
  5.           critical_state = rand(100) < 4 * attacker.dex / self.agi
  6.         end
  7.         if critical_state
  8.           self.damage *= 2
  9.           self.critical = true
  10.         end
复制代码
其中【attacker.state?(17)】里面的17是这个引发高概率暴击状态的ID,
【critical_state = rand(100) < 80】这个80是暴击概率(80%)。
就这样了,不用在技能里勾这个状态,只要角色附加了这个状态,所有攻击的暴击都是这样算的。

点评

不太清楚这句话描述的是什么意思。。所以就当成“存在这个状态的时候魔法和特技的暴击率也会受影响”了……  发表于 2015-12-7 19:19
楼主说得好像是“用技能和魔法时也有一定概率出暴击”  发表于 2015-12-7 19:15
回复

使用道具 举报

梦石
0
星屑
50
在线时间
168 小时
注册时间
2007-7-26
回帖
427
发表于 2015-12-7 13:55:59 | 显示全部楼层
前面都一样,有几率暴击就是加点灵巧吧?把这个技能的灵巧加多点?

评分

参与人数 1星屑 -5 收起 理由
RyanBern -5 请不要误导 回答问题之前请确保有一定把握.

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2245
在线时间
1015 小时
注册时间
2015-10-17
回帖
1077
 楼主| 发表于 2015-12-7 18:42:26 | 显示全部楼层
本帖最后由 fjm 于 2015-12-7 18:45 编辑

Project5.rar (186.08 KB, 下载次数: 72)
cinderelmini 发表于 2015-12-7 13:51
脚本【Game_Battler 3】里面,【● 应用通常攻击效果/def attack_effect(attacker)】这段里面,
应用会心一 ...


帮忙看下我设定的,有啥问题,不出暴击
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2015-12-7 19:33:49 | 显示全部楼层
额……抱歉……XP的特技和普攻是另外算的窝又忘了,除了上面说的哪个给普攻加的暴击状态,还得给下面的特技加一下:
在下面一点的【● 应用特技效果/def skill_effect(user, skill)】那一段里面的:
  1. # 命中的情况下
  2.     if hit_result == true
  3.       # 威力 0 以外的物理攻击的情况下
  4.       if skill.power != 0 and skill.atk_f > 0
  5.         # 状态冲击解除
  6.         remove_states_shock
  7.         # 设置有效标志
  8.         effective = true
  9.       end
复制代码
这里下面,【# HP 的伤害减法运算】之前插入一段:

  1.       # 会心一击修正
  2.       if user.state?(17)
  3.         critical_state = rand(100) < 80
  4.       else
  5.         critical_state = rand(100) < 4 * user.dex / self.agi
  6.       end
  7.       if critical_state && self.damage > 0
  8.         self.damage *= 2
  9.         self.critical = true
  10.       end
复制代码
大概就可以了。

人物只需要附加这个状态就行,
状态设置里面的【属性防御】和【状态变化】可以不用管。
回复

使用道具 举报

梦石
0
星屑
2245
在线时间
1015 小时
注册时间
2015-10-17
回帖
1077
 楼主| 发表于 2015-12-7 20:25:29 | 显示全部楼层
cinderelmini 发表于 2015-12-7 19:33
额……抱歉……XP的特技和普攻是另外算的窝又忘了,除了上面说的哪个给普攻加的暴击状态,还得给下面的特技 ...

多谢,这样设定可以了,不过BOOS有这个状态很恐怖,所有技能都出暴击的话,一个群攻技能出暴击要全部OVER,
可不可以设置BOSS单体技能出暴击,群功技能不出暴击.要是BOSS单体技能偶尔出下暴击,感觉战斗更有挑战
性

点评

事实上可以与判断一下 user.is_a?(actor)这样敌人就不会出暴击  发表于 2015-12-7 20:51
还是说。。。单纯为了让技能也偶尔能出暴击?那样的话就完全没必要弄状态了。。。  发表于 2015-12-7 20:36
现在这样改的话,就算不加这个状态,技能也是偶尔能打出暴击的…………本身这个状态就是为了调高暴击率才弄的吧?还是说…………  发表于 2015-12-7 20:36
难道不可以设置2个同名技能么?一个有暴击,角色用;一个无暴击,BOSS用。  发表于 2015-12-7 20:29
回复

使用道具 举报

梦石
0
星屑
2245
在线时间
1015 小时
注册时间
2015-10-17
回帖
1077
 楼主| 发表于 2015-12-7 21:49:21 | 显示全部楼层
本帖最后由 fjm 于 2015-12-7 21:52 编辑
fjm 发表于 2015-12-7 20:25
多谢,这样设定可以了,不过BOOS有这个状态很恐怖,所有技能都出暴击的话,一个群攻技能出暴击要全部OVER,
可 ...


恩,感觉最好是能让指定技能或魔法出暴击,一些太强力的群攻击不要出暴击,打BOSS肯定是持久战,BOSS用群攻技能
偶尔出下暴击也会团灭的.玩家肯定会抓狂的
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2015-12-7 22:03:06 | 显示全部楼层
fjm 发表于 2015-12-7 21:49
恩,感觉最好是能让指定技能或魔法出暴击,一些太强力的群攻击不要出暴击,打BOSS肯定是持久战,BOSS用群攻技 ...


也可以在之前特技判定暴击的那段再加个技能判定:
  1.       # 会心一击修正
  2.       if user.state?(17) && [55, 24, 32, 21].include?(skill.id)
  3.         critical_state = rand(100) < 80
  4.       else
  5.         critical_state = rand(100) < 4 * user.dex / self.agi
  6.       end
  7.       if critical_state && self.damage > 0
  8.         self.damage *= 2
  9.         self.critical = true
  10.       end
复制代码
这里面
[55, 24, 32, 21]
↑这个数组里填排除在外的技能ID,半角逗号隔开。

评分

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

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2245
在线时间
1015 小时
注册时间
2015-10-17
回帖
1077
 楼主| 发表于 2015-12-7 22:20:08 | 显示全部楼层
cinderelmini 发表于 2015-12-7 22:03
也可以在之前特技判定暴击的那段再加个技能判定:这里面
[55, 24, 32, 21]
↑这个数组里填排除在外的技能 ...

这样改以后就是我想要的效果,太完美了,非常感谢

点评

额……好像判定填错了……排除在外的话应该是【if user.state?(17) && ![55, 24, 32, 21].include?(skill.id)】才对………………orz……  发表于 2015-12-7 22:30
回复

使用道具 举报

梦石
0
星屑
2245
在线时间
1015 小时
注册时间
2015-10-17
回帖
1077
 楼主| 发表于 2015-12-7 23:00:33 | 显示全部楼层
fjm 发表于 2015-12-7 22:20
这样改以后就是我想要的效果,太完美了,非常感谢

恩,我两个都试了下,改和没改,都有各自巧妙的用法.要是不加暴击的那个状态,哪里第几行改暴击的几率呢
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部