在官方声明中,M.U.G.E.N的主程序不得用于商业用途,但未限制人物等民间制作的资源的使用

切反,抓硬直,插动

切反就是在11区人编写的ai中常看见的“切り替えし”
有点类似于凹招。


先解释下凹的定义,凹其实就是对手攻击时,用带无敌的升龙或超杀等技,利用无敌时间,躲过对手的判定,打中对手。
连段中用升龙或超杀不算凹


再说下切反和凹的同异。
相同点是2者都是在p2movetype = A时做的动作。而且必须写在防御前面,不能加!inguarddist。

不同点是凹必须是用攻击反击回去,而且一般是在立回态。
切反不一定是用攻击,用带无敌的44后退,无敌的移动技(阿修罗闪空之类)躲避对手攻击也可以。
而且也包括了在防御硬直中才能发动的防反技。

其实写起来很简单,p2movetype = A的时候,出对应的招就行。。。

 

超反应相关

在p2movetype = A的时候,不考虑对手的出招整体时间的快慢,在符合条件的情况下立刻用各种切反,那就是超反应。
如果在某些情况下,不要超反应,那就得加个限制。
可以用random限制下几率
也可以设置反应时间

举个例子
[state -3,626c]
type = changestate
value = 1320
triggerall = roundstate = 2 && var(59) > 0 && statetype !=A
triggerall = power >= 1000
trigger1 = ctrl && p2movetype = A

如果你不要超反应,那再加个条件
triggerall = enemynear,time >= 30。
这样你的反应就是30F,当对手出招时间超过30F时再反应过来凹。
如果你想ai等级11以上开启超反应。
那么就这么写
triggerall = enemynear,time >= 30 || var(59) >= 11 ;这里假设var(59)是控制ai等级的

或者使ai等级直接与反应时间挂钩也行
triggerall = enemynear,time >= (33-3*var(59))


一般凹招必须再加一句triggerall = enemynear,animtime < -X
免得出现对手都快收招了你再凹结果被防的杯具。
X是升龙的发生时间,用前面教程里提到的方法测一下。

triggerall = enemynear,animtime < -X || var(59) < 9
写成这样的话,ai等级9以下就不计算对手收招时间了.。

最好再用random限制下概率
triggerall = random <= 90*var(59)

 做对人向的ai时,不推荐加入超反应。

 

抓硬直(隙付き)

先用前面教程里所讲的测招式发生速度的办法,测下某招的发生速度
假设测出某招是15F
那在这招的state下加入
triggerN = !inguarddist && enemynear,animtime < -15
triggerN = p2movetype = A || (p2movetype = I && !enemynear,ctrl)  ;对手在攻击时或做无法控制的非攻击动作时。

推荐把作为起手连段伤害高的招写在前面

 

插动(抢招)
这个是一种赌博般的行动。
不是用无敌技凹,是用发生快的轻拳,轻脚打掉对手的攻击,一般写在防御前面,不写!inguarddist。
11区那边写的ai里以“暴発”表示
一般含有类似语句
triggerall = p2movetype = A
triggerall = ctrl
triggerall = enemynear,time <= 1 ;重点是这句,必须在对手出手后1F以内。否则风险大增。
trigger1 = random <= 100         ;概率不能太高,毕竟是赌博。
trigger1 = p2stateno != 200 && p2stateno != 400  ;可以考虑加这句,一般对手的轻拳和蹲下轻拳是这2个state号,出轻拳时一般插不掉。

通常用来插动的轻拳或轻脚发生要快点,最好5F以下,7F以上的还是免了。攻击范围越长越好。


以上教程由net教授撰写

你,确定要这么做吗?
正在处理中...