红警DIY论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 387|回复: 1

奎秃斯多个信号检测器堆叠导致信号无法删除的bug解决了

[复制链接]
发表于 2023-12-21 18:39:03 | 显示全部楼层 |阅读模式
一个菜逼们几乎没有机会碰到的bug:Stack.Watch本身如果可以堆叠,检测同一个信号,则即使写了触发后删除信号,信号也不会移除,会在检测AE生效期间每帧触发。

解决思路:
不再堆叠检测器,堆叠层数信号,每次粘贴信号时同时粘贴检测链,从第一层检测到MaxStack层,不需要删除层数信号的可以同时检测,但是每次只能同时有一个删除层数信号的检测器检测层数信号。于是可以硬性规定指定层数信号存在时触发特定效果——如粘贴对应层数的特定化检测器。如,原先试图规定存在x个检测器,则接收到触发信号时触发x次礼物盒,因为bug会无限触发;检测链中可以规定x层层数信号时触发不同的检测器,检测原来的触发信号,以触发不同礼物盒的形式模拟“检测器层数”。等于依靠叠层信号单独生成1个“特定层数效果的检测器”,而不是让检测器叠加。
缺陷:层数信号必须有限层数,导致模拟的堆叠检测器也表现为层数上限。只有不删除层数信号的可以同时检测,如果都要删除信号,互相next会很慢。

同时删除信号的方法:同时粘贴MaxStack个数的信号123456789.....以及检测器123456789........,每个检测器只检测属于自己的信号通道。特定通道检测成功就移除所有信号。
缺陷:INI过长,移除效果时需要移除超大量AE,可能因为INI过长而不读取


这是Test1234567用Next链接,HotKey1.AttachEffects只写信号和Test1的效果。因为1234567暂不涉及删除信号,所以可以优化为下面的范例。


范例:


[HTNK]
HotKey1.AttachEffects=StackSig,StackTest1,StackTest2,StackTest3,StackTest4,StackTest5,StackTest6
HotKey1.Keys=1

AttachEffectTypes=SHOWINFO

[SHOWINFO]
Info.Stack.Watch=StackSig
Info.Stack.Mode=TEXT

[StackSig]
Animation=INVISO
Duration=10
Cumulative=yes
HoldDuration=yes
MaxStack=7

[StackTest1]
Duration=2
Stack.Watch=StackSig
Stack.Level=1
Stack.Condition=EQ
Stack.RemoveAll=no
Stack.AttachEffects=SHOW1
;Next=StackTest2

[StackTest2]
Duration=2
Stack.Watch=StackSig
Stack.Level=2
Stack.Condition=EQ
Stack.RemoveAll=no
Stack.AttachEffects=SHOW2
;Next=StackTest3
Stack.RemoveEffects=SHOW1

[StackTest3]
Duration=2
Stack.Watch=StackSig
Stack.Level=3
Stack.Condition=EQ
Stack.RemoveAll=no
Stack.AttachEffects=SHOW3
;Next=StackTest4
Stack.RemoveEffects=SHOW2
[StackTest4]
Duration=2
Stack.Watch=StackSig
Stack.Level=4
Stack.Condition=EQ
Stack.RemoveAll=no
Stack.AttachEffects=SHOW4
;Next=StackTest5
Stack.RemoveEffects=SHOW3
[StackTest5]
Duration=2
Stack.Watch=StackSig
Stack.Level=5
Stack.Condition=EQ
Stack.RemoveAll=no
Stack.AttachEffects=SHOW5
;Next=StackTest6
Stack.RemoveEffects=SHOW4
[StackTest6]
Duration=2
Stack.Watch=StackSig
Stack.Level=6
Stack.Condition=EQ
Stack.RemoveAll=no
Stack.AttachEffects=SHOW6
Next=StackTest7
Stack.RemoveEffects=SHOW5
[StackTest7]
Duration=2
Stack.Watch=StackSig
Stack.Level=7
Stack.Condition=EQ
Stack.RemoveAll=yes
Stack.AttachEffects=SHOW7
Stack.RemoveEffects=SHOW6


[SHOW1]
Stand.Type=E2
Duration=100
HoldDuration=yes

[SHOW1]
Stand.Type=E1
Duration=100
HoldDuration=yes

[SHOW2]
Stand.Type=SNIPE
Duration=100
HoldDuration=yes

[SHOW3]
Stand.Type=JUMPJET
Duration=100
HoldDuration=yes

[SHOW4]
Stand.Type=ADOG
Duration=100
HoldDuration=yes

[SHOW5]
Stand.Type=ENGINEER
Duration=100
HoldDuration=yes

[SHOW6]
Stand.Type=CLEG
Duration=100
HoldDuration=yes

[SHOW7]
Stand.Type=YURIPR
Duration=100
HoldDuration=yes



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-12-21 18:59:28 | 显示全部楼层
sdlwsl
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY官方论坛

GMT+8, 2024-3-2 05:11 , Processed in 0.047581 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表