コード例 #1
0
    private static int TryFixNet(IntPtr L)
    {
        int num = LuaDLL.lua_gettop(L);

        if (num == 3)
        {
            HotfixManager hotfixManager = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
            HotfixMode    mode          = (HotfixMode)((int)LuaScriptMgr.GetNetObject(L, 2, typeof(HotfixMode)));
            string        luaString     = LuaScriptMgr.GetLuaString(L, 3);
            bool          b             = hotfixManager.TryFixNet(mode, luaString);
            LuaScriptMgr.Push(L, b);
            return(1);
        }
        if (num == 4)
        {
            HotfixManager hotfixManager2 = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
            HotfixMode    mode2          = (HotfixMode)((int)LuaScriptMgr.GetNetObject(L, 2, typeof(HotfixMode)));
            uint          udid           = (uint)LuaScriptMgr.GetNumber(L, 3);
            object        varObject      = LuaScriptMgr.GetVarObject(L, 4);
            bool          b2             = hotfixManager2.TryFixNet(mode2, udid, varObject);
            LuaScriptMgr.Push(L, b2);
            return(1);
        }
        LuaDLL.luaL_error(L, "invalid arguments to method: HotfixManager.TryFixNet");
        return(0);
    }
コード例 #2
0
        private void ProcessCache(MemoryStream stream, int userID)
        {
            Logger.WriteLine("New cache of size " + stream.Length + " received!");
            stream.Position = 0;
            using (var bin = new BinaryReader(stream))
            {
                var xfthMagic = 'X' << 0 | 'F' << 8 | 'T' << 16 | 'H' << 24;

                if (bin.ReadUInt32() != xfthMagic)
                {
                    Logger.WriteLine("Invalid cache header!");
                    return;
                }

                var version = bin.ReadUInt32();
                if (version != 7 && version != 8)
                {
                    Logger.WriteLine("Unsupported DBCache version: " + version);
                    return;
                }

                var build = bin.ReadUInt32();
                Logger.WriteLine("Cache is for build " + build);

                // TODO: Check SHA to prevent malformed data being used
                var sha = bin.ReadBytes(32);

                stream.Position = 0;
                HotfixManager.AddCache(stream, build, userID);
            }

            dbcManager.ClearHotfixCache();
        }
コード例 #3
0
    private static int OnReconnect(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        HotfixManager hotfixManager = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");

        hotfixManager.OnReconnect();
        return(0);
    }
コード例 #4
0
    static int OnDetachFromHost(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        HotfixManager obj = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");

        obj.OnDetachFromHost();
        return(0);
    }
コード例 #5
0
    static int OnEnterSceneFinally(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        HotfixManager obj = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");

        obj.OnEnterSceneFinally();
        return(0);
    }
コード例 #6
0
    static int Dispose(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        HotfixManager obj = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");

        obj.Dispose();
        return(0);
    }
コード例 #7
0
    static int TryFixMsglist(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        HotfixManager obj = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");

        obj.TryFixMsglist();
        return(0);
    }
コード例 #8
0
    private static int GetLuaScriptMgr(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        HotfixManager hotfixManager = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        LuaScriptMgr  luaScriptMgr  = hotfixManager.GetLuaScriptMgr();

        LuaScriptMgr.PushObject(L, luaScriptMgr);
        return(1);
    }
コード例 #9
0
    private static int OnPause(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        HotfixManager hotfixManager = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        bool          boolean       = LuaScriptMgr.GetBoolean(L, 2);

        hotfixManager.OnPause(boolean);
        return(0);
    }
コード例 #10
0
    static int GetLuaScriptMgr(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 1);
        HotfixManager obj = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        LuaScriptMgr  o   = obj.GetLuaScriptMgr();

        LuaScriptMgr.PushObject(L, o);
        return(1);
    }
コード例 #11
0
    static int OnPause(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        HotfixManager obj  = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        bool          arg0 = LuaScriptMgr.GetBoolean(L, 2);

        obj.OnPause(arg0);
        return(0);
    }
コード例 #12
0
    static int OnPandoraCallback(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        HotfixManager obj  = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        string        arg0 = LuaScriptMgr.GetLuaString(L, 2);

        obj.OnPandoraCallback(arg0);
        return(0);
    }
