GlobalEventManger.lua 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. ---
  2. --- Generated by EmmyLua(https://github.com/EmmyLua)
  3. --- Created by PZM.
  4. --- DateTime: 2024/7/9 11:21
  5. ---@class GlobalEventManger
  6. GlobalEventManger = {}
  7. local this = GlobalEventManger
  8. function this.Init()
  9. this.RegistEvents()
  10. end
  11. function this.RegistEvents()
  12. SL:RegisterLUAEvent(LUA_EVENT_OPENMAINSYSTEMFUNCTION, this.LUA_EVENT_OPENMAINSYSTEMFUNCTION)
  13. SL:RegisterLUAEvent(LUA_EVENT_EXPAND_RIGHTSYSTEMFUNCTION, this.LUA_EVENT_EXPAND_RIGHTSYSTEMFUNCTION)
  14. SL:RegisterLUAEvent(LUA_EVENT_PANEL_LOAD_SUCCESS, this.LUA_EVENT_PANEL_LOAD_SUCCESS)
  15. SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, this.LUA_EVENT_CLOSEWIN)
  16. SL:RegisterLUAEvent(LUA_EVENT_ENTER_MAP, this.LUA_EVENT_ENTER_MAP)
  17. SL:RegisterLUAEvent(LUA_EVENT_LOGIN_MAP, this.LUA_EVENT_LOGIN_MAP)
  18. SL:RegisterLUAEvent(LUA_EVENT_PKMODE_CHANGE, this.LUA_EVENT_PKMODE_CHANGE)
  19. SL:RegisterLUAEvent(LUA_EVENT_ONHOOK_STATE_CHANGE, this.LUA_EVENT_ONHOOK_STATE_CHANGE)
  20. SL:RegisterLUAEvent(LUA_EVENT_LEVELCHANGE, this.LUA_EVENT_LEVELCHANGE)
  21. SL:RegisterLUAEvent(LUA_EVENT_OPEN_SERVER_DAY_CHANGE, this.LUA_EVENT_OPEN_SERVER_DAY_CHANGE)
  22. SL:RegisterLUAEvent(LUA_EVENT_EXIT_GAME, this.LUA_EVENT_EXIT_GAME)
  23. SL:RegisterLUAEvent(LUA_EVENT_CREATE_PLAYER_SUCCESS, this.LUA_EVENT_CREATE_PLAYER_SUCCESS)
  24. SL:RegisterLUAEvent(LUA_EVENT_FRIEND_LIST_CHANGE, this.LUA_EVENT_FRIEND_LIST_CHANGE)
  25. SL:RegisterLuaNetMsg(MessageDef.ResPlayerEnterMapMessage,this.ResPlayerEnterMapMessage)
  26. end
  27. function this.UnRegistEvents()
  28. SL:UnRegisterLUAEvent(LUA_EVENT_OPENMAINSYSTEMFUNCTION, this.LUA_EVENT_OPENMAINSYSTEMFUNCTION)
  29. SL:UnRegisterLUAEvent(LUA_EVENT_EXPAND_RIGHTSYSTEMFUNCTION, this.LUA_EVENT_EXPAND_RIGHTSYSTEMFUNCTION)
  30. SL:UnRegisterLUAEvent(LUA_EVENT_PANEL_LOAD_SUCCESS, this.LUA_EVENT_PANEL_LOAD_SUCCESS)
  31. SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, this.LUA_EVENT_CLOSEWIN)
  32. SL:UnRegisterLUAEvent(LUA_EVENT_ENTER_MAP, this.LUA_EVENT_ENTER_MAP)
  33. SL:UnRegisterLUAEvent(LUA_EVENT_LOGIN_MAP, this.LUA_EVENT_LOGIN_MAP)
  34. SL:UnRegisterLUAEvent(LUA_EVENT_ONHOOK_STATE_CHANGE, this.LUA_EVENT_ONHOOK_STATE_CHANGE)
  35. SL:UnRegisterLUAEvent(LUA_EVENT_LEVELCHANGE, this.LUA_EVENT_LEVELCHANGE)
  36. SL:UnRegisterLUAEvent(LUA_EVENT_OPEN_SERVER_DAY_CHANGE, this.LUA_EVENT_OPEN_SERVER_DAY_CHANGE)
  37. SL:UnRegisterLUAEvent(LUA_EVENT_EXIT_GAME, this.LUA_EVENT_EXIT_GAME)
  38. SL:UnRegisterLUAEvent(LUA_EVENT_FRIEND_LIST_CHANGE, this.LUA_EVENT_FRIEND_LIST_CHANGE)
  39. SL:UnRegisterLuaNetMsg(MessageDef.ResPlayerEnterMapMessage,this.ResPlayerEnterMapMessage)
  40. end
  41. function this.Reset()
  42. this.UnRegistEvents()
  43. end
  44. --打开主界面系统功能
  45. ---@param systemName string
  46. function this.LUA_EVENT_OPENMAINSYSTEMFUNCTION(_, systemName)
  47. ---@type cfg_MainPanelUI_column
  48. local tbl = cfg_MainPanelUI_post.GetSystemInfoBySystemId(systemName)
  49. if tbl and not string.isNullOrEmpty(tbl.command)then
  50. GUI:UIPanel_Open(tbl.command)
  51. SL.HideMainPanel()
  52. end
  53. end
  54. --关闭主界面系统功能
  55. ---@param panelName string
  56. function this.LUA_EVENT_CLOSEWIN(_, panelName)
  57. ---@type cfg_MainPanelUI_column
  58. local tbl = cfg_MainPanelUI_post.GetSystemInfoByPanelName(panelName)
  59. if tbl then
  60. SL.ShowMainPanel()
  61. end
  62. end
  63. --展开主界面右侧系统功能
  64. ---@param isExpand boolean
  65. function this.LUA_EVENT_EXPAND_RIGHTSYSTEMFUNCTION(_, isExpand)
  66. SL:OpenGuideEnter(isExpand)
  67. end
  68. --界面加载成功
  69. ---@param control UIKmlLuaPanelBase
  70. function this.LUA_EVENT_PANEL_LOAD_SUCCESS(_, control)
  71. GUI:AddMainPanelUIHideShowPos(control)
  72. local dataList = SL:GetSystemInfoByPanelName(control.panelName)
  73. ---@param data cfg_system_switch_column
  74. for i, data in pairs(dataList) do
  75. if data and data.btnType == ESystemType.Btn then
  76. local isShow = SL:GetMetaValue(EMetaVarGetKey.IS_OPEN_SYSTEMFUNCTION, data.systemName)
  77. SL:ControlSystemPortalVisible(data.btnPath, isShow)
  78. end
  79. end
  80. end
  81. --进入地图 预显示主界面
  82. function this.LUA_EVENT_ENTER_MAP(_, eventData)
  83. SL:ClearSystemFunctionState()
  84. GUI:UIPanel_Open("dev/ui/MainUI/Panel/KLUIPlayerInfo/KLUIPlayerInfoPanel")
  85. GUI:UIPanel_Open("dev/ui/MainUI/Panel/KLJoyStick/KLJoyStickPanel")
  86. GUI:UIPanel_Open("dev/ui/MainUI/Panel/KLUISystemLeft/KLUISystemLeftPanel")
  87. GUI:UIPanel_Open("dev/ui/MainUI/Panel/KLUILeftUp/KLUILeftUpPanel")
  88. GUI:UIPanel_Open("dev/ui/MainUI/Panel/KLUISystemTop/KLUISystemTopPanel")
  89. GUI:UIPanel_Open("dev/ui/Common/Panel/KLTop/KLTopPanel")
  90. GUI:UIPanel_Open("dev/ui/NPC/Panel/KLTalkBtn/KLTalkBtnPanel")
  91. GUI:UIPanel_Open("dev/ui/Chat/Panel/KLUIChatSmallPanel/KLUIChatSmallPanel")
  92. GUI:UIPanel_Open("dev/ui/Map/Panel/KLMiniMap/KLMiniMapPanel")
  93. GUI:UIPanel_Open("dev/ui/Role/Panel/KLUIInfo/KLUIInfoPanel")
  94. -- 功能预告入口加到KLUILeftUpPanel下
  95. local leftUpPanel = GUI:GetUI("dev/ui/MainUI/Panel/KLUILeftUp/KLUILeftUpPanel")
  96. if leftUpPanel then
  97. GUI:UIPanel_Open("dev/ui/Preview/Panel/KLPreviewEntrance/KLPreviewEntrancePanel", leftUpPanel.view.tabObjRoot)
  98. end
  99. ---非挂机状态下,和平模式自动反击
  100. local pkMode = SL:GetMetaValue(EMetaVarGetKey.PKMODE)
  101. SL:SetIsAutoCounterattack(pkMode == EPKMode.Peace)
  102. SL:AutoCounterattack(pkMode == EPKMode.Peace)
  103. SL.ShowMainPanel()
  104. end
  105. --登录地图
  106. function this.LUA_EVENT_LOGIN_MAP()
  107. end
  108. --战斗模式改变
  109. ---@param data number
  110. function this.LUA_EVENT_PKMODE_CHANGE(_, pkMode)
  111. SL:SetIsAutoCounterattack(pkMode == EPKMode.Peace)
  112. SL:AutoCounterattack(pkMode == EPKMode.Peace)
  113. end
  114. --挂机状态改变
  115. ---@param onHookStatus EAutoOnHookStatus
  116. function this.LUA_EVENT_ONHOOK_STATE_CHANGE(_, onHookStatus)
  117. if onHookStatus == EAutoOnHookStatus.OnHooking then
  118. SL:SetIsAutoCounterattack(false)
  119. elseif onHookStatus == EAutoOnHookStatus.StopOnHook then
  120. local pkMode = SL:GetMetaValue(EMetaVarGetKey.PKMODE)
  121. SL:SetIsAutoCounterattack(pkMode == EPKMode.Peace)
  122. end
  123. end
  124. ---等级改变
  125. function this.LUA_EVENT_LEVELCHANGE(_, level)
  126. --系统功能开启
  127. if GUI.uipanels then
  128. ---@param control UIKmlLuaPanelBase
  129. for i, controlList in pairs(GUI.uipanels) do
  130. for i, control in pairs(controlList) do
  131. local dataList = SL:GetSystemInfoByPanelName(control.panelName)
  132. ---@param data cfg_system_switch_column
  133. for i, data in pairs(dataList) do
  134. if data then
  135. local isShow = SL:GetMetaValue(EMetaVarGetKey.IS_OPEN_SYSTEMFUNCTION, data.systemName)
  136. SL:ControlSystemPortalVisible(data.btnPath, isShow)
  137. end
  138. end
  139. end
  140. end
  141. end
  142. end
  143. ---开服天数改变
  144. function this.LUA_EVENT_OPEN_SERVER_DAY_CHANGE(_, day)
  145. --系统功能开启
  146. if GUI.uipanels then
  147. ---@param control UIKmlLuaPanelBase
  148. for i, controlList in pairs(GUI.uipanels) do
  149. for i, control in pairs(controlList) do
  150. local dataList = SL:GetSystemInfoByPanelName(control.panelName)
  151. ---@param data cfg_system_switch_column
  152. for i, data in pairs(dataList) do
  153. if data then
  154. local isShow = SL:GetMetaValue(EMetaVarGetKey.IS_OPEN_SYSTEMFUNCTION, data.systemName)
  155. SL:ControlSystemPortalVisible(data.btnPath, isShow)
  156. end
  157. end
  158. end
  159. end
  160. end
  161. end
  162. ---退出游戏
  163. function this.LUA_EVENT_EXIT_GAME(_, data)
  164. end
  165. function this.ResPlayerEnterMapMessage()
  166. RoleManager.me.roleEffectContainer:ReleaseModelEffect(146)
  167. ---@param mapNameTipPanel KLMapNameTipPanel
  168. GUI:UIPanel_Open("dev/ui/Map/Panel/KLMapNameTip/KLMapNameTipPanel",nil,nil,nil,true,
  169. function(mapNameTipPanel)
  170. mapNameTipPanel:RefreshData(Scene.mapConfig.mapIcon)
  171. end)
  172. end
  173. ---角色创建成功事件
  174. function this.LUA_EVENT_CREATE_PLAYER_SUCCESS(id,rid)
  175. ---设置召唤兽(宠物)是否显示头顶血条
  176. local role = SL:GetRoleById(rid)
  177. if role and role.RoleType == ERoleType.Pet then
  178. local meRid = SL:GetMetaValue(EMetaVarGetKey.MAIN_ACTOR_ID)
  179. meRid = tonumber(meRid)
  180. SL:ShowOrHideHeadHp(role.data.id,role.data.masterId == meRid)
  181. end
  182. end
  183. --收到好友申请后显示刷新红点
  184. function this.LUA_EVENT_FRIEND_LIST_CHANGE()
  185. SL:RefreshPanelALLRedStateKmlByCondition("checkReceiveAddFriend")
  186. end