【教程?】减伤系统
原贴来自mugen贴吧,作者:不该有名字
所谓的减伤系统,是月姬格斗中特有的一个系统,通过与对手攻击同步的按下按键,可以实现最高减少4成伤害的效果
而在MUGEN中,这个系统非常,非常的少见,或者说基本上是见不到的,就算见到了也不一定有效,或者可以说,这个系统只对自己有效……
那么,如何在MUGEN中实现这样的效果呢?
听起来很难,但是实际上,非常的简单。
总共只需要三段代码,外加一个变量就可以搞定。
或者不用变量也行,一段代码就能搞定,不过这样只会让除了AI外手操完全用不出来,而且也不能实现“根据对手攻击节奏按键,最高减伤4成,最低完全没效果”的这个效果
注意,这三段代码都是放在[statedef -2]下的,并且这只是手操时用的代码,AI用的代码请举一反三。
首先是第一段代码,减伤的主要代码,简单来说,原理就是通过ignorehitpause = 1让lifeadd在自己处于受击硬直时也生效
[State -2]
type = lifeadd ;生命加
triggerall = alive ;活着
triggerall = roundstate = 2 ;战斗正在进行中
↑这两段其实并不是必须的,只是为了保险而已
triggerall = gethitvar(damage) > 0
↑受到的伤害大于0
trigger1 = fvar(25) > 0.025
↑浮点小数变量25大于0.025
value = gethitvar(damage)*fvar(25)
↑ 生命增加的数值为受到的伤害乘以浮点小数25
ignorehitpause=1
↑ 在受击硬直中也生效
然后是第二段,对 浮点小数25 进行设置,当然你也可以换成23,38之类的,个人建议用浮点小数变量
[State -2]
type = varset ;变量设置
triggerall = alive
triggerall = roundstate = 2
triggerall = fvar(25) < 0.025
↑浮点小数变量25小于0.025
trigger1 = command = "start"
trigger2 = command = "a"
trigger3 = command = "b"
trigger4 = command = "c"
trigger5 = command = "x"
trigger6 = command = "y"
trigger7 = command = "z"
↑全部7个按键都定义了,不管按哪个按键都可以触发
fv = 25
value = 0.5
↑设置浮点小数变量25 为 0.5
ignorehitpause=1
最后一段,实现“节奏”的效果
[State -2]
type = varadd
trigger1 = fvar(25) > 0.025
fv = 25
value = -0.025
ignorehitpause=1
具体来说,按下按键后,浮点小数变量25变成了0.5,然后随时间过去减少,如果这个过程中对方造成了伤害,那么就会给予自己 “对手造成的伤害”乘以“浮点小数25” 的生命值
不过,这种减伤对投技之类的代码是没有用的……
如何让减伤对投技也有效果呢?
首先,你需要用到数个变量,推荐建立一个helper,节约本体的变量
然后你要用一个变量B记录本体在非受击状态下的生命,一个变量C常时记录本体的血量,一个变量D常时计算B和C的差值,然后再设置D不为零时B等于本体的血量,然后这个D就是本体在投技中受到的伤害……
然后为了防止出现双重减伤,你还要用一个变量A记录本体受到的HIT数,一个变量E在每一次D不为零时加1
最后将上面的减伤代码中的 gethitvar(damage) 替换为 变量D,条件换成变量E大于变量A
原理就是这样了