コード例 #13
0
    static int CallLuaFunc(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 3);
        HotfixManager obj  = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        string        arg0 = LuaScriptMgr.GetLuaString(L, 2);
        string        arg1 = LuaScriptMgr.GetLuaString(L, 3);

        obj.CallLuaFunc(arg0, arg1);
        return(0);
    }
コード例 #14
0
    private static int DoLuaFile(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        HotfixManager hotfixManager = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        string        luaString     = LuaScriptMgr.GetLuaString(L, 2);
        bool          b             = hotfixManager.DoLuaFile(luaString);

        LuaScriptMgr.Push(L, b);
        return(1);
    }
コード例 #15
0
    static int DoLuaFile(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        HotfixManager obj  = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        string        arg0 = LuaScriptMgr.GetLuaString(L, 2);
        bool          o    = obj.DoLuaFile(arg0);

        LuaScriptMgr.Push(L, o);
        return(1);
    }
コード例 #16
0
    private static int TryFixClick(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 3);
        HotfixManager hotfixManager = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        HotfixMode    mode          = (HotfixMode)((int)LuaScriptMgr.GetNetObject(L, 2, typeof(HotfixMode)));
        string        luaString     = LuaScriptMgr.GetLuaString(L, 3);
        bool          b             = hotfixManager.TryFixClick(mode, luaString);

        LuaScriptMgr.Push(L, b);
        return(1);
    }
コード例 #17
0
 private static int _CreateHotfixManager(IntPtr L)
 {
     if (LuaDLL.lua_gettop(L) == 0)
     {
         HotfixManager o = new HotfixManager();
         LuaScriptMgr.PushObject(L, o);
         return(1);
     }
     LuaDLL.luaL_error(L, "invalid arguments to method: HotfixManager.New");
     return(0);
 }
コード例 #18
0
    static int ProcessOveride(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 4);
        HotfixManager obj  = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        uint          arg0 = (uint)LuaScriptMgr.GetNumber(L, 2);

        byte[] objs1 = LuaScriptMgr.GetArrayNumber <byte>(L, 3);
        int    arg2  = (int)LuaScriptMgr.GetNumber(L, 4);

        obj.ProcessOveride(arg0, objs1, arg2);
        return(0);
    }
コード例 #19
0
    static int TryFixClick(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 3);
        HotfixManager obj = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");

        XUtliPoolLib.HotfixMode arg0 = (XUtliPoolLib.HotfixMode)LuaScriptMgr.GetNetObject(L, 2, typeof(XUtliPoolLib.HotfixMode));
        string arg1 = LuaScriptMgr.GetLuaString(L, 3);
        bool   o    = obj.TryFixClick(arg0, arg1);

        LuaScriptMgr.Push(L, o);
        return(1);
    }
コード例 #20
0
    private static int TryFixHandler(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 4);
        HotfixManager hotfixManager = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        HotfixMode    mode          = (HotfixMode)((int)LuaScriptMgr.GetNetObject(L, 2, typeof(HotfixMode)));
        string        luaString     = LuaScriptMgr.GetLuaString(L, 3);
        GameObject    go            = (GameObject)LuaScriptMgr.GetUnityObject(L, 4, typeof(GameObject));
        bool          b             = hotfixManager.TryFixHandler(mode, luaString, go);

        LuaScriptMgr.Push(L, b);
        return(1);
    }
コード例 #21
0
    private static int RegistedPtc(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 4);
        HotfixManager hotfixManager = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        uint          type          = (uint)LuaScriptMgr.GetNumber(L, 2);

        byte[] arrayNumber = LuaScriptMgr.GetArrayNumber <byte>(L, 3);
        int    length      = (int)LuaScriptMgr.GetNumber(L, 4);

        hotfixManager.RegistedPtc(type, arrayNumber, length);
        return(0);
    }
