Project1

标题: 请问这种情况如何才能去掉攻击者的状态? [打印本页]

作者: 君子兰    时间: 2013-1-30 20:15
标题: 请问这种情况如何才能去掉攻击者的状态?
是想制作一种类似于反弹的状态,需要先判断出攻击者,所以
在Game_Battler 3里面设置了一种状态,

RUBY 代码复制
  1. if self.state?(84)
  2.    self.damage = ""
  3.    attacker.add_state(128, true)
  4.       end


也就是,如果被攻击者是84号状态,就给攻击者加上128号状态。
然后在Scene_Battle 4 里面调用公共事件,
如果某某是128号状态,则XXX,否则,则XXX,
最后,当然是让所有人都解除128号状态。

可是测试却发现状态解除不了,一旦被加上这个状态了就一直带着,然后其他队员攻击的时候他也会跟着受这种状态的“处罚”。


我对脚本并不是很懂,只是根据自己搜索到的内容,大体觉得似乎应该这样写,请问问题出在哪里呢?谢谢~~
作者: 芯☆淡茹水    时间: 2013-1-31 14:28
个人觉得LZ再加上一个解除该状态的定义,而不是用事件来解除,因为照LZ那样,脚本里面一个被指定状态的人被攻击,脚本会反复执行LZ写的上面那段脚本。
也就是说,再定义一下:“else”,其他情况下又怎样怎样

作者: 君子兰    时间: 2013-1-31 15:08
本帖最后由 君子兰 于 2013-1-31 16:11 编辑
芯☆淡茹水 发表于 2013-1-31 15:28
个人觉得LZ再加上一个解除该状态的定义,而不是用事件来解除,因为照LZ那样,脚本里面一个被指定状态的人被 ...


对不起,我没有弄明白您的意思,那个else 应该是写在哪里呢?8 4号状态那个if 的后面吗?
为什么会反复执行呢?我以前也以为是不是会一直执行这个,所以写self.damage = "xxx"试了一下,xxx这几个字就只显示一次啊。我又实在不太懂脚本,请问到底是怎么个意思呢?
而且,我其实有试过,在执行这段脚本之前先加上一个解除128号状态的命令,可是还是解除不了。
作者: 芯☆淡茹水    时间: 2013-1-31 15:23
按照LZ那种想法,我也想不出什么来,
其实个人觉得这样写比较方便:
  条件分歧如果被攻击者处于某种状态
  那么攻击者减少HP为被攻击者减少HP的十分之一(伤害反射嘛)
这样就不用强行给被攻击者附加某种状态了




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