Project1

标题: 状态的设置 [打印本页]

作者: fjm    时间: 2015-12-7 11:02
标题: 状态的设置
设置一个暴击的状态,就像毒,麻痹一样的状态,然后技能和魔法勾上这个状态后,用的技能和魔法也有一定概率出暴击,这怎么做呢
作者: cinderelmini    时间: 2015-12-7 13:51
脚本【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%)。
就这样了,不用在技能里勾这个状态,只要角色附加了这个状态,所有攻击的暴击都是这样算的。
作者: cmmd1    时间: 2015-12-7 13:55
前面都一样,有几率暴击就是加点灵巧吧?把这个技能的灵巧加多点?
作者: fjm    时间: 2015-12-7 18:42
本帖最后由 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)】这段里面,
应用会心一 ...


帮忙看下我设定的,有啥问题,不出暴击
作者: cinderelmini    时间: 2015-12-7 19:33
额……抱歉……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
复制代码
大概就可以了。

人物只需要附加这个状态就行,
状态设置里面的【属性防御】和【状态变化】可以不用管。
作者: fjm    时间: 2015-12-7 20:25
cinderelmini 发表于 2015-12-7 19:33
额……抱歉……XP的特技和普攻是另外算的窝又忘了,除了上面说的哪个给普攻加的暴击状态,还得给下面的特技 ...

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

作者: fjm    时间: 2015-12-7 21:49
本帖最后由 fjm 于 2015-12-7 21:52 编辑
fjm 发表于 2015-12-7 20:25
多谢,这样设定可以了,不过BOOS有这个状态很恐怖,所有技能都出暴击的话,一个群攻技能出暴击要全部OVER,
可 ...


恩,感觉最好是能让指定技能或魔法出暴击,一些太强力的群攻击不要出暴击,打BOSS肯定是持久战,BOSS用群攻技能
偶尔出下暴击也会团灭的.玩家肯定会抓狂的
作者: cinderelmini    时间: 2015-12-7 22:03
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,半角逗号隔开。
作者: fjm    时间: 2015-12-7 22:20
cinderelmini 发表于 2015-12-7 22:03
也可以在之前特技判定暴击的那段再加个技能判定:这里面
[55, 24, 32, 21]
↑这个数组里填排除在外的技能 ...

这样改以后就是我想要的效果,太完美了,非常感谢
作者: fjm    时间: 2015-12-7 23:00
fjm 发表于 2015-12-7 22:20
这样改以后就是我想要的效果,太完美了,非常感谢

恩,我两个都试了下,改和没改,都有各自巧妙的用法.要是不加暴击的那个状态,哪里第几行改暴击的几率呢
作者: fjm    时间: 2015-12-7 23:58
if user.state?(17) && [55, 24, 32, 21].include?(skill.id)
用上面这行的话,有暴击状态的的角色,指定55,24,32,21,的技能会出暴击.不过没指定的技能和魔法也有概率出暴击.要是改成没指定的那些技能魔法,不会出暴击,这可以吗




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1