コード例 #22
0
    static int TryFixHandler(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 4);
        HotfixManager obj = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");

        XUtliPoolLib.HotfixMode arg0 = (XUtliPoolLib.HotfixMode)LuaScriptMgr.GetNetObject(L, 2, typeof(XUtliPoolLib.HotfixMode));
        string     arg1 = LuaScriptMgr.GetLuaString(L, 3);
        GameObject arg2 = (GameObject)LuaScriptMgr.GetUnityObject(L, 4, typeof(GameObject));
        bool       o    = obj.TryFixHandler(arg0, arg1, arg2);

        LuaScriptMgr.Push(L, o);
        return(1);
    }
コード例 #23
0
    static int _CreateHotfixManager(IntPtr L)
    {
        int count = LuaDLL.lua_gettop(L);

        if (count == 0)
        {
            HotfixManager obj = new HotfixManager();
            LuaScriptMgr.PushObject(L, obj);
            return(1);
        }
        else
        {
            LuaDLL.luaL_error(L, "invalid arguments to method: HotfixManager.New");
        }

        return(0);
    }
コード例 #24
0
    private static int get_useHotfix(IntPtr L)
    {
        object        luaObject     = LuaScriptMgr.GetLuaObject(L, 1);
        HotfixManager hotfixManager = (HotfixManager)luaObject;

        if (hotfixManager == null)
        {
            LuaTypes luaTypes = LuaDLL.lua_type(L, 1);
            if (luaTypes == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name useHotfix");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index useHotfix on a nil value");
            }
        }
        LuaScriptMgr.Push(L, hotfixManager.useHotfix);
        return(1);
    }
コード例 #25
0
    private static int set_hotmsglist(IntPtr L)
    {
        object        luaObject     = LuaScriptMgr.GetLuaObject(L, 1);
        HotfixManager hotfixManager = (HotfixManager)luaObject;

        if (hotfixManager == null)
        {
            LuaTypes luaTypes = LuaDLL.lua_type(L, 1);
            if (luaTypes == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name hotmsglist");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index hotmsglist on a nil value");
            }
        }
        hotfixManager.hotmsglist = (Dictionary <string, string>)LuaScriptMgr.GetNetObject(L, 3, typeof(Dictionary <string, string>));
        return(0);
    }
コード例 #26
0
    static int set_useHotfix(IntPtr L)
    {
        object        o   = LuaScriptMgr.GetLuaObject(L, 1);
        HotfixManager obj = (HotfixManager)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name useHotfix");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index useHotfix on a nil value");
            }
        }

        obj.useHotfix = LuaScriptMgr.GetBoolean(L, 3);
        return(0);
    }
コード例 #27
0
    static int get_aftPath(IntPtr L)
    {
        object        o   = LuaScriptMgr.GetLuaObject(L, 1);
        HotfixManager obj = (HotfixManager)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name aftPath");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index aftPath on a nil value");
            }
        }

        LuaScriptMgr.PushArray(L, obj.aftPath);
        return(1);
    }
コード例 #28
0
    static int set_breakPath(IntPtr L)
    {
        object        o   = LuaScriptMgr.GetLuaObject(L, 1);
        HotfixManager obj = (HotfixManager)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name breakPath");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index breakPath on a nil value");
            }
        }

        obj.breakPath = LuaScriptMgr.GetArrayString(L, 3);
        return(0);
    }
コード例 #29
0
    static int get_hotmsglist(IntPtr L)
    {
        object        o   = LuaScriptMgr.GetLuaObject(L, 1);
        HotfixManager obj = (HotfixManager)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name hotmsglist");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index hotmsglist on a nil value");
            }
        }

        LuaScriptMgr.PushObject(L, obj.hotmsglist);
        return(1);
    }
コード例 #30
0
    private static int LoadHotfix(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        HotfixManager hotfixManager = (HotfixManager)LuaScriptMgr.GetNetObjectSelf(L, 1, "HotfixManager");
        LuaTypes      luaTypes      = LuaDLL.lua_type(L, 2);
        Action        finish;

        if (luaTypes != LuaTypes.LUA_TFUNCTION)
        {
            finish = (Action)LuaScriptMgr.GetNetObject(L, 2, typeof(Action));
        }
        else
        {
            LuaFunction func = LuaScriptMgr.GetLuaFunction(L, 2);
            finish = delegate
            {
                func.Call();
            };
        }
        hotfixManager.LoadHotfix(finish);
        return(0);
    }