源战役客户端
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

195 Zeilen
6.3 KiB

  1. require("game.role.RoleManager")
  2. require("game.mainUI.MainRoleHeadInfoManager")
  3. require("game.mainUI.ExpBarManager")
  4. RoleController = RoleController or BaseClass(BaseController)
  5. function RoleController:__init()
  6. RoleController.Instance = self
  7. self.mainRoleManager = MainRoleHeadInfoManager:GetInstance()
  8. self.expBarManager = ExpBarManager:GetInstance()
  9. RoleManager:getInstance()
  10. self:registerAllProtocals()
  11. self:addAllEvents()
  12. end
  13. function RoleController:__delete()
  14. end
  15. function RoleController:registerAllProtocals()
  16. self:RegisterProtocal(13001,"on13001")
  17. self:RegisterProtocal(13002,"on13002")
  18. self:RegisterProtocal(13003,"on13003")
  19. self:RegisterProtocal(13006,"on13006")
  20. self:RegisterProtocal(13009,"on13009") --玩家当前正在参与的玩法
  21. self:RegisterProtocal(13011,"on13011")
  22. self:RegisterProtocal(13032,"on13032")
  23. self:RegisterProtocal(13033,"on13033")
  24. self:RegisterProtocal(13034,"on13034")
  25. self:RegisterProtocal(13035,"on13035")
  26. self:RegisterProtocal(13036,"on13036")
  27. self:RegisterProtocal(13020,"on13020")
  28. self:RegisterProtocal(13037,"on13037")
  29. self:RegisterProtocal(13015,"on13015")
  30. self:RegisterProtocal(13016,"on13016")
  31. end
  32. function RoleController:addAllEvents()
  33. local function onGameStartHandler()
  34. self:SendFmtToGame(13011)
  35. self:SendFmtToGame(13016)
  36. end
  37. self:Bind(EventName.GAME_START, onGameStartHandler)
  38. local function scene_start_func()
  39. RoleManager.Instance.mainRoleInfo.kill_mon_exp = 0
  40. end
  41. GlobalEventSystem:Bind(SceneEventType.SCENE_CHANGED, scene_start_func)
  42. local function reduce_role_hatred(num)
  43. self:SendFmtToGame(13035, "h", num)
  44. end
  45. GlobalEventSystem:Bind(EventName.REDUCE_ROLE_HATRED, reduce_role_hatred)
  46. end
  47. function RoleController:on13001()
  48. RoleManager.Instance.mainRoleInfo:ReadFrom13001()
  49. GlobalEventSystem:Fire(EventName.GAME_START)
  50. GlobalEventSystem:Fire(EventName.INIT_MAINUI_EVENT)--主界面创建从LoginController的canvas_fun方法移动到这里
  51. end
  52. function RoleController:on13002()
  53. local exp = UserMsgAdapter.ReadFmt("l")
  54. RoleManager.Instance.mainRoleInfo:ChangeVar("exp",exp)
  55. end
  56. function RoleController:on13003()
  57. RoleManager.Instance.mainRoleInfo:ReadFrom13003()
  58. end
  59. --更新彩钻和金币
  60. function RoleController:on13006()
  61. -- 交易券 彩钻 红钻 404钻 社团贡献 名望券 这样还搞错的话我也莫得办法了(╯‵□′)╯︵┻━┻
  62. local tong, jin, jinLock, jinPink, guild_contribute, honor = self:ReadFmt("iiiiii")
  63. if tong > RoleManager.Instance.mainRoleInfo.tong or
  64. jin > RoleManager.Instance.mainRoleInfo.jin or
  65. jinLock > RoleManager.Instance.mainRoleInfo.jinLock or
  66. honor > RoleManager.Instance.mainRoleInfo.honor then
  67. lua_soundM:PlayUIEffectSound(LuaSoundManager.SOUND_UI.SUCCESS)
  68. end
  69. RoleManager.Instance.mainRoleInfo:ChangeVar("tong",tong)
  70. RoleManager.Instance.mainRoleInfo:ChangeVar("jinLock",jinLock)
  71. local need_force_fire = false
  72. local last_jinPink = RoleManager.Instance.mainRoleInfo.jinPink
  73. RoleManager.Instance.mainRoleInfo:ChangeVar("jinPink",jinPink)
  74. if last_jinPink ~= RoleManager.Instance.mainRoleInfo.jinPink then
  75. need_force_fire = true
  76. end
  77. if need_force_fire then
  78. RoleManager.Instance.mainRoleInfo:ChangeVar("jin",jin,false,true)
  79. else
  80. RoleManager.Instance.mainRoleInfo:ChangeVar("jin",jin)
  81. end
  82. RoleManager.Instance.mainRoleInfo:ChangeVar("guild_contribute",guild_contribute)
  83. RoleManager.Instance.mainRoleInfo:ChangeVar("honor",honor)
  84. end
  85. function RoleController:on13011()
  86. RoleManager.Instance.mainRoleInfo:ReadFrom13011()
  87. GlobalEventSystem:Fire(EventName.UPDATE_WORLD_LEVEL_VIEW)
  88. end
  89. --读取八大基础属性
  90. function RoleController:on13032()
  91. RoleManager.Instance.mainRoleInfo:ReadFrom13032()
  92. end
  93. --更新主角属性
  94. function RoleController:on13033()
  95. RoleManager.Instance.mainRoleInfo:ReadFrom13033()
  96. end
  97. --更新主角仇恨值
  98. function RoleController:on13034()
  99. RoleManager.Instance.mainRoleInfo:ReadFrom13034()
  100. end
  101. function RoleController:on13035()
  102. local code,reduce,left = self:ReadFmt("ihh")
  103. if code == 1 then
  104. local str = "成功消除"..reduce.."点罪恶值,您当前的罪恶值为 <color=#73ac44>"..left.."</color>"
  105. ChatModel.Instance:AddInfoToChatView(str, ChatModel.CHANNEL_SYSTEM, 0)
  106. Message.show(str)
  107. else
  108. ErrorCodeShow(code)
  109. end
  110. end
  111. function RoleController:on13036()
  112. local expType,exp,percent = self:ReadFmt("hlh")
  113. if expType == 218 then
  114. Message.show("增加经验"..exp)
  115. elseif expType == 306 then -- 社团祝火经验值
  116. SysInfoCtrl.Instance:AppendMsg(SysInfoCtrl.SysInfoType.EXP, exp, percent)
  117. else
  118. if BeachModel:GetInstance().is_open_chat_view then
  119. return
  120. end
  121. SysInfoCtrl.Instance:AppendMsg(SysInfoCtrl.SysInfoType.EXP, exp, percent)
  122. if expType == 217 then
  123. -- if SceneManager.Instance:IsExpScene() then
  124. -- BaseDungeonModel:getInstance():Fire(BaseDungeonModel.UPDATE_EXP,exp)
  125. -- end
  126. RoleManager.Instance.mainRoleInfo.kill_mon_exp = RoleManager.Instance.mainRoleInfo.kill_mon_exp + exp
  127. end
  128. end
  129. end
  130. --获得新技能
  131. function RoleController:on13020( )
  132. local len = self:ReadFmt("h")
  133. local list = {}
  134. for i=1,len do
  135. local skill_id = self:ReadFmt("i")
  136. local cfg = SkillManager.Instance:getSkillFromConfig(skill_id)
  137. if cfg and cfg.type==2 then
  138. SkillManager.Instance:AddSkillToSkillList(skill_id)
  139. end
  140. end
  141. end
  142. function RoleController:on13037()
  143. local info = {
  144. fighting = 0,
  145. hp = 0,
  146. maxHp = 0,
  147. move_speed = 0,
  148. }
  149. info.fighting = UserMsgAdapter.ReadFmt("i")
  150. BattleProtoVo.ReadFmt(info)
  151. local main_role = Scene.Instance.main_role
  152. if main_role and main_role.name_board then
  153. main_role.name_board:SetHp(info.hp, info.maxHp)
  154. end
  155. GlobalEventSystem:Fire(EventName.UPDATE_ROLE_HEAD_INFO, info)
  156. end
  157. function RoleController:on13015( )
  158. RoleManager.Instance.mainRoleInfo:ReadFrom13015()
  159. end
  160. function RoleController:on13016( )
  161. local action_energy, max_action_energy = self:ReadFmt("cc")
  162. RoleManager.Instance.mainRoleInfo:ChangeVar("action_energy", action_energy, false, true)
  163. RoleManager.Instance.mainRoleInfo:ChangeVar("max_action_energy", max_action_energy)
  164. end
  165. --玩家当前正在参与的玩法
  166. function RoleController:on13009()
  167. local activity_id = self:ReadFmt("i") or 0
  168. SceneManager:getInstance():SetMirrorSceneId(activity_id)
  169. print('Cat:RoleController.lua[183] data', activity_id)
  170. GlobalEventSystem:Fire(EventName.SCENE_LOAD_VIEW_COMPLETE, activity_id)
  171. self.is_load_and_enter_finished = true
  172. SetAsyncUpLoadLevel(1) --场景加载完成,重置状态
  173. end