源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

334 regels
7.9 KiB

4 weken geleden
  1. require("gameplatform.Platform")
  2. require("gameplatform.PlatformSetting")
  3. PlatformMgr = PlatformMgr or BaseClass()
  4. local PlatformMgr = PlatformMgr
  5. PlatformMgr.SY_RECORD_EVENT = {
  6. LOGIN = 1001, --登录
  7. CREATE = 1002, --创角
  8. SELECT = 1003, --选角
  9. ENTER = 1004, --进入游戏
  10. }
  11. function PlatformMgr:__init()
  12. if PlatformMgr.Instance ~= nil then
  13. error("attempt to create singleton(PlatformMgr) twice!")
  14. return
  15. end
  16. PlatformMgr.Instance = self
  17. self.cur_platform = nil
  18. self.bind_level_change = false
  19. self:InitPlatform()
  20. end
  21. function PlatformMgr:getInstance()
  22. if PlatformMgr.Instance == nil then
  23. PlatformMgr.New()
  24. end
  25. return PlatformMgr.Instance
  26. end
  27. function PlatformMgr:InitPlatform()
  28. if ClientConfig.plat_lua_name and ClientConfig.plat_lua_class then
  29. require("gameplatform." .. ClientConfig.plat_lua_name)
  30. self.cur_platform = _G[ClientConfig.plat_lua_class].New()
  31. else
  32. self.cur_platform = GamePlatform.New()
  33. end
  34. if self.cur_platform then
  35. self.cur_platform:InitWindow()
  36. end
  37. local create_role = function(role_id)
  38. self:SubmitCreateRoleInfo(role_id)
  39. self:SuyouEventRecord(PlatformMgr.SY_RECORD_EVENT.CREATE)
  40. end
  41. GlobalEventSystem:Bind(LoginStateEvent.CREATE_ROLE_SUCCEED,create_role)
  42. local game_start = function()
  43. self:SubmitEnterGame()
  44. self:SuyouEventRecord(PlatformMgr.SY_RECORD_EVENT.ENTER)
  45. if not self.bind_level_change then
  46. self.bind_level_change = true
  47. local level_change = function()
  48. if self._use_delete_method then return end
  49. self:RoleLevelChange()
  50. end
  51. RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, level_change)
  52. end
  53. end
  54. GlobalEventSystem:Bind(EventName.GAME_START,game_start)
  55. end
  56. function PlatformMgr:SDKCallBack( func_name, func_data)
  57. if self.cur_platform then
  58. self.cur_platform:SDKCallBack( func_name, func_data )
  59. end
  60. end
  61. function PlatformMgr:ShowWindow( show_state )
  62. if self.cur_platform then
  63. self.cur_platform:ShowWindow( show_state )
  64. end
  65. end
  66. function PlatformMgr:LoginRequest(login_back)
  67. if self.cur_platform then
  68. self.cur_platform:LoginRequest(login_back)
  69. end
  70. end
  71. function PlatformMgr:SetLoginCallBack(login_back)
  72. if self.cur_platform then
  73. self.cur_platform:SetLoginCallBack(login_back)
  74. end
  75. end
  76. function PlatformMgr:LoginOut()
  77. if self.cur_platform then
  78. self.cur_platform:LoginOut()
  79. end
  80. end
  81. function PlatformMgr:PayRequest( custom_money, custom_info, custom_callpack )
  82. if ClientConfig.open_pay then
  83. if self.cur_platform then
  84. self.cur_platform:PayRequest( custom_money, custom_info, custom_callpack)
  85. end
  86. else
  87. Message.show("您好,游戏当前未开放充值,请等待每日发放福利!")
  88. end
  89. end
  90. function PlatformMgr:ExitPlatform()
  91. if self.cur_platform then
  92. self.cur_platform:ExitPlatform()
  93. self.cur_platform:DeleteMe()
  94. self.cur_platform = nil
  95. end
  96. end
  97. function PlatformMgr:InitWindow()
  98. if self.cur_platform then
  99. self.cur_platform:InitWindow()
  100. end
  101. end
  102. function PlatformMgr:SubmitCreateRoleInfo(role_id)
  103. if self.cur_platform then
  104. self.cur_platform:SubmitCreateRoleInfo(role_id)
  105. end
  106. end
  107. function PlatformMgr:SubmitEnterGame()
  108. if self.cur_platform then
  109. self.cur_platform:SubmitEnterGame()
  110. end
  111. end
  112. function PlatformMgr:RoleLevelChange()
  113. if self.cur_platform then
  114. self.cur_platform:RoleLevelChange()
  115. end
  116. end
  117. function PlatformMgr:SubmitSelectServer()
  118. if self.cur_platform then
  119. self.cur_platform:SubmitSelectServer()
  120. end
  121. self:SuyouEventRecord(PlatformMgr.SY_RECORD_EVENT.SELECT)
  122. end
  123. function PlatformMgr:ExitGame( default_func )
  124. if self.cur_platform then
  125. self.cur_platform:ExitPlatform()
  126. if not self.cur_platform:NeedCustomExitGame() then
  127. default_func()
  128. end
  129. end
  130. end
  131. function PlatformMgr:IsCustomUser()
  132. if self.cur_platform then
  133. return self.cur_platform:IsCustomUser()
  134. end
  135. return false
  136. end
  137. function PlatformMgr:ShowUserCenter()
  138. if self.cur_platform then
  139. self.cur_platform:ShowUserCenter()
  140. end
  141. end
  142. function PlatformMgr:RequestPayData( money, call_back )
  143. if self.cur_platform then
  144. self.cur_platform:RequestPayData(money, call_back)
  145. end
  146. end
  147. function PlatformMgr:IsPlatAlphaState()
  148. local is_alpha_state = string.find(ClientConfig.plat_name, "alpha")
  149. if is_alpha_state then
  150. return true
  151. else
  152. return false
  153. end
  154. end
  155. function PlatformMgr:NoSupportPhotoMsg()
  156. -- if ClientConfig.plat_name == "lz_leniu_smqy_yyb" and AppConst_EnglineVer < 50 then
  157. -- return "头像上传失败,请联系客服QQ:800810788"
  158. -- end
  159. return nil
  160. end
  161. function PlatformMgr:GetUserID()
  162. if self.cur_platform then
  163. return self.cur_platform:GetUserID()
  164. end
  165. end
  166. --速游专属
  167. function PlatformMgr:IsSuyouPlatform()
  168. local inner_state = string.find(ClientConfig.plat_name, "wzqst")
  169. if inner_state then
  170. return true
  171. end
  172. local suyou_state = string.find(ClientConfig.plat_name, "suyou")
  173. if suyou_state then
  174. return true
  175. end
  176. return false
  177. end
  178. function PlatformMgr:IsMlLianyun()
  179. return false
  180. end
  181. --讯飞提审用:开放聊天没有等级限制,并显示讯飞信息
  182. function PlatformMgr:IsIflyRecord()
  183. PlatformMgr.OPEN_CHAT_LIST = PlatformMgr.OPEN_CHAT_LIST or {["bgdwd"] = true, ["bfqstwd"] = true, ["bfqstml"] = true, ["bfqstiosml"] = true, ["bfqstsuyou"] = true}
  184. return PlatformMgr.OPEN_CHAT_LIST[ClientConfig.plat_name]
  185. end
  186. --内部包,根据服务端秘籍协议推送列表来判断
  187. PlatformMgr.is_internal_palt = nil
  188. function PlatformMgr:IsInternalPalt()
  189. -- if PlatformMgr.is_internal_palt == nil then
  190. -- PlatformMgr.OPEN_CHAT_LIST = PlatformMgr.INTERNAL_PLAT_LIST or {["mrsddev"] = true, ["mrzjdev"] = true}
  191. -- PlatformMgr.is_internal_palt = PlatformMgr.OPEN_CHAT_LIST[ClientConfig.plat_name]
  192. -- end
  193. return PlatformMgr.is_internal_palt
  194. end
  195. function PlatformMgr:IsLeniuPlatform()
  196. local find = string.find(ClientConfig.plat_name, "leniu")
  197. if find then
  198. return true
  199. end
  200. return false
  201. end
  202. function PlatformMgr:ShareBySDK()
  203. if self.cur_platform then
  204. self.cur_platform:ShareBySDK()
  205. end
  206. end
  207. function PlatformMgr:JumpToAppStore()
  208. Message.Show("等待跳转")
  209. end
  210. --Eyou平台(繁体)
  211. function PlatformMgr:IsEyouPlatform()
  212. local is_eyou = string.find(ClientConfig.plat_name, "lz_eyou")
  213. local is_tw = string.find(ClientConfig.plat_name, "tw")
  214. if is_eyou and is_tw then
  215. return true
  216. end
  217. return false
  218. end
  219. --Eyou平台(英文)
  220. function PlatformMgr:IsEyouEnPlatform()
  221. local is_eyou = string.find(ClientConfig.plat_name, "lz_eyou")
  222. local is_en = string.find(ClientConfig.plat_name, "en")
  223. if is_eyou and is_en then
  224. return true
  225. end
  226. return false
  227. end
  228. --Eyou平台(韩文)
  229. function PlatformMgr:IsEyouKrPlatform()
  230. local is_eyou = string.find(ClientConfig.plat_name, "lz_eyou")
  231. local is_kr = string.find(ClientConfig.plat_name, "kr")
  232. if is_eyou and is_kr then
  233. return true
  234. end
  235. return false
  236. end
  237. --Eyou平台(日文)
  238. function PlatformMgr:IsEyouJpPlatform()
  239. local is_eyou = string.find(ClientConfig.plat_name, "lz_eyou")
  240. local is_jp = string.find(ClientConfig.plat_name, "jp")
  241. if is_eyou and is_jp then
  242. return true
  243. end
  244. return false
  245. end
  246. --是否云试玩平台
  247. function PlatformMgr:IsCloudTest( )
  248. end
  249. function PlatformMgr:SuyouEventRecord( event_id )
  250. if self.cur_platform then
  251. self.cur_platform:SuyouEventRecord( event_id )
  252. end
  253. end
  254. function PlatformMgr:CanSendVoice( )
  255. if RuntimePlatform and Application.platform == RuntimePlatform.IPhonePlayer then
  256. return true
  257. end
  258. if self.cur_platform then
  259. return self.cur_platform:CanSendVoice()
  260. end
  261. end
  262. function PlatformMgr:RequestSendVoice( )
  263. if self.cur_platform then
  264. self.cur_platform:RequestAudioPermission()
  265. end
  266. end
  267. function PlatformMgr:IsNeedRequestAudioPermission( )
  268. -- if self.cur_platform then
  269. -- return self.cur_platform:IsNeedRequestAudioPermission()
  270. -- end
  271. end
  272. function PlatformMgr:SubmitSpecialData( parm_type, parm_value )
  273. if self.cur_platform then
  274. self.cur_platform:SubmitSpecialData(parm_type, parm_value)
  275. end
  276. end
  277. function PlatformMgr:TATrack( data )
  278. if self.cur_platform then
  279. self.cur_platform:TATrack(data)
  280. end
  281. end
  282. function PlatformMgr:IsForeignActivityVersion( )--是否是国外活动版本
  283. return false
  284. end