玄甲苍云吧 关注:405,277贴子:4,371,766
  • 15回复贴,共1

画蛇添足 单句宏里的多条件判断

只看楼主收藏回复


周末哎了。。


IP属地:广西1楼2017-12-09 21:19回复
    今天看到的一段宏
    /cast 盾压
    /cast [rage>30&tnobuff:流血&bufftime:寒甲>3] 盾飞
    /cast [rage>30&tbufftime:流血<7&bufftime:寒甲>3] 盾飞
    /cast 盾刀
    /cast [rage>99] 盾挡
    中间的两句
    /cast [rage>30&tnobuff:流血&bufftime:寒甲>3] 盾飞
    /cast [rage>30&tbufftime:流血<7&bufftime:寒甲>3] 盾飞
    其实是可以合起来的变为一句:
    /cast [rage>30&bufftime:寒甲>3&tnobuff:流血|tbufftime:流血<7] 盾飞
    他原来是这样写的
    cast [rage>30 &tnobuff:流血|tbufftime:流血<7&bufftime:寒甲>3] 盾飞
    因为效果达不到,有时出现没buff寒甲也盾飞的情况,所以才分两句写的
    宏里的多条件与或运算 条件位置顺序不同结果千差万别
    cast [rage>30 &tnobuff:流血|tbufftime:流血<7&bufftime:寒甲>3] 盾飞
    相当于
    cast [rage>30 &tnobuff:流血] 盾飞
    cast [rage>30 &tbufftime:流血<7&bufftime:寒甲>3] 盾飞
    这两句的效果,第一句解析可以看到仅满足rage>30 &tnobuff:流血没寒甲也能盾飞
    重开贴子想重新写个多条件判断的分析,


    IP属地:广西2楼2017-12-09 21:27
    回复
      2026-03-01 04:49:51
      广告
      不感兴趣
      开通SVIP免广告

      例1: /cast [A&B|C] 技能
      A&B|C 等价于A&B 、 A&C的叠加
      /cast [rage>29 &tbufftime:流血<5|tnobuff:流血] 盾飞
      等价于:
      /cast [rage>29& tbufftime:流血<5] 盾飞
      /cast [rage>29&tnobuff:流血] 盾飞
      两句话的效果
      例2: /cast [A|B&C] 技能
      A|B&C 等价于 A 、 B&C的叠加
      /cast [rage>29 |tbufftime:流血<5&tnobuff:流血] 盾飞
      等价于:
      /cast [rage>29] 盾飞
      /cast [tbufftime:流血<5&tnobuff:流血] 盾飞
      两句话的效果


      IP属地:广西3楼2017-12-09 21:28
      回复

        例3: /cast [A&B&C|D] 技能
        A&B&C|D 等价于 A&B&C、 A&B&D的叠加
        /cast [rage>29&buff:寒甲&tbufftime:流血<5|tnobuff:流血] 盾飞
        等价于:
        /cast [rage>29&buff:寒甲& tbufftime:流血<5] 盾飞
        /cast [rage>29&buff:寒甲&tnobuff:流血] 盾飞
        两句话的效果
        例4: /cast [A&B|C&D] 技能
        A&B|C&D 等价于A&B 、 A&C&D的叠加
        /cast [rage>29 &tbufftime:流血<5|tnobuff:流血&buff:寒甲] 盾飞
        等价于:
        /cast [rage>29 & tbufftime:流血<5] 盾飞
        /cast [rage>29 & tnobuff:流血&buff:寒甲] 盾飞
        两句话的效果
        再多写个
        /cast [rage>14&tbufftime:流血<2|bufftime:盾挡<6&rage>29] 盾飞
        相当于:
        /cast [rage>14&tbufftime:流血<2] 盾飞(救流血)
        /cast [rage>14& bufftime:盾挡<6&rage>29] 盾飞
        rage>29 肯定>15,即:
        /cast [rage>14&tbufftime:流血<2] 盾飞(救流血)
        /cast [rage>29& bufftime:盾挡<6] 盾飞(盾挡buff下刷新高效流血)
        这两句话的效果
        A&B|C&D结构特别特别要小心
        例5: /cast [A&B|C|D] 技能
        A&B|C|D 等价于A&B 、 A&C 、 A&D的叠加
        /cast [rage>29 &tbufftime:流血<5|tnobuff:流血|buff:盾挡] 盾飞
        等价于:
        /cast [rage>29 & tbufftime:流血<5] 盾飞
        /cast [rage>29 & tnobuff:流血] 盾飞
        /cast [rage>29 &buff:盾挡] 盾飞
        三句话的效果


        IP属地:广西4楼2017-12-09 21:29
        回复

          五条件的也是像上面的例子对照着来


          IP属地:广西5楼2017-12-09 21:30
          回复
            再多的条件与或判断也是能解析的,写下判断过程
            多条件判断句的结构判断:
            左边单一条件和右边多条件判断的结果进行与或运算
            表述为:左边单一条件的真假 与或运算符号 右边的多条件判断语句的结果的真假
            A&B|C&D 的判断为
            A的真假 & (B|C&D)的真假
            这个是&运算需要两边都是真:
            1、 A为假时A&B|C&D都不成立;
            2、 A为真时,再看右边多条件判断的真假
            而右边多条件判断 (B|C&D)写成
            B的真假 | (C&D)的真假
            是或预算,只要两边B为真 或者 C&D为真
            综合来看 需要A为真且B为真 或者 A为真且C&D为真时候,A&B|C&D成立
            即A&B|C&D 等价于(A&B)| (A&C&D) 。
            宏语句
            /cast [A&B|C&D] 技能
            一句相当于
            /cast [A&B] 技能
            /cast [A&C&D] 技能
            两句的效果


            IP属地:广西6楼2017-12-09 21:35
            回复
              我习惯用括号来划分,括号从右往左添加
              再通过交换【 X&(Y|Z) =(X&Y)|(X&Z) ,X&(Y&Z)= X&Y&Z,X|(Y|Z)=X|Y|Z】从内到外来解析
              四条件
              /cast [A&B|C&D] 技能 :
              A&(B|(C&D))
              = (A&B)|(A&(C&D))
              = (A&B)|(A&C&D)
              结果为 A&B 、 A&C&D 的条件叠加
              五条件
              /cast [A|B&C|D&E] 技能
              A|(B&(C|(D&E)))
              = A|((B&C)|( B&(D&E)))
              = A|((B&C)|( B&D&E))
              = A| (B&C)|( B&D&E)
              结果为 A 、B&C、 (B&D&E) 的条件叠加
              宏语句
              /cast [A|B&C|D&E] 技能
              一句相当于
              /cast [A] 技能
              /cast [B&C] 技能
              /cast [B&D&E] 技能
              三句的效果


              IP属地:广西9楼2017-12-09 21:43
              回复
                我在百里的宏里见过6条件判断的,下面解析
                例6:
                /cast [bufftime:从容<15|tbuff:流血&nobuff:从容|rage<56&tbuff:流血<3&bufftime:弃容<6] 盾回
                表述为 : /cast [A|B&C|D&E&F] 技能
                A为rage<56
                B为tbuff:流血
                C为nobuff:从容
                D为rage<56
                E为tbuff:流血<3
                F 为bufftime:弃容<6
                A|(B&(C|(D&(E&F))))
                = A|(B&(C|(D&E&F)))
                = A|( (B&C)|(B& (D&E&F) ))
                = A|( (B&C)|(B&D&E&F ))
                = A| (B&C)|(B&D&E&F )
                即A|B&C|D&E&F 等价于 A、B&C、B&D&E&F的叠加
                结果为
                /cast [bufftime:从容<15] 盾回
                /cast [tbuff:流血&nobuff:从容] 盾回
                /cast [tbuff:流血&rage<56&&tbuff:流血<3&bufftime:弃容<6] 盾回
                三句的效果


                IP属地:广西10楼2017-12-09 21:44
                回复
                  2026-03-01 04:43:51
                  广告
                  不感兴趣
                  开通SVIP免广告
                  楼主单刷流血t的宏应该怎么写,有必要打闪刀吗


                  IP属地:湖南来自Android客户端11楼2017-12-09 21:49
                  收起回复
                    改了很多次了,复杂的多条件判断宏虽然节省字节,但要是条件顺序与或位置写错很容易错乱
                    你可以对照上面的表和例子自己解析出各个宏语句, 看看各个宏语句放技能的情况是不是都正确的
                    也可以对照表逆向压缩精简自己的宏语句,多变一


                    IP属地:广西13楼2017-12-09 21:56
                    回复
                      看完下来我就一个表情,两眼四顾心茫然


                      IP属地:广东来自iPhone客户端15楼2017-12-10 15:15
                      回复
                        DD,,,我就是楼主说的那个


                        IP属地:浙江16楼2017-12-10 15:21
                        回复
                          马一个


                          IP属地:广东来自Android客户端17楼2017-12-11 11:44
                          回复
                            我了个...**我盾飞哪去了


                            IP属地:安徽来自iPhone客户端19楼2017-12-12 07:15
                            回复