源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

505 rindas
18 KiB

pirms 4 nedēļām
  1. CSGWarSubView = CSGWarSubView or BaseClass(BaseItem)
  2. local CSGWarSubView = CSGWarSubView
  3. function CSGWarSubView:__init()
  4. self.base_file = "CSGWar"
  5. self.layout_file = "CSGWarSubView"
  6. self.mainVo = RoleManager.Instance.mainRoleInfo
  7. self.model = CSGWarModel:GetInstance()
  8. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60101)
  9. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60102)
  10. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60103,1)
  11. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60105,0,1)
  12. self.show_item_list = {}--展示城区item
  13. self.sign_item_list = {}--报名阶段item
  14. self.cur_area_index = 1--当前选择的战区 1主2副
  15. self.cur_sign_index = 1--当前选择的报名列表 1本社团2应援
  16. self:Load()
  17. end
  18. function CSGWarSubView:Load_callback()
  19. self.nodes = {
  20. "show_con/power_text:txt", "tip_text:tmp", "instruction_btn:obj",
  21. "sign_con:obj", "show_con/show_item_con", "bg:obj:raw", "support_btn:obj",
  22. "record_btn:obj", "show_con:obj", "show_con/occupy_server_text:tmp", "reward_btn:obj",
  23. "show_con/receive_image:obj:img", "sign_con/sign_btn:obj:imgex", "show_con/guild_text:tmp",
  24. "sign_con/sign_item_con", "sign_con/list_scroll", "bg2:obj:raw", "sign_con/enter_btn:obj",
  25. "show_con/name_text:tmp", "show_con/occupy_bg:obj", "sign_con/list_scroll/Viewport/list_con",
  26. "show_con/occupy_text:tmp", "show_con/role_con", "show_con/reward_image:obj:img",
  27. "sign_con/rank_text:tmp", "sign_con/sign_btn/sign_btn_text:tmp",
  28. "support_btn/support_btn_red:obj", "show_con/reward_red_image:obj",
  29. "sign_con/enter_btn/enter_btn_red:obj", "sign_con/title_text:tmp",
  30. "sign_con/unsign_btn:obj","sign_con/unsign_btn/unsign_btn_text:tmp",
  31. "sign_con/lb_time:tmp",
  32. "open_tips_btn:obj",
  33. "open_tips_btn/open_tips_red:obj",
  34. }
  35. self:GetChildren(self.nodes)
  36. self:AddEvents()
  37. lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("CSGWar_sub_bg"),false)
  38. lua_resM:setOutsideRawImage(self,self.bg2_raw,GameResPath.GetViewBigBg("CSGWar_sub_bg2"),false)
  39. self.unsign_btn_text_tmp.text = "取消报名"
  40. local cfg1 = self.model:GetCSGWarKVCFG("sign_up_help_max")
  41. local cfg2 = self.model:GetCSGWarKVCFG("sign_up_max")
  42. if cfg1 then
  43. self.support_role_max = cfg1.value
  44. else
  45. self.support_role_max = 0
  46. end
  47. if cfg2 then
  48. self.sign_role_max = cfg2.value
  49. else
  50. self.sign_role_max = 0
  51. end
  52. self:MoveUIToBack(self.bg)
  53. self:MoveUIToBack(self.bg2)
  54. if self.need_refreshData then
  55. self:UpdateView()
  56. end
  57. end
  58. function CSGWarSubView:AddEvents( )
  59. local function on_click( target )
  60. if target == self.sign_btn_obj then
  61. local data = self.model:GetCSGWarBaseInfo()
  62. if data and TableSize(data) > 0 and ( data.state ~= CSGWarConst.CSGWAR_STATE.SIGN) then
  63. Message.show("现在还不是报名阶段哦~")
  64. return
  65. end
  66. if self.model:IsCSGWarSign() then
  67. -- local function ok( ... )
  68. -- self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60106, 0)
  69. -- end
  70. -- local ask_str = "是否取消报名?"
  71. -- Alert.show(ask_str,Alert.Type.Two,ok)
  72. else
  73. -- 检查CD
  74. local last_sign_time = self.model:GetLastSignTime( )
  75. local remain_time = TimeUtil:getServerTime( ) - last_sign_time
  76. if remain_time > CSGWarConst.SIGN_CD then -- 三十分钟
  77. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60106, 1)
  78. else -- 没够三十分钟
  79. local tip_str = string.format('%s后可报名', TimeUtil:timeConvert2(CSGWarConst.SIGN_CD - remain_time))
  80. Message.show(tip_str)
  81. end
  82. end
  83. elseif target == self.unsign_btn_obj then
  84. local function ok( ... )
  85. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60106, 0)
  86. end
  87. local ask_str = string.format("是否取消报名?\n(取消报名后%s内不可再次报名)",
  88. HtmlColorTxt(TimeUtil:timeConvert2(CSGWarConst.SIGN_CD), ColorUtil.GREEN_DARK) )
  89. Alert.show(ask_str,Alert.Type.Two,ok)
  90. elseif target == self.support_btn_obj then
  91. local data = self.model:GetCSGWarBaseInfo()
  92. if data and TableSize(data) > 0 and (data.state == CSGWarConst.CSGWAR_STATE.SUPPORT or data.state == CSGWarConst.CSGWAR_STATE.SIGN) then
  93. self.model:Fire(CSGWarConst.OPEN_CSGWAR_SUPPORT_VIEW)
  94. else
  95. Message.show("现在还不是应援阶段哦~")
  96. end
  97. elseif target == self.instruction_btn_obj then
  98. self.model:Fire(CSGWarConst.OPEN_CSGWAR_INSTRUCTION_VIEW)
  99. elseif target == self.record_btn_obj then
  100. self.model:Fire(CSGWarConst.OPEN_CSGWAR_RECORD_VIEW)
  101. elseif target == self.reward_btn_obj then
  102. self.model:Fire(CSGWarConst.OPEN_CSGWAR_REWARD_VIEW)
  103. elseif target == self.enter_btn_obj then
  104. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60108)
  105. elseif target == self.reward_image_obj then
  106. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60107, self.cur_area_index, 1)
  107. elseif target == self.open_tips_btn_obj then
  108. GuildModel.getInstance():SetWarActiveRedDot(601, 1, false)
  109. GuildModel.getInstance():Fire(GuildModel.OPEN_ACTIVE_OPEN_TIPS_VIEW, true)
  110. end
  111. end
  112. AddClickEvent(self.sign_btn_obj, on_click)
  113. AddClickEvent(self.unsign_btn_obj, on_click)
  114. AddClickEvent(self.support_btn_obj, on_click)
  115. AddClickEvent(self.instruction_btn_obj, on_click)
  116. AddClickEvent(self.record_btn_obj, on_click)
  117. AddClickEvent(self.reward_btn_obj, on_click)
  118. AddClickEvent(self.enter_btn_obj, on_click)
  119. AddClickEvent(self.reward_image_obj, on_click)
  120. AddClickEvent(self.open_tips_btn_obj, on_click)
  121. local function on_update_active_state( )
  122. self:UpdateActiveState()
  123. if self.view_type == "show" then
  124. self:UpdateShowItem()
  125. self:UpdateCentralInfo()
  126. end
  127. end
  128. self.on_update_active_state_id = self.model:BindOne("CSGWar_base_info", on_update_active_state)
  129. local function on_update_sign_item( )
  130. self:UpdateActiveState()
  131. self:UpdateSignItem()
  132. end
  133. self.on_update_sign_item_id = self.model:BindOne("CSGWar_sign_info", on_update_sign_item)
  134. local function on_update_show_item( )
  135. self:UpdateShowItem()
  136. self:UpdateCentralInfo()
  137. end
  138. self.on_update_show_item_id = self.model:BindOne("CSGWar_occupy_info", on_update_show_item)
  139. local function on_update_player_list( )
  140. self:UpdateSignPlayerList()
  141. end
  142. self.on_update_player_list_id = self.model:Bind(CSGWarConst.UPDATE_CSGWAR_SIGN_LIST, on_update_player_list)
  143. local function on_update_red( )
  144. self:UpdateRedDot()
  145. end
  146. self.on_update_red_id = self.model:Bind(CSGWarConst.ANS_CSGWAR_RED, on_update_red)
  147. local function onShowACtiveOpenTipsRed()
  148. self.open_tips_red_obj:SetActive(GuildModel.getInstance():GetWarActiveRedDot(601, 1))
  149. end
  150. self:BindEvent(GuildModel.getInstance(), GuildModel.SHOW_ACTIVE_OPEN_TIPS_RED, onShowACtiveOpenTipsRed)
  151. self.open_tips_red_obj:SetActive(GuildModel.getInstance():GetWarActiveRedDot(601, 1))
  152. end
  153. function CSGWarSubView:UpdateView( )
  154. self:UpdateActiveState()
  155. self:UpdateSignPlayerList()
  156. self:SwitchAreaTab()
  157. end
  158. function CSGWarSubView:UpdateActiveState( )
  159. if self.model:IsCSGWarOpen() then--活动开始的时候只能显示报名信息
  160. self.view_type = "sign"
  161. else
  162. self.view_type = "show"
  163. end
  164. self.bg_obj:SetActive(self.view_type == "show")
  165. self.bg2_obj:SetActive(self.view_type == "sign")
  166. self.sign_con_obj:SetActive(self.view_type == "sign")
  167. self.show_con_obj:SetActive(self.view_type == "show")
  168. local str = ChuanWenManager:getInstance():FormatColorTag2(CSGWarConst.TIP_DESC, true)
  169. self.tip_text_tmp.text = str
  170. -- if self.view_type == "sign" then
  171. -- SetAnchoredPosition(self.tip_text, -262, -190)
  172. -- else
  173. -- SetAnchoredPosition(self.tip_text, -262, -270)
  174. -- end
  175. local last_sign_time = self.model:GetLastSignTime( )
  176. local end_show_time = last_sign_time + CSGWarConst.SIGN_CD
  177. local sign_is_in_cd = end_show_time and end_show_time - TimeUtil:getServerTime() > 0
  178. self.unsign_btn_obj:SetActive(false)
  179. local data = self.model:GetCSGWarBaseInfo()
  180. if data and TableSize(data) > 0 then
  181. self.enter_btn_obj:SetActive(data.state == CSGWarConst.CSGWAR_STATE.START)
  182. self.sign_btn_obj:SetActive(data.state == CSGWarConst.CSGWAR_STATE.SIGN or data.state == CSGWarConst.CSGWAR_STATE.SUPPORT)
  183. self.sign_btn_imgex.gray = data.state ~= CSGWarConst.CSGWAR_STATE.SIGN or sign_is_in_cd
  184. if data.state ~= CSGWarConst.CSGWAR_STATE.SIGN or sign_is_in_cd then
  185. SetTMPSharedMaterial(self.sign_btn_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  186. else
  187. SetTMPSharedMaterial(self.sign_btn_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  188. end
  189. if data.state == CSGWarConst.CSGWAR_STATE.SIGN then
  190. local is_sign = self.model:IsCSGWarSign()
  191. self.sign_btn_obj:SetActive(not is_sign)
  192. self.unsign_btn_obj:SetActive(is_sign)
  193. self.sign_btn_text_tmp.text = "我要报名"
  194. else
  195. self.sign_btn_text_tmp.text = "报名截止"
  196. end
  197. self:SetSignCDTimerShow()
  198. end
  199. end
  200. -- 报名冷却倒计时
  201. function CSGWarSubView:SetSignCDTimerShow( )
  202. if self.model:IsCSGWarSign() then -- 已经报了
  203. self.lb_time_tmp.text = ""
  204. return
  205. end
  206. local last_sign_time = self.model:GetLastSignTime( )
  207. local remain_time = TimeUtil:getServerTime( ) - last_sign_time
  208. local end_show_time = last_sign_time + CSGWarConst.SIGN_CD
  209. if end_show_time and end_show_time - TimeUtil:getServerTime() > 0 then
  210. local function onTimer()
  211. local sec = end_show_time - TimeUtil:getServerTime()
  212. if sec > 0 then
  213. self.lb_time_tmp.text = string.format("%s后可再次报名" ,TimeUtil:timeConvert3(sec))
  214. else
  215. self:UpdateActiveState( )
  216. self.lb_time_tmp.text = ""
  217. GlobalTimerQuest:CancelQuest(self.timer_id)
  218. self.timer_id = nil
  219. end
  220. end
  221. if not self.timer_id then
  222. self.timer_id = GlobalTimerQuest:AddPeriodQuest(onTimer, 1, -1)
  223. end
  224. else
  225. self.lb_time_tmp.text = ""
  226. end
  227. end
  228. --更新中心城区信息
  229. function CSGWarSubView:UpdateCentralInfo( )
  230. local data = self.model:GetCSGWarOccupyInfo() or {}
  231. if data[1] then
  232. local guild_str = GetCSLongName(data[1].guild_name, data[1].server_num, false, ColorUtil.GREEN_DARK)
  233. local boss_str = string.format("%s %s", HtmlColorTxt("团长:", ColorUtil.YELLOW_DARK), data[1].chief_name)
  234. local str = string.format("%s\n%s", guild_str, boss_str)
  235. self.occupy_text_tmp.text = str
  236. -- self.occupy_server_text_tmp.text = GetCSLongName("服", data[1].server_num, true)
  237. self.occupy_server_text_tmp.text = KfWorldModel:GetInstance():GetContrayNameById(data[1].fact_id)
  238. local server_id = RoleManager.Instance.mainRoleInfo.server_id
  239. self.reward_image_obj:SetActive(server_id == data[1].server_id)
  240. self.receive_image_obj:SetActive(data[1].is_received_reward == 1)
  241. if data[1].is_received_reward == 1 then
  242. lua_resM:setImageSprite(self, self.reward_image_img, "CSGWar_asset", "CSGWar_item3")
  243. else
  244. lua_resM:setImageSprite(self, self.reward_image_img, "CSGWar_asset", "CSGWar_item2")
  245. end
  246. self.guild_text_tmp.text = guild_str
  247. self.name_text_tmp.text = boss_str
  248. self.power_text_txt.text = "f"..data[1].chief_power
  249. self:SetRoleModel(data[1].chief_id)
  250. else
  251. local guild_str = "暂无社团占领"
  252. local boss_str = "团长: 暂无"
  253. local str = string.format("%s\n%s", guild_str, boss_str)
  254. self.occupy_text_tmp.text = str
  255. self.occupy_server_text_tmp.text = "暂无社团占领"
  256. self.receive_image_obj:SetActive(false)
  257. self.reward_image_obj:SetActive(false)
  258. self.guild_text_tmp.text = guild_str
  259. self.name_text_tmp.text = boss_str
  260. self.power_text_txt.text = ""
  261. self:SetRoleModel()
  262. end
  263. end
  264. function CSGWarSubView:UpdateShowItem( )
  265. local data = self.model:GetCSGWarOccupyInfo() or {}
  266. -- print("HWR:CSGWarSubView [start:177] data:", data)
  267. -- PrintTable(data)
  268. -- print("HWR:CSGWarSubView [end]")
  269. local x_offset = 352
  270. local y_offset = 208
  271. for i=1,4 do
  272. local item = self.show_item_list[i]
  273. if not item then
  274. item = CSGWarSubShowItem.New(self.show_item_con)
  275. item:SetPosition((i - 1) % 2 * x_offset-6, -math.floor((i - 1) / 2) * y_offset+8)
  276. self.show_item_list[i] = item
  277. end
  278. item:SetData(data[i+1], i, self.cur_area_index)
  279. end
  280. end
  281. function CSGWarSubView:UpdateSignItem( )
  282. local data = self.model:GetCSGWarSignInfo() or {}
  283. -- print("HWR:CSGWarSubView [start:192] data:", data)
  284. -- PrintTable(data)
  285. -- print("HWR:CSGWarSubView [end]")
  286. local x_offset = 352
  287. local y_offset = 208
  288. for i=1,4 do
  289. local item = self.sign_item_list[i]
  290. if not item then
  291. item = CSGWarSubSignItem.New(self.sign_item_con)
  292. item:SetPosition((i - 1) % 2 * x_offset-6, -math.floor((i - 1) / 2) * y_offset+8)
  293. self.sign_item_list[i] = item
  294. end
  295. item:SetData(data[i], i)
  296. end
  297. end
  298. --更新报名玩家列表
  299. function CSGWarSubView:UpdateSignPlayerList( )
  300. local data = {}
  301. local is_fight_guild = self.model:IsCSGWarFightGuild(self.mainVo.guild_id)
  302. if is_fight_guild then
  303. data = self.model:GetCSGWarGuildSignList()
  304. self.rank_text_tmp.text = string.format("战力排名前 %s 的玩家可进入\n战场参加比赛", HtmlColorTxt(self.sign_role_max, ColorUtil.YELLOW_DARK))
  305. self.title_text_tmp.text = "社团参战成员榜"
  306. else
  307. data = self.model:GetCSGWarSupportSignList()
  308. self.rank_text_tmp.text = string.format("战力排名前 %s 的玩家可进入\n战场参加比赛", HtmlColorTxt(self.support_role_max, ColorUtil.YELLOW_DARK))
  309. self.title_text_tmp.text = "本国协助参战榜"
  310. end
  311. if not self.sign_list_com then
  312. self.sign_list_com = self:AddUIComponent(UI.ItemListCreator)
  313. end
  314. if self.need_sign_list_reset then
  315. self.sign_list_com:Reset()
  316. self.need_sign_list_reset = false
  317. end
  318. local info = {
  319. data_list = data,
  320. item_con = self.list_con,
  321. scroll_view = self.list_scroll,
  322. item_class = CSGWarSubPlayerItem,
  323. start_y = 0, start_x = 4,
  324. create_frequency = 0.02,
  325. create_num_per_time = 3,
  326. item_height = 42,
  327. space_y = 3,
  328. on_update_item = function(item, i, v)
  329. item:SetData(i, v)
  330. end,
  331. }
  332. self.sign_list_com:UpdateItems(info)
  333. end
  334. function CSGWarSubView:SetData( data )
  335. self.data = data
  336. if self.is_loaded then
  337. self.need_refreshData = false
  338. self:UpdateView()
  339. self:SetRoleModel(self.role_id)
  340. else
  341. self.need_refreshData = true
  342. end
  343. end
  344. function CSGWarSubView:SetRoleModel( role_id )
  345. role_id = role_id or 0
  346. self.role_id = role_id
  347. if role_id ~= 0 then
  348. SetLocalScale(self.role_con, 1, 1, 1)
  349. else
  350. SetLocalScale(self.role_con, 0.001, 0.001, 0.001)
  351. end
  352. local res_data = {
  353. father_node = self,
  354. transform = self.role_con,
  355. fashion_type = FuncOpenModel.TypeId.Clothes,
  356. size = Vector2(720,720),
  357. scale = 180,
  358. position = Vector3(35,-10,0),
  359. ui_model_type = UIModelCommon.ModelType.BackModel,
  360. }
  361. FuncOpenModel:getInstance():SetRoleModelByID(role_id, res_data)
  362. end
  363. --切换主副战区按钮
  364. function CSGWarSubView:SwitchAreaTab( )
  365. -- self.cur_area_index = index
  366. -- if index == 1 then
  367. -- lua_resM:setImageSprite(self, self.tab_area_btn1_img, "CSGWar_asset", "CSGWar_item8")
  368. -- lua_resM:setImageSprite(self, self.tab_area_btn2_img, "CSGWar_asset", "CSGWar_item9")
  369. -- self.tab_area_btn_text1_tmp.color = ColorUtil:ConvertHexToRGBColor("6e81bf")
  370. -- self.tab_area_btn_text2_tmp.color = ColorUtil:ConvertHexToRGBColor("edeaea")
  371. -- else
  372. -- lua_resM:setImageSprite(self, self.tab_area_btn1_img, "CSGWar_asset", "CSGWar_item9")
  373. -- lua_resM:setImageSprite(self, self.tab_area_btn2_img, "CSGWar_asset", "CSGWar_item8")
  374. -- self.tab_area_btn_text1_tmp.color = ColorUtil:ConvertHexToRGBColor("edeaea")
  375. -- self.tab_area_btn_text2_tmp.color = ColorUtil:ConvertHexToRGBColor("6e81bf")
  376. -- end
  377. local is_fight_guild = self.model:IsCSGWarFightGuild(self.mainVo.guild_id)
  378. if self.view_type == "sign" then
  379. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60105, is_fight_guild and 0 or 1)--0是本社团 1是外援
  380. self:UpdateSignItem()
  381. self:UpdateSignPlayerList()
  382. else
  383. self:UpdateShowItem()
  384. end
  385. self:UpdateCentralInfo()
  386. self:UpdateRedDot()
  387. end
  388. function CSGWarSubView:SwitchSignTab( index )
  389. do return end
  390. if self.cur_sign_index ~= index then
  391. self.model:Fire(CSGWarConst.REQ_CSGWAR_SCMD, 60105,index-1,self.cur_area_index)
  392. end
  393. self.cur_sign_index = index
  394. if index == 1 then
  395. lua_resM:setImageSprite(self, self.tab_sign_btn1_img, "CSGWar_asset", "CSGWar_item10")
  396. lua_resM:setImageSprite(self, self.tab_sign_btn2_img, "CSGWar_asset", "CSGWar_item11")
  397. self.tab_sign_btn_text1_tmp.color = ColorUtil:ConvertHexToRGBColor("6e81bf")
  398. self.tab_sign_btn_text2_tmp.color = ColorUtil:ConvertHexToRGBColor("edeaea")
  399. else
  400. lua_resM:setImageSprite(self, self.tab_sign_btn1_img, "CSGWar_asset", "CSGWar_item11")
  401. lua_resM:setImageSprite(self, self.tab_sign_btn2_img, "CSGWar_asset", "CSGWar_item10")
  402. self.tab_sign_btn_text1_tmp.color = ColorUtil:ConvertHexToRGBColor("edeaea")
  403. self.tab_sign_btn_text2_tmp.color = ColorUtil:ConvertHexToRGBColor("6e81bf")
  404. end
  405. if self.cur_sign_index == 1 then
  406. self.rank_text_tmp.text = string.format("战力排名前%s的社团团员可进入战场参加比赛", HtmlColorTxt(20,"ffea9c"))
  407. else
  408. if self.cur_area_index == 1 then
  409. self.rank_text_tmp.text = string.format("战力排名前%s的外援可进入战场参加比赛", HtmlColorTxt(10,"ffea9c"))
  410. else
  411. self.rank_text_tmp.text = string.format("战力排名%s的外援可进入战场参加比赛", HtmlColorTxt("10~20","ffea9c"))
  412. end
  413. end
  414. if self.view_type == "sign" then
  415. self:UpdateSignItem()
  416. self:UpdateSignPlayerList()
  417. else
  418. self:UpdateShowItem()
  419. end
  420. end
  421. function CSGWarSubView:UpdateRedDot( )
  422. local red_data = self.model:GetCSGWarRedData()
  423. -- print("HWR:CSGWarSubView [start:342] red_data:", red_data)
  424. -- PrintTable(red_data)
  425. -- print("HWR:CSGWarSubView [end]")
  426. if red_data.support_red then
  427. self.support_btn_red_obj:SetActive(true)
  428. else
  429. self.support_btn_red_obj:SetActive(false)
  430. end
  431. if red_data.fight_red then
  432. self.enter_btn_red_obj:SetActive(true)
  433. else
  434. self.enter_btn_red_obj:SetActive(false)
  435. end
  436. if red_data.occupy_red and red_data.occupy_red_data[1] then
  437. self.reward_red_image_obj:SetActive(true)
  438. else
  439. self.reward_red_image_obj:SetActive(false)
  440. end
  441. end
  442. function CSGWarSubView:__delete( )
  443. if self.on_update_active_state_id then
  444. self.model:UnBind(self.on_update_active_state_id)
  445. self.on_update_active_state_id = nil
  446. end
  447. if self.on_update_sign_item_id then
  448. self.model:UnBind(self.on_update_sign_item_id)
  449. self.on_update_sign_item_id = nil
  450. end
  451. if self.on_update_show_item_id then
  452. self.model:UnBind(self.on_update_show_item_id)
  453. self.on_update_show_item_id = nil
  454. end
  455. if self.on_update_player_list_id then
  456. self.model:UnBind(self.on_update_player_list_id)
  457. self.on_update_player_list_id = nil
  458. end
  459. for i,v in ipairs(self.show_item_list) do
  460. v:DeleteMe()
  461. v = nil
  462. end
  463. self.show_item_list = {}
  464. for i,v in ipairs(self.sign_item_list) do
  465. v:DeleteMe()
  466. v = nil
  467. end
  468. self.sign_item_list = {}
  469. if not self.model.has_open_csgwar_view then
  470. self.model.has_open_csgwar_view = true
  471. self.model:Fire(CSGWarConst.UPDATE_CSGWAR_RED)
  472. end
  473. if self.on_update_red_id then
  474. self.model:UnBind(self.on_update_red_id)
  475. self.on_update_red_id = nil
  476. end
  477. if self.timer_id then
  478. GlobalTimerQuest:CancelQuest(self.timer_id)
  479. self.timer_id = nil
  480. end
  481. end