百度东方吧
东方吧Wiki >>所属分类 >> MUGEN   

MUGEN相关的一些名词(猎奇向)

标签: mugen 凶恶 即死

顶[23] 发表评论(0) 编辑词条

一些正常来说绝对用不到的知识。

这里收录的是让对手切实死亡的一些工序。

目录

可以用于行凶的重大bug编辑本段回目录


飞行道具的归属bug
在mugen中,由helper发出的飞行道具和由游戏者本人(下文简称为本体)发出的飞行道具一样视为由本体发出,所以飞行道具里的p1stateno改变的也是本体的状态。
状态控制器溢出

状态控制器,即sctrl,也就是statedef下的一个个state。每个statedef下最多可以有512个state,超过的话会在载入这个状态时报错。然而,当hitpausetime存在时,载入状态时只考察ignorehitpause=1的状态的数目,也就是说,只要ignorehitpause=1的state数目不超过512个,就不会报错。通过这个可以写超过512个状态在一个statedef里。每个state的persistent值都会在状态载入时写入内存中,当有hitpause存在时,ignorehitpause=0时跳过当前内存写下一个,ignorehitpause=1时则把persistent的值写入当前内存(如果当前内存里的数据为0的话。当前数据不为0的场合则减一)因为mugen只为persistent留出了512个空位,超出的话就会覆盖别的内存,从而修改本来不允许修改的数据。

野指针

指向已经被释放的内存的指针。主要是target和parentdist。

当游戏者命中对手时,对手在内存中的位置会被保存在游戏者的target下,直到游戏者的进攻结束才取消。而游戏者如果正在进行ReversalDef,它的target一直不会被取消。这就是所谓的永续target,甚至即使那个位置已经没有人了或者已经换人了也依然不受影响。这就是混线bug得以成立的根源。

此外helper的创建者即helper的parent被消除的时候,指向这个parent在内存中的位置的信息并不会消失,依然指着那个已经没有helper存在的位置。如果这时有新的helper在那个位置被创建,同时我方使用状态控制器溢出修改helper的parentID和那个新的helper一致,那个新的helper就会被认定为我们手上这个helper的parent。

字符串格式漏洞

%n bug,mugen使用的c库函数printf()包含的安全漏洞,利用这个可以展开格式化字符串攻击,修改任意内存单元直至取得计算机的控制权(理论上可以做到)

命中对手的手段编辑本段回目录

打击(hitdef)

最朴实的进攻方法,击中以后可以造成damage也可以把对方拖入自己的状态中,如果能打中的话。会被当身。

飞行道具(proj)

和hitdef相比,proj的好处在于不会被当身,可以放心进攻。

当身(ReversalDef)

定义了反弹以后,被对方击中的场合触发反弹,视为己方击中对方。

OTHK

利用当身命中对方helper之后,在p2stateno里写proj,proj下写p1stateno,用proj归属bug控制对方本体进入有攻击框的状态,我方在这时再次当身,击中对方本体。用于捕获本体无法击中也不攻击,但helper可以被击中被当身的对手

永续target

野指针的运用,用ReversalDef保持target,一次击中对方以后就能随时用targetstate将对方拖入我方状态里。

混线

永续target的运用。击中自己的helper,然后让那些helper自灭,等待对方召唤helper。如果对方召唤的helper被分配到我方自灭的helper原先所在的位置,则会成为我们的target。之后就能通过targetstate控制这些helper了。

即死状态多重化

面对“状态号不为特定值的时候脱离”的对手,设置多个即死状态号反复尝试,直到对方不脱离为止的鸟枪法。

难以被当身的hitdef

attr前段省略,混线时攻击自己的helper的时候可以放心打,不用过于担心被当身。

命中以后的工序编辑本段回目录

大伤害
damage写个大一点的数字吧,大到能一次弄死对方为止。targetlifeadd也是不错的选择。

伤害溢出

targetlifeadd超过2的31次方的时候发生溢出。反向也可以溢出。

大量小数值的targetlifeadd叠加杀害对手,回避对方的大伤害免疫。

即死投

在p2stateno中写值为零的lifeset让对方血归0.

死之宣告
在roundstate>2的时候运用targetstate和targetlifeadd杀害对手。

强制死之宣告

自杀进入roundstate3,苏生,死之宣告发动杀死对手。

落下即死

定义fall并在fall.damage下写大数值杀害对手。配合p2stateno直接送到落下状态可以增加成功率。

防御贯通炮

控制对方的helper后,再用proj归属bug让对方本体进入某个可以触发落下即死的状态,从而贯穿对方刚体。

即死返

控制对方helper后,用proj归属bug控制对方进入它自己为敌人准备的即死状态里。

TAGIN

控制对方player型helper或者本体之后放tagin,让对方的本体和player型helper进行状态跳转,解除某些状态锁定。

变数操作

取得对方本体后varset,取得对方helper后parentvarset等手段修改对方的变量,对于使用变量锁血的对手来说可以立死。

helper伪装

击中对方以后控制对方建立helper,这个helper的id和对方已有的helperid相同。这样对方如果用helper(123),var(0)为条件的话,读到的将是我们为它新建立的helper(123)的var(0).如果我们击中了对方原来的helper(123),可以顺手让其destroyself,用我们为它创建的helper(123)代替。

超即死·超即死改·超即死投·冻结当身·冻结超即死当身

把本体弄进我方状态后用状态控制器溢出bug写超过553个状态覆盖对方alive杀害对手。在当身中使用,利用对方招式本身的hitpause的就是超即死,控制对方攻击并写一个大数值的hitpausetime然后超即死就是超即死投。对方alive超过1时,一次超即死无法杀死,于是在超即死的最后写上指向超即死状态本身的状态跳转,反复循环直到对方alive为0,就是超即死改。hitpause似乎也有顺便用来封锁对方行动的用法之类的,大概吧。
helperNORMAL化,helperid变更,色表变更

同样是状态控制器溢出,将对方的helper变成normal型防止脱离,改变helper的id,改变对方的色表……从而影响对方的行动。

*亲变更
严格来说这个不是击中对方以后的事情,也不是击中对方的方法……因为根本不需要击中什么的……原理见“野指针”条目,作用就是把自己的helper的亲换成对方飞helper,从而用parentvarset修改对方helper的变量。


附件列表


→如果您认为本词条还有待完善,请 编辑词条

下一篇上海人形

东方吧Wiki现仍在不断修正完善中,如果您发现有任何确定的错误与疏漏
可以直接对错误进行改正补充,一起打造一个完善的东方Project专题Wiki
23

收藏到:  

词条信息

油炸香蕉
油炸香蕉
MUGEN编辑
最近编辑者 发短消息   
  • 浏览次数: 14775 次
  • 编辑次数: 12次 历史版本
  • 更新时间: 2011-07-09

相关词条