源战役客户端
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

2826 рядки
103 KiB

1 місяць тому
  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-----------