| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- -- print("luaMain")
- if jit then
- jit.off();jit.flush()
- end
- RO_XPCALL = function (func, msgh, ...)
- if jit then
- return xpcall(func, msgh, ...)
- else
- local args = {...}
- local localfunc = function() return func(unpack(args, 1, table.maxn(args))) end
- return xpcall(localfunc, msgh)
- end
- end
- local LuaMgr = LuaMgr.Instance
- LuaMgr:AddLuaSearchPath("Lua/Core")
- LuaMgr:AddLuaSearchPath("Lua/Pb")
- LuaMgr:AddLuaSearchPath("Lua/Enum")
- LuaMgr:AddLuaSearchPath("Lua/Config")
- LuaMgr:AddLuaSearchPath("Lua/UI")
- LuaMgr:AddLuaSearchPath("Lua/FSMState")
- LuaMgr:AddLuaSearchPath("Lua/Logic")
- LuaMgr:AddLuaSearchPath("Lua/Managers")
- LuaMgr:AddLuaSearchPath("Lua/Util")
- LuaMgr:AddLuaSearchPath("ToLua/Lua")
- LuaMgr:AddLuaSearchPath("ToLua/Lua/cjson")
- LuaMgr:AddLuaSearchPath("Lua/Entities")
- LuaMgr:AddLuaSearchPath("Lua/System")
- LuaMgr:AddLuaSearchPath("Lua/RedPoint")
- require("class")
- require("LuaExtension")
- Log = function(obj, ...)
- local info = debug.getinfo(2, "Sln")
- DebugHelper.Log(obj, info.source, ...)
- end
- LogError = function(str)
- local info = debug.getinfo(2, "Sln")
- DebugHelper.LogError(info.source.." "..str)
- end
- LogWarning = function(str)
- local info = debug.getinfo(2, "Sln")
- DebugHelper.LogWarning(info.source.." "..str)
- end
- LogHRWarning = function(str)
- local info = debug.getinfo(2, "Sln")
- DebugHelper.LogWarning("[hr] "..info.source.." "..info.currentline.." "..str)
- end
- LogHRWarningStack = function (str)
- local s = ""
- for i = 2, 8 do
- local info = debug.getinfo(i, "nlS")
- if info then
- s = s .. string.format("%s:%d: in %s\n", info.source, info.currentline, info.name or "")
- end
- end
- DebugHelper.LogWarning(string.format("[hr] %s\n%s", tostring(str), s))
- end
- local percent = 0
- InternalRequire = function(name, endStep)
- if percent then
- percent = percent + 1
- LuaMgr:StartMainPrecent(percent / 180)
- end
- local data = require(name)
- if data and type(data) == 'function' then
- data = data()
- package.loaded[name] = nil
- end
- return data
- end
- FloatToPrice =function (price)
-
- if ((math.floor(price) + 0.005) > price) then
-
- return tostring(price)
-
- else
-
- return string.format("%.2f",price)
- end
-
- end
- IsNewLuadll = false
- UseOpenPay = false
- UseDbPay = true
- IsCheckServerState = false --检查
- ServerState = 0
- IShServer = function () --是否审核
- return ServerState == 1
- end
- local LuaMain = class("LuaMain")
- LuaMain.CheckServerStateWWW = nil
- _GameMain = LuaMain
- -- 这里是异步初始化, 初始化的耗时操作可放这里面
- function LuaMain:Init()
- Constant = InternalRequire("Constant")
- PlatformPack = InternalRequire("PlatformPack")
- Inspect = InternalRequire("inspect")
- Enum = InternalRequire("Enum")
- Enum.UIPageName = InternalRequire("UIPageName")
- UIEventNames = InternalRequire("UIEventNames")
- ProtoMsgId = InternalRequire("ProtoMsgId")
- ProtoConfirmMsgId = InternalRequire("ProtoConfirmMsgId")
- Bit = InternalRequire "bit"
- JSON = InternalRequire('json')
- InternalRequire("CommonUtil")
- ProtocalDataNormal = InternalRequire("ProtocalDataNormal")
- ManagerContainer = InternalRequire("ManagerContainer")
- ManagerContainer:Init()
- LogWarning(tostring(percent))
- percent = nil
- collectgarbage("collect")
- end
- local updateHandle = nil
- function LuaMain:Start()
- collectgarbage("setpause",100)
- collectgarbage("setstepmul",5000)
- LogHRWarning("lua init "..collectgarbage("count"))
- ManagerContainer = require("ManagerContainer")
- ManagerContainer:InitMgr()
- ManagerContainer.FSMMgr:RegisterStates()
- ManagerContainer.DataMgr:RegisterAllDataEvents()
- if not updateHandle then
- updateHandle = UpdateBeat:CreateListener(self.Update, self)
- end
- UpdateBeat:AddListener(updateHandle)
- LuaMgr:StartMainComplete()
- end
- function LuaMain:Update()
- if ManagerContainer ~= nil then
- ManagerContainer:Update()
- end
- if UnityEngine.Input.GetKeyUp(UnityEngine.KeyCode.Escape) then
- if SDKMgr.Instance:CheckHasModul(SDKModulType.EXIT_VIEW) then
- SDKMgr.Instance:OpenModul(SDKModulType.EXIT_VIEW)
- end
- --ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISimpleWeb, "https://www.baidu.com", nil, nil, nil, Enum.UISibling[Enum.UIType.Top] - 2)
- end
- if IsCheckServerState then
- self:CheckServerStateUpdate()
- end
- end
- function LuaMain:EnterLogin(relogin)
- if ManagerContainer.FSMMgr then
- if not ManagerContainer.FSMMgr.currentState
- or ManagerContainer.FSMMgr.currentState.stateId ~= Enum.StateEnum.LoginState.stateId
- then
- ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoginState.stateId, relogin)
- else
- ManagerContainer.FSMMgr:GetCurrentState():Enter(relogin)
- end
- end
- end
- function LuaMain:Destroy()
- if updateHandle ~= nil then
- UpdateBeat:RemoveListener(updateHandle)
- updateHandle = nil
- end
- if ManagerContainer then
- ManagerContainer:Destroy()
- end
- ManagerContainer = nil
- collectgarbage("collect")
- LogHRWarning("lua destroy "..collectgarbage("count"))
- end
- function LuaMain:CheckServerState(platform)
- if IsCheckServerState then
- local url = PlatformPack.SERVERLIST_URL .. "/serverstate?platform=" ..platform
- LogError("url = ".. url)
- self.CheckServerStateWWW = UnityEngine.WWW(url)
- end
- end
- function LuaMain:CheckServerStateUpdate()
- if self.CheckServerStateWWW ~= nil and self.CheckServerStateWWW.isDone then
- if self.CheckServerStateWWW.error and self.CheckServerStateWWW.error ~= '' then
- LogError("获取 Server State 失败!!!!")
- else
- local text = self.CheckServerStateWWW.text
- ServerState = tonumber(text)
- -- if IShServer() then
- -- Constant.OpenPay = false
- -- end
- LogError("ServerState = ".. ServerState)
- end
- self.CheckServerStateWWW:Dispose()
- self.CheckServerStateWWW = nil
- IsCheckServerState = false
- end
- end
- return LuaMain
|