Project1

标题: 攻击特定状态敌人时附加一定攻击 的效果怎么做?? [打印本页]

作者: 巽离阔    时间: 2012-3-1 21:35
标题: 攻击特定状态敌人时附加一定攻击 的效果怎么做??
比如敌人中了 骨折 状态,然后当你攻击这个敌人时,每次攻击都会附加100点伤害。

试了试用变量表示敌人的血量,当敌人血量改变时就给敌人附加伤害,但是技能的伤害是优先于公共事件而计算的,所以这方法好像行不通呢。用状态法做了半天也想不起来做法。

求大神解答!!万分感谢!!dsu_plus_rewardpost_czw
作者: hcm    时间: 2012-3-1 23:00
没问题啊,在公共事件只加上附加伤害,和技能伤害不是一起的。
作者: Wind2010    时间: 2012-3-2 18:02
  1. class Game_Battler
  2.   L_12DAMAGE_SET = [17] # 骨折状态的ID
  3.   alias l_sds_skill_effect skill_effect
  4.   def skill_effect(user, skill)
  5.     l_sds_skill_effect(user, skill)
  6.     if hit_result == true and self.damage.is_a?(Numeric)
  7.       if self.damage > 0
  8.         for i in self.@states
  9.           if L_12DAMAGE_SET.include?(i)
  10.             self.damage -= 100
  11.             self.hp -= 100
  12.           end
  13.         end
  14.       end
  15.     end
  16.   end
  17. end
复制代码

作者: 巽离阔    时间: 2012-3-2 19:44
本帖最后由 巽离阔 于 2012-3-2 19:48 编辑
Wind2010 发表于 2012-3-2 18:02


脚本运行的时候第8行出错了,syntaxerror      {:1_10:}@










‘‘──巽离阔于2012-3-2 19:49补充以下内容

回复2楼(不知道为什么不能隔层回复??)
在公共事件附加效果只能是放碎骨技能时的那一次出效果,以后再打就没附加伤害了

’’
作者: hys111111    时间: 2012-3-2 20:01
本帖最后由 hys111111 于 2012-3-2 20:09 编辑
巽离阔 发表于 2012-3-2 19:44
脚本运行的时候第8行出错了,syntaxerror      


我参照3L的脚本的基础上改了一下
  1. class Game_Battler
  2.   L_12DAMAGE_SET = [17] # 骨折状态的ID
  3.   alias l_sds_skill_effect skill_effect
  4.   def skill_effect(user, skill)
  5.     l_sds_skill_effect(user, skill)
  6.     if hit_result == true and self.damage.is_a?(Numeric)
  7.       if self.damage > 0
  8.         ss=@states
  9.         for i in self.ss
  10.           if L_12DAMAGE_SET.include?(i)
  11.             self.damage -= 100
  12.             self.hp -= 100
  13.           end
  14.         end
  15.       end
  16.     end
  17.   end
  18. end
复制代码
试试看运行正不正常(PS:“点”后面不能加“@”和“$”除了for x in 0...@x以外)(虽然是我改的,但是版权是3L的)
作者: 巽离阔    时间: 2012-3-2 20:10
本帖最后由 巽离阔 于 2012-3-2 20:10 编辑
hys111111 发表于 2012-3-2 20:01
我参照3L的脚本的基础上改了一下试试看运行正不正常(PS:“点”后面不能加“@”和“$”除了for x in 0.. ...


不知道为什么,第6行又出错了,倒是能正常的进去了,但当技能要攻击的时候,nameerror了
作者: hys111111    时间: 2012-3-2 20:33
巽离阔 发表于 2012-3-2 20:10
不知道为什么,第6行又出错了,倒是能正常的进去了,但当技能要攻击的时候,nameerror了 ...

我再重新改了一下
  1. class Game_Battler
  2.   L_12DAMAGE_SET = []
  3.   L_12DAMAGE_SET = [17] # 骨折状态的ID
  4.   alias l_sds_skill_effect skill_effect
  5.   def skill_effect(user, skill)
  6.     l_sds_skill_effect(user, skill)
  7.     if hit_result == true
  8.       if self.damage > 0
  9.         ss=@states
  10.         for i in self.ss
  11.           if L_12DAMAGE_SET.include?(i)
  12.             self.damage -= 100
  13.             self.hp -= 100
  14.           end
  15.         end
  16.       end
  17.     end
  18.   end
  19. end
复制代码

作者: 巽离阔    时间: 2012-3-2 20:47
本帖最后由 巽离阔 于 2012-3-2 21:55 编辑
hys111111 发表于 2012-3-2 20:33
我再重新改了一下


虽然很抱歉耽误乃这么长时间,但是脚本又从第7行出了nameerror,还是出招时弹错了

undefined local or method ‘hit result” for #<game-enemy:0x37bfe70>

如果乃时间不充裕的话可以以后有空了再弄,我这边不急{:1_12:}@


‘‘──巽离阔于2012-3-2 20:55补充以下内容

还是不行...第9行弹错

我看了看不止是放那个技能,只要放任何一个带状态的技能都会弹错
’’
作者: Wind2010    时间: 2012-3-2 22:11
  1. class Game_Battler
  2.   L_12DAMAGE_SET = [17] # 骨折状态的ID
  3.   alias l_sds_skill_effect skill_effect
  4.   def skill_effect(user, skill)
  5.     l_sds_skill_effect(user, skill)
  6.     if self.damage.is_a?(Numeric)
  7.       if self.damage > 0
  8.         for i in @states
  9.           if L_12DAMAGE_SET.include?(i)
  10.             self.damage += 100
  11.             self.hp -= 100
  12.           end
  13.         end
  14.       end
  15.     end
  16.   end
  17. end
复制代码
忘记hit_result不能继承了= =|
作者: 巽离阔    时间: 2012-3-2 22:33
Wind2010 发表于 2012-3-2 22:11
忘记hit_result不能继承了= =|

原作者出现了~

谢谢终于不跳错误了,而且效果很不错,不过我有两个问题:第一个是只有技能能够追加伤害而普通攻击不能追加,另一个是能否将原来的攻击和附加的攻击分开显示两个数字呢?

如果很麻烦就算了,现在的效果已经很好了{:1_12:}@
作者: Wind2010    时间: 2012-3-3 09:13
巽离阔 发表于 2012-3-2 22:33
原作者出现了~

谢谢终于不跳错误了,而且效果很不错,不过我有两个问题:第一个是只有技能能够追加伤害 ...

普通伤害也附加的很容易的样子……
  1. class Game_Battler
  2.   L_12DAMAGE_SET = [17] # 骨折状态的ID
  3.   def l_fracture
  4.     if self.damage.is_a?(Numeric)
  5.       if self.damage > 0
  6.         for i in @states
  7.           if L_12DAMAGE_SET.include?(i)
  8.             self.damage += 100
  9.             self.hp -= 100
  10.           end
  11.         end
  12.       end
  13.     end
  14.   end
  15.   alias l_sds_attack_effect attack_effect
  16.   def attack_effect(user, skill)
  17.     l_sds_attack_effect(attacker)
  18.     l_fracture
  19.   end
  20.   alias l_sds_skill_effect skill_effect
  21.   def skill_effect(user, skill)
  22.     l_sds_skill_effect(user, skill)
  23.     l_fracture
  24.   end
  25. end
复制代码
原来的攻击和附加攻击分开跳的话,需要对Scene_Battle重定义下,冲突太大不敢动233
作者: 巽离阔    时间: 2012-3-3 12:20
本帖最后由 巽离阔 于 2012-3-3 12:22 编辑
Wind2010 发表于 2012-3-3 09:13
普通伤害也附加的很容易的样子……原来的攻击和附加攻击分开跳的话,需要对Scene_Battle重定义下,冲突太 ...


太感谢了~







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