【BUG反馈】被禁用的逻辑会中断从上到下的逻辑执行过程



  • 手机发帖,没图。简单说下整个过程。
    现象:多个怪物的数据被写在同一实例内,导致后一个怪物会覆盖前一个怪物

    决定数据写在哪个实例内的条件是几个关键属性为0。循环,遇到第一个属性都为0的实例时写入属性数据,停止循环。
    预览时发现怪物的属性都是0,同时不停地在同一位置刷怪。查看全局变量,发现所有属性的加成比率都是0。
    属性加成比率是根据怪物类型决定的。

    当目标类型=“吞岩兽”时→……

    否则
    当目标类型=“震地兽”时→……

    否则
    当目标类型=“震空兽”时→……

    否则
    当目标类型=“堡垒兽”时→……

    否则
    ……

    经测试问题就出在这里。第三个类型也就是震空兽,整个逻辑块是禁用的。当首个随机出来的怪物是震空兽上面的怪物类型,刷怪一切正常;反之,当首个结果是震空兽下面的怪物类型,什么都不会发生,属性加成比率保持着初始的0。
    之所以强调首个,是因为如果怪物类型始终是震空兽下面的,那刷怪就一直异常,一旦出现一个震地或吞岩,刷怪就恢复正常了。



  • @只玩人族无敌 虽然没看懂你遇到的问题,但只看这个结构的话,被禁用的事件最好就不要和“否则”搭配使用了,如果“否则”的上一条事件是禁用的,那“否则”是固定不生效的(是不是bug我不知道,反正按否则自带的说明是说得通的,因为说明里就只说了“上一条事件”而没有说“上一条没被禁用的事件”,如果禁用就相当于完全空的条件和动作,那否则确实是固定不生效的),另外你这个结构,其实用分支选择那个组件来做应该会更方便一点,因为可以不需要写那么多否则(虽然也要写跳出,但至少不会遇到这种禁用的问题)



  • @震惊跌丝袜 问题本身很好解决,被禁用的逻辑可以删除,或者干脆去掉所有的否则。我觉得奇怪的点是为什么禁用块上面的逻辑只要执行一次,禁用块下面的也能顺利执行;而如果上面的逻辑没被执行过,则下面的永远不会执行



  • @只玩人族无敌 “否则”的效果必须是上面一条事件有产生判断且判断的结果为条件不成立,禁用就相当于没有判断,所以就直接不运行了,然后因为一个否则不运行,后面的否则也就跟着不运行了


登录后回复