魔兽地图编辑器吧 关注:65,038贴子:3,836,432
  • 16回复贴,共1

【老调重弹】字节码超过30万限制怎么办?

只看楼主收藏回复

休眠啊休眠。为什么至今还有人在问怎么办?把你不需要一开始就初始化的触发在事件的最后一行加上休眠。比如选英雄,英雄技能注册类似的。然后在选完人以后再进行手动激活。我就是把YDWE的演示图照本宣科念一遍,求求你们别再问了,再问自杀。
原理?我想大部分人都不需要知道,即使告诉你了还是不懂。ExecuteFunc啊ExecuteFunc,说完了。


IP属地:上海1楼2018-09-14 04:14回复
    要避免30W字节码限制的话,一般来说还是多开线程实在,如果懒得自己去写的,那么可以直接用VJ的委托。那个就是通过运行触发器等来实现的。
    之前都不懂,问别人的,在这里大概说下线程吧
    ExecuteFunc --调用函数,这个会开启单独开辟一个新的线程,并且是会保留原触发器等信息的,就是说那些触发器参数等是会保留的,但是效率相对来说是稍微慢一点的。立即执行,调用函数将等待被调函数返回;
    TriggerEvaluate --触发器条件成立,这个不会开启新线程,不能用TriggerSleep,速度较慢,保存原触发信息,立即执行,调用函数将等待被调函数返回;
    TriggerExecute --运行触发器(无视条件),开启新线程,这个是效率相对来说要更快一点的,保留原触发信息,但会损失掉GetTriggeringTrigger这个信息,立即执行,调用函数将等待被调函数返回;
    一般来说,不追求效率,不是很大的情况下是可以直接用ExecuteFunc的,但是那些数值比较大,而且是比较严重追求效率的情况下,推荐是使用运行触发器的,然后具体自行去开流。
    触发信息就是那些各类触发单位 触发玩家 当前触发等这些。


    IP属地:广东2楼2018-09-14 05:11
    回复(6)
      不不不,一般他们还会加一句大佬帮我写


      IP属地:广东来自Android客户端3楼2018-09-14 08:46
      回复
        模拟


        4楼2018-09-14 09:31
        回复
          经3辞,遇到这种问题,我建议tj


          IP属地:广东来自Android客户端5楼2018-09-14 11:06
          回复
            我这种彩笔连大佬在说什么都没看懂


            IP属地:上海来自iPhone客户端6楼2018-09-15 09:10
            回复
              不懂。。。单一触发不能超过30W?


              IP属地:重庆7楼2018-09-15 20:27
              回复
                我一直是用 启动计时器...
                原来ExecuteFunc 也可以啊...
                我初始化写了一堆 一次性计时器..


                IP属地:广东8楼2018-09-15 20:33
                收起回复
                  请问这条触发不初始化打开算不算休眠?


                  9楼2019-06-20 04:00
                  回复
                    3年前的我没看懂过这帖子的一句话


                    IP属地:河北10楼2021-09-03 06:54
                    回复