[ Mugen ] - 何为 “Helper normal化”

通过 混线 等手段,获得对方的helper后,然后将对方helper扔到一个“敌处理状态”

(现代神人物都是这么做的。我则称之为 “控制中心”,用来控制所有的敌方和helper用的状态号。)


在 敌处理状态号中,让“自己helper之外的敌方的helper”  变成 “normal化的helper”。这样敌方helper就废了。因为只有player型的helper才能做有意义的事。normal的话,只能表演了。


补充一下,

根据 深蓝氏的说法:

“helpertype为normal的helper没法在-2-3下进行selfstate锁定,所以就可以”


我则是认为 废了,果然我还有很多不清楚。以深蓝氏的为准比较好。

---------------------------------------------

拿K_NaCa君的 黑白贵 的代码举例: 


[State Helper Normal化] 


type = Changestate


triggerall = !ishelper(1245012970)     ;  以下就是 一些自己的helper 


triggerall = !ishelper(121212450) 


triggerall = !ishelper(121212451) 


triggerall = !ishelper(121212452) 


triggerall = !ishelper(121212970) && !ishelper(121212971) && !ishelper(121212972) && !ishelper(121212973) 


trigger1 = ishelper && !numexplod(1297012450) 


trigger1 = hitpausetime > 1 && prevstateno != 1297012450    ; 确保存在hitpausetime进行;

                                                                                                        ;刷值。

value = 1297012450


persistent = 256


ignorehitpause = 1


这些 !ishelper(***)就是排除自己的helper,防止中招 。


当确定对方helper存在hitpausetime的时候,就进入1297012450里去处理,

这个1297012450就是让helper normal化的状态号了。


这个1297012450 状态是什么样的呢? 很显然,一般会在 名为“null.cns”或者“null.txt”

等文件里找到,因为这是一个 通过512超越法 persistent刷值的状态号。


我们依然拿 黑白贵来讲解


[Statedef 1297012450]   ;Helper Normal化
type = U
movetype = U
physics = U
hitdefpersist = 1
movehitpersist = 1

 ;  一般来说,头一个state都是changestate,用来你自己的各种需求。
[State 1]    
type = Changestate
trigger1 = !ishelper && name = "╮( ̄▽ ̄)╭"    ; 如果是自己本体
trigger2 = ishelper && root,name = "╮( ̄▽ ̄)╭"   ; 如果是自己helper
value = sysfvar(3)
persistent = 256
ignorehitpause = 1

; 这个 条件显然是,将自己本体或者自己的helper全部转走。玩意把自己helper给刷傻了,那就

;得不偿失,所以这里是确保。

; 有人问,为何上面已经确保过了,这里还要确保一下?没错,这是个人代码习惯,建议多重确保

; 防止出错。


[State 2]
type = Changestate
trigger1 = !ishelper && name != "╮( ̄▽ ̄)╭"
value = 121212970
persistent = 256      ; 超即死状态号
ignorehitpause = 1

; 上面state 2 是将 对方本体 甩入 超即死 状态



; 以下 这个state 3  是确认是否成功的。

; 这是作者的习惯,作者为了确认是否成功,所以写一个explod

; 来进行确认, 至于代码 是啥,不用管。反正 懂的人都懂。 


[state 3,parent,id确认用explod]
type = explod
trigger1 = parent,id = root,id
anim = ifelse(selfanimexist(0), 0, root,anim)
id = 970450121
postype = p1
pos = 999,999
ownpal = 1
removetime = -1
pausemovetime = 2147483648
supermovetime = 2147483648
ignorehitpause = 1

 


; 剩下的就用null 填充吧


[state 4]
type = Null
trigger1 = 1

[state 5]
type = Null
trigger1 = 1

[state 6]
type = Null
trigger1 = 1

...

...

....


[state 6700]
type = Null
trigger1 = 1



; ---------------------------------------

; 注意,下面 6701 - 6704 就是 helper的 type。

; 0 是normal型。1大概是 player型

; 以下就通过 一个 state 把type 刷成了 0(normal)

[state 6701  ,确认用explod]
type = explod
trigger1 = 1;playeridexist(id)
anim = ifelse(selfanimexist(0), 0, root,anim)
id = 1297012450
postype = p1
pos = 999,999
ownpal = 1
removetime = -1
pausemovetime = 2147483648
supermovetime = 2147483648
ignorehitpause = 1


; 注意,。512超越法 ,没必要用 null刷,所以这里,K_NaCa君,就没用null

; 用的explod,理论上用哪个都行。

; 他这里没写 persistent的值,那么默认 persistent =1.一旦默认persistent =1

; 那么刷出来的 值  就是  0  。(毕竟普通的persistent刷值原理是 :president值 - 1 嘛)


[state 6702]
type = Null
trigger1 = 1

[state 6703]
type = Null
trigger1 = 1

[state 6704]
type = Null
trigger1 = 1

; 6702 ~ 6704 不刷,因为 本来就没有值,不用刷。


; --------------------------

; 改变后,↓ 转走


[state 6705]
type = Changestate
trigger1 = 1
value = XXX   ; 其他你自定义的状态号。
persistent = 256
ignorehitpause = 1




==========================================================

========================================================


后话:

黑白贵里 不是 12 就是 450,要么就是 12450,12970.


放肆! 嘴巴这么欠,谁也保不了你!






 
评论
 
回到顶部