源战役客户端
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.

2826 Zeilen
103 KiB

  1. require("game.proto.400.Require400")
  2. require("game.proto.404.Require404")
  3. require("game.proto.405.Require405")
  4. require("game.proto.406.Require406")
  5. require("game.proto.407.Require407")
  6. require("game.proto.408.Require408")
  7. require("game.proto.410.Require410")
  8. require("game.proto.417.Require417")
  9. require("game.guild.GuildModel")
  10. -- 创建社团相关界面
  11. require("game.guild.GuildCreateView")
  12. require("game.guild.GuildCreateIconItem")
  13. require("game.guild.GuildCreateColorItem")
  14. require("game.guild.GuildCreateTabItem") -- 新增:社团创建类型节点
  15. -- 申请社团界面
  16. require("game.guild.GuildApplyView")
  17. require("game.guild.GuildApplyItem")
  18. require("game.guild.GuildBadgeItem") -- 社团荣誉勋章节点
  19. -- 社团职位申请界面
  20. require("game.guild.GuildPositionApplyView")
  21. require("game.guild.GuildPositionApplyItem")
  22. -- 社团主界面
  23. require("game.guild.GuildMainView")
  24. require("game.guild.GuildInfoView") -- 社团信息界面
  25. require("game.guild.GuildInfoMemberItem") -- 社团信息界面成员信息节点
  26. require("game.guild.GuildEditAnnounceView") -- 编辑公告界面
  27. require("game.guild.GuildActiveView") -- 社团活跃玩法界面
  28. require("game.guild.GuildActiveActItem") -- 社团活跃玩法界面社团周奖励item
  29. require("game.guild.GuildActiveTaskItem") -- 社团活跃玩法界面玩家活跃任务item
  30. require("game.guild.GuildSpellListView") -- 社团拼单玩法界面
  31. require("game.guild.GuildSpellListItem") -- 社团拼单玩法界面订单item
  32. require("game.guild.GuildSpellListInviteItem") -- 社团拼单玩法界面邀请社员节点
  33. require("game.guild.GuildSpellListHeadItem") -- 社团拼单玩法界面邀请社员头像节点
  34. require("game.guild.GuildSpellListRewardView") -- 社团拼单玩法界面奖励界面
  35. require("game.guild.GuildSpellListThankView") -- 社团拼单玩法感谢界面
  36. require("game.guild.GuildShopView") -- 社团商城界面
  37. require("game.guild.GuildShopItem") -- 社团商城界面子节点
  38. require("game.guild.GuildCommonHeadItem") -- 社团通用玩家头像
  39. require("game.guild.GuildListView") -- 社团列表界面
  40. require("game.guild.GuildListMemItem") -- 社团列表界面成员节点
  41. require("game.guild.GuildListGuildItem") -- 社团列表界面社团节点
  42. require("game.guild.GuildRenameView") -- 社团改名改标志界面
  43. -- 社团合并相关
  44. require("game.guild.GuildApplyMgrView") -- 社团申请管理界面
  45. require("game.guild.GuildApplyMgrItem") -- 社团申请管理界面--入团和职位申请节点
  46. require("game.guild.GuildApplyMergeItem") -- 社团申请管理界面--社团合并节点
  47. require("game.guild.GuildRequestMergeView") -- 社团合并发起界面
  48. require("game.guild.GuildRequestMergeItem") -- 社团合并发起界面节点
  49. require("game.guild.GuildApplySettingView") -- 社团申请设置界面
  50. -- 社团日志界面
  51. require("game.guild.GuildLogView")
  52. -- 社团活动界面
  53. require("game.guild.GuildEventView") -- 社团活动界面
  54. require("game.guild.GuildEventTabItem") -- 社团活动tab节点
  55. require("game.guild.GuildEventBossView") -- 社团活动:晚间boss界面
  56. require("game.guild.GuildEventBossRankItem") -- 社团活动:晚间boss界面
  57. require("game.guild.GuildEventCollectView") -- 社团活动:午间采集界面
  58. require("game.guild.GuildEventPartyView") -- 社团活动:社团派对界面
  59. require("game.guild.GuildEventWarView") -- 社团活动:本服团战
  60. require("game.guild.GuildEventWarItem") -- 社团活动:本服团战
  61. require("game.guild.GuildEventCSGuildRankView") -- 社团活动:本国团战活动
  62. require("game.guild.GuildActiveOpenTipsView") -- 社团活动:开启提示界面
  63. require("game.guild.GuildCollectRewardView")--封印裂隙奖励说明界面
  64. require("game.guild.GuildCollectHelpRankView")--封印裂隙协助栏
  65. require("game.guild.GuildCollectHelpRankItem")--封印裂隙协助伤害item
  66. -- 社团职位任命相关
  67. require("game.guild.GuildPositionAllotView") -- 社团职位任命主界面
  68. require("game.guild.GuildPositionAllotTabItem") -- 社团职位任命tab
  69. require("game.guild.GuildPositionAllotItem") -- 社团职位任命成员节点
  70. require("game.guild.GuildSceneView") -- 社团驻地场景界面
  71. require("game.guild.GuildSceneBossRankItem") -- 社团驻地场景界面排行item
  72. require("game.guild.GuildSceneEventBtnItem") -- 社团驻地场景活动功能按钮
  73. require("game.guild.GuildSceneCollectView") -- 社团boss活动采集界面
  74. require("game.guild.GuildSceneWarView") --本服团战场景界面
  75. require("game.guild.GuildWarRankItem") --本服团战排行界面item
  76. require("game.guild.GuildWarRankView") --本服团战排行界面
  77. require("game.guild.GuildWarResultView") --本服团战结算
  78. --社团协助界面
  79. require("game.guild.GuildSupportInfoMainView") -- 社团协助信息主界面
  80. require("game.guild.GuildSupportInfoMainTab") -- 社团协助信息主界面tab
  81. require("game.guild.GuildSupportInfoMainListView") -- 社团协助信息列表界面
  82. require("game.guild.GuildSupportInfoMainThankView") -- 社团协助信息感谢列表界面
  83. require("game.guild.GuildSupportInfoMainThankNameItem") -- 社团协助信息感谢列表界面名字Item
  84. require("game.guild.GuildSupportInfoMainThankItem") -- 社团协助信息感谢列表界面
  85. require("game.guild.GuildSupportInfoMainGiftView") -- 社团协助信息收下谢礼列表界面
  86. require("game.guild.GuildSupportInfoMainGiftItem") -- 社团协助信息收下谢礼列表界面item
  87. require("game.guild.GuildSupportTipView") --协助快捷发送界面
  88. require("game.guild.GuildSupportInfoItem") -- 社团协助信息界面item
  89. require("game.guild.GuildSupportThankView") -- 社团协助感谢界面
  90. require("game.guild.GuildSupportThankItem") -- 社团协助感谢界面item
  91. require("game.guild.GuildSupportDescTipView") -- 社团协助感谢Desc选择界面
  92. require("game.guild.GuildSupportDescTipItem") -- 社团协助感谢Desc选择界面Item
  93. require("game.guild.GuildSupportGoView") -- 社团协助前往界面
  94. require("game.guild.GuildSupportResultView") -- 社团协助结算界面
  95. require("game.guild.GuildCollectSupportTip") -- 封印裂隙协助侧边tips
  96. require("game.guild.GuildSupportAcceptView") -- 社团协助获取任务界面
  97. require("game.guild.GuildSupportGuildBossGoView") -- 社团协助boss前往界面
  98. ---------------------------------------------------------
  99. -- 社团活动玩法(guild图集以外的)相关界面在下方补充
  100. require("game.guild.guildEvent.GuildBossResultView") -- 社团协助结算界面
  101. require("game.guild.guildEvent.GuildBossResultDmgItem") -- 社团协助结算界面
  102. require("game.guild.GuildSceneRollView") -- 社团场景用 社团boss roll点界面容器
  103. require("game.guild.GuildSceneRollItem") -- 社团场景 社团boss roll点节点
  104. require("game.guild.GuildSceneRollRecordItem") -- 社团场景 社团boss roll点记录节点
  105. require("game.guild.GuildBossRollPreviewView") -- 社团场景 社团boss 奖励预览界面
  106. require("game.guild.GuildBossRollPreviewItem") -- 社团场景 社团boss 奖励预览界面节点
  107. -- 本国团战玩法相关 CSGR = Cross Server Guild Rank
  108. require("game.guildCSGR.GuildCSGRRankView") -- 本国团战玩法伤害排行界面
  109. require("game.guildCSGR.GuildCSGRRankItem") -- 本国团战玩法伤害排行界面子节点
  110. require("game.guildCSGR.GuildCSGRRewardView") -- 本国团战玩法奖励预览界面
  111. require("game.guildCSGR.GuildCSGRRewardItem") -- 本国团战玩法排行奖励预览节点
  112. require("game.guildCSGR.GuildCSGRSceneView") -- 本国团战活动场景界面
  113. require("game.guildCSGR.GuildCSGRFightInfoView") -- 本国团战对战信息界面
  114. require("game.guildCSGR.GuildCSGRFightInfoItem") -- 本国团战对战信息界面节点
  115. require("game.guildCSGR.GuildCSGRSceneRankItem") -- 本国团战玩法右侧信息节点
  116. require("game.guildCSGR.GuildCSGRSceneCollectionItem") -- 本国团战场景内右侧信息采集物信息节点
  117. require("game.guildCSGR.GuildCSGRSceneBuffItem") -- 本国团战场景内采集buff道具信息节点
  118. require("game.guildCSGR.GuildCSGRResultView") -- 本国团战结算界面
  119. -- 社团跑环答题
  120. require("game.guild.guildQuiz.GuildQuizView")
  121. require("game.guild.guildQuiz.GuildQuizResultView")
  122. ---------------------------------------------------------
  123. GuildController = GuildController or BaseClass(BaseController)
  124. local GuildController = GuildController
  125. local GetModuleIsOpen = GetModuleIsOpen
  126. local GetModuleOpenLevel = GetModuleOpenLevel
  127. function GuildController:__init()
  128. GuildController.Instance = self
  129. self.model = GuildModel:getInstance()
  130. self.first_time = 0
  131. self.last_time = 0
  132. self:EnableCheckoutClear()
  133. self:RegisterProtocals()
  134. self:InitEvent()
  135. end
  136. function GuildController:RegisterProtocals()
  137. --社团系统
  138. self:RegisterProtocal(40000,"on40000") -- 错误码展示
  139. self:RegisterProtocal(40001,"on40001") -- 社团列表界面
  140. self:RegisterProtocal(40002,"on40002") -- 申请加入社团
  141. self:RegisterProtocal(40003,"on40003") -- 批量申请
  142. self:RegisterProtocal(40004,"on40004") -- 创建社团
  143. self:RegisterProtocal(40005,"on40005") -- 获取社团信息界面-基础信息
  144. self:RegisterProtocal(40006,"on40006") -- 获取社团信息界面-成员列表
  145. self:RegisterProtocal(40007,"on40007") -- 主动退出社团
  146. self:RegisterProtocal(40008,"on40008") -- 申请列表
  147. self:RegisterProtocal(40009,"on40009") -- 审批加入社团的玩家
  148. self:RegisterProtocal(40010,"on40010") -- 审批设置界面
  149. self:RegisterProtocal(40011,"on40011") -- 设置审批
  150. self:RegisterProtocal(40012,"on40012") -- 编辑公告
  151. self:RegisterProtocal(40013,"on40013") -- 任命职位
  152. self:RegisterProtocal(40014,"on40014") -- 踢出社团
  153. self:RegisterProtocal(40015,"on40015") -- 玩家的社团信息
  154. self:RegisterProtocal(40016,"on40016") -- 全部同意/拒绝入会
  155. self:RegisterProtocal(40017,"on40017") -- 广播社团信息到场景
  156. self:RegisterProtocal(40018,"on40018") -- 申请社团职位
  157. self:RegisterProtocal(40019,"on40019") -- 公告编辑界面
  158. self:RegisterProtocal(40021,"on40021") -- 旗帜已使用
  159. self:RegisterProtocal(40022,"on40022") --请求职位管理界面
  160. self:RegisterProtocal(40023,"on40023") --职位管理职位数量
  161. self:RegisterProtocal(40024,"on40024") -- 批量任命
  162. self:RegisterProtocal(40025,"on40025") -- 修改社团信息
  163. self:RegisterProtocal(40026,"on40026") -- 解散社团
  164. self:RegisterProtocal(40027,"on40027") -- 社团商店界面
  165. self:RegisterProtocal(40028,"on40028") -- 购买商品
  166. self:RegisterProtocal(40029,"on40029") -- 社团等级经验更新
  167. self:RegisterProtocal(40030,"on40030") -- 成员离开
  168. self:RegisterProtocal(40031,"on40031") -- 社团合并
  169. self:RegisterProtocal(40032,"on40032") -- 查看吞并请求/对方请求也会收到
  170. self:RegisterProtocal(40033,"on40033") -- 吞并请求回复
  171. self:RegisterProtocal(40034,"on40034") -- 取消合并申请
  172. self:RegisterProtocal(40071,"on40071") -- 查询当前社团历史最高数量
  173. self:RegisterProtocal(40035,"on40035") -- 拼单主界面
  174. self:RegisterProtocal(40065,"on40065") -- 拼单单独更新
  175. self:RegisterProtocal(40066,"on40066") -- 拼单订单刷新
  176. self:RegisterProtocal(40036,"on40036") -- 拼单任务选中
  177. self:RegisterProtocal(40037,"on40037") -- 拼单邀请
  178. self:RegisterProtocal(40038,"on40038") -- 拼单邀请(收到)
  179. self:RegisterProtocal(40039,"on40039") -- 拼单回复(收到) 同意才发 拒绝直接X掉
  180. self:RegisterProtocal(40040,"on40040") -- 拼单任务完成
  181. self:RegisterProtocal(40041,"on40041") -- 发起感谢
  182. self:RegisterProtocal(40042,"on40042") -- 收到感谢
  183. self:RegisterProtocal(40043,"on40043") -- 社团资金更新
  184. self:RegisterProtocal(40063,"on40063") -- 社团驻地人数信息
  185. self:RegisterProtocal(40064,"on40064") -- 社团召集
  186. self:RegisterProtocal(40044,"on40044") -- 进入社团场景
  187. self:RegisterProtocal(40045,"on40045") -- 退出社团场景
  188. self:RegisterProtocal(40067,"on40067") -- 单独更新社团成员在线情况
  189. --- 社团活跃相关 ---
  190. self:RegisterProtocal(40400,"on40400") -- 社团活跃个人数据
  191. self:RegisterProtocal(40401,"on40401") -- 社团活跃任务推送(前端不请求)
  192. self:RegisterProtocal(40402,"on40402") -- 社团活跃社团劳务
  193. self:RegisterProtocal(40403,"on40403") -- 社团活跃活跃度奖励领取
  194. self:RegisterProtocal(40406,"on40406") -- 社团活跃变更广播
  195. self:RegisterProtocal(40407,"on40407") -- 社团活跃任务奖励领取
  196. -- 社团日志
  197. self:RegisterProtocal(40404,"on40404") -- 社团日志新增
  198. self:RegisterProtocal(40405,"on40405") -- 社团日志获取
  199. --午间采集玩法
  200. self:RegisterProtocal(40801,"on40801") -- 社团采集活动状态
  201. self:RegisterProtocal(40802,"on40802") -- 社团采集活动参与信息
  202. self:RegisterProtocal(40803,"on40803") -- 采集场景右上角信息
  203. self:RegisterProtocal(40804,"on40804") -- 主推通知活动变更
  204. self:RegisterProtocal(40805,"on40805") -- 主推通知采集完成后入侵怪物出现
  205. self:RegisterProtocal(40806,"on40806") -- 主推通知场景当前剩余采集怪数量
  206. self:RegisterProtocal(40807,"on40807") -- 协助者助战信息
  207. self:RegisterProtocal(40808,"on40808") -- 协助者请求怪物信息
  208. -- self:RegisterProtocal(40809,"on40809") -- 前往协助
  209. -- self:RegisterProtocal(40810,"on40810") -- 取消协助
  210. self:RegisterProtocal(40811,"on40811") -- 通知协助更新
  211. self:RegisterProtocal(40812,"on40812") --自己当前协助的Id
  212. -- 社团boss玩法
  213. self:RegisterProtocal(40600,"on40600") -- 社团boss活动状态
  214. self:RegisterProtocal(40601,"on40601") -- 社团boss血量广播
  215. self:RegisterProtocal(40602,"on40602") -- 社团boss个人伤害榜单
  216. self:RegisterProtocal(40603,"on40603") -- 社团boss社团榜单
  217. self:RegisterProtocal(40604,"on40604") -- 个体数据(请求相应榜单数据的时候 服务端会主推)
  218. self:RegisterProtocal(40605,"on40605") -- 社团boss结算数据
  219. self:RegisterProtocal(40606,"on40606") -- 社团boss状态
  220. self:RegisterProtocal(40607,"on40607") -- 鼓舞数据
  221. self:RegisterProtocal(40608,"on40608") -- 鼓舞
  222. self:RegisterProtocal(40609,"on40609") -- 社团加成次数
  223. self:RegisterProtocal(40610,"on40610") -- 社团boss拾取采集
  224. self:RegisterProtocal(40611,"on40611") -- 社团boss掉落横幅通知
  225. self:RegisterProtocal(40612,"on40612") -- 社团boss鼓舞通知
  226. self:RegisterProtocal(40613,"on40613") -- 社团boss掉落信息
  227. self:RegisterProtocal(40614,"on40614") -- 社团boss掉落roll点
  228. self:RegisterProtocal(40615,"on40615") -- 掉落roll点结算推送
  229. self:RegisterProtocal(40616,"on40616") -- 查询roll点信息
  230. -- 社团协助
  231. self:RegisterProtocal(40046,"on40046") -- 查询协助信息
  232. self:RegisterProtocal(40047,"on40047") -- 是否有协助奖励
  233. self:RegisterProtocal(40048,"on40048") -- 是否可以感谢
  234. self:RegisterProtocal(40049,"on40049") -- 感谢界面信息
  235. self:RegisterProtocal(40050,"on40050") -- 感谢
  236. self:RegisterProtocal(40051,"on40051") -- 发送协助请求
  237. self:RegisterProtocal(40052,"on40052") -- 前往协助
  238. self:RegisterProtocal(40053,"on40053") -- 取消协助
  239. self:RegisterProtocal(40054,"on40054") -- 结束协助推送
  240. self:RegisterProtocal(40055,"on40055") -- 特殊情况结束协助推送(返回后前端去请求40046)
  241. self:RegisterProtocal(40056,"on40056") -- 特殊情况结束协助推送(返回后前端去请求40046)
  242. self:RegisterProtocal(40068,"on40068") -- 感谢红包信息列表
  243. self:RegisterProtocal(40069,"on40069") -- 接收红包信息列表
  244. self:RegisterProtocal(40070,"on40070") -- 领取感谢奖励
  245. self:RegisterProtocal(40072,"on40072") -- 通知新成员加入
  246. -- 社团派对(篝火)
  247. self:RegisterProtocal(40057,"on40057") -- 社团派对活动时间信息
  248. self:RegisterProtocal(40058,"on40058") -- 社团派对界面状态信息
  249. self:RegisterProtocal(40059,"on40059") -- 社团派对经验协议
  250. self:RegisterProtocal(40061,"on40061") -- 取消协助把消息发送给请求者
  251. -- 社团活动 本服团战
  252. self:RegisterProtocal(40500,"on40500") -- 活动状态
  253. self:RegisterProtocal(40501,"on40501") -- 进入战场
  254. self:RegisterProtocal(40502,"on40502") -- 退出战场
  255. self:RegisterProtocal(40503,"on40503") -- 战场信息-个人积分-服务端主推
  256. self:RegisterProtocal(40504,"on40504") -- 战场信息-个人积分排名
  257. self:RegisterProtocal(40505,"on40505") -- 战场信息-公会积分排名
  258. self:RegisterProtocal(40506,"on40506") -- 战场信息-进入采集状态
  259. self:RegisterProtocal(40507,"on40507") -- 战场信息-采集提交
  260. self:RegisterProtocal(40508,"on40508") -- 战场信息-结算界面-服务端主推
  261. self:RegisterProtocal(40509,"on40509") -- 上期明星社团
  262. self:RegisterProtocal(40510,"on40510") -- 战场信息-BOSS出生
  263. self:RegisterProtocal(40511,"on40511") -- 战场信息-BOSS死亡
  264. self:RegisterProtocal(40512,"on40512") -- 战场信息-积分信息广播
  265. self:RegisterProtocal(40513,"on40513") -- 战场信息-护盾CD
  266. self:RegisterProtocal(40514,"on40514") -- 战场信息-使用护盾
  267. -- 本国团战
  268. self:RegisterProtocal(41000,"on41000") -- 本国团战信息
  269. self:RegisterProtocal(41001,"on41001") -- 对战信息
  270. self:RegisterProtocal(41002,"on41002") -- 进入/退出本国团战战场
  271. self:RegisterProtocal(41003,"on41003") -- 本国团战社团采集信息
  272. self:RegisterProtocal(41004,"on41004") -- 本国团战战场物资信息
  273. self:RegisterProtocal(41005,"on41005") -- 本国团战伤害排名(二级界面)
  274. self:RegisterProtocal(41006,"on41006") -- 本国团战社团伤害输出排名(S主推定时刷新)
  275. self:RegisterProtocal(41007,"on41007") -- 本国团战结算界面
  276. self:RegisterProtocal(41008,"on41008") -- 本国团战物资采集点请求
  277. self:RegisterProtocal(41009,"on41009") -- 本国团战采集信息推送
  278. -- 社团跑环答题
  279. self:RegisterProtocal(41700,"on41700") -- 触发跑环协助推送
  280. self:RegisterProtocal(41701,"on41701") -- 获取答题内容
  281. self:RegisterProtocal(41702,"on41702") -- 答题
  282. self:RegisterProtocal(41703,"on41703") -- 答题结束
  283. self:RegisterProtocal(41704,"on41704") -- 答题强制结束
  284. self:RegisterProtocal(41705,"on41705") -- 重连
  285. self:RegisterProtocal(41706,"on41706") -- 虚空副本信息
  286. end
  287. function GuildController:InitEvent()
  288. local function onRequestHandler(...)
  289. local args = {...}
  290. --如果在跨服组队中,就先退出队伍
  291. if (args[1] == 40301) then --进入活动的协议号
  292. local function call_back()--重新进入活动的协议
  293. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,args[1],args[2])
  294. end
  295. if BaseDungeonController.Instance:QuitDungeonTeam(self,call_back) then
  296. return
  297. end
  298. elseif (args[1] == 40230) then
  299. local function call_back()--重新进入活动的协议
  300. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,args[1])
  301. end
  302. if BaseDungeonController.Instance:QuitDungeonTeam(self,call_back) then
  303. return
  304. end
  305. end
  306. self.igonre_once = false
  307. --如果在跨服组队中,就先退出队伍
  308. if args[1] == 40016 or args[1] == 40018 or args[1] == 40403
  309. or args[1] == 40602 or args[1] == 40603 or args[1] == 41002 or args[1] == 40041 then
  310. self:SendFmtToGame(args[1],"c",args[2])
  311. elseif args[1] == 40036 or args[1] == 40604 then
  312. self:SendFmtToGame(args[1],"cc",args[2],args[3])
  313. elseif args[1] == 40014 or args[1] == 40031
  314. or args[1] == 40049 or args[1] == 40052
  315. or args[1] == 40808 or args[1] == 40809
  316. then
  317. self:SendFmtToGame(args[1],"l",args[2])
  318. elseif args[1] == 40013 then
  319. self:SendFmtToGame(args[1],"lc",args[2],args[3])
  320. elseif args[1] == 41702 then
  321. self:SendFmtToGame(args[1],"ic",args[2],args[3])
  322. elseif args[1] == 40028 then
  323. self:SendFmtToGame(args[1],"ih",args[2],args[3])
  324. elseif args[1] == 40022 then
  325. self:SendFmtToGame(args[1], "hh", args[2],args[3]) --请求职位管理
  326. elseif args[1] == 40050 then
  327. self:SendFmtToGame(args[1], "cls", args[2], args[3], args[4])
  328. elseif args[1] == 40051 then
  329. self:SendFmtToGame(args[1], "hhhl", args[2], args[3], args[4], args[5])
  330. elseif args[1] == 40608 or args[1] == 40501 then
  331. self:SendFmtToGame(args[1], "c", args[2])
  332. elseif args[1] == 40610 then
  333. self:SendFmtToGame(args[1], "ci", args[2], args[3])
  334. elseif args[1] == 41001 or args[1] == 41005 then
  335. self:SendFmtToGame(args[1], "ccc", args[2], args[3], args[4])
  336. elseif args[1] == 40507 or args[1] == 41008 then
  337. -- print(">>>>>>>>>>40507 ", args[1], args[2])
  338. self:SendFmtToGame(args[1], "i", args[2])
  339. elseif args[1] == 40064 or args[1] == 40407 or args[1] == 40616 then
  340. self:SendFmtToGame(args[1], "h", args[2])
  341. elseif args[1] == 40025 then
  342. self:SendFmtToGame(args[1], "csi", args[2], args[3], args[4])
  343. elseif args[1] == 40033 or args[1] == 40037 or args[1] == 40039 or args[1] == 40070 then
  344. self:SendFmtToGame(args[1], "cl", args[2], args[3])
  345. elseif args[1] == 40614 then
  346. self:SendFmtToGame(args[1], "ch", args[2], args[3])
  347. else
  348. self:SendFmtToGame(args[1])
  349. end
  350. end
  351. self.model:Bind(GuildModel.REQUEST_CCMD_EVENT,onRequestHandler)
  352. local function onSceneStartHandler()
  353. self:ChangeScene()
  354. end
  355. self:Bind(EventName.CAN_FIND_NPC, onSceneStartHandler)
  356. GlobalEventSystem:Bind(EventName.SCENE_LOAD_VIEW_COMPLETE,onSceneStartHandler)
  357. local function chnage_day_func(type)
  358. if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点
  359. self.model:ClearActList()
  360. elseif type == SettingModel.CHANGE_DAY.HOUR_4 then -- 跨4点
  361. end
  362. end
  363. GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func)
  364. local onGameStart = function ()
  365. --只有有社团的时候才请求
  366. local main_vo = RoleManager:getInstance():GetMainRoleVo()
  367. if main_vo.guild_id > 0 then
  368. if GetModuleIsOpen(400, 6) then--游戏开始要检查是否满足协助信息列表
  369. self.model.is_check_support_list = true
  370. end
  371. self:BatchRequesGuildEvent()
  372. else
  373. -- 不管是否加入社团,也要获取活动状态,其他模块需要提示
  374. -- 社团晚宴
  375. if GetModuleIsOpen(400, 7) and (GetModuleOpenLevel(400, 7) == main_vo.level) then
  376. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40057) --社团晚宴协议信息
  377. end
  378. -- 社团午间采集
  379. if GetModuleIsOpen(408) and (GetModuleOpenLevel(408) == main_vo.level) then
  380. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40801)--活动状态
  381. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40802)--当日已封印次数
  382. end
  383. end
  384. end
  385. GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT, onGameStart)
  386. local function onLevelUp(level)
  387. -- 升级时清空社团活动配置缓存
  388. self.model:ClearActList()
  389. -- 升级时清空社团商城缓存
  390. self.model:ClearGuildShopCfgCache()
  391. self:BatchRequesGuildEvent(level)
  392. end
  393. RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
  394. local function onRoleGuildCoinChanges()
  395. local function refresh_guild_shop_red()
  396. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Shop, true)
  397. end
  398. TimeManager.GetInstance():StartTime("GuildModel_CheckGuildShopRed", 1, refresh_guild_shop_red)
  399. end
  400. RoleManager.Instance.mainRoleInfo:BindOne("guild_contribute", onRoleGuildCoinChanges)
  401. --打开社团主界面
  402. local function onGuildMainView(index)
  403. if self.GuildMainView == nil then
  404. self.GuildMainView = GuildMainView.New()
  405. end
  406. self.GuildMainView:Open(index)
  407. end
  408. GlobalEventSystem:Bind(EventName.OPEN_GUILD_MAIN_VIEW,onGuildMainView)
  409. local function onCloseGuildMainView()
  410. if self.GuildMainView and self.GuildMainView:HasOpen() then
  411. self.GuildMainView:Close()
  412. end
  413. end
  414. GlobalEventSystem:Bind(EventName.CLOSE_GUILD_MAIN_VIEW,onCloseGuildMainView)
  415. --打开创建社团界面
  416. local function onGuildCreateView(show)
  417. self:OpenView("GuildCreateView", show)
  418. end
  419. GlobalEventSystem:Bind(EventName.OPEN_GUILD_CREATE_VIEW, onGuildCreateView)
  420. --打开社团申请设置界面
  421. local function onGuildApplySettingView(show)
  422. self:OpenView("GuildApplySettingView", show)
  423. end
  424. GlobalEventSystem:Bind(EventName.OPEN_GUILD_APPLY_SETTING_VIEW, onGuildApplySettingView)
  425. --打开社团设置公告界面
  426. local function onGuildEditAnnounceView(show)
  427. -- 没有权限则不打开界面
  428. if not self.model:HasOperatePermission(GuildModel.MgrPermission.ChangeAnnounce) then
  429. Message.show("您没有此权限哦~")
  430. return
  431. end
  432. self:OpenView("GuildEditAnnounceView", show)
  433. end
  434. self.model:Bind(GuildModel.OPEN_GUILD_EDITOR_ANNOUNCE_VIEW, onGuildEditAnnounceView)
  435. -- 社团改名改标志界面
  436. local function openGuildRenameView(show)
  437. self:OpenView("GuildRenameView", show)
  438. end
  439. self.model:Bind(GuildModel.OPEN_GUILD_RENAME_VIEW, openGuildRenameView)
  440. local function openGuildRequestMergeView(show)
  441. self:OpenView("GuildRequestMergeView", show)
  442. end
  443. self.model:Bind(GuildModel.OPEN_REQUEST_MERGE_VIEW, openGuildRequestMergeView)
  444. --打开社团驻地场景界面
  445. local function onOpenGuildSceneView(flag)
  446. self:OpenView("GuildSceneView", flag)
  447. end
  448. self.model:Bind(EventName.OPEN_GUILD_SCENE_VIEW, onOpenGuildSceneView)
  449. --打开社团协助信息界面
  450. local function onGuildSupportInfoMainView(tab_index,special_data)
  451. if self.GuildSupportInfoMainView == nil then
  452. self.GuildSupportInfoMainView = GuildSupportInfoMainView.New()
  453. end
  454. if self.GuildSupportInfoMainView:HasOpen() then
  455. self.GuildSupportInfoMainView:UpdateView(tab_index,special_data)
  456. else
  457. self.GuildSupportInfoMainView:Open(tab_index,special_data)
  458. end
  459. end
  460. self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_IFNO_VIEW, onGuildSupportInfoMainView)
  461. local function onCloseGuildSupportInfoView()
  462. if self.GuildSupportInfoMainView and self.GuildSupportInfoMainView:HasOpen() then
  463. self.GuildSupportInfoMainView:Close()
  464. end
  465. end
  466. self.model:Bind(GuildModel.CLOSE_GUILD_SUPPORT_IFNO_VIEW, onCloseGuildSupportInfoView)
  467. --打开社团感谢界面
  468. local function onGuildSupportThankView(view_type,data)
  469. if self.GuildSupportThankView == nil then
  470. self.GuildSupportThankView = GuildSupportThankView.New()
  471. end
  472. self.GuildSupportThankView:Open(view_type,data)
  473. end
  474. self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_THANK_VIEW,onGuildSupportThankView)
  475. --打开社团感谢界面
  476. local function onGuildSupportGoView( data )
  477. if self.GuildSupportGoView == nil then
  478. self.GuildSupportGoView = GuildSupportGoView.New()
  479. end
  480. if self.GuildSupportGoView:HasOpen() then
  481. -- self.GuildSupportGoView:UpdateView()
  482. else
  483. self.GuildSupportGoView:Open( data )
  484. end
  485. end
  486. self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_GO_VIEW,onGuildSupportGoView)
  487. --打开社团协助接受界面
  488. local function onGuildSupportAcceptView( data )
  489. if self.GuildSupportAcceptView == nil then
  490. self.GuildSupportAcceptView = GuildSupportAcceptView.New()
  491. end
  492. if self.GuildSupportAcceptView:HasOpen() then
  493. -- self.GuildSupportAcceptView:UpdateView()
  494. else
  495. self.GuildSupportAcceptView:Open( data )
  496. end
  497. end
  498. self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_ACCEPT_VIEW,onGuildSupportAcceptView)
  499. --打开社团协助boss前往界面
  500. local function onGuildSupportGuildBossGoView( data )
  501. if self.GuildSupportGuildBossGoView == nil then
  502. self.GuildSupportGuildBossGoView = GuildSupportGuildBossGoView.New()
  503. end
  504. if self.GuildSupportGuildBossGoView:HasOpen() then
  505. -- self.GuildSupportGuildBossGoView:UpdateView()
  506. else
  507. self.GuildSupportGuildBossGoView:Open( data )
  508. end
  509. end
  510. self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_GUILD_BOSS_GO_VIEW,onGuildSupportGuildBossGoView)
  511. --打开社团协助结算界面
  512. local function onGuildSupportResultView( data )
  513. if self.GuildSupportResultView == nil then
  514. self.GuildSupportResultView = GuildSupportResultView.New()
  515. end
  516. if self.GuildSupportResultView:HasOpen() then
  517. -- self.GuildSupportResultView:UpdateView()
  518. else
  519. self.GuildSupportResultView:Open( data )
  520. end
  521. end
  522. self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_RESULT_VIEW,onGuildSupportResultView)
  523. --打开社团协助快捷发送界面
  524. local function onGuildSupportTipView( support_data )
  525. if self.GuildSupportTipView == nil then
  526. self.GuildSupportTipView = GuildSupportTipView.New()
  527. end
  528. if self.GuildSupportTipView:HasOpen() then
  529. self.GuildSupportTipView:UpdateView( support_data )
  530. else
  531. self.GuildSupportTipView:Open( support_data )
  532. end
  533. end
  534. self.model:Bind(GuildModel.OPEN_GUILD_SUPPORT_TIP_VIEW,onGuildSupportTipView)
  535. local function closeGuildSupportTipView( )
  536. if self.GuildSupportTipView and self.GuildSupportTipView:HasOpen() then
  537. self.GuildSupportTipView:Close()
  538. end
  539. end
  540. self.model:Bind(GuildModel.CLOSE_GUILD_SUPPORT_TIP_VIEW,closeGuildSupportTipView)
  541. --请求社团显示列表信息
  542. local function onRequestGuildList(guild_name,filter,page_size,page_no)
  543. self:SendFmtToGame(40001, "schh", guild_name,filter,page_size,page_no)
  544. end
  545. self.model:Bind(GuildModel.RequestGuildListEvt,onRequestGuildList)
  546. --请求加入社团
  547. local function onApplyJoinGuild(guild_id)
  548. self:SendFmtToGame(40002, "l", guild_id)
  549. end
  550. self.model:Bind(GuildModel.ApplyJoinGuildEvt,onApplyJoinGuild)
  551. --请求海投简历
  552. local function onRequestMultiJoinGuild()
  553. self:SendFmtToGame(40003)
  554. end
  555. self.model:Bind(GuildModel.RequestMultiJoinGuildEvt,onRequestMultiJoinGuild)
  556. --请求创建社团
  557. local function onRequestCreateGuild(cfg_id,guild_name,guild_flag)
  558. self:SendFmtToGame(40004,"csi",cfg_id,guild_name,guild_flag)
  559. end
  560. self.model:Bind(GuildModel.RequestCreateGuildEvt,onRequestCreateGuild)
  561. --请求社团基础属性
  562. local function onRequestGuildBaseInfo()
  563. self:SendFmtToGame(40005)
  564. end
  565. self.model:Bind(GuildModel.RequestGuildBaseInfoEvt,onRequestGuildBaseInfo)
  566. --请求成员界面玩家信息
  567. local function onRequestGuildMemberViewMemberInfo(page_size,page_no,not_all)
  568. local page_size = not_all and (page_size and page_size or 15) or 50
  569. local page_no = page_no or 1
  570. self:SendFmtToGame(40006,"hh",page_size,page_no)
  571. end
  572. self.model:Bind(GuildModel.RequestMemberViewMemberInfoEvt,onRequestGuildMemberViewMemberInfo)
  573. --请求退出社团
  574. local function onRequestQuitGuild()
  575. local guild_name = RoleManager.Instance.mainRoleInfo.guild_name
  576. local function ok( ... )
  577. self:SendFmtToGame(40007)
  578. end
  579. local ask_str = "点击确认马上退出当前社团\n您确认要退出 " .. guild_name .." 社团吗?"
  580. Alert.show(ask_str,Alert.Type.Two,ok,nil,"确定","取消")
  581. end
  582. self.model:Bind(GuildModel.RequestQuitGuildEvt,onRequestQuitGuild)
  583. --请求设置玩家的申请状态
  584. local function onRequestSetMemberApplyState (role_id,type)
  585. self:SendFmtToGame(40009,"lc",role_id,type)
  586. end
  587. self.model:Bind(GuildModel.RequestSetApplyMemberStateEvt,onRequestSetMemberApplyState)
  588. --请求申请设置界面条件
  589. local function onRequestApplySettingCondition (approve_type,auto_approve_lv,auto_approve_power)
  590. self:SendFmtToGame(40011,"chl",approve_type,auto_approve_lv,auto_approve_power)
  591. end
  592. self.model:Bind(GuildModel.RequestApplySettingConditionEvt,onRequestApplySettingCondition)
  593. --请求设置公告
  594. local function onRequestSetAnnounce (announce,id)
  595. self.announce = announce
  596. self:SendFmtToGame(40012,"sc",announce,id)
  597. end
  598. self.model:Bind(GuildModel.RequestSetAnnounceEvt,onRequestSetAnnounce)
  599. --请求全部批准
  600. local function onRequestAgreeApplyList(type)
  601. self:SendFmtToGame(40016, "c", type)
  602. end
  603. self.model:Bind(GuildModel.RequestAgreeApplyListEvt,onRequestAgreeApplyList)
  604. --任命职位
  605. local function onRequestAppointMemberPost (role_id,position)
  606. self:SendFmtToGame(40013,"lc",role_id,position)
  607. end
  608. self.model:Bind(GuildModel.RequestAppointMemberPostEvt,onRequestAppointMemberPost)
  609. -- 社团boss采集协议
  610. local function pick_up_gboss_grop_item(opty, drop_id)
  611. self:SendFmtToGame(40610, "ci", opty, drop_id)
  612. end
  613. self.model:Bind(GuildModel.PICK_UP_BOSS_DROP_ITEM, pick_up_gboss_grop_item)
  614. --请求踢出社团
  615. local function onRequestKickOutGuild (role_id)
  616. local function ok( ... )
  617. self:SendFmtToGame(40014,"l",role_id)
  618. end
  619. local ask_str = "确定将该玩家踢出社团?"
  620. Alert.show(ask_str,Alert.Type.Two,ok,nil,"确定","取消")
  621. end
  622. self.model:Bind(GuildModel.RequestKickOutGuildEvt,onRequestKickOutGuild)
  623. -- 进入社团驻地
  624. local function enter_guild_base()
  625. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40044)
  626. --判断社团boss是否开着,是的话主动请求07协议刷新加成系数
  627. local event_data = self.model:GetGuildEventData()
  628. for k,v in pairs(event_data) do
  629. if k == GuildEventType.GuildBossNoon or k == GuildEventType.GuildBossNight and v.is_evt_open then
  630. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40607)
  631. end
  632. end
  633. --判断封印裂隙是否开着,是的话主动请求40046拿到全部协助列表信息
  634. if self.model:IsGuildCollectActive() and SceneManager.Instance:IsGuildScene() then
  635. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40046)
  636. end
  637. end
  638. self.model:Bind(GuildModel.ENTER_GUILD_BASE, enter_guild_base)
  639. -- 离开社团驻地
  640. local function leave_guild_base()
  641. self.model:CancelCollectSupport()--离开社团驻地时且是协助他人 取消协助
  642. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40045)
  643. end
  644. self.model:Bind(GuildModel.LEAVE_GUILD_BASE, leave_guild_base)
  645. local function on_update_guild_info()
  646. if self.model:IsGuildAuctionShow() then
  647. if not self.guild_auction_view then
  648. self.guild_auction_view = GuildBossSceneAuctionTips.New()
  649. end
  650. if not self.guild_auction_view:HasOpen() then
  651. self.guild_auction_view:Open()
  652. end
  653. else
  654. if self.guild_auction_view then
  655. self.guild_auction_view:Close()
  656. self.guild_auction_view = nil
  657. end
  658. end
  659. end
  660. self.model:Bind(GuildModel.UPDATE_GUILD_BOSS_INFO, on_update_guild_info)
  661. --------------------------------------------------------------------------
  662. local function open_posapply_view(show)
  663. self:OpenView("GuildPositionApplyView", show)
  664. end
  665. self.model:Bind(GuildModel.OPEN_POSITION_APPLY_VIEW, open_posapply_view)
  666. local function open_guildlog_view(show)
  667. self:OpenView("GuildLogView", show)
  668. end
  669. self.model:Bind(GuildModel.OPEN_GUILD_LOG_VIEW, open_guildlog_view)
  670. local function openGuildBossResultView(show, data)
  671. if (show and data) or not show then
  672. self:OpenView("GuildBossResultView", show, data)
  673. end
  674. end
  675. self.model:Bind(GuildModel.OPEN_GUILD_BOSS_RESULT_VIEW, openGuildBossResultView)
  676. local function openGuildBossSceneRollView(show)
  677. if show then
  678. if self.GuildSceneRollView then
  679. self.GuildSceneRollView:Close()
  680. self.GuildSceneRollView = nil
  681. end
  682. end
  683. self:OpenView("GuildSceneRollView", show)
  684. end
  685. self.model:Bind(GuildModel.OPEN_BOSS_ROLL_VIEW, openGuildBossSceneRollView)
  686. local function openGuildBossRollPreviewView(show)
  687. self:OpenView("GuildBossRollPreviewView", show)
  688. end
  689. self.model:Bind(GuildModel.OPEN_BOSS_ROLL_PREVIEW_VIEW, openGuildBossRollPreviewView)
  690. local function openGuildPosAllotView(show, index)
  691. if show then
  692. local pos = RoleManager.Instance.mainRoleInfo.position
  693. if pos ~= GuildModel.GuildPosition.Leader and pos ~= GuildModel.GuildPosition.ViceLeader then
  694. Message.show("您没有社团职位任命的权限哦")
  695. return
  696. end
  697. if not self.guild_pos_allot_view then
  698. self.guild_pos_allot_view = GuildPositionAllotView.New()
  699. end
  700. if not self.guild_pos_allot_view:HasOpen() then
  701. self.guild_pos_allot_view:Open(index)
  702. end
  703. else
  704. if self.guild_pos_allot_view then
  705. self.guild_pos_allot_view:Close()
  706. end
  707. end
  708. end
  709. self.model:Bind(GuildModel.OPEN_GUILD_POS_ALLOT_VIEW, openGuildPosAllotView)
  710. local function openGuildApplyMgrView(show, index)
  711. if show then
  712. local pos = RoleManager.Instance.mainRoleInfo.position
  713. if pos ~= GuildModel.GuildPosition.Leader and pos ~= GuildModel.GuildPosition.ViceLeader then
  714. Message.show("您没有管理申请的权限哦")
  715. return
  716. end
  717. if not self.guild_apply_mgr_view then
  718. self.guild_apply_mgr_view = GuildApplyMgrView.New()
  719. end
  720. if not self.guild_apply_mgr_view:HasOpen() then
  721. self.guild_apply_mgr_view:Open(index)
  722. end
  723. else
  724. if self.guild_apply_mgr_view then
  725. self.guild_apply_mgr_view:Close()
  726. end
  727. end
  728. end
  729. self.model:Bind(GuildModel.OPEN_GUILD_APPLY_MGR_VIEW, openGuildApplyMgrView)
  730. local function openGuildEventView(event_type,jump_wday)
  731. local guild_id = RoleManager.Instance.mainRoleInfo.guild_id
  732. local is_un_join = not guild_id or guild_id == 0
  733. if is_un_join then
  734. Message.show("您还没有社团,请先加入社团")
  735. return
  736. end
  737. self.model.need_jump_event_type = event_type
  738. self.model.need_jump_wday = jump_wday
  739. GlobalEventSystem:Fire(EventName.OPEN_GUILD_MAIN_VIEW,Config.ConfigGuild.TabId.Event)
  740. end
  741. self.model:Bind(GuildModel.OPEN_GUILD_EVENT_VIEW,openGuildEventView)
  742. local function openGuildSpellListRewardView(show, reward_data)
  743. if (show and reward_data) or not show then
  744. self:OpenView("GuildSpellListRewardView", show, reward_data)
  745. end
  746. end
  747. self.model:Bind(GuildModel.OPEN_GUILD_SL_REWARD_VIEW, openGuildSpellListRewardView)
  748. local function openGuildSpellListThankView(show, vo)
  749. if (show and vo) or not show then
  750. self:OpenView("GuildSpellListThankView", show, vo)
  751. end
  752. end
  753. self.model:Bind(GuildModel.OPEN_GUILD_SL_THANK_VIEW, openGuildSpellListThankView)
  754. -------------------------------本服团战 开始 --------------------------
  755. --打开本服团战场景界面
  756. local function onOpenGuildWarSceneView(flag)
  757. self:OpenView("GuildSceneWarView", flag)
  758. end
  759. self.model:Bind(GuildModel.OPEN_GUILD_WAR_SCENE_VIEW, onOpenGuildWarSceneView)
  760. local function onOpenGuildWarRankView()
  761. if self.GuildWarRankView and self.GuildWarRankView:HasOpen() then
  762. self.GuildWarRankView:Close()
  763. end
  764. if self.GuildWarRankView == nil then
  765. self.GuildWarRankView = GuildWarRankView.New()
  766. end
  767. if self.GuildWarRankView:HasOpen() then
  768. self.GuildWarRankView:Close()
  769. else
  770. self.GuildWarRankView:Open()
  771. end
  772. end
  773. self.model:Bind(GuildModel.OPEN_GUILD_WAR_RANK_VIEW, onOpenGuildWarRankView)
  774. --进入本服团战场景
  775. local function onEnterGuildWarScene(pool_id)
  776. pool_id = pool_id or 0
  777. self.model.guild_war_info = {}
  778. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40501, pool_id)
  779. end
  780. self.model:Bind(GuildModel.ENTER_GUILD_WAR_SCENE,onEnterGuildWarScene)
  781. --离开本服团战场景
  782. local function onLeaveGuildWarScene()
  783. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40502)
  784. self.model.guild_war_info = {}
  785. end
  786. self.model:Bind(GuildModel.LEAVE_GUILD_WAR_SCENE,onLeaveGuildWarScene)
  787. --本服团战结算
  788. local function onOpenGuildWarResultView()
  789. if self.GuildWarResultView and self.GuildWarResultView:HasOpen() then
  790. self.GuildWarResultView:Close()
  791. end
  792. if self.GuildWarResultView == nil then
  793. self.GuildWarResultView = GuildWarResultView.New()
  794. end
  795. if self.GuildWarResultView:HasOpen() then
  796. self.GuildWarResultView:Close()
  797. else
  798. self.GuildWarResultView:Open()
  799. end
  800. end
  801. self.model:Bind(GuildModel.GUILD_WAR_RESULT,onOpenGuildWarResultView)
  802. --本服团战结算
  803. local function onGuildWarOpenState(state, end_time)
  804. self.model:GuildWarCheckIconBoolOpen(state, end_time)
  805. end
  806. self.model:Bind(GuildModel.GUILD_WAR_OPEN_STATE,onGuildWarOpenState)
  807. -------------------------------本服团战 结束 --------------------------
  808. ------------------------------- 本国团战 start --------------------------
  809. -- 本国团战场景界面
  810. local function open_csgr_scene_view(show)
  811. self:OpenView("GuildCSGRSceneView", show)
  812. end
  813. self.model:Bind(GuildModel.OPEN_CSGR_SCENE_VIEW, open_csgr_scene_view)
  814. -- 本国团战奖励预览界面
  815. local function open_csgr_reward_view(show)
  816. self:OpenView("GuildCSGRRewardView", show)
  817. end
  818. self.model:Bind(GuildModel.OPEN_CSGR_REWARD_VIEW, open_csgr_reward_view)
  819. -- 本国团战伤害排名界面
  820. local function open_csgr_rank_view(show)
  821. self:OpenView("GuildCSGRRankView", show)
  822. end
  823. self.model:Bind(GuildModel.OPEN_CSGR_RANK_VIEW, open_csgr_rank_view)
  824. -- 本国团战对战信息界面
  825. local function open_csgr_fightinfo_view(show)
  826. self:OpenView("GuildCSGRFightInfoView", show)
  827. end
  828. self.model:Bind(GuildModel.OPEN_CSGR_FIGHTINFO_VIEW, open_csgr_fightinfo_view)
  829. -- 本国团战结算界面 rank_data:排行数据
  830. local function open_csgr_result_view(show, rank_data)
  831. if (show and rank_data) or not show then
  832. self:OpenView("GuildCSGRResultView", show, rank_data)
  833. end
  834. end
  835. self.model:Bind(GuildModel.OPEN_CSGR_RESULT_VIEW, open_csgr_result_view)
  836. ------------------------------- 本国团战 end --------------------------
  837. local function BOARD_GUILD_SUPPOR_REMOVE( role_id )
  838. if role_id then
  839. --清空封印裂隙协助者信息
  840. self.model:SetGuildCollectHelperInfo(nil,role_id)
  841. self.model:Fire(GuildModel.ANS_GUILD_COLLECT_HELP_LIST)
  842. end
  843. end
  844. self.model:Bind(GuildModel.BOARD_GUILD_SUPPOR_REMOVE,BOARD_GUILD_SUPPOR_REMOVE)
  845. --打开战场玩法提示界面
  846. local function ON_OPEN_ACTIVE_OPEN_TIPS_VIEW(show)
  847. self:OpenView("GuildActiveOpenTipsView", show)
  848. end
  849. self.model:Bind(GuildModel.OPEN_ACTIVE_OPEN_TIPS_VIEW,ON_OPEN_ACTIVE_OPEN_TIPS_VIEW)
  850. ------------------------------- 封印裂隙 start -------------------------
  851. --打开封印裂隙奖励说明界面
  852. local function open_guild_collect_reward_view()
  853. if self.guild_reward_view == nil then
  854. self.guild_reward_view = GuildCollectRewardView.New()
  855. end
  856. self.guild_reward_view:Open()
  857. end
  858. self.model:Bind(GuildModel.OPEN_GUILD_COLLECT_REWARD_VIEW,open_guild_collect_reward_view)
  859. --寻路去杀封印裂隙的社团协助怪物
  860. local function on_find_way_to_guild_collect_help_mon(vo)
  861. --一条协助对应一个怪,不再需要判断距离了
  862. if not vo then return end
  863. if not vo.mon_id then return end
  864. local monster = Scene.Instance:GetMonster(vo.mon_id)
  865. if monster then
  866. GlobalEventSystem:Fire(EventName.CANCEL_TO_COLLECT)
  867. EventSystem.Fire(GlobalEventSystem,EventName.STARTAUTOFIGHT, false, true)
  868. Scene.Instance:SetClickTarget(monster,true)
  869. end
  870. end
  871. self.model:Bind(GuildModel.FIND_WAY_TO_GUILD_COLLECT_HELP_MON,on_find_way_to_guild_collect_help_mon)
  872. --寻路去采集最近的封印裂隙采集怪
  873. local function on_find_way_to_guild_collect_mon()
  874. if self.model:GuildCollectAutoFightIgnoreCollectMon() then
  875. --封印次数满了就不寻找
  876. return
  877. end
  878. local collect_mon_type_id = 650001
  879. local nearest_mon = Scene.Instance:GetNearestGuildCollectMonsterByTypeId(collect_mon_type_id)
  880. if nearest_mon then
  881. local function call_back()
  882. Scene.Instance:SetClickTarget(nearest_mon,true)
  883. end
  884. local findVo = FindVo.New()
  885. findVo.type = FindVo.MONSTER
  886. findVo.x = nearest_mon.vo.pos_x / SceneObj.LogicRealRatio.x
  887. findVo.y = nearest_mon.vo.pos_y / SceneObj.LogicRealRatio.y
  888. findVo.sceneId = SceneManager:getInstance():GetSceneId()
  889. findVo.id = nearest_mon.vo.type_id
  890. findVo.call_back = call_back
  891. GlobalEventSystem:Fire(EventName.FIND, findVo)
  892. end
  893. end
  894. self.model:Bind(GuildModel.AUTO_FIND_WAY_TO_GUILD_COLLECT_MON,on_find_way_to_guild_collect_mon)
  895. --挂机战斗状态更改时通知更改自动采集状态
  896. local function on_change_auto_fight_state()
  897. if SceneManager:getInstance():IsGuildScene() and self.model:IsGuildCollectActive() then
  898. local fight_state = AutoFightManager:getInstance():GetAutoFightState()
  899. if fight_state then--自动战斗时关闭自动采集
  900. self.model:SetAutoGuildCollectState(false)
  901. self.model:Fire(GuildModel.UPDATE_AUTO_GUILD_COLLECT_STATE)
  902. end
  903. end
  904. end
  905. GlobalEventSystem:Bind(AutoFightManager.CHANGE_AUTO_FIGHT_STATE, on_change_auto_fight_state)
  906. local function on_change_collect_support()
  907. if self.model.need_change_collect_support and self.model.need_change_collect_support ~= 0 then
  908. local function delay_method( )
  909. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40052,self.model.need_change_collect_support)
  910. self.model.need_change_collect_support = 0
  911. end
  912. setTimeout(delay_method, 0)
  913. end
  914. end
  915. self.model:Bind(GuildModel.GUILD_COLLECT_SUPPORT_CANCEL, on_change_collect_support)
  916. ------------------------------- 封印裂隙 end -------------------------
  917. ----------社团跑环答题-start---------
  918. -- 答题界面
  919. local function openGuildQuizView(show)
  920. self:OpenView("GuildQuizView", show)
  921. end
  922. self.model:Bind(GuildModel.OPEN_GUILD_QUIZ_VIEW, openGuildQuizView)
  923. -- 答题结算界面
  924. local function openGuildQuizResultView(show)
  925. self:OpenView("GuildQuizResultView", show)
  926. end
  927. self.model:Bind(GuildModel.OPEN_GUILD_QUIZ_RESULT_VIEW, openGuildQuizResultView)
  928. ----------社团跑环答题-end-----------
  929. end
  930. -- 统一请求社团事件 level:玩家当前等级,不传时强制刷新
  931. function GuildController:BatchRequesGuildEvent(level)
  932. -- print("Saber:GuildController [996] level: ",level)
  933. -- 社团模块本体
  934. if GetModuleIsOpen(400) and (level == nil or GetModuleOpenLevel(400) == level) then
  935. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40005)
  936. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40008)
  937. --请求社团成员信息
  938. self.model:Fire(GuildModel.RequestMemberViewMemberInfoEvt)
  939. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40021) --请求社团权限
  940. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40023) -- 请求职位情况
  941. -- 请求自动审批信息
  942. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40010)
  943. -- 请求社团合并信息
  944. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40032)
  945. -- 社团日志
  946. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40405)
  947. end
  948. -- 社团活跃
  949. if GetModuleIsOpen(400, 2) and (level == nil or GetModuleOpenLevel(400, 2) == level) then
  950. -- 活跃数据
  951. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40400)
  952. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40402)
  953. end
  954. -- 社团派单
  955. if GetModuleIsOpen(400, 3) and (level == nil or GetModuleOpenLevel(400, 3) == level) then
  956. -- 请求派单信息
  957. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40035)
  958. end
  959. -- 社团商城
  960. if GetModuleIsOpen(400, 4) and (level == nil or GetModuleOpenLevel(400, 4) == level) then
  961. -- 请求商城信息
  962. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40027)
  963. end
  964. -- 社团协助
  965. if GetModuleIsOpen(400, 6) and (level == nil or GetModuleOpenLevel(400, 6) == level) then
  966. if level == GetModuleOpenLevel(400, 6) then--升级到96级要检查协助信息
  967. self.model.is_check_support_list = true
  968. end
  969. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40046)
  970. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40068)
  971. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40069)
  972. end
  973. -- 社团晚宴
  974. if GetModuleIsOpen(400, 7) and (level == nil or GetModuleOpenLevel(400, 7) == level) then
  975. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40057) --社团晚宴协议信息
  976. end
  977. -- 社团红包
  978. if GetModuleIsOpen(339) and (level == nil or GetModuleOpenLevel(339) == level) then
  979. RedPacketModel:GetInstance():Fire(RedPacketModel.REQUEST_CCMD_EVENT, 33901)
  980. RedPacketModel:GetInstance():Fire(RedPacketModel.REQUEST_CCMD_EVENT, 33908)
  981. end
  982. -- 社团boss
  983. if GetModuleIsOpen(406) and (level == nil or GetModuleOpenLevel(406) == level) then
  984. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40600)
  985. end
  986. -- 社团午间采集
  987. if GetModuleIsOpen(408) and (level == nil or GetModuleOpenLevel(408) == level) then
  988. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40801)--活动状态
  989. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40802)--当日已封印次数
  990. end
  991. -- 本国团战
  992. if GetModuleIsOpen(410) and (level == nil or GetModuleOpenLevel(410) == level) then
  993. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41000)--本国团战信息
  994. end
  995. end
  996. --错误码提示
  997. function GuildController:on40000()
  998. local vo = SCMD40000.New(true)
  999. self.first_time = Status.NowTime
  1000. if vo and vo.result ~= 1 then
  1001. if self.first_time - self.last_time > 0.5 then
  1002. ErrorCodeShow(vo.result)
  1003. self.last_time = self.first_time
  1004. end
  1005. end
  1006. end
  1007. --社团列表显示信息返回 包括自己输入名字搜索
  1008. function GuildController:on40001()
  1009. local vo = SCMD40001.New(true)
  1010. -- print("==WQ==:GuildController [start:1094] vo.history_guild_num:", vo.history_guild_num)
  1011. -- if self.model.test_flag then
  1012. -- vo.history_guild_num = 3
  1013. -- else
  1014. -- vo.history_guild_num = 10
  1015. -- end
  1016. -- self.model.guild_list = vo.guild_list
  1017. self.model:SetHistoryGuildNum(vo)
  1018. self.model:Fire(GuildModel.RefreshGuildListEvt, vo)
  1019. end
  1020. function GuildController:on40071( )
  1021. local vo = SCMD40071.New(true)
  1022. -- print("==WQ==:GuildController [start:1094] vo.history_guild_num:", vo.history_guild_num)
  1023. -- if self.model.test_flag then
  1024. -- vo.history_guild_num = 3
  1025. -- else
  1026. -- vo.history_guild_num = 10
  1027. -- end
  1028. self.model:SetHistoryGuildNum(vo)
  1029. self.model:Fire(GuildModel.AFTER_GET_HISTORY_GUILD_COUNT)
  1030. self.model.handle_40071_flag = false
  1031. end
  1032. --请求加入社团
  1033. function GuildController:on40002()
  1034. local vo = SCMD40002.New(true)
  1035. if vo then
  1036. if vo.result == 1 then
  1037. Message.show("成功发出申请~")
  1038. if vo.apply_type == 1 then
  1039. GuideModel:getInstance():Fire(GuideModel.NOT_PASS_APPLY_GUIDE)
  1040. elseif vo.apply_type == 2 then
  1041. -- if self.GuildApplyView then
  1042. -- self.GuildApplyView:Close()
  1043. -- end
  1044. if SceneManager.Instance:IsMainCityorYieldScene() then
  1045. GlobalEventSystem:Fire(EventName.OPEN_GUILD_MAIN_VIEW)
  1046. end
  1047. -- RedPacketModel:GetInstance():Fire(RedPacketModel.REQUEST_CCMD_EVENT,33901)
  1048. Message.show("成功加入社团~")
  1049. end
  1050. else
  1051. ErrorCodeShow(vo.result)
  1052. GuideModel:getInstance():Fire(GuideModel.NOT_PASS_APPLY_GUIDE)
  1053. end
  1054. end
  1055. end
  1056. --海投简历
  1057. function GuildController:on40003()
  1058. local vo = SCMD40003.New(true)
  1059. if vo then
  1060. if vo.result == 1 then
  1061. Message.show("成功发出申请~")
  1062. if vo.apply_type == 1 then
  1063. GuideModel:getInstance():Fire(GuideModel.NOT_PASS_APPLY_GUIDE)
  1064. elseif vo.apply_type == 2 then
  1065. -- if self.GuildApplyView then
  1066. -- self.GuildApplyView:Close()
  1067. -- end
  1068. GlobalEventSystem:Fire(EventName.OPEN_GUILD_MAIN_VIEW)
  1069. Message.show("成功加入社团~")
  1070. -- RedPacketModel:GetInstance():Fire(RedPacketModel.REQUEST_CCMD_EVENT,33901)
  1071. end
  1072. else
  1073. ErrorCodeShow(vo.result)
  1074. GuideModel:getInstance():Fire(GuideModel.NOT_PASS_APPLY_GUIDE)
  1075. end
  1076. end
  1077. end
  1078. --创建社团
  1079. function GuildController:on40004()
  1080. local vo = SCMD40004.New(true)
  1081. if vo then
  1082. if vo.result == 1 then
  1083. Message.show("成功创建社团~")
  1084. else
  1085. ErrorCodeShow(vo.result)
  1086. end
  1087. end
  1088. end
  1089. --社团基础信息
  1090. function GuildController:on40005()
  1091. local vo = SCMD40005.New(true)
  1092. if vo then
  1093. table.sort(vo.position_list,function (v1,v2)
  1094. return v1.position < v2.position
  1095. end)
  1096. -- 社团是否升级,升级了需要社团商城缓存
  1097. local guild_base_info = self.model:GetGuildBaseInfo()
  1098. if not IsTableEmpty(guild_base_info) and guild_base_info.guild_lv and guild_base_info.guild_lv ~= vo.guild_lv then
  1099. self.model:ClearGuildShopCfgCache()
  1100. end
  1101. self.model:SetGuildBaseInfo(vo)
  1102. self.model:SetGuildFunds(vo.guild_funds) --保存社团资金信息
  1103. self.model:SetGuildAnnounce(vo.announce)
  1104. self.model.member_num = vo.member_num
  1105. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.MainInfo, true)
  1106. self.model:Fire(GuildModel.RefreshGuildInfoEvt,vo) --刷新社团主页基础信息
  1107. end
  1108. end
  1109. --社团成员列表界面信息
  1110. function GuildController:on40006()
  1111. local vo = SCMD40006.New(true)
  1112. if vo then
  1113. self.model:SetGuildMemberList(vo.member_list)
  1114. self.model:Fire(GuildModel.RefreshMainViewMemberInfoEvt,vo)
  1115. ChatModel:getInstance():Fire(ChatModel.REFRESH_MEMBER,vo)
  1116. end
  1117. end
  1118. --退出社团
  1119. function GuildController:on40007()
  1120. local vo = SCMD40007.New(true)
  1121. if vo.result == 1 then
  1122. RoleManager.Instance.mainRoleInfo:ChangeVar("guild_id",0)
  1123. RoleManager.Instance.mainRoleInfo:ChangeVar("guild_name","")
  1124. RedPacketModel:GetInstance():CheckGuildRedPacketRed()
  1125. -- 退出社团后要刷一遍所有的社团红点
  1126. self.model:CheckGuildRedDotAll()
  1127. -- GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 400, false)
  1128. else
  1129. ErrorCodeShow(vo.result)
  1130. end
  1131. end
  1132. --申请列表
  1133. function GuildController:on40008()
  1134. local vo = SCMD40008.New(true)
  1135. if vo then
  1136. self.model:SetApplyMemberListData(vo.apply_list)
  1137. self.model:Fire(GuildModel.RefreshMemberApplyListEvt,vo)
  1138. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.List, true)
  1139. end
  1140. end
  1141. --审批加入社团的玩家
  1142. function GuildController:on40009()
  1143. local vo = SCMD40009.New(true)
  1144. if vo.result == 1 then
  1145. Message.show("操作成功")
  1146. self.model:UpdateApplyMemberList(vo)
  1147. self.model:Fire(GuildModel.RefreshtSetApplyMemberStateEvt,vo.role_id)
  1148. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.List, true)
  1149. else
  1150. ErrorCodeShow(vo.result)
  1151. end
  1152. end
  1153. --设置申请设置界面Init状态
  1154. function GuildController:on40010()
  1155. local vo = SCMD40010.New(true)
  1156. self.model:SetAutoApproveData(vo)
  1157. self.model:Fire(GuildModel.RefreshApplySettingViewStateEvt)
  1158. end
  1159. function GuildController:on40011()
  1160. local vo = SCMD40011.New(true)
  1161. if vo.result == 1 then
  1162. Message.show("设置成功")
  1163. -- 请求自动审批信息
  1164. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40010)
  1165. else
  1166. ErrorCodeShow(vo.result)
  1167. end
  1168. end
  1169. --设置公告
  1170. function GuildController:on40012()
  1171. local vo = SCMD40012.New(true)
  1172. if vo.result == 1 then
  1173. Message.show("修改成功")
  1174. self.model:SetGuildAnnounce(self.announce)
  1175. self.model:UpdateGuildBasicInfoAnnounce(self.announce)
  1176. self.model:Fire(GuildModel.OPEN_GUILD_EDITOR_ANNOUNCE_VIEW, false)
  1177. self.model:Fire(GuildModel.RefreshGuildAnnounceEvt, self.announce, vo.left_num)
  1178. else
  1179. ErrorCodeShow(vo.result)
  1180. end
  1181. end
  1182. --申请职位设置数量
  1183. function GuildController:on40023()
  1184. local vo = SCMD40023.New(true)
  1185. if vo then
  1186. self.model:SetCurrentPostNumInfo(vo)
  1187. --刷新职位数量
  1188. self.model:Fire(GuildModel.RefreshPostNumEvt)
  1189. end
  1190. end
  1191. --任命职位
  1192. function GuildController:on40013()
  1193. local vo = SCMD40013.New(true)
  1194. if vo then
  1195. if vo.result == 1 then
  1196. self.model:UpdateMemberPositionData(vo)
  1197. self.model:Fire(GuildModel.RefreshMainViewMemberInfoEvt)
  1198. Message.show("任命成功~")
  1199. else
  1200. ErrorCodeShow(vo.result)
  1201. end
  1202. end
  1203. end
  1204. --踢出社团
  1205. function GuildController:on40014()
  1206. local vo = SCMD40014.New(true)
  1207. if vo then
  1208. if vo.result == 1 then
  1209. Message.show("踢出成功")
  1210. else
  1211. ErrorCodeShow(vo.result)
  1212. end
  1213. end
  1214. end
  1215. --全部同意/拒绝入会
  1216. function GuildController:on40016()
  1217. local vo = SCMD40016.New(true)
  1218. if vo.result == 1 then
  1219. Message.show("操作成功")
  1220. self.model:Fire(GuildModel.RequestMemberViewMemberInfoEvt)
  1221. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40008) -- 请求申请列表
  1222. else
  1223. ErrorCodeShow(vo.result)
  1224. end
  1225. end
  1226. --请求玩家权限列表
  1227. function GuildController:on40021()
  1228. local vo = SCMD40021.New(true)
  1229. if vo then
  1230. self.model:SetRolePermission(vo)
  1231. -- 职位变动后,如果不能管理职位了就要强制关闭职位任命界面
  1232. if not self.model:HasOperatePermission(GuildModel.MgrPermission.PassPosApply) then
  1233. self.model:Fire(GuildModel.OPEN_GUILD_POS_ALLOT_VIEW, false) -- 关闭职位任命界面
  1234. end
  1235. end
  1236. end
  1237. -- 申请社团职位
  1238. function GuildController:on40018()
  1239. local vo = SCMD40018.New(true)
  1240. if vo then
  1241. if vo.result == 1 then
  1242. Message.show("申请成功")
  1243. else
  1244. ErrorCodeShow(vo.result)
  1245. end
  1246. end
  1247. end
  1248. function GuildController:on40015()
  1249. local vo = SCMD40015.New(true)
  1250. if vo then
  1251. self.model:UpdateGuildBaseInfo(vo)
  1252. local main_vo = RoleManager:getInstance():GetMainRoleVo()
  1253. if main_vo then
  1254. main_vo:ChangeVar("guild_id",vo.guild_id)
  1255. main_vo:ChangeVar("guild_name",vo.guild_name)
  1256. main_vo:ChangeVar("position",vo.position)
  1257. main_vo:ChangeVar("position_name",vo.position_name)
  1258. if vo.guild_id == 0 then
  1259. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40021) --请求社团权限
  1260. RedPacketModel:GetInstance():CheckGuildRedPacketRed()
  1261. -- 退出社团后要刷一遍所有的社团红点
  1262. self.model:CheckGuildRedDotAll()
  1263. -- GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 400, false)
  1264. self.model:Fire(GuildModel.RefreshGuildInfoEvt) --刷新社团主页基础信息
  1265. Message.show("您已经退出社团")
  1266. else
  1267. -- 关闭创建社团界面
  1268. GlobalEventSystem:Fire(EventName.OPEN_GUILD_CREATE_VIEW, false)
  1269. -- 请求社团协议数据
  1270. self:BatchRequesGuildEvent()
  1271. end
  1272. end
  1273. end
  1274. end
  1275. --社团ID广播给其他人
  1276. function GuildController:on40017()
  1277. local vo = SCMD40017.New(true)
  1278. if vo then
  1279. local role_vo = SceneManager.Instance:GetRoleVo(vo.role_id)
  1280. if role_vo then
  1281. role_vo:ChangeVar("guild_id",vo.guild_id)
  1282. role_vo:ChangeVar("guild_name",vo.guild_name)
  1283. role_vo:ChangeVar("position",vo.position)
  1284. role_vo:ChangeVar("position_name",vo.position_name)
  1285. end
  1286. end
  1287. end
  1288. --切换场景,打开对应的副本界面
  1289. function GuildController:ChangeScene()
  1290. local scene_mgr = SceneManager.Instance
  1291. -- 判断社团驻地情况
  1292. if scene_mgr:IsGuildWarScene(scene_mgr.last_scene_id) and not scene_mgr:IsGuildWarScene() then
  1293. self:SetMainUIVisible(true)
  1294. self.model:Fire(GuildModel.OPEN_GUILD_WAR_SCENE_VIEW, false)
  1295. GlobalEventSystem:Fire(EventName.SHOW_MAIN_VIP_ROOT, false, MainUIModel.ACTIVITY_MODE) --vip充值入口
  1296. --活动结束,才弹结算界面
  1297. if self.model.guild_war_info and self.model.guild_war_info.result then
  1298. self.model:Fire(GuildModel.GUILD_WAR_RESULT)
  1299. end
  1300. elseif scene_mgr:IsGuildWarScene() then
  1301. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40500) --每次进入场景都发一次
  1302. self:SetMainUIVisible(false)
  1303. self.model:Fire(GuildModel.OPEN_GUILD_WAR_SCENE_VIEW, true)
  1304. GlobalEventSystem:Fire(EventName.SHOW_MAIN_VIP_ROOT, false, MainUIModel.ACTIVITY_MODE) --vip充值入口
  1305. elseif scene_mgr:IsGuildCSGRScene() then -- 本国团战入场判断
  1306. self.model:Fire(GuildModel.OPEN_CSGR_SCENE_VIEW, true)
  1307. self:SetMainUIVisible(false)
  1308. -- 缓存一次进场坐标
  1309. self.model.csgr_scene_last_pos.x, self.model.csgr_scene_last_pos.y = Scene.Instance:GetMainRole():GetRealPos()
  1310. local event_data = self.model:GetGuildEventByType(GuildEventType.GuildCSGR)
  1311. if event_data and event_data.status == 3 then
  1312. self.model:StartCSGRBossHpTimer()
  1313. end
  1314. elseif scene_mgr:IsGuildCSGRScene(scene_mgr.last_scene_id) and not scene_mgr:IsGuildCSGRScene() then -- 本国团战退出判断
  1315. self.model:Fire(GuildModel.OPEN_CSGR_SCENE_VIEW, false)
  1316. self.model:StopCSGRBossHpTimer() -- 清除boss血条表现计时器
  1317. self:SetMainUIVisible(true)
  1318. local result_data = self.model:GetGuildCSGRResultData()
  1319. if result_data then
  1320. self.model:Fire(GuildModel.OPEN_CSGR_RESULT_VIEW, true, result_data)
  1321. end
  1322. else
  1323. self.model:Fire(GuildModel.OPEN_GUILD_WAR_SCENE_VIEW, false)
  1324. self.model:Fire(EventName.OPEN_GUILD_SCENE_VIEW, false)
  1325. self.model:Fire(GuildModel.OPEN_BOSS_ROLL_VIEW, false)
  1326. -- self.model:ClearGuildBossRollData()
  1327. -- self.model.gboss_roll_result = {}
  1328. GlobalEventSystem:Fire(EventName.SHOW_MAIN_VIP_ROOT, false, MainUIModel.ACTIVITY_MODE) --vip充值入口
  1329. end
  1330. if scene_mgr:IsGuildScene() then
  1331. -- 如果是从星域幻魔场景通过活动进入驻地的话,需要将相应的隐藏标志量撤销
  1332. if scene_mgr:IsBossDesertedScene(scene_mgr:GetLastSceneId()) then
  1333. BossController.Instance:SetMainUIVisible(true, MainUIModel.GUILD_MODE)
  1334. end
  1335. -- 如果是从boss之家场景通过活动进入驻地的话,需要将相应的隐藏标志量撤销
  1336. if scene_mgr:IsBossHomeScene(scene_mgr:GetLastSceneId()) then
  1337. BossHomeController.Instance:SetMainUIVisible(true, MainUIModel.GUILD_MODE)
  1338. end
  1339. self:SetMainUIVisible(false, MainUIModel.GUILD_MODE)
  1340. self.model:Fire(EventName.OPEN_GUILD_SCENE_VIEW, true)
  1341. -- 如果需要自动挂机
  1342. if self.model._need_auto_botting or self.model:IsGuildCollectActive() then
  1343. GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT)
  1344. end
  1345. self.model._need_auto_botting = false
  1346. elseif scene_mgr:IsGuildScene(scene_mgr:GetLastSceneId()) then
  1347. self:SetMainUIVisible(true, MainUIModel.GUILD_MODE)
  1348. self.model:Fire(EventName.OPEN_GUILD_SCENE_VIEW, false)
  1349. self.model._need_auto_botting = false
  1350. --------退出社团驻地的额外操作丢这
  1351. self.model.guild_collect_helper_info = {} --清空封印裂隙助战信息
  1352. self.model.guild_collect_confim_into_guild_scene = false
  1353. self.model.only_find_way_to_guild_collect_mon = false
  1354. self.model.need_go_support_guild_collect_after_40046 = false
  1355. self.model:ResetSelfGuildCollectSupportId()--手动重置当前的封印裂隙协助id
  1356. end
  1357. end
  1358. function GuildController:SetMainUIVisible( value ,mode)
  1359. mode = mode or MainUIModel.ACTIVITY_MODE
  1360. self:Fire(EventName.HIDE_TASK_TEAM_VIEW, not value, mode)--任务栏
  1361. GlobalEventSystem:Fire(EventName.SHOW_MAIN_TASK_ANNOUNCE_ROOT, not value, mode) --功能预告
  1362. GlobalEventSystem:Fire(EventName.CHANGE_RIGHT_TIP_ICON, not value, mode) --菜单伸展
  1363. end
  1364. --职位管理界面(暂时没用)
  1365. function GuildController:on40022( )
  1366. local vo = SCMD40022.New(true)
  1367. end
  1368. --批量任命(暂时没用)
  1369. function GuildController:on40024( )
  1370. local vo =SCMD40024.New(true)
  1371. end
  1372. function GuildController:on40025( )
  1373. local vo = SCMD40025.New(true)
  1374. if vo.error_code == 1 then
  1375. Message.show("修改成功", "success")
  1376. self.model:UpdateGuildNameAndFlag(vo)
  1377. self.model:Fire(GuildModel.RefreshGuildInfoEvt) --刷新社团主页基础信息
  1378. self.model:Fire(GuildModel.OPEN_GUILD_RENAME_VIEW, false)
  1379. else
  1380. ErrorCodeShow(vo.error_code)
  1381. end
  1382. end
  1383. function GuildController:on40031()
  1384. local vo = SCMD40031.New(true)
  1385. if vo.result == 1 then
  1386. Message.show("发起合并成功")
  1387. -- 请求社团合并信息
  1388. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40032)
  1389. else
  1390. ErrorCodeShow(vo.result)
  1391. end
  1392. end
  1393. function GuildController:on40032()
  1394. local vo = SCMD40032.New(true)
  1395. self.model:SetGuildMergeInfo(vo)
  1396. self.model:Fire(GuildModel.UPDATE_GUILD_MERGE_INFO)
  1397. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.List, true)
  1398. end
  1399. function GuildController:on40033()
  1400. local vo = SCMD40033.New(true)
  1401. if vo.result == 1 then
  1402. if vo.type == 0 then -- 自己收到吞并回复
  1403. Message.show("" .. (vo.opty == 0 and "拒绝" or "接受") .. "了对方社团的合并请求")
  1404. elseif vo.type == 1 then -- 发起方收到回复
  1405. Message.show("对方社团" .. (vo.opty == 0 and "拒绝" or "接受") .. "了您的合并请求")
  1406. end
  1407. -- 请求社团合并信息
  1408. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40032)
  1409. -- 如果同意了社团合并,则干掉接收方的全部的社团界面
  1410. if vo.opty == 1 and vo.type == 0 then
  1411. self.model:Fire(GuildModel.OPEN_GUILD_APPLY_MGR_VIEW, false)
  1412. self.model:Fire(GuildModel.OPEN_GUILD_POS_ALLOT_VIEW, false)
  1413. self.model:Fire(GuildModel.OPEN_REQUEST_MERGE_VIEW, false)
  1414. GlobalEventSystem:Fire(EventName.CLOSE_GUILD_MAIN_VIEW)
  1415. end
  1416. else
  1417. ErrorCodeShow(vo.result)
  1418. end
  1419. end
  1420. function GuildController:on40034( )
  1421. local vo = SCMD40034.New(true)
  1422. if vo.result == 1 then
  1423. Message.show("取消合并请求成功")
  1424. -- 请求社团合并信息
  1425. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40032)
  1426. else
  1427. ErrorCodeShow(vo.result)
  1428. end
  1429. end
  1430. function GuildController:on40026( )
  1431. local vo = SCMD40026.New(true)
  1432. if vo.errcode == 1 then
  1433. Message.show("解散社团成功")
  1434. else
  1435. ErrorCodeShow(vo.errcode)
  1436. end
  1437. end
  1438. -- 社团经验值和等级更新
  1439. function GuildController:on40029( )
  1440. local vo = SCMD40029.New(true)
  1441. -- 社团是否升级,升级了需要社团商城缓存
  1442. local guild_base_info = self.model:GetGuildBaseInfo()
  1443. if not IsTableEmpty(guild_base_info) and guild_base_info.guild_lv and guild_base_info.guild_lv ~= vo.guild_lv then
  1444. self.model:ClearGuildShopCfgCache()
  1445. end
  1446. self.model:UpdateGuildExpAndLv(vo)
  1447. self.model:Fire(GuildModel.RefreshGuildInfoEvt) --刷新社团主页基础信息
  1448. end
  1449. -- 玩家离开社团
  1450. function GuildController:on40030( )
  1451. local vo = SCMD40030.New(true)
  1452. self.model:UpdateMemberAfterKick(vo.role_id)
  1453. self.model:UpdateApplyMemberList(vo) -- 该玩家离开后,需要同步处理该玩家可能存在的申请信息
  1454. self.model:Fire(GuildModel.RefreshKickOutGuildEvt,vo.role_id)
  1455. end
  1456. function GuildController:on40027( )
  1457. local vo = SCMD40027.New(true)
  1458. if vo then
  1459. self.model:SetGuildShopGoodsList(vo.cargos)
  1460. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Shop, true)
  1461. self.model:Fire(GuildModel.UPDATE_GOODS_LIST) --更新道具列表信息
  1462. end
  1463. end
  1464. function GuildController:on40028( )
  1465. local vo = SCMD40028.New(true)
  1466. if vo.result == 1 then
  1467. Message.show("购买成功")
  1468. self.model:UpdateGuildShopData(vo)
  1469. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Shop, true)
  1470. self.model:Fire(GuildModel.RefreshBuyGoodsItemEvt,vo) -- 刷新点击item数量
  1471. else
  1472. ErrorCodeShow(vo.result)
  1473. end
  1474. end
  1475. -- 更新社团公告修改次数信息
  1476. function GuildController:on40019( )
  1477. local vo = SCMD40019.New(true)
  1478. self.model:SetGuildAnnounceTimesData(vo)
  1479. self.model:Fire(GuildModel.UPDATE_GUILD_ANNOUNCE_TIMES, vo)
  1480. end
  1481. function GuildController:on40035( )
  1482. local vo = SCMD40035.New(true)
  1483. -- print("Saber:GuildController [start:1453] vo ------------------------------------------")
  1484. -- PrintTable(vo)
  1485. self.model:SetGuildSpellListData(vo)
  1486. self.model:Fire(GuildModel.UPDATE_GUILD_SL_DATA)
  1487. self.model:Fire(GuildModel.UPDATE_SELECTED_GUILD_SL_DATA)
  1488. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Order, true)
  1489. end
  1490. function GuildController:on40036( )
  1491. local vo = SCMD40036.New(true)
  1492. if vo.result == 1 then
  1493. self.model:UpdateGuildSpellListDataStatus(vo)
  1494. self.model:Fire(GuildModel.UPDATE_SELECTED_GUILD_SL_DATA, vo.opty)
  1495. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Order, true)
  1496. else
  1497. ErrorCodeShow(vo.result)
  1498. end
  1499. end
  1500. function GuildController:on40037( )
  1501. local vo = SCMD40037.New(true)
  1502. if vo.result == 1 then
  1503. if vo.rid == 1 or vo.rid > 10 then
  1504. Message.show("邀请成功", "success")
  1505. elseif vo.rid == 2 then
  1506. Message.show("取消邀请成功", "success")
  1507. end
  1508. else
  1509. ErrorCodeShow(vo.result)
  1510. end
  1511. end
  1512. function GuildController:on40038( )
  1513. local vo = SCMD40038.New(true)
  1514. local function accept_callback()
  1515. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40039, vo.order, vo.rid)
  1516. end
  1517. local invite_data = {
  1518. layer_name = "Top",
  1519. invite_type = CommonModel.InviteTipsType.GuildSpellList,
  1520. accept_callback = accept_callback,
  1521. auto_close_time = 10,
  1522. inviter_name = vo.name,
  1523. inviter_lv = vo.lv,
  1524. inviter_id = vo.rid,
  1525. cfg_id = vo.cfg,
  1526. vip = vo.vip,
  1527. svip = vo.svip,
  1528. }
  1529. CommonController.Instance:Fire(EventName.SHOW_COMMON_INVITE_TIPS, invite_data)
  1530. end
  1531. function GuildController:on40039( )
  1532. local vo = SCMD40039.New(true)
  1533. if vo.result == 1 then
  1534. Message.show("拼单成功,您的分身将协助进行拼单", "success")
  1535. else
  1536. ErrorCodeShow(vo.result)
  1537. end
  1538. end
  1539. function GuildController:on40040( )
  1540. local vo = SCMD40040.New(true)
  1541. self.model:UpdateGuildSpellListFinish(vo)
  1542. self.model:Fire(GuildModel.UPDATE_SELECTED_GUILD_SL_DATA)
  1543. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Order, true)
  1544. self.model:Fire(GuildModel.OPEN_GUILD_SL_REWARD_VIEW, true, vo)
  1545. end
  1546. function GuildController:on40041( )
  1547. local vo = SCMD40041.New(true)
  1548. if vo.result == 1 then
  1549. Message.show("感谢社员成功", "success")
  1550. else
  1551. ErrorCodeShow(vo.result)
  1552. end
  1553. end
  1554. function GuildController:on40042( )
  1555. local vo = SCMD40042.New(true)
  1556. -- 打开感谢界面
  1557. local new_data = {}
  1558. new_data.type = 2
  1559. new_data.support_cfg_id = vo.cfg
  1560. new_data.chat_msg = ""
  1561. new_data.boss_id = 0
  1562. new_data.role_list = {}
  1563. new_data.role_list[1] = vo
  1564. new_data.reward_list = {}
  1565. local sl_cfg = Config.Guildorder[vo.cfg]
  1566. local reward = sl_cfg and stringtotable(sl_cfg.thank_reward) or {}
  1567. for k, v in ipairs(reward) do
  1568. new_data.reward_list[k] = {
  1569. goods_type_id = v[1],
  1570. goods_id = v[2],
  1571. num = v[3],
  1572. }
  1573. end
  1574. self.model:SetGuildSupportAwardInfo(new_data)
  1575. MsgManager:getInstance():Add({type = Config.ConfigMainIcon.TipType.supportThank}, true)
  1576. end
  1577. function GuildController:on40065( )
  1578. local vo = SCMD40065.New(true)
  1579. self.model:UpdateGuildSpellListData(vo)
  1580. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Order, true)
  1581. end
  1582. function GuildController:on40066( )
  1583. local vo = SCMD40066.New(true)
  1584. if vo.res == 1 then
  1585. Message.show("刷新成功", "success")
  1586. else
  1587. ErrorCodeShow(vo.res)
  1588. end
  1589. end
  1590. -- 更新社团资金
  1591. function GuildController:on40043( )
  1592. local vo = SCMD40043.New(true)
  1593. self.model:UpdateGuildFunds(vo)
  1594. self.model:Fire(GuildModel.RefreshGuildInfoEvt)
  1595. end
  1596. function GuildController:on40063( )
  1597. local vo = SCMD40063.New(true)
  1598. self.model:SetGuildSceneMemberNum(vo.num)
  1599. self.model:Fire(GuildModel.UPDATE_GUILD_SCENE_MEMBER_NUM, vo.num)
  1600. end
  1601. function GuildController:on40044( )
  1602. local vo = SCMD40044.New(true)
  1603. --社团采集活动:进入驻地时拿一次封印次数
  1604. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40803)--拿一次封印次数
  1605. if vo.errcode ~= 1 then
  1606. ErrorCodeShow(vo.errcode)
  1607. end
  1608. end
  1609. function GuildController:on40045( )
  1610. local vo = SCMD40045.New(true)
  1611. if vo.errcode ~= 1 then
  1612. ErrorCodeShow(vo.errcode)
  1613. end
  1614. end
  1615. function GuildController:on40067( )
  1616. local vo = SCMD40067.New(true)
  1617. self.model:UpdateGuildMemberOnlineFlag(vo)
  1618. self.model:Fire(GuildModel.RefreshMainViewMemberInfoEvt)
  1619. end
  1620. function GuildController:on40400( )
  1621. local vo = SCMD40400.New(true)
  1622. self.model:SetPersonalGuildActive(vo)
  1623. self.model:Fire(GuildModel.UPDATE_ROLE_ACTIVE_DATA)
  1624. self.model:Fire(GuildModel.UPDATE_GUILD_TASK_PROGRESS)
  1625. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
  1626. end
  1627. function GuildController:on40401( )
  1628. local vo = SCMD40401.New(true)
  1629. self.model:UpdateActiveTask(vo)
  1630. self.model:Fire(GuildModel.UPDATE_GUILD_TASK_PROGRESS)
  1631. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
  1632. end
  1633. function GuildController:on40402( )
  1634. local vo = SCMD40402.New(true)
  1635. self.model:SetGuildActiveData(vo)
  1636. self.model:Fire(GuildModel.UPDATE_GUILD_ACTIVE_DATA)
  1637. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
  1638. end
  1639. function GuildController:on40403( )
  1640. local vo = SCMD40403.New(true)
  1641. if vo.result == 1 then
  1642. Message.show("领取成功")
  1643. self.model:UpdateActiveStage(vo)
  1644. self.model:Fire(GuildModel.UPDATE_GUILD_ACTIVE_REWARD, vo.opty)
  1645. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
  1646. else
  1647. ErrorCodeShow(vo.result)
  1648. end
  1649. end
  1650. function GuildController:on40406( )
  1651. local vo = SCMD40406.New(true)
  1652. -- 处理社团活跃的广播
  1653. self.model:UpdateGuildActive(vo.labors)
  1654. self.model:Fire(GuildModel.UPDATE_GUILD_ACTIVE_DATA)
  1655. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Active, true)
  1656. end
  1657. function GuildController:on40407( )
  1658. local vo = SCMD40407.New(true)
  1659. if vo.res == 1 then
  1660. Message.show("领取成功", "success")
  1661. self.model:UpdateGuildActivePersonalActive(vo.labors)
  1662. self.model:Fire(GuildModel.UPDATE_ROLE_ACTIVE_DATA)
  1663. else
  1664. ErrorCodeShow(vo.res)
  1665. end
  1666. end
  1667. function GuildController:on40404( )
  1668. local vo = SCMD40404.New(true)
  1669. self.model:UpdateGuildLogInfo(vo)
  1670. self.model:Fire(GuildModel.UPDATE_GUILD_LOG)
  1671. end
  1672. function GuildController:on40405( )
  1673. local vo = SCMD40405.New(true)
  1674. self.model:SetGuildLogInfo(vo.logs)
  1675. self.model:Fire(GuildModel.UPDATE_GUILD_LOG)
  1676. end
  1677. ---------- 社团采集活动协议 ----------start
  1678. --社团采集活动状态
  1679. function GuildController:on40801()
  1680. local vo = SCMD40801.New(true)
  1681. if vo then
  1682. self.model:StopGuildCollectTimer()
  1683. self.model:SetGuildCollectActivityState(vo)--保存采集活动状态信息并启动倒计时
  1684. self.model:SetGuildEventByType(GuildEventType.NoonCollect, vo)-- 社团活动玩法相关的数据添加
  1685. self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, GuildEventType.NoonCollect)--活动开始与结束都要触发事件去处理scene界面显示
  1686. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40803)--拿一次封印次数
  1687. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event)
  1688. self.model:Fire(GuildModel.UPDATE_RED_DOT_BY_TYPE, Config.ConfigGuild.TabId.Event)--刷新活动界面tabitem的红点
  1689. end
  1690. end
  1691. --社团采集活动参与信息 获取活动参与次数
  1692. function GuildController:on40802()
  1693. local vo = SCMD40802.New(true)
  1694. if vo then
  1695. self.model:SetGuildCollectActivityInfo(vo)
  1696. self.model:Fire(GuildModel.UODATE_GUILD_COLLECT_ACTIVITY_TIMES)--刷新社团活动界面的采集活动次数
  1697. self.model:Fire(GuildModel.UPDATE_GUILD_COLLECT_INFO_CON)--刷新活动界面右上角的信息
  1698. end
  1699. end
  1700. --采集场景右上角信息 后端主推封印次数
  1701. function GuildController:on40803()
  1702. local vo = SCMD40803.New(true)
  1703. if vo then
  1704. self.model:SetGuildCollectActivityDetailInfo(vo)
  1705. self.model:Fire(GuildModel.UPDATE_GUILD_COLLECT_INFO_CON)--刷新采集活动进行过程中右上角的信息
  1706. end
  1707. end
  1708. --后端主推采集活动状态
  1709. function GuildController:on40804()
  1710. local vo = SCMD40804.New(true)
  1711. if vo then
  1712. self.model:SetGuildCollectActivityState2(vo)
  1713. if vo.state == 1 then--活动开始了
  1714. --保存活动状态后立即用01协议请求当次活动的结束时间
  1715. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40801)--活动状态
  1716. else--活动结束了
  1717. self.model:SetGuildEventByType(GuildEventType.NoonCollect, vo)-- 社团活动玩法相关的数据添加
  1718. self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, GuildEventType.NoonCollect)--活动开始与结束都要触发事件去处理scene界面显示
  1719. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40803)--拿一次封印次数
  1720. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event)
  1721. self.model:Fire(GuildModel.UPDATE_RED_DOT_BY_TYPE, Config.ConfigGuild.TabId.Event)--刷新活动界面tabitem的红点
  1722. end
  1723. --请求一下新的活动参与次数
  1724. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40802)--活动状态
  1725. end
  1726. end
  1727. --后端主推采集活动怪物出现
  1728. function GuildController:on40805()
  1729. local vo = SCMD40805.New(true)
  1730. -------怪物出现,给帮忙
  1731. if TimeUtil:getServerTime() - self.model.last_chat_collect_support_time >= 60 then--聊天有重复内容1分钟冷却cd
  1732. local content = "封印裂隙时有怪物入侵社团驻地,请求团内成员协助击杀 <color=#2cf89a><a@guildScene>[立即前往]</a></color>"
  1733. ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_GUILD,content,0,nil,ChatModel.CHAT_COMMON_TYPE.SYSTEM)
  1734. Message.show("您触发了裂隙怪物!已发送协助信息~")
  1735. self.model.last_chat_collect_support_time = TimeUtil:getServerTime()
  1736. end
  1737. end
  1738. --场景当前剩余采集怪数量
  1739. function GuildController:on40806( )
  1740. local vo = SCMD40806.New(true)
  1741. self.model:SetGuildCollectLeftMon(vo)
  1742. self.model:Fire(GuildModel.UPDATE_GUILD_COLLECT_LEFT_COLLECT_MON_NUM)
  1743. end
  1744. --封印裂隙协助者助战信息
  1745. function GuildController:on40807( )
  1746. local vo = SCMD40807.New(true)
  1747. self.model:SetGuildCollectHelperInfo(vo)
  1748. self.model:Fire(GuildModel.ANS_GUILD_COLLECT_HELP_LIST)
  1749. end
  1750. --封印裂隙协助者请求怪物信息,一个协助id对应一个怪物唯一id
  1751. function GuildController:on40808( )
  1752. local vo = SCMD40808.New(true)
  1753. local is_guild_scene = SceneManager:getInstance():IsGuildScene()
  1754. if is_guild_scene then
  1755. self.model:Fire(GuildModel.FIND_WAY_TO_GUILD_COLLECT_HELP_MON,vo)
  1756. else
  1757. if vo.errcode == 0 then--可以切场景
  1758. -- 直接进场景
  1759. self.model.only_find_way_to_guild_collect_mon = true
  1760. self.model.temp_guild_collect_mon_data = vo
  1761. self.model:Fire(GuildModel.ENTER_GUILD_BASE)
  1762. else
  1763. Message.show("不可前往协助")
  1764. end
  1765. end
  1766. end
  1767. --封印裂隙通知协助更新
  1768. function GuildController:on40811( )
  1769. local vo = SCMD40811.New(true)
  1770. self.model:UpdateGuildSupportInfo(vo)
  1771. end
  1772. --自己当前封印裂隙协助的Id
  1773. function GuildController:on40812(vo)
  1774. local vo = SCMD40812.New(true)
  1775. --保存封印裂隙的当前唯一协助id
  1776. self.model:SetSelfGuildCollectSupportId(vo.support_sid)
  1777. self.model:Fire(GuildModel.UPDATE_GUILD_COLLECT_NOW_SUPPORT_ID)
  1778. end
  1779. ---------- 社团采集活动协议 ----------end
  1780. --------------------------------------------------------------------
  1781. -- 社团boss协议
  1782. function GuildController:on40600( )
  1783. local vo = SCMD40600.New(true)
  1784. local boss_type = vo.act == 1 and GuildEventType.GuildBossNoon or GuildEventType.GuildBossNight
  1785. self.model:SetGuildEventByType(boss_type, vo)
  1786. self.model:CheckGuildAuctionShow(vo)
  1787. self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, boss_type)
  1788. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40607)
  1789. self.model:Fire(GuildModel.UPDATE_GUILD_BOSS_INFO)
  1790. -- 检查红点
  1791. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event)
  1792. end
  1793. function GuildController:on40601( )
  1794. local vo = SCMD40601.New(true)
  1795. self.model:ChangeVar("guild_boss_hp_data", vo, false, true)
  1796. end
  1797. function GuildController:on40602( )
  1798. local vo = SCMD40602.New(true)
  1799. local boss_type = vo.act == 1 and GuildEventType.GuildBossNoon or GuildEventType.GuildBossNight
  1800. self.model:SetGuildBossRank(boss_type, GuildBossRankType.Personal, vo) -- 个人伤害榜单数据
  1801. self.model:Fire(GuildModel.UPDATE_GUILD_BOSS_RANK, GuildBossRankType.Personal)
  1802. --刷新总榜的时候也要及时刷新自己的数据
  1803. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40604, vo.act,0)
  1804. end
  1805. function GuildController:on40603( )
  1806. local vo = SCMD40603.New(true)
  1807. local boss_type = vo.act == 1 and GuildEventType.GuildBossNoon or GuildEventType.GuildBossNight
  1808. self.model:SetGuildBossRank(boss_type, GuildBossRankType.Guild, vo) -- 社团伤害榜单数据
  1809. self.model:Fire(GuildModel.UPDATE_GUILD_BOSS_RANK, GuildBossRankType.Guild)
  1810. --刷新总榜的时候也要及时刷新自己的数据
  1811. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40604, vo.act,1)
  1812. end
  1813. function GuildController:on40604( )
  1814. local vo = SCMD40604.New(true)
  1815. local boss_type = vo.act == 1 and GuildEventType.GuildBossNoon or GuildEventType.GuildBossNight
  1816. self.model:SetGuildBossPersonalRank(boss_type, vo)
  1817. self.model:Fire(GuildModel.UPDATE_GUILD_BOSS_PERSONAL_RANK, vo.opty)
  1818. end
  1819. function GuildController:on40605( )
  1820. local vo = SCMD40605.New(true)
  1821. if TableSize(vo.guild_awards) > 0 then
  1822. MarketModel:getInstance():SetHasGuildGoods(true)
  1823. end
  1824. self:OpenGuildBossResultView(vo)
  1825. end
  1826. -- 打开社团boss的结算界面
  1827. function GuildController:OpenGuildBossResultView(vo)
  1828. self.model:SortGuildBossResult(vo)
  1829. local result_info = {
  1830. special_duntype = BaseDungeonModel.DUN_TYPE.GuildBoss,
  1831. mrank = vo.mrank,
  1832. grank = vo.grank,
  1833. role_awards = vo.role_awards,
  1834. guild_awards = vo.guild_awards,
  1835. result = BaseDungeonModel.RESULT.SUCCESS,
  1836. }
  1837. -- 延时打开结算界面
  1838. local function delay_method( )
  1839. self.model:Fire(GuildModel.OPEN_GUILD_BOSS_RESULT_VIEW, true, result_info)
  1840. end
  1841. setTimeout(delay_method, 3)
  1842. end
  1843. function GuildController:on40606( )
  1844. local vo = SCMD40606.New(true)
  1845. self.model:SetGuildBossInvincible(vo)
  1846. self.model:Fire(GuildModel.UPDATE_GUILDBOSS_INVINCIBLE, vo)
  1847. end
  1848. --社团boss鼓舞数据
  1849. function GuildController:on40607( )
  1850. local vo = SCMD40607.New(true)
  1851. self.model:SetGuildBossEncourageData(vo)
  1852. end
  1853. --鼓舞
  1854. function GuildController:on40608( )
  1855. local vo = SCMD40608.New(true)
  1856. if vo.result ~= 1 then
  1857. ErrorCodeShow(vo.result)
  1858. else
  1859. Message.show("鼓舞成功")
  1860. --鼓舞成功后,主动请求07协议刷新一下剩余的次数
  1861. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40607)
  1862. end
  1863. end
  1864. --广播更新社团鼓舞次数
  1865. function GuildController:on40609( )
  1866. local vo = SCMD40609.New(true)
  1867. self.model:UpdateGuildBossEncourageGuildTimes(vo)
  1868. end
  1869. -- 社团boss采集逻辑
  1870. function GuildController:on40610( )
  1871. local vo = SCMD40610.New(true)
  1872. self.model:SetCurGuildBossCollectDropId(vo.drop_id)
  1873. if vo.res == 1 then
  1874. if vo.opty == GuildModel.GBossPickOpty.Succeed then -- 采集结束
  1875. Message.show("拾取成功")
  1876. GlobalEventSystem:Fire(SceneEventType.PICK_SCENE_DROP_ITEM, vo)
  1877. elseif vo.opty == GuildModel.GBossPickOpty.Cancel then -- 采集中断
  1878. GuildModel:getInstance():Fire(GuildModel.STOP_COLLECT_ITEM)
  1879. elseif vo.opty == GuildModel.GBossPickOpty.Start then -- 采集开始
  1880. -- GlobalEventSystem:Fire(SceneEventType.GBOSS_PICK_START, vo)
  1881. self.model:Fire(GuildModel.START_TO_COLLECT_ITEM, vo)
  1882. end
  1883. else
  1884. ErrorCodeShow(vo.res)
  1885. end
  1886. end
  1887. function GuildController:on40611( )
  1888. local vo = SCMD40611.New(true)
  1889. self.model:Fire(GuildModel.GUILD_BOSS_DROP_EVENT, vo)
  1890. end
  1891. function GuildController:on40612( )
  1892. local vo = SCMD40612.New(true)
  1893. local scene_mgr = SceneManager:getInstance()
  1894. if scene_mgr:IsShowDynamicInfoScene() then
  1895. local data = {
  1896. role_vo_1 = vo, --我方
  1897. role_vo_2 = nil, --敌方
  1898. type = 4, --UI类型
  1899. is_break = 1, --击杀情况(类型2需要使用)
  1900. desc = "", --描述
  1901. times = vo.times, --鼓舞次数
  1902. total = vo.total, --鼓舞伤害
  1903. }
  1904. GlobalEventSystem:Fire(EventName.SHOW_DYNAMIC_INFO_TIP, data)
  1905. end
  1906. -- 鼓舞横幅
  1907. if scene_mgr:IsGuildScene() then
  1908. local damage_percentage = self.model:GetGuildBossKV("encourage_hurt")/100 --万分比伤害,这里除去100拿百分比伤害
  1909. local damage = vo.total * damage_percentage
  1910. local special_tip_data = {
  1911. type = SpecialTipType.SubTip1,
  1912. sepeical_str = string.format("<color=%s>%s</color> 使用了 <color=%s>社团鼓舞</color>,全员 <color=%s>伤害+%s%%</color>",
  1913. "#a9c1e1", vo.name, "#2cf89a", "#fdffc2", damage),
  1914. need_flash = false,
  1915. show_time = 3,
  1916. }
  1917. CommonController.Instance:Fire(EventName.OPEN_SPECIALTIPVIEW, special_tip_data)
  1918. end
  1919. end
  1920. function GuildController:on40613( )
  1921. local vo = SCMD40613.New(true)
  1922. if vo and TableSize(vo.roll_list) > 0 then
  1923. -- 缓存骰点信息,给40614协议做飘字表现用
  1924. self.model:SetGuildBossRollData(vo) -- 该方法会清除掉所有骰点的缓存,所以如果出现画面的内容消失的问题需要检查这个协议的返回情况
  1925. local red_num = self.model:CheckGuildBossNumRed()
  1926. self.model:Fire(GuildModel.UPDATE_BOSS_ROLL_DATA)
  1927. self.model:Fire(GuildModel.UPDATE_BOSS_ROLL_RECORD)
  1928. self.model:Fire(GuildModel.UPDATE_SCENE_FUNCBTN_NUM_RED, 4062)
  1929. if SceneManager:getInstance():IsGuildScene() and red_num > 0 then -- 社团场景内才弹出界面
  1930. self.model:Fire(GuildModel.OPEN_BOSS_ROLL_VIEW, true)
  1931. end
  1932. end
  1933. end
  1934. function GuildController:on40614( )
  1935. local vo = SCMD40614.New(true)
  1936. if vo.result == 1 then
  1937. self.model:UpdateGuildBossRollData(vo)
  1938. self.model:CheckGuildBossNumRed()
  1939. self.model:Fire(GuildModel.UPDATE_BOSS_ROLL_DATA)
  1940. self.model:Fire(GuildModel.UPDATE_SCENE_FUNCBTN_NUM_RED, 4062)
  1941. local str = string.format("%s成功", vo.option == 1 and "参与骰点" or "放弃骰点")
  1942. Message.show(str, "success")
  1943. else
  1944. ErrorCodeShow(vo.result)
  1945. end
  1946. end
  1947. function GuildController:on40615( )
  1948. local vo = SCMD40615.New(true)
  1949. if vo.result == 1 then
  1950. self.model:SetGuildBossRollIsFinished(true)
  1951. self.model:GetGuildBossRollHighestRoleId()
  1952. self.model:CheckGuildBossNumRed()
  1953. self.model:Fire(GuildModel.UPDATE_SCENE_FUNCBTN_NUM_RED, 4062)
  1954. else
  1955. ErrorCodeShow(vo.result)
  1956. end
  1957. end
  1958. function GuildController:on40616( )
  1959. local vo = SCMD40616.New(true)
  1960. self.model:SetGuildBossRollRecord(vo)
  1961. self.model:CheckGuildBossNumRed()
  1962. self.model:Fire(GuildModel.UPDATE_BOSS_ROLL_RECORD)
  1963. self.model:Fire(GuildModel.UPDATE_SCENE_FUNCBTN_NUM_RED, 4062)
  1964. end
  1965. -- ############## 查询协助信息 ##############
  1966. function GuildController:on40046( )
  1967. local vo = SCMD40046.New(true)
  1968. print("40046:")
  1969. -- PrintTable(vo)
  1970. if #vo.support_list == 0 then--如果没协助了 那就取消红点
  1971. self.need_add_suppport_tip = true
  1972. else
  1973. local sort_func = function ( a, b )
  1974. return a.show_time > b.show_time
  1975. end
  1976. table.sort(vo.support_list, sort_func)
  1977. end
  1978. if self.need_add_suppport_tip then--是否需要添加tip
  1979. -- local server_info = self.model:GetGuildSupportInfo()
  1980. -- local have_red = false--是否有红点
  1981. -- local find_data = nil--找到不相同的协助数据
  1982. -- if server_info and #server_info > 0 and #vo.support_list > 0 then--不存在则找到最新的
  1983. -- local new_support_info = {}
  1984. -- for k,v in pairs(server_info) do
  1985. -- new_support_info[v.support_sid] = v
  1986. -- end
  1987. -- for k,v in ipairs(vo.support_list) do
  1988. -- if not new_support_info[v.support_sid] then
  1989. -- have_red = true
  1990. -- find_data = v
  1991. -- break
  1992. -- end
  1993. -- end
  1994. -- elseif #vo.support_list > 0 then
  1995. -- have_red = true
  1996. -- find_data = vo.support_list[#vo.support_list]
  1997. -- end
  1998. elseif not self.model.is_check_support_list then
  1999. MsgManager:getInstance():Remove(Config.ConfigMainIcon.TipType.support)
  2000. end
  2001. if self.model.is_check_support_list then
  2002. self.model.is_check_support_list = false
  2003. self.model.support_red_list[GuildModel.SupportTab.List] = #vo.support_list > 0
  2004. self.model:UpdateSupportMainIconRedDot()
  2005. end
  2006. -- self.model:SetDaliyReputation(vo.guild_daliy_reputation)
  2007. self.model:SetSelfGuildSupportId(vo.self_support_sid)
  2008. self.model:SetGuildSupportStatus(vo.self_support_status)
  2009. self.model:SetGuildSupportInfo(vo)
  2010. self.model:Fire(GuildModel.UPDATE_GUILD_SUPPOR_INFO,40046)
  2011. end
  2012. -- ############## 接单方感谢信界面信息 ################
  2013. function GuildController:on40047( )
  2014. local vo = SCMD40047.New(true)
  2015. -- print("40047:")
  2016. -- PrintTable(vo)
  2017. -- local new_data = {}
  2018. -- new_data.type = vo.type
  2019. -- new_data.support_cfg_id = vo.support_cfg_id
  2020. -- new_data.chat_msg = vo.chat_msg
  2021. -- new_data.boss_id = vo.boss_id
  2022. -- new_data.role_list = {}
  2023. -- new_data.role_list[1] = vo
  2024. -- new_data.reward_list = vo.reward_list
  2025. -- self.model:SetGuildSupportAwardInfo(new_data)
  2026. -- MsgManager:getInstance():Add({type=Config.ConfigMainIcon.TipType.supportThank},true)
  2027. end
  2028. -- ############## 请求方获得感谢信礼包 ################
  2029. function GuildController:on40048( )
  2030. local vo = SCMD40048.New(true)
  2031. print("40048:")
  2032. local cur_choose_thank_data = {
  2033. type = vo.type,
  2034. support_id = vo.support_id,
  2035. }
  2036. if vo.option_type == 1 then -- 感谢方操作
  2037. if vo.type == GuildModel.SupportThankType.Normal then -- 通用协助,常规流程
  2038. self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_TIP_VIEW, cur_choose_thank_data)
  2039. elseif vo.type == GuildModel.SupportThankType.SpellList then -- 社团拼单完成,判断定制的感谢通知
  2040. self.model:ShowGuildSpellListThankView(vo.support_id, vo.option_type)
  2041. end
  2042. elseif vo.option_type == 2 then -- 被感谢方,主界面弹出tips按钮
  2043. self.model.cur_choose_thank_data = cur_choose_thank_data
  2044. MsgManager:getInstance():Add({type = Config.ConfigMainIcon.TipType.supportThank}, true)
  2045. end
  2046. --doto 这里要弹小弹窗
  2047. -- PrintTable(vo)
  2048. -- self.model:SetGuildSupportThankId(vo.goods_id)
  2049. end
  2050. function GuildController:on40049( )
  2051. local vo = SCMD40049.New(true)
  2052. print("40049:")
  2053. PrintTable(vo)
  2054. -- self.model:SetGuildSupportThankInfo(vo)--2021.4.14功能改版不需要了
  2055. -- self.model:Fire(GuildModel.UPDATE_GUILD_SUPPOR_THANK_INFO)
  2056. end
  2057. function GuildController:on40050( )
  2058. local vo = SCMD40050.New(true)
  2059. if vo.err_code == 1 then
  2060. Message.show("感谢已发送")
  2061. -- 关闭感谢界面
  2062. if self.GuildSupportThankView and self.GuildSupportThankView:HasOpen() then
  2063. self.GuildSupportThankView:Close()
  2064. end
  2065. self.model:Fire(GuildModel.OPEN_GUILD_SL_THANK_VIEW, false)
  2066. self.model.is_start_open_support_continue = GuildModel.SupportType.Thank--开始连开
  2067. else
  2068. ErrorCodeShow(vo.err_code)
  2069. end
  2070. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40068)--不论成功失败要刷新协助感谢列表
  2071. end
  2072. function GuildController:on40051( )
  2073. local vo = SCMD40051.New(true)
  2074. if vo.errcode == 1 then
  2075. if vo.module == 500 and vo.sub_module == 1 then
  2076. local text = EscortModel:getInstance():GetMyEscortName()
  2077. local my_name = RoleManager.Instance.mainRoleInfo.name
  2078. local role_id = RoleManager.Instance.mainRoleInfo.role_id
  2079. local content = string.format("我正在进行<color=%s>%s</color>,请各位大佬快来帮忙!<a@escortHelp@%s@%s@%s></a>", ColorUtil.PURPLE_DARK, text, vo.support_sid,my_name,role_id)
  2080. ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_GUILD,content,nil,nil,ChatModel.CHAT_COMMON_TYPE.SYSTEM)
  2081. end
  2082. Message.show("协助请求已发送")
  2083. self.model.support_is_self_send = true
  2084. else
  2085. ErrorCodeShow(vo.errcode)
  2086. end
  2087. end
  2088. function GuildController:on40052( )
  2089. local vo = SCMD40052.New(true)
  2090. if vo.errcode == 1 then
  2091. if self.GuildSupportInfoMainView and self.GuildSupportInfoMainView:HasOpen() then
  2092. self.GuildSupportInfoMainView:Close()
  2093. end
  2094. --如果是封印裂隙的前往协助,不要请求40046,太频繁了
  2095. if vo.support_cfg_id == 2 and self.model:IsGuildCollectActive() and SceneManager.Instance:IsGuildScene() then
  2096. --封印裂隙前往协助后后端会主推40812协议,一些操作再40812里处理
  2097. return
  2098. elseif vo.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.ANSWER then
  2099. self.model:InitGuildQuizData( vo.support_sid )
  2100. self.model:Fire(GuildModel.OPEN_GUILD_QUIZ_VIEW, true)
  2101. elseif vo.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.GUILD_BOSS then
  2102. local info = self.model:GetGuildSupportInfoById(vo.support_sid)
  2103. local bosspower, end_time, boss_id, dun_id, status = self.model:ParseGuildSupportData(info.kv_data)
  2104. if dun_id then
  2105. BaseDungeonModel:getInstance():Fire(BaseDungeonModel.REQUEST_CCMD_EVENT, 61001, dun_id, 0)
  2106. end
  2107. end
  2108. else
  2109. ErrorCodeShow(vo.errcode)
  2110. end
  2111. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40046)
  2112. end
  2113. function GuildController:on40053( )
  2114. local vo = SCMD40053.New(true)
  2115. if vo.errcode == 1 then
  2116. if vo.support_cfg_id ~= 2 then--如果是封印裂隙的取消协助,不请求46协议,太频繁了
  2117. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40046)
  2118. end
  2119. if SceneManager.Instance:IsBossDesertedScene() then--如果在废都幻魔里面的话得清数据(废都幻魔和赏金boss协助共用同一个逻辑)
  2120. BossModel:GetInstance():LeaveSceneClear(Config.ConfigBoss.ModuleId.Money)
  2121. end
  2122. local scene = Scene:getInstance()
  2123. local target = scene:GetClickTarget()
  2124. if target and target:GetType() == SceneBaseType.Monster then
  2125. --选中怪物的话要取消选中,不然会攻击一些不可攻击的对象
  2126. scene:CancelClickTarget()
  2127. end
  2128. --如果是封印裂隙取消了协助,要通知右侧tips状态变更
  2129. if vo.support_cfg_id == 2 and self.model:IsGuildCollectActive() and SceneManager.Instance:IsGuildScene() then
  2130. self.model:ResetSelfGuildCollectSupportId()
  2131. self.model:Fire(GuildModel.GUILD_COLLECT_SUPPORT_CANCEL)
  2132. end
  2133. else
  2134. ErrorCodeShow(vo.errcode)
  2135. end
  2136. end
  2137. function GuildController:on40054( )
  2138. local vo = SCMD40054.New(true)
  2139. if vo.errcode == 1 then
  2140. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40046)
  2141. if vo.role_id ~= RoleManager.Instance.mainRoleInfo.role_id and GoodsModel:getInstance():GetDaliyReputation() < GoodsModel:getInstance():GetReputationMaxNum() then
  2142. self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_RESULT_VIEW,vo)
  2143. end
  2144. if SceneManager.Instance:IsBossDesertedScene() then--如果在废都幻魔里面的话得清数据(废都幻魔和赏金boss协助共用同一个逻辑)
  2145. BossModel:GetInstance():LeaveSceneClear(Config.ConfigBoss.ModuleId.Money)
  2146. end
  2147. else
  2148. ErrorCodeShow(vo.errcode)
  2149. end
  2150. end
  2151. function GuildController:on40055( )
  2152. local vo = SCMD40055.New(true)
  2153. if vo.errcode == 1 then
  2154. -- local self_support_sid = self.model:GetSelfGuildSupportId()
  2155. if vo.is_in_support == 0 and vo.support_id == 0 then--自己才需要判断
  2156. Message.show("协助已结束")
  2157. self.model:SetGuildSupportStatus(0)
  2158. self.model:Fire(GuildModel.UPDATE_GUILD_SUPPOR_INFO,40055)
  2159. end
  2160. if SceneManager.Instance:IsBossDesertedScene() then--如果在废都幻魔里面的话得清数据(废都幻魔和赏金boss协助共用同一个逻辑)
  2161. BossModel:GetInstance():LeaveSceneClear(Config.ConfigBoss.ModuleId.Money)
  2162. end
  2163. else
  2164. ErrorCodeShow(vo.errcode)
  2165. end
  2166. end
  2167. function GuildController:on40056( )
  2168. local vo = SCMD40056.New(true)
  2169. self.model.support_red_list[vo.type] = vo.length > 0
  2170. self.model:UpdateSupportMainIconRedDot()
  2171. if vo.type == GuildModel.SupportTab.List then
  2172. self.need_add_suppport_tip = true
  2173. self.need_show_guild_collect_support_view = true--只有在后端主推有新协助时才能打开协助界面
  2174. elseif vo.type == GuildModel.SupportTab.Thank then
  2175. self:Fire(GuildModel.UPDATE_SUPPORT_THANK_LIST)
  2176. elseif vo.type == GuildModel.SupportTab.Gift then
  2177. self:Fire(GuildModel.UPDATE_SUPPORT_GIFT_LIST)
  2178. end
  2179. end
  2180. function GuildController:on40068( )
  2181. local vo = SCMD40068.New(true)
  2182. self.model:SetSupportThankList(vo.info_list)
  2183. if self.model.is_start_open_support_continue then--开始连开模式
  2184. local list = self.model:GetSupportThankList()
  2185. for k,v in ipairs(list) do
  2186. if v.is_send == 0 then
  2187. if v.type == GuildModel.SupportThankType.Normal then
  2188. self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_THANK_VIEW, GuildModel.SupportType.Thank, v)
  2189. self.model.is_start_open_support_continue = nil--没找到就停止
  2190. break
  2191. elseif v.type == GuildModel.SupportThankType.SpellList then
  2192. self.model:Fire(GuildModel.OPEN_GUILD_SL_THANK_VIEW, true, v)
  2193. self.model.is_start_open_support_continue = nil--没找到就停止
  2194. break
  2195. end
  2196. end
  2197. end
  2198. end
  2199. end
  2200. function GuildController:on40069( )
  2201. local vo = SCMD40069.New(true)
  2202. -- print("huangcong:GuildController [start:2416] vo:", vo)
  2203. -- PrintTable(vo)
  2204. -- print("huangcong:GuildController [end]")
  2205. self.model:SetSupportGiftList(vo.info_list)
  2206. if self.model.is_start_open_support_continue then--开始连开模式
  2207. local list = self.model:GetSupportGiftList()
  2208. for k,v in ipairs(list) do
  2209. if v.is_get ~= 1 then
  2210. local data = DeepCopy(v)
  2211. data.role_list = {{
  2212. name = v.name,
  2213. picture = v.picture,
  2214. role_id = v.role_id,
  2215. sex = v.sex,
  2216. sup_vip_type = v.sup_vip_type,
  2217. vip_flag = v.vip_flag,
  2218. profile_photo_id = v.profile_photo_id,
  2219. dress_board_id = v.dress_board_id,
  2220. }
  2221. }
  2222. self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_THANK_VIEW,GuildModel.SupportType.Award,data)
  2223. self.model.is_start_open_support_continue = nil--没找到就停止
  2224. break
  2225. end
  2226. end
  2227. end
  2228. end
  2229. function GuildController:on40070( )
  2230. local vo = SCMD40070.New(true)
  2231. if vo.result == 1 then
  2232. Message.show("收下谢礼","success")
  2233. -- 关闭感谢界面
  2234. if self.GuildSupportThankView and self.GuildSupportThankView:HasOpen() then
  2235. self.GuildSupportThankView:Close()
  2236. end
  2237. -- self.model:Fire(GuildModel.OPEN_GUILD_SL_THANK_VIEW, false)
  2238. self.model.is_start_open_support_continue = GuildModel.SupportType.Award--开始连开
  2239. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40069)--不论成功失败要刷新领取协助感谢列表
  2240. else
  2241. ErrorCodeShow(vo.result)
  2242. end
  2243. end
  2244. function GuildController:on40072( )
  2245. local vo = SCMD40072.New(true)
  2246. if vo.result == 1 then
  2247. -- 延时更新社团成员信息
  2248. local function req_new_menber_list()
  2249. self.model:Fire(GuildModel.RequestMemberViewMemberInfoEvt)
  2250. end
  2251. TimeManager.GetInstance():StartTime("Guild_Req_New_Menber_list", 2, req_new_menber_list)
  2252. end
  2253. end
  2254. function GuildController:on40057( )
  2255. local vo = SCMD40057.New(true)
  2256. self.model:SetGuildEventByType(GuildEventType.GuildParty, vo)
  2257. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event, true)
  2258. self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, GuildEventType.GuildParty)
  2259. end
  2260. function GuildController:on40058( )
  2261. local vo = SCMD40058.New(true)
  2262. self.model:SetGuildPartyExpData(vo)
  2263. self.model:Fire(GuildModel.UPDATE_GUILDPARTY_EXPDATA)
  2264. end
  2265. function GuildController:on40059( )
  2266. local vo = SCMD40059.New(true)
  2267. self.model:UpdateGuildPartyExp(vo)
  2268. self.model:Fire(GuildModel.UPDATE_GUILDPARTY_EXPDATA)
  2269. end
  2270. --取消协助把消息发送给请求者
  2271. function GuildController:on40061( )
  2272. local vo = SCMD40061.New(true)
  2273. self.model:Fire(GuildModel.BOARD_GUILD_SUPPOR_REMOVE, vo.role_id)
  2274. end
  2275. function GuildController:on40064( )
  2276. local vo = SCMD40064.New(true)
  2277. if vo.res == 1 then
  2278. Message.show("召唤社员信息发布成功", "success")
  2279. else
  2280. ErrorCodeShow(vo.res)
  2281. end
  2282. end
  2283. -----------------------本服团战 ---------------------------
  2284. -- 活动状态
  2285. function GuildController:on40500( )
  2286. local vo = SCMD40500.New(true)
  2287. self.model:GuildWarSetInfo(vo.begin_time,vo.end_time,vo.score, vo.pool_info)
  2288. end
  2289. -- 进入战场
  2290. function GuildController:on40501( )
  2291. local vo = SCMD40501.New(true)
  2292. if vo.res ~= 0 then
  2293. if vo.res == 4050006 then
  2294. self.model:Fire(GuildModel.OPEN_SELECT_SERVER)
  2295. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40500)
  2296. end
  2297. ErrorCodeShow(vo.res)
  2298. end
  2299. end
  2300. -- 退出战场
  2301. function GuildController:on40502( )
  2302. local vo = SCMD40502.New(true)
  2303. end
  2304. -- 战场信息-个人积分-服务端主推
  2305. function GuildController:on40503( )
  2306. local vo = SCMD40503.New(true)
  2307. self.model:GuildWarSetScore(vo.score)
  2308. end
  2309. -- 战场信息-个人积分排名
  2310. function GuildController:on40504( )
  2311. local vo = SCMD40504.New(true)
  2312. self.model:GuildWarSetRankList(vo.rank, 1)
  2313. end
  2314. -- 战场信息-公会积分排名
  2315. function GuildController:on40505( )
  2316. local vo = SCMD40505.New(true)
  2317. self.model:GuildWarSetRankList(vo.rank, 2)
  2318. end
  2319. -- 战场信息-进入采集状态
  2320. function GuildController:on40506( )
  2321. local vo = SCMD40506.New(true)
  2322. self.model:GuideWarSetPickState(vo.id)
  2323. end
  2324. -- 战场信息-采集提交
  2325. function GuildController:on40507( )
  2326. local vo = SCMD40507.New(true)
  2327. self.model:GuideWarGiveInPickResult()
  2328. end
  2329. -- 战场信息-结算界面-服务端主推
  2330. function GuildController:on40508( )
  2331. local vo = SCMD40508.New(true)
  2332. self.model:GuildWarSetResult(vo.top_guild, vo.top_guild_chief, vo.my_guild_rank, vo.my_personal_rank, vo.score, vo.kill_rank)
  2333. end
  2334. -- 上期明星社团
  2335. function GuildController:on40509( )
  2336. local vo = SCMD40509.New(true)
  2337. self.model:GuildWarSetLastMvp(vo)
  2338. end
  2339. -- 战场信息-BOSS出生
  2340. function GuildController:on40510( )
  2341. local vo = SCMD40510.New(true)
  2342. self.model:Fire(GuildModel.GUILD_WAR_BOSS_BORN)
  2343. end
  2344. -- 战场信息-BOSS死亡
  2345. function GuildController:on40511( )
  2346. local vo = SCMD40511.New(true)
  2347. self.model:Fire(GuildModel.GUILD_WAR_BOSS_DIE)
  2348. end
  2349. -- 战场信息-积分信息广播
  2350. function GuildController:on40512( )
  2351. local vo = SCMD40512.New(true)
  2352. local str = ""
  2353. if vo.op == 1 then
  2354. str = string.format("完成运送 积分+%d", vo.score)
  2355. elseif vo.op == 2 then
  2356. str = string.format("击杀玩家 积分+%d", vo.score)
  2357. elseif vo.op == 3 then
  2358. str = string.format("击杀了结晶守卫 积分+%d",vo.score)
  2359. end
  2360. local data = {
  2361. role_vo_1 = vo, --我方
  2362. role_vo_2 = nil, --敌方
  2363. type = 1, --UI类型
  2364. desc = str, --描述
  2365. max_num = 3, --同时显示最大数量
  2366. }
  2367. GlobalEventSystem:Fire(EventName.SHOW_DYNAMIC_INFO_TIP, data)
  2368. end
  2369. --############### 战场信息-护盾CD ##############
  2370. function GuildController:on40513( )
  2371. local vo = SCMD40513.New(true)
  2372. self.model:GuildWarProject(vo.cd_time)
  2373. end
  2374. -- ############### 战场信息-使用护盾 ##############
  2375. function GuildController:on40514( )
  2376. local vo = SCMD40514.New(true)
  2377. if vo.res ~= 1 then
  2378. ErrorCodeShow(vo.res)
  2379. else
  2380. Message.show("成功开启减伤护盾效果")
  2381. end
  2382. self.model:GuildWarProject(vo.cd_time)
  2383. end
  2384. -----------------------本服团战 ---------------------------
  2385. ----------------------- 本国团战 ---------------------------
  2386. function GuildController:on41000( )
  2387. local vo = SCMD41000.New(true)
  2388. self.model:SetGuildEventByType(GuildEventType.GuildCSGR, vo)
  2389. self.model:CheckGuildRedDot(Config.ConfigGuild.TabId.Event, true)
  2390. self.model:Fire(GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, GuildEventType.GuildCSGR)
  2391. end
  2392. function GuildController:on41001( )
  2393. local vo = SCMD41001.New(true)
  2394. if vo.type == GuildModel.CSGRRankType.Mine then
  2395. self.model:SetCSGRFightInfo(vo)
  2396. else
  2397. -- 对战场编号进行排序
  2398. local sort_func = function ( a, b )
  2399. return a.arena_id < b.arena_id
  2400. end
  2401. table.sort(vo.arena_list, sort_func)
  2402. end
  2403. -- 整个服务器的社团排行信息不做数据存储
  2404. self.model:Fire(GuildModel.UPDATE_CSGR_FIGHTINFO, vo.type, vo)
  2405. end
  2406. function GuildController:on41002( )
  2407. local vo = SCMD41002.New(true)
  2408. if vo.errcode ~= 1 then
  2409. ErrorCodeShow(vo.errcode)
  2410. end
  2411. end
  2412. function GuildController:on41003( )
  2413. local vo = SCMD41003.New(true)
  2414. if vo.errcode == 1 then
  2415. self.model:SetCSGRCollectBuffs(vo)
  2416. self.model:Fire(GuildModel.UPDATE_CSGR_COLLECTBUFF)
  2417. -- 采集成功后就及时请求最新的场景采集物信息
  2418. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41004)
  2419. else
  2420. ErrorCodeShow(vo.errcode)
  2421. end
  2422. end
  2423. function GuildController:on41004( )
  2424. local vo = SCMD41004.New(true)
  2425. if vo.errcode == 1 then
  2426. self.model:SetCSGRBattlefieldRes(vo)
  2427. self.model:Fire(GuildModel.UPDATE_CSGR_BF_RES)
  2428. else
  2429. ErrorCodeShow(vo.errcode)
  2430. end
  2431. end
  2432. function GuildController:on41005( )
  2433. local vo = SCMD41005.New(true)
  2434. -- 排序
  2435. self:SortCSGRHurtRank(vo.hurt_rank)
  2436. -- 伤害排行不做数据缓存
  2437. self.model:Fire(GuildModel.UPDATE_CSGR_DMG_RANK, vo)
  2438. end
  2439. function GuildController:on41006( )
  2440. local vo = SCMD41006.New(true)
  2441. -- 排序
  2442. self:SortCSGRHurtRank(vo.hurt_rank)
  2443. -- 伤害排行不做数据缓存
  2444. self.model:Fire(GuildModel.UPDATE_CSGR_SCENE_DMG_RANK, vo)
  2445. end
  2446. -- 对排行数据进行一次排序
  2447. function GuildController:SortCSGRHurtRank(hurt_rank)
  2448. -- 排序
  2449. local sort_func = function ( a, b )
  2450. return a.rank < b.rank
  2451. end
  2452. table.sort(hurt_rank, sort_func)
  2453. end
  2454. function GuildController:on41007( )
  2455. local vo = SCMD41007.New(true)
  2456. if vo.errcode == 1 then
  2457. self.model:SetGuildCSGRResultData(vo)
  2458. -- 打开结算界面
  2459. -- self.model:Fire(GuildModel.OPEN_CSGR_RESULT_VIEW, true, vo)
  2460. else
  2461. ErrorCodeShow(vo.errcode)
  2462. end
  2463. end
  2464. function GuildController:on41008( )
  2465. local vo = SCMD41008.New(true)
  2466. if vo.errcode == 1 then -- 存在采集物,可以寻路
  2467. self.model:CSGRAutoFindCollection(vo)
  2468. else
  2469. ErrorCodeShow(vo.errcode)
  2470. end
  2471. end
  2472. function GuildController:on41009( )
  2473. local vo = {role = {}}
  2474. PictureProtoVo.ReadFmt(vo.role)
  2475. vo.attr_id = UserMsgAdapter.ReadFmt("i") or 0
  2476. vo.num = UserMsgAdapter.ReadFmt("c") or 0
  2477. if SceneManager:getInstance():IsGuildCSGRScene() then -- 只在本国团战场景处理
  2478. local collect_cfg = self.model:GetCSGRCollectCfg(vo.attr_id)
  2479. -- local attr_name = WordManager:GetProperties(collect_cfg[2])
  2480. local attr_name = GuildModel.CSGRAttrName[collect_cfg[2]]
  2481. local attr_val = WordManager:GetPropertyValue(collect_cfg[2], collect_cfg[3])
  2482. local data = {
  2483. role_vo_1 = vo.role, --我方
  2484. role_vo_2 = nil, --敌方
  2485. type = 1, --UI类型
  2486. is_break = 1, --击杀情况(类型2需要使用)
  2487. desc = string.format("采集成功 <color=%s>%s</color>+<color=%s>%s</color>",
  2488. GuildModel.CSGRCollectTipsColorCfg[collect_cfg[2]] or "#ffffff",
  2489. attr_name,
  2490. ColorUtil.GREEN_DARK,
  2491. attr_val), --描述
  2492. }
  2493. GlobalEventSystem:Fire(EventName.SHOW_DYNAMIC_INFO_TIP, data)
  2494. end
  2495. end
  2496. ----------社团跑环协助协议处理-start---------
  2497. function GuildController:on41700( )
  2498. local vo = SCMD41700.New(true)
  2499. local data = {id=vo.sid, trigger_count=vo.trigger_count}
  2500. self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_ACCEPT_VIEW, data)
  2501. end
  2502. --########################## 获取答题内容 ########################
  2503. function GuildController:on41701( )
  2504. local vo = SCMD41701.New(true)
  2505. print('=======Msh:GuildController.lua[2828] ===TABLE====')
  2506. PrintTable(vo)
  2507. if vo.res == 1 then
  2508. self.model:SetGuildQuizID(vo)
  2509. self.model:Fire(GuildModel.UPDATE_QUIZ_VIEW_ANSWERING)
  2510. else
  2511. ErrorCodeShow(vo.res)
  2512. end
  2513. end
  2514. --########################## 答题 #########################
  2515. function GuildController:on41702( )
  2516. local vo = SCMD41702.New(true)
  2517. print('=======Msh:GuildController.lua[2828] ===TABLE====')
  2518. PrintTable(vo)
  2519. if vo.res == 1 then
  2520. Message.show("回答正确")
  2521. self.model:UpdateGuildQuizData(vo)
  2522. self.model:Fire(GuildModel.UPDATE_QUIZ_VIEW_SHOWING)
  2523. elseif vo.res == 0 then
  2524. Message.show("回答错误")
  2525. self.model:UpdateGuildQuizData(vo)
  2526. self.model:Fire(GuildModel.UPDATE_QUIZ_VIEW_SHOWING)
  2527. else
  2528. ErrorCodeShow(vo.res)
  2529. end
  2530. end
  2531. --########################## 答题结束 ##########################
  2532. function GuildController:on41703( )
  2533. local vo = SCMD41703.New(true)
  2534. print('=======Msh:GuildController.lua[2828] ===TABLE====')
  2535. PrintTable(vo)
  2536. if vo.res == 1 or vo.res == 0 then
  2537. self.model:SetGuildQuizResultData(vo)
  2538. self.model:Fire(GuildModel.GUILD_QUIZ_FINISH)
  2539. else
  2540. ErrorCodeShow(vo.res)
  2541. end
  2542. end
  2543. function GuildController:on41704( )
  2544. local vo = SCMD41704.New(true)
  2545. if vo.res == 1 then
  2546. Message.show("协助取消")
  2547. end
  2548. end
  2549. --################# 答题断线重连 ################
  2550. function GuildController:on41705( )
  2551. local vo = SCMD41705.New(true)
  2552. --print('=======Msh:GuildController.lua[2935] ===TABLE====')
  2553. --PrintTable(vo)
  2554. self.model:ReLinkInitGuildQuizData(vo)
  2555. local temp_func = function( )
  2556. self.model:Fire(GuildModel.OPEN_GUILD_QUIZ_VIEW, true)
  2557. end
  2558. setTimeout(temp_func, 6)
  2559. end
  2560. --################# 获取boss信息 ################
  2561. function GuildController:on41706( )
  2562. local vo = SCMD41706.New(true)
  2563. local data =
  2564. {
  2565. sid = vo.sid,
  2566. boss_id = vo.boss_id,
  2567. boss_power = vo.boss_power,
  2568. }
  2569. self.model:Fire(GuildModel.UPDATE_SUPPORT_GUILD_INFO, data)
  2570. end
  2571. ----------社团跑环协助协议处理-end-----------