查看: 4410|回复: 3

[已经解决] 请问这种情况如何才能去掉攻击者的状态?

[复制链接]
梦石
0
星屑
105
在线时间
2107 小时
注册时间
2011-2-23
回帖
72
发表于 2013-1-30 20:15:45 | 显示全部楼层 |阅读模式

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

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

×
是想制作一种类似于反弹的状态,需要先判断出攻击者,所以
在Game_Battler 3里面设置了一种状态,

[pre lang="ruby" line="1"] if self.state?(84)
   self.damage = ""
   attacker.add_state(128, true)
      end[/pre]

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

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


我对脚本并不是很懂,只是根据自己搜索到的内容,大体觉得似乎应该这样写,请问问题出在哪里呢?谢谢~~
梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-1-31 14:28:10 | 显示全部楼层
个人觉得LZ再加上一个解除该状态的定义,而不是用事件来解除,因为照LZ那样,脚本里面一个被指定状态的人被攻击,脚本会反复执行LZ写的上面那段脚本。
也就是说,再定义一下:“else”,其他情况下又怎样怎样
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
105
在线时间
2107 小时
注册时间
2011-2-23
回帖
72
 楼主| 发表于 2013-1-31 15:08:20 | 显示全部楼层
本帖最后由 君子兰 于 2013-1-31 16:11 编辑
芯☆淡茹水 发表于 2013-1-31 15:28
个人觉得LZ再加上一个解除该状态的定义,而不是用事件来解除,因为照LZ那样,脚本里面一个被指定状态的人被 ...


对不起,我没有弄明白您的意思,那个else 应该是写在哪里呢?8 4号状态那个if 的后面吗?
为什么会反复执行呢?我以前也以为是不是会一直执行这个,所以写self.damage = "xxx"试了一下,xxx这几个字就只显示一次啊。我又实在不太懂脚本,请问到底是怎么个意思呢?
而且,我其实有试过,在执行这段脚本之前先加上一个解除128号状态的命令,可是还是解除不了。
回复

使用道具 举报

梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-1-31 15:23:41 | 显示全部楼层
按照LZ那种想法,我也想不出什么来,
其实个人觉得这样写比较方便:
  条件分歧如果被攻击者处于某种状态
  那么攻击者减少HP为被攻击者减少HP的十分之一(伤害反射嘛)
这样就不用强行给被攻击者附加某种状态了

点评

可以了,我在Scene_Battle 4里用脚本强行解除解决了~谢谢您了~~做这个其实想借助反弹的原理,做出有一些几率减钱减sp或者其他什么的,弄得有趣一点啦~  发表于 2013-1-31 15:45

评分

参与人数 2星屑 +30 梦石 +1 收起 理由
hcm + 1 认可答案
君子兰 + 30 塞糖

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部