LuaGameMgr.lua 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. local LuaGameMgr = class("LuaGameMgr", function()
  2. return GameMgr.Instance
  3. end)
  4. function LuaGameMgr:ctor()
  5. self:SetOnSceneLoadedLuaFunc(self.OnSceneLoadedInLua)
  6. self:SetLuaPlayStoryFunc(self.PlayStory)
  7. self:SdkInitFunc(self.SdkInitResult)
  8. self:SdkLoginFunc(self.SdkLoginResult)
  9. self:SdkLogoutFunc(self.SdkLogoutResult)
  10. self:SdkPayFunc(self.SdkPayResult)
  11. self:SdkQuestionFunc(self.UrlQuestionRewardResult)
  12. self:SdkCanEnterServerJudgeFunc(self.SdkCanEnterServerJudgeResult)
  13. self:SetSdkLoginFuncOtherArgLuaCB()
  14. self.newbieActors = nil
  15. self.IsCreateRole = false
  16. self.loadingPageOk = false
  17. self.IsActivationCodeMode = false
  18. self.showNiewbieLoading = false
  19. self.registerEvents = false
  20. self.isPreloadedFellow = false
  21. self.sdkInited = Enum.ParamState.None
  22. self.sdkLogined = Enum.ParamState.None
  23. self.token = ''
  24. self.openId = ''
  25. self.SDKTimeSP = ''
  26. self.platform = ''
  27. self.channelName = ''
  28. self.phonelatform = 0
  29. self.serverData = {}
  30. self.canEnterServerState = Enum.ParamState.None
  31. self.isCallInit = false
  32. end
  33. function LuaGameMgr:SendBattleRecordReq(recordType,params)
  34. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_PLAYER_BATTLE_RECORD_REQ, {record_type = recordType, param_list = params})
  35. end
  36. function LuaGameMgr:OnSceneLoadedInLua(sceneType,mode)
  37. if sceneType == SceneType.CreateRoleScene then
  38. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.CreateRoleState.stateId)
  39. elseif sceneType == SceneType.NormalBattleScene then
  40. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.BattleState.stateId)
  41. elseif sceneType == SceneType.GuildLobbyScene then
  42. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.GuildLobbyState.stateId)
  43. elseif sceneType == SceneType.TowerBattleScene then
  44. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.DojoState.stateId, mode)
  45. elseif sceneType == SceneType.BossBattleScene then
  46. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.BossBattleState.stateId,mode)
  47. elseif sceneType == SceneType.TimeBattleScene then
  48. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.TimeBattleState.stateId,mode)
  49. end
  50. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loading_Close)
  51. end
  52. function LuaGameMgr:Destroy()
  53. if tolua.getpeer(self) ~= nil then
  54. tolua.setpeer(self, nil)
  55. end
  56. end
  57. function LuaGameMgr:SdkInitResult(success,platformName)
  58. self.platform = platformName
  59. LogError("========================"..platformName)
  60. --LogError("isCallInit = "..Inspect(self.isCallInit))
  61. if not self.isCallInit then
  62. return
  63. end
  64. self.sdkInited = (success and Enum.ParamState.Success or Enum.ParamState.Fail)
  65. end
  66. function LuaGameMgr:SdkLoginResult(success,openId,token,isSwitchAccount)
  67. local lastSdkLogined = self.sdkLogined
  68. self.sdkLogined = (success and Enum.ParamState.Success or Enum.ParamState.Fail)
  69. self.token = token or ''
  70. self.openId = openId or ''
  71. if success then
  72. if isSwitchAccount then
  73. if lastSdkLogined == Enum.ParamState.Success then
  74. if ManagerContainer.DataMgr.UserData:IsInitedOver() then
  75. ManagerContainer.DataMgr.UserData:SDKExitGame()
  76. end
  77. self:ClearServerData()
  78. self:ReLogin()
  79. end
  80. end
  81. end
  82. end
  83. function LuaGameMgr:SdkLogoutResult()
  84. if ManagerContainer.DataMgr.UserData:IsInitedOver() then
  85. ManagerContainer.DataMgr.UserData:SDKExitGame()
  86. end
  87. local lastSdkLogined = self.sdkLogined
  88. self.sdkLogined = Enum.ParamState.Fail
  89. self.token = ''
  90. self.openId = ''
  91. if lastSdkLogined == Enum.ParamState.Success then
  92. self:ClearServerData()
  93. self:ReLogin()
  94. end
  95. end
  96. function LuaGameMgr:SdkPayResult(success)
  97. ManagerContainer.PayMgr:SdkPayResult(success)
  98. end
  99. function LuaGameMgr:InitServerData(id, name, ip, ports, state)
  100. self.serverData.id = id
  101. self.serverData.name = name
  102. self.serverData.ip = ip
  103. self.serverData.ports = ports
  104. self.serverData.state = state
  105. self.serverData.portidx = nil
  106. end
  107. function LuaGameMgr:SetServerID(id)
  108. --LogError('============id===='..id);
  109. UnityEngine.PlayerPrefs.SetInt("ServerID",id)
  110. end
  111. function LuaGameMgr:GetServerID()
  112. return UnityEngine.PlayerPrefs.GetInt("ServerID") or -1
  113. end
  114. -- 困難模式DifficultMode
  115. function LuaGameMgr:SetDifficultMode(mode)
  116. --LogError('============id===='..id);
  117. UnityEngine.PlayerPrefs.SetInt("DifficultMode",mode)
  118. end
  119. -- <= 0 普通 ;> 0 困難
  120. function LuaGameMgr:GetDifficultMode()
  121. return UnityEngine.PlayerPrefs.GetInt("DifficultMode") or -1
  122. end
  123. function LuaGameMgr:ClearServerData()
  124. self.serverData = {}
  125. end
  126. function LuaGameMgr:ComposeCommonServerInfo(url)
  127. local openId = self.openId
  128. if openId and openId ~= '' then
  129. url = url .. '&openid=' .. tostring(openId)
  130. end
  131. local platform = self.platform
  132. if platform and platform ~= '' then
  133. url = url .. '&platform=' .. tostring(platform)
  134. end
  135. local subplatform = self.channelName
  136. if subplatform and subplatform ~= '' then
  137. url = url .. '&sub_platform=' .. tostring(subplatform)
  138. end
  139. local resVer = self.ResVersion
  140. if resVer and resVer ~= '' then
  141. url = url .. '&resver=' .. tostring(resVer)
  142. end
  143. url = url .. '&timesamp=' .. tostring(os.time())
  144. return url
  145. end
  146. --进入创建角色场景
  147. function LuaGameMgr:EnterCreateRole(activedCode)
  148. self.IsCreateRole = true
  149. self.IsActivationCodeMode = activedCode
  150. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_ENTER_CREATE_ROLE)
  151. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.CreateRoleScene)
  152. end
  153. --进入战斗
  154. function LuaGameMgr:EnterBattle(first)
  155. if ManagerContainer.FSMMgr:IsBattleState() then
  156. --ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIBattle)
  157. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattle)
  158. return;
  159. end
  160. if first == false then
  161. local nloadingId = 3
  162. if self.showNiewbieLoading then
  163. nloadingId = 2
  164. self.showNiewbieLoading = false
  165. end
  166. self:OpenLoading(Enum.UIPageName.UILoading,{loadingId = nloadingId})
  167. end
  168. --ManagerContainer.LuaActorAttributeMgr:SyncServerActorDataToLocal()
  169. --清空断线后 返回巡游 残留的远征BUFF
  170. ManagerContainer.LuaActorDataMgr:ResetData()
  171. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.NormalBattleScene,first)
  172. end
  173. --进入公会大厅
  174. function LuaGameMgr:EnterGuildLobby()
  175. if ManagerContainer.FSMMgr:IsGuildLobbyState() then
  176. return
  177. end
  178. self:OpenLoading(Enum.UIPageName.UILoading)
  179. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.GuildLobbyScene)
  180. end
  181. --进入道场
  182. function LuaGameMgr:EnterDojo(sceneName, ourActors, enemyActors,OurMarks, IsPresspoint,nPresspoint,battleEndConds)
  183. if ManagerContainer.FSMMgr:IsDojoState() then
  184. return;
  185. end
  186. local param = {}
  187. param["mode"] = BattleSubMode.Arena
  188. param["sceneName"] = sceneName
  189. param["ourActors"] = ourActors
  190. param["enemyActors"] = enemyActors
  191. param["battleEndConds"] = battleEndConds
  192. param["OurBattleMarks"] = OurMarks
  193. param["IsPresspoint"] = IsPresspoint
  194. param["nPresspoint"] = nPresspoint
  195. -- self:OpenLoading(Enum.UIPageName.UILoading)
  196. self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  197. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  198. end
  199. function LuaGameMgr:EnterHundredDojo(sceneName, ourActors, enemyActors, maxFightingTime,OurMarks,IsPresspoint,nPresspoint, battleEndConds)
  200. if ManagerContainer.FSMMgr:IsDojoState() then
  201. return;
  202. end
  203. local param = {}
  204. param["mode"] = BattleSubMode.HundredDojo
  205. param["sceneName"] = sceneName
  206. param["ourActors"] = ourActors
  207. param["enemyActors"] = enemyActors
  208. param["maxFightingTime"] = maxFightingTime
  209. param["OurBattleMarks"] = OurMarks
  210. param["IsPresspoint"] = IsPresspoint
  211. param["nPresspoint"] = nPresspoint
  212. param["battleEndConds"] = battleEndConds
  213. self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  214. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  215. end
  216. --工会战
  217. function LuaGameMgr:EnterGvGBattle(sceneName, ourActors, enemyActors, maxFightingTime, battleEndConds,OurMarksDatas,EnemyMarksDatas,IsPresspoint,nPresspoint)
  218. if ManagerContainer.FSMMgr:IsDojoState() then
  219. return;
  220. end
  221. local param = {}
  222. param["mode"] = BattleSubMode.GvG
  223. param["sceneName"] = sceneName
  224. param["ourActors"] = ourActors
  225. param["enemyActors"] = enemyActors
  226. param["maxFightingTime"] = maxFightingTime
  227. param["battleEndConds"] = battleEndConds
  228. param["OurBattleMarks"] = OurMarksDatas
  229. param["EnemyBattleMarks"] = EnemyMarksDatas
  230. param["IsPresspoint"] = IsPresspoint
  231. param["nPresspoint"] = nPresspoint
  232. self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  233. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  234. end
  235. function LuaGameMgr:EnterVoyageBattle(sceneName, ourActors, enemyActors, maxFightingTime, ourMarks,IsPresspoint,nPresspoint, battleEndConds)
  236. if ManagerContainer.FSMMgr:IsDojoState() then
  237. return;
  238. end
  239. local param = {}
  240. param["mode"] = BattleSubMode.Voyage
  241. param["sceneName"] = sceneName
  242. param["ourActors"] = ourActors
  243. param["enemyActors"] = enemyActors
  244. param["maxFightingTime"] = maxFightingTime
  245. param["battleEndConds"] = battleEndConds
  246. param["OurBattleMarks"] = ourMarks
  247. param["IsPresspoint"] = IsPresspoint
  248. param["nPresspoint"] = nPresspoint
  249. self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  250. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  251. end
  252. -- 进入资源副本战斗
  253. function LuaGameMgr:EnterResourceBattle(sceneName,bgmMusic,maxFightingTime,ourActors,enemyActors,battleEndConds)
  254. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  255. return
  256. end
  257. self:OpenLoading(Enum.UIPageName.UILoading)
  258. local param = {}
  259. param["mode"] = BattleSubMode.Resource
  260. param["sceneName"] = sceneName
  261. param["bgmMusic"] = bgmMusic
  262. param["maxFightingTime"] = maxFightingTime
  263. param["ourActors"] = ourActors
  264. param["enemyActors"] = enemyActors
  265. param["battleEndConds"] = battleEndConds
  266. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  267. end
  268. -- 进入公会狩猎boss战斗
  269. function LuaGameMgr:EnterGuildHuntBattle(sceneName, bgmMusic, maxFightingTime, ourActors, enemyActors, battleEndConds)
  270. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  271. return
  272. end
  273. self:OpenLoading(Enum.UIPageName.UILoading)
  274. local param = {}
  275. param["mode"] = BattleSubMode.Guild
  276. param["sceneName"] = sceneName
  277. param["bgmMusic"] = bgmMusic
  278. param["maxFightingTime"] = maxFightingTime
  279. param["ourActors"] = ourActors
  280. param["enemyActors"] = enemyActors
  281. param["battleEndConds"] = battleEndConds
  282. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  283. end
  284. -- 进入公会魔王boss战斗
  285. function LuaGameMgr:EnterGuildHuntExBattle(sceneName, bgmMusic, maxFightingTime, ourActors, enemyActors, battleEndConds)
  286. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  287. return
  288. end
  289. self:OpenLoading(Enum.UIPageName.UILoading)
  290. local param = {}
  291. param["mode"] = BattleSubMode.GuildEx
  292. param["sceneName"] = sceneName
  293. param["bgmMusic"] = bgmMusic
  294. param["maxFightingTime"] = maxFightingTime
  295. param["ourActors"] = ourActors
  296. param["enemyActors"] = enemyActors
  297. param["battleEndConds"] = battleEndConds
  298. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  299. end
  300. -- 进入爬塔战斗
  301. function LuaGameMgr:EnterClimbingTowerBattle(sceneName,bgmMusic,maxFightingTime,ourActors,enemyActors,battleEndConds,recordStr,battleFactors,replayername)
  302. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  303. return
  304. end
  305. self:OpenLoading(Enum.UIPageName.UILoading)
  306. local param = {}
  307. param["mode"] = BattleSubMode.ClimbingTower
  308. param["sceneName"] = sceneName
  309. param["bgmMusic"] = bgmMusic
  310. param["maxFightingTime"] = maxFightingTime
  311. param["ourActors"] = ourActors
  312. param["enemyActors"] = enemyActors
  313. param["battleEndConds"] = battleEndConds
  314. param["battleRecordStr"] = recordStr
  315. param["battleFactors"] = battleFactors
  316. if param["battleRecordStr"] ~= nil then
  317. param["replayername"] = replayername
  318. end
  319. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  320. end
  321. --PVP 爬塔
  322. function LuaGameMgr:EnterClimbingTowerBattlePvP(sceneName, bgmMusic,maxFightingTime,ourActors, enemyActors,OurMarks, IsPresspoint,nPresspoint,battleEndConds)
  323. if ManagerContainer.FSMMgr:IsDojoState() then
  324. return;
  325. end
  326. self:OpenLoading(Enum.UIPageName.UILoading)
  327. local param = {}
  328. param["mode"] = BattleSubMode.PvPClimbinglower
  329. param["sceneName"] = sceneName
  330. param["bgmMusic"] = bgmMusic
  331. param["ourActors"] = ourActors
  332. param["enemyActors"] = enemyActors
  333. param["maxFightingTime"] = maxFightingTime
  334. param["OurBattleMarks"] = OurMarks
  335. param["IsPresspoint"] = IsPresspoint
  336. param["nPresspoint"] = nPresspoint
  337. param["battleEndConds"] = battleEndConds
  338. --self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  339. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  340. end
  341. -- 进入远征之门战斗
  342. function LuaGameMgr:EnterExpeditionBattle(sceneName,bgmMusic,maxFightingTime,ourActors,enemyActors,nloadingId,serverActorData,battleEndConds,RestoreSp)
  343. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  344. return
  345. end
  346. self:OpenLoading(Enum.UIPageName.UILoading,{loadingId = nloadingId})
  347. local param = {}
  348. param["mode"] = BattleSubMode.Expedition
  349. param["sceneName"] = sceneName
  350. param["bgmMusic"] = bgmMusic
  351. param["maxFightingTime"] = maxFightingTime
  352. param["ourActors"] = ourActors
  353. param["enemyActors"] = enemyActors
  354. param["battleEndConds"] = battleEndConds
  355. param["serverActorData"] = serverActorData
  356. param['RestoreSp'] = RestoreSp
  357. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  358. end
  359. --- 进入世界boss
  360. ---@param actorDatas Array<ActorData> 进入挑战的其它玩家信息
  361. ---@param summonId boss等配置Id
  362. ---@param summonScene 战斗场景配置Id
  363. function LuaGameMgr:EnterWorldBoss(actorDatas, summonId, summonScene,battleEndConds)
  364. if ManagerContainer.FSMMgr:IsBossBattleState() then
  365. return
  366. end
  367. self:OpenLoading(Enum.UIPageName.UILoading)
  368. local param ={}
  369. param["actors"] = actorDatas
  370. param["bossId"] = summonId
  371. param["sceneId"] = summonScene
  372. param["bossMode"] = BattleSubMode.WorldBoss
  373. param["battleEndConds"] = battleEndConds
  374. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.BossBattleScene, param)
  375. end
  376. function LuaGameMgr:EnterNewbie()
  377. if ManagerContainer.FSMMgr:IsBossBattleState() then
  378. return
  379. end
  380. if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UILanuch) == false then
  381. self:OpenLoading(Enum.UIPageName.UILoading,{loadingId = 1})
  382. end
  383. -- local param ={}
  384. -- param["sceneId"] = 2
  385. -- param["bossMode"] = BattleSubMode.NewbieBoss
  386. -- ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.BossBattleScene, param)
  387. -- self:ShowNewbieLoading()
  388. self:EnterBattle(true)
  389. end
  390. --- 播放剧情动画
  391. function LuaGameMgr:PlayStory(storyType, storyId)
  392. if storyType == Enum.StoryType.Dlg then
  393. if storyId <= 0 then
  394. storyId = self:GetCurStoryId()
  395. end
  396. if storyId then
  397. ManagerContainer.UIStoryMgr:StartStoryByStoryId(storyId)
  398. return
  399. end
  400. elseif storyType == Enum.StoryType.EnterNewMap then
  401. if storyId <= 0 then
  402. storyId = self:GetCurStoryId()
  403. end
  404. if storyId then
  405. if ManagerContainer.StoryMgr:StartStoryChapterById(storyId) then
  406. return
  407. end
  408. end
  409. end
  410. self:StopStory(storyType)
  411. end
  412. function LuaGameMgr:GetCurStoryId()
  413. local luaBattleMgr = ManagerContainer.LuaBattleMgr
  414. if not luaBattleMgr then return nil end
  415. local id = luaBattleMgr:GetCurLevelUniqueId()
  416. if not id then return nil end
  417. local cfgMgr = ManagerContainer.CfgMgr
  418. if not cfgMgr then return nil end
  419. local levelCfgData = cfgMgr:GetLevelDataById(id)
  420. if not levelCfgData then return nil end
  421. return levelCfgData.DlgContentId
  422. end
  423. function LuaGameMgr:StopStory(storyType)
  424. LuaBattleBridge.CurStoryOver(storyType)
  425. end
  426. function LuaGameMgr:SetCreateRoleStatus(status)
  427. self.IsCreateRole = status
  428. end
  429. function LuaGameMgr:OpenLoading(pageId,param)
  430. self.loadingPageOk = false
  431. ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.EID_Loaded_Page_OK, self, self.OnLoadingPageOk)
  432. ManagerContainer.LuaUIMgr:Open(pageId,param)
  433. end
  434. function LuaGameMgr:OnLoadingPageOk()
  435. self.loadingPageOk = true
  436. ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.EID_Loaded_Page_OK, self, self.OnLoadingPageOk)
  437. end
  438. function LuaGameMgr:LoadCommonUIAssets()
  439. ManagerContainer.ResMgr:LoadAssetGameObjects(Constants.EffectPath, ELoadType.OTHER, function()
  440. end, unpack(Constant.Quality_FX))
  441. ManagerContainer.ResMgr:InitCommonMats()
  442. end
  443. function LuaGameMgr:ShowNewbieLoading()
  444. self.showNiewbieLoading = true
  445. end
  446. function LuaGameMgr:LuaSaveGameSpeed(speed)
  447. self:SaveGameSpeed(speed)
  448. local uid = ManagerContainer.DataMgr.UserData:GetUserId()
  449. UnityEngine.PlayerPrefs.SetString(tostring(uid).."_GameSpeed",tostring(speed))
  450. end
  451. function LuaGameMgr:LoadGameSpeed()
  452. local uid = ManagerContainer.DataMgr.UserData:GetUserId()
  453. local speedStr = UnityEngine.PlayerPrefs.GetString(tostring(uid).."_GameSpeed")
  454. if speedStr ~= nil and speedStr ~= "" then
  455. self:SaveGameSpeed(tonumber(speedStr))
  456. else
  457. self:SaveGameSpeed(1)
  458. end
  459. end
  460. function LuaGameMgr:PreloadFellowsModel()
  461. if self.isPreloadedFellow == true then
  462. return
  463. end
  464. local partnerDatas = ManagerContainer.DataMgr.PartnerData:GetPartnerDatas()
  465. local fellows = System.Array.CreateInstance(Enum.TypeInfo.ActorData,#partnerDatas)
  466. local idx = 0
  467. for _,v in pairs(partnerDatas) do
  468. if v ~= nil and not v.isBattle then
  469. local fellowActor = ActorData.CreateFellowActor(v.configId)
  470. fellows[idx] = fellowActor
  471. idx = idx + 1
  472. end
  473. end
  474. self:PreloadAllFellows(fellows)
  475. self.isPreloadedFellow = true
  476. end
  477. function LuaGameMgr:UrlQuestionRewardResult(success)
  478. if success then
  479. ManagerContainer.DataMgr.UserData:SendQuestionReward()
  480. end
  481. end
  482. function LuaGameMgr:SdkCanEnterServerJudgeResult(value)
  483. self.canEnterServerState = (value == '1' and Enum.ParamState.Success or Enum.ParamState.Fail)
  484. end
  485. function LuaGameMgr:SetSdkLoginFuncOtherArgLuaCB()
  486. if self.SdkLoginFuncOtherArg ~= nil then
  487. self:SdkLoginFuncOtherArg(self.SetLoginFuncOtherArg)
  488. end
  489. end
  490. function LuaGameMgr:SetLoginFuncOtherArg(arg)
  491. self.SDKTimeSP = arg
  492. end
  493. return LuaGameMgr