优化动画探查,传统上的那种
写得会比较零碎,因为很多东西都是纯理论,完全没有试验过,哪怕是侧面地。
第一步,召唤两名间者,分别为AB,先正常地驱动A进行动画探查,但多出一个条件,animtime=0时才切换下一个存在的动画。
第一点五步,由于我需要让AB间者共用同一个变量计数调查selfanimexist,这是关键点之一,所以我选择用最方便的做法之我本体自己来计这个数,也即selfanimexist(enemynear,var(3))。
第一点八步,本体加数时不像间者自加自用一样方便,所以本体的v3需要配合一个东西,抓人的混线反馈一条消息,target,animtime != 0。当这条触发,意味着有动画了,V3停止加数,直到其归0为止。
第二步,由于是完整彻底地调查一套动画,所以animtime会时大时小,因此AB间者探查时会额外使用一条类似于animtime <= -500来确保遇到过长的骗子动画时继续进行探查工作,所以此时先行探查的A间者一旦触发到大于等于500帧的动画时,发送一个信号,让B间者能接手探查。
第二点三步,因为A卡在骗子长动画里面出不来了,所以B不能重蹈覆辙,此时我们要先把本体的V3+1,防止B重新进入同一个动画里面浪费时间。
第二点六步,这里我使用的是由抓取间者的混线来触发并发射信号,因为target,animtime <= -500非常方便,而且它发送信号也很方便,比如说如果要使用变量或EXPLOD,我本体、混线和间者三者之间会不好重复定位player,所以此时我选择让混线发射一个ID很特别的projectile,因为proj归属BUG,实际上是【我本体在发射信号】。因此B间者检测这个信号的方法也很方便:enemynear,numprojid(7778888)。
第二点九步,B间者可以是继承A间者,也可以是短暂接手,这里我选择是短暂接手的方案,所以上面的projid需要加一条特别的参数:projremovetime = target,animtime - 3。这个意思是等A探查完毕后,信号消失,B停止,-3是给一个充裕的时间防止一些意外,同时如果还不保险可以额外增加一条,我本体当存在这个7778888proj时停止加v3。
第三步,也许完成了。
学到了