漆黑处的光亮 漆黑处的光亮
不要脸是一种美德
关注数: 19 粉丝数: 187 发帖数: 1,123 关注贴吧数: 49
小小的心得,关于juggle 1、我试图用helper的inguardist来检测对手是否全屏攻击,结果放在两个角落的helper的inguardist始终不会同时返回真值——这可能是个小bug 2、air.juggle的问题:在proj上的air.juggle与cns状态里的juggle相似而且共用数值,但air.juggle不能写在hitdef里,因为会失效——实测 3、用变量记录juggle的方法:分为hitdef部分和projhit部分。 hitdef由于在movehit时的判定时间较长,直接以movehit为条件会导致重复计算,得想办法让hitdef造成的juggle变量计算只生效一次。projhit比较简单,经过实测,projhit1000=1的条件在ID为1000的proj飞行道具击中对手的第一帧返回真,因此可以直接作为条件 同时,所有juggle的变量计算都得建立在"对手不是站立和蹲下的状态"的条件下。具体写法如下 ;---------------------------------------------------------------------------juggle [State -1,juggle];初始juggle为15 Type = VarSet;变量赋值 Triggerall = RoundState =2;正在战斗中 Triggerall = p2movetype != H||p2stateno=[120,159];对手处于非被打状态时重置回到15点 Trigger1 = var(53) != 15;防止重复执行,节省内存 var(53) = 15;初始juggle变量为15 [State -1,juggle];辅助计算的变量 Type = VarSet Triggerall = RoundState =2 Trigger1 = time = 0;在每个状态的开始时归零辅助变量 var(52) = 0 [State -1,juggle];辅助计算的变量 Type = VarAdd;变量值增加 Triggerall = RoundState =2&&(p2statetype=A||p2statetype=L);正在战斗中且对手浮空或倒地 Triggerall = movehit&&p2movetype=H;击中对手且对手处于被动状态 Triggerall = var(52) <= 1;不用改动这里 Trigger1 = stateno = 200;写上要计算juggle的攻击状态状态号 var(52) = 1;不用改动这里 [State -1,juggle];juggle的减值 Type = VarAdd;变量值增加 Triggerall = RoundState =2&&(p2statetype=A||p2statetype=L);不用改动这里 Triggerall = var(52) = 1;不用改动这里 Trigger1 = stateno = 200;写上要计算juggle的攻击状态状态号 var(53) = -10;写上这个攻击击倒时需要的juggle值 [State -1,juggle] Type = VarAdd Triggerall = RoundState =2&&(p2statetype=A||p2statetype=L) Trigger1 = projhit1000 = 1;1000表示proj的ID号 var(53) = -10;写上这个proj飞行道具击倒时需要的air.juggle值
【科普】场景显示过大怎么办? 文字警告,楼主无图,以下全部是文字,有文字眩晕症的人员请迅速撤离,变态的楼主连一个滑稽都不会发的。 mugen的场景显示过大,往往是因为win版的主程序无法辨认高分辨率的场景。 高分辨率的场景,一般可以找到以下这些代码: 在场景的def文件里,找到[StageInfo]这一行,你可能看到以下这些东西: 一、localcoord,场景缩放,后面的第一个数字越大则场景越小,第二个数字则代表场景分辨率,这个代码在win主程序无法使用 二、hires,是否为高清场景,填1则以640*480的分辨率读取,用来区分高清场景,这个代码在win主程序无效 三、不存在的,其他的东西不是重点,有意了解请到千寻看场景模板翻译,传送门:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fqxmugen.com%2Fportal%2F44&urlrefer=56463d9e0810b71e3a86bc01699f0cd6 我们的重点问题就在于,高清场景的区分功能和缩放功能在win主程序失效 想要在win使用这些场景,只有两个办法 第一,把场景改为低清。 我们需要使用Fighter Factory(简称FF,在千寻有)打开场景sff文件,保存全部图片到本地,然后用ps批量调整大小为原来的二分之一(不知道怎么使用ps批量处理的,请百度“ps批量处理”), 然后替换sff里原来的图片,并且要把原来图片的坐标都写为原来的二分之一(单数的要四舍五入,比如1除以二还是1), 然后打开def文件,找这些东西 [Begin Action 0] 1,0, 0,0, 2,,AS128D128 1,0, 0,0, 2 像这个是一个动画,第一个数字和第二个数字是使用素材的编号,第三第四是坐标,第五是持续时间(以60分之1秒为1),再往后就是透明特效之类的。 要把坐标都除以二,同样四舍五入。 再找type = normal(图片)和type = anim(动画),下面如果有start = , (坐标)就把start后面数字都除以二,然后把delta = , (移动速度)后面的数字也除以二。 好了,这样就大功告成了。 对了还有第二个办法忘了讲 那就是…… 换掉这个主程序吧,退win保平安,1.0大*法好,这才是最好的办法懂吗2333333333
【写ai时的问题】偶然发现的奇怪的系统机制 正在写一个ai。 尝试让ai的防御更灵敏,于是加入了记忆对策机制。 一开始检测对手“站立时的破蹲防攻击”时十分成功。 后来尝试记忆对手“防御不能”的招式(如大地的火山拳,拉二炮的宇宙幻影) 意外地失败了。 我最初认为也许是对手的招式把我带入了对方的statedef,我在statedef -1下的检测不能生效 于是在cmd里额外创建了一个statedef -2来检测 结果连我之前检测对手“站立时的破蹲防攻击”都失效了 多次试验后,我认为是人物的每个负数statedef都只能存在一个,多出的不生效(因为我放在原有的-2下,就又生效了) 但哪怕在-2下,我检测对手的不可防御攻击仍然失败 我的检测变量是这样的 [State -2, GUARD] type = VarSet trigger1 = var(26) = 0 trigger1 = enemynear(!(enemynear,alive)),moveguarded = 0 trigger1 = gethitvar(damage) > 0 trigger1 = prevstateno = 140||prevstateno = 130||prevstateno = [150,151] var(26) = p2stateno 当我把trigger1 = prevstateno = 140||prevstateno = 130||prevstateno = [150,151]这一行注释掉之后检测成功,拉尔夫躲过了蓄满的不可防御热动 但是……为什么? 如果我不把那一行注释掉 我试着检测那种“不会把对手拉入特殊statedef”的不可防御攻击却成功检测了对手的宇宙幻影(这个宇宙幻影是不带p2stateno的hitdef) 我初步的猜测是,带p2stateno的hitdef首先会在第一帧带对手进入5000和6000之间的普通状态号 然后因为damage写在animtype下面,后触发伤害,但这时又触发了p2stateno,于是prevstateno就没有检测到自己前一帧是防御 感觉这解释超扯淡的样子 请问有没有人能为我解一下惑,求解惑
1 下一页