示例#1
0
 public static int TrigLuaEvent(IntPtr l)
 {
     if (l != IntPtr.Zero)
     {
         var cate = l.GetLua <string>(1);
         if (cate == null)
         {
             return(0);
         }
         int token = CrossEvent.TOKEN_CALL;
         var top   = l.gettop();
         CrossEvent.SetParamCount(token, Math.Max(0, top - 1));
         for (int i = 2; i <= top; ++i)
         {
             if (l.istable(i))
             {
                 CrossEvent.ContextExchangeObj = GetParams(l, i);
             }
             else
             {
                 CrossEvent.ContextExchangeObj = l.GetLua(i);
             }
             CrossEvent.SetParam(token, i - 2);
         }
         CrossEvent.TrigEvent(cate);
         int rvcnt = CrossEvent.GetParamCount(token);
         for (int i = 0; i < rvcnt; ++i)
         {
             CrossEvent.GetParam(token, i);
             if (CrossEvent.ContextExchangeObj is List <CrossEvent.EventParam> )
             {
                 PushParams(l, CrossEvent.ContextExchangeObj as List <CrossEvent.EventParam>);
             }
             else
             {
                 l.PushLua(CrossEvent.ContextExchangeObj);
             }
         }
         return(l.gettop() - top);
     }
     return(0);
 }
示例#2
0
        private static void RegCrossEvents()
        {
            CrossEvent.RegHandler("LockSptManifest", cate =>
            {
                RuntimeManifestReady.Reset();
                RuntimeManifestTaskIdle.Reset();
            });
            CrossEvent.RegHandler("SptManifestReady", cate =>
            {
                CrossEvent.GetParam(CrossEvent.TOKEN_ARGS, 0);
                var vers            = CrossEvent.ContextExchangeObj as CrossEvent.RawEventData <Dictionary <string, int> >;
                RecordedResVersions = null;
                if (vers != null)
                {
                    RecordedResVersions = vers.Data;
                }

                StartLoadRuntimeManifest();
            });
        }