盘点关于AI写在-2下边会出现的bug跟处理办法
火龙吐珠 发布于 2022/06/03 03:48 · 浏览量 2151
关于
statedef -2下边的changestate
造成的bug分析
案例
[statedef -2]
[state -2] ;受身
type = changestate
triggerall = !ishelper && var(59) > 0
trigger1 = statetype = A
trigger1 = movetype = H
trigger1 = vel y > 0 && pos y >= -20
value = 5200
现在看到这是一个受身AI
如果人物不在p2stateno里边
也就是说如果人物没有被拉p2攻击
那么这个受身是没有问题的
如果人物被拉p2攻击
也就是如果人物此时在p2stateno里边
而恰好条件达成
那么进入这个5200是你这边的还是敌人那边的
答案是敌人的
为什么?
因为
[statedef -2]
下边的代码不管什么情况下都会执行
那么你在p2stateno里边自然也会执行
而p2里边执行的changestate进入的是敌人那边的号
所以会造成几个bug
1----你的动画无限循环卡死在一个状态
因为敌人的5200没有设置动画所以你还是上次状态号的动画
2----你消失了
因为敌人的5200动画转到空动画或者动画安排的图片你刚好没有
3----你的状态为0不过你变傻了不会动了
因为敌人的5200转到0站立
而敌人的0站立设置了ctrlset归零
所以你的控制被关掉了
4----你无限下沉到地底
敌人的5200有引力加载但是没有转出
5----你无限上浮上天了
敌人的5200有上升力但是没有加载引力也没有转出
6……以及很多未知的bug
解决办法:
1----把-2下边的changestate全换成selfstate
2----changestate全都写到[statedef -1]或者-3
评论(3)
登录后发表评论
谁会在-2里写AI啊
关于statedef -2下边的changestate造成的bug分析案例 [statedef -2] [state -2];受身 type=changestate triggerall=!ishelper&&var(59)>0 trigger1=statetype=A trigger1=movetype=H trigger1=vel y>0 trigger1=pos y>=-20 value=5200 现在看到这是一个受身AI如果人物不在p2stateno里边也就是说如果人物没有被拉p2攻击那么这个受身是没有问题的如果人物被拉p2攻击也就是如果人物此时在p2stateno里边而恰好条件达成那么进入这个5200是你这边的还是敌人那边的答案是敌人的 为什么?因为[statedef -2]下边的代码不管什么情况下都会执行那么你在p2stateno里边自然也会执行而p2里边执行的changestate进入的是敌人那边的号 所以会造成几个bug 1、你的动画无限循环卡死在一个状态因为敌人的5200没有设置动画所以你还是上次状态号的动画 2、你消失了因为敌人的5200动画转到空动画或者动画安排的图片你刚好没有 3、你的状态为0不过你变傻了不会动了因为敌人的5200转到0站立而敌人的0站立设置了ctrlset归零所以你的控制被关掉了 4、你无限下沉到地底敌人的5200有引力加载但是没有转出 5、你无限上浮上天了敌人的5200有上升力但是没有加载引力也没有转出 6、以及很多未知的bug解决办法: (1)把-2下边的changestate全换成selfstate (2)changestate全都写到[statedef -1]或者[statedef -3]
都乱套了, 进群573535107自己看吧