源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

517 行
22 KiB

  1. GuildSupportInfoItem = GuildSupportInfoItem or BaseClass(BaseItem)
  2. GuildSupportInfoItem.CFG_TYPE =
  3. {
  4. MONEY_BOSS = 1, --赏金幻魔
  5. COLLECT = 2, --封印裂缝
  6. PIN_DUODUO = 3, --社团拼单
  7. DESERTED_BOSS = 4, --星域幻魔
  8. ANSWER = 5, --社团协助答题
  9. GUILD_BOSS = 6, --社团协助击杀BOSS
  10. }
  11. local GuildSupportInfoItem = GuildSupportInfoItem
  12. GuildSupportInfoItem.Width = 900
  13. GuildSupportInfoItem.Height = 134
  14. function GuildSupportInfoItem:__init()
  15. self.base_file = "guild"
  16. self.layout_file = "GuildSupportInfoItem"
  17. self.is_delay_callback = true
  18. self.model = GuildModel:getInstance()
  19. self.timer_countdown = false
  20. self:Load()
  21. end
  22. function GuildSupportInfoItem:Load_callback()
  23. self.nodes = {
  24. "go_help/go_help_text:tmp","kill_text:tmp","vip:img","headCon","power:txt"
  25. ,"play_title:tmp","nameCon/name:tmp","go_help:img:obj","nameCon/sexCon/sex:img"
  26. ,"lock_text:tmp","nameCon","guild_collect_go_help:obj:img", "guild_collect_go_help/guild_collect_go_text:tmp",
  27. "time_text:tmp",
  28. }
  29. self:GetChildren(self.nodes)
  30. self.roleItem = HeadRoleItem.New(self.headCon)
  31. self.roleItem:SetItemSize(85,85)
  32. if self.need_refreshData then
  33. self:SetData(self.data,self.index)
  34. end
  35. self:InitEvent()
  36. end
  37. function GuildSupportInfoItem:InitEvent()
  38. local function clickHandler(target)
  39. if target == self.go_help_obj then--前往协助
  40. if not self.is_open then
  41. local str = string.format("该功能%s级开启",self.open_level)
  42. Message.show(str,"fault")
  43. return
  44. end
  45. if self.data.support_cfg_id == 2 then--封印裂隙协助单独逻辑
  46. if self.cfg and self.cfg.is_conflict == 0 then--被协助者可以接着协助其他人
  47. self.model.need_go_support_guild_collect_after_40046 = true--需要在更新40046之后请求40808寻路杀怪
  48. local guild_collect_support_id = self.model:GetSelfGuildCollectSupportId()
  49. local guild_collect_support_status = guild_collect_support_id == self.data.support_sid
  50. if guild_collect_support_status then--已经在协助这条,寻路过去杀怪
  51. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40808,self.data.support_sid)
  52. self.model:Fire(GuildModel.CLOSE_GUILD_SUPPORT_IFNO_VIEW)
  53. else
  54. if guild_collect_support_id ~= 0 then--有其他协助,请求结束协助,并记录需要进行协助的id延后请求协助
  55. self.model.need_change_collect_support = self.data.support_sid
  56. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40053)
  57. else--没其他封印裂隙的协助,直接发起协助
  58. --其他类型协助中时不允许做封印裂隙的协助
  59. local now_support_id = self.model:GetSelfGuildSupportId()
  60. if now_support_id ~= 0 and self.model:GetGuildSupportStatus() == 1 then--请求他人协助
  61. Message.show("您已经请求协助,不可协助其他玩家")
  62. return
  63. elseif self.model:GetGuildSupportStatus() == 2 then--正在协助他人
  64. Message.show("您正在协助中")
  65. return
  66. end
  67. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40052,self.data.support_sid)
  68. end
  69. self.model:Fire(GuildModel.CLOSE_GUILD_SUPPORT_IFNO_VIEW)
  70. end
  71. else
  72. -- if self.model:GetGuildSupportStatus() == 0 then
  73. -- self.model.need_go_support_guild_collect_after_40046 = true--需要在更新40046之后请求40808寻路杀怪
  74. -- local guild_collect_support_id = self.model:GetSelfGuildCollectSupportId()
  75. -- local guild_collect_support_status = guild_collect_support_id == self.data.support_sid
  76. -- if guild_collect_support_status then--已经在协助这条,寻路过去杀怪
  77. -- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40808,self.data.support_sid)
  78. -- self.model:Fire(GuildModel.CLOSE_GUILD_SUPPORT_IFNO_VIEW)
  79. -- else
  80. -- if guild_collect_support_id ~= 0 then--有其他协助,请求结束协助,并记录需要进行协助的id延后请求协助
  81. -- self.model.need_change_collect_support = self.data.support_sid
  82. -- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40810)
  83. -- else--没其他协助,直接发起协助
  84. -- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40052,self.data.support_sid)
  85. -- end
  86. -- self.model:Fire(GuildModel.CLOSE_GUILD_SUPPORT_IFNO_VIEW)
  87. -- end
  88. -- else
  89. -- if self.model:GetGuildSupportStatus() == 1 then--请求他人协助
  90. -- Message.show("您已经请求协助,不可协助其他玩家")
  91. -- return
  92. -- elseif self.model:GetGuildSupportStatus() == 2 then--正在协助他人
  93. -- Message.show("您正在协助中")
  94. -- return
  95. -- end
  96. -- end
  97. end
  98. elseif self.data.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.ANSWER then
  99. if self.data.role_id ~= RoleManager.Instance.mainRoleInfo.role_id then
  100. self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_GO_VIEW,self.data)
  101. else
  102. Message.show("无法协助自己哦")
  103. end
  104. elseif self.data.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.GUILD_BOSS then
  105. if self.data.role_id ~= RoleManager.Instance.mainRoleInfo.role_id then
  106. local bosspower, end_time, boss_id, dun_id, status = self.model:ParseGuildSupportData(self.data.kv_data)
  107. local data = {support_sid = self.data.support_sid, boss_id = boss_id, boss_power = bosspower,
  108. dun_id = dun_id, role_data = self.data}
  109. self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_GUILD_BOSS_GO_VIEW, data)
  110. else
  111. Message.show("无法协助自己哦")
  112. end
  113. else
  114. if self.data.role_id ~= RoleManager.Instance.mainRoleInfo.role_id then
  115. self.model:Fire(GuildModel.OPEN_GUILD_SUPPORT_GO_VIEW,self.data)
  116. else
  117. Message.show("无法协助自己哦")
  118. end
  119. end
  120. elseif target == self.guild_collect_go_help_obj then--封印裂隙前往击杀自己的宝箱怪
  121. if self.data.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.ANSWER then
  122. Message.show("任务已被接取")
  123. elseif self.data.support_cfg_id == GuildSupportInfoItem.CFG_TYPE.GUILD_BOSS then
  124. Message.show("任务已被接取")
  125. else
  126. --如果是自己请求的封印裂隙协助,直接寻路过去打
  127. if self.cfg and self.cfg.is_conflict == 0 then--被协助者可以接着协助其他人
  128. local now_support_id = self.model:GetSelfGuildSupportId()
  129. local guild_collect_support_id = self.model:GetSelfGuildCollectSupportId()
  130. if now_support_id ~= 0 and self.model:GetGuildSupportStatus() == 1 then--请求他人协助
  131. Message.show("您已经请求协助,不可前往")
  132. return
  133. end
  134. if now_support_id ~= 0 and now_support_id ~= guild_collect_support_id then--说明当前有在做其他类型的协助
  135. Message.show("您正在协助中")
  136. return
  137. end
  138. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40808,self.data.support_sid)
  139. self.model:Fire(GuildModel.CLOSE_GUILD_SUPPORT_IFNO_VIEW)
  140. else
  141. -- if self.model:GetGuildSupportStatus() == 0 then
  142. -- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40808,self.data.support_sid)
  143. -- self.model:Fire(GuildModel.CLOSE_GUILD_SUPPORT_IFNO_VIEW)
  144. -- else
  145. -- if self.model:GetGuildSupportStatus() == 1 then--请求他人协助
  146. -- Message.show("您已经请求协助,不可前往")
  147. -- return
  148. -- elseif self.model:GetGuildSupportStatus() == 2 then--正在协助他人
  149. -- Message.show("您正在协助中")
  150. -- return
  151. -- end
  152. -- end
  153. end
  154. end
  155. end
  156. end
  157. AddClickEvent(self.go_help_obj, clickHandler)
  158. AddClickEvent(self.guild_collect_go_help_obj, clickHandler)
  159. end
  160. function GuildSupportInfoItem:__delete()
  161. if self.roleItem then
  162. self.roleItem:DeleteMe()
  163. self.roleItem = nil
  164. end
  165. if self.vipItem then
  166. self.vipItem:DeleteMe()
  167. self.vipItem = nil
  168. end
  169. self:StopLeftTime()
  170. end
  171. function GuildSupportInfoItem:StopLeftTime()
  172. if self.timer_countdown then
  173. TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_countdown)
  174. self.timer_countdown = nil
  175. end
  176. end
  177. function GuildSupportInfoItem:CheckLeftTime(time)
  178. if time <= 0 then
  179. return
  180. end
  181. self.leftTime = time
  182. local function timer_func()
  183. self.leftTime = self.leftTime - 1
  184. if self.leftTime <= 0 then
  185. self.time_text_tmp.text = ""
  186. self.time_text_tmp.text = HtmlColorTxt("已结束" , "#ff203a")
  187. self:StopLeftTime()
  188. else
  189. self.time_text_tmp.text = string.format("协助剩余时间\n%s", HtmlColorTxt(TimeUtil:timeConvert3(self.leftTime) , "#ff203a"))
  190. end
  191. end
  192. self.time_text_tmp.text = string.format("%s", HtmlColorTxt(TimeUtil:timeConvert3(self.leftTime) , "#ff203a"))
  193. self.timer_countdown = TimerQuest.AddPeriodQuest(GlobalTimerQuest, timer_func, 1)
  194. timer_func()
  195. end
  196. function GuildSupportInfoItem:SetData(data,index)
  197. self.data = data or self.data
  198. self.index = index or index
  199. if self.is_loaded then
  200. self.need_refreshData = false
  201. else
  202. self.need_refreshData = true
  203. return
  204. end
  205. if not self.data then return end
  206. print("huangcong:GuildSupportInfoItem [start:78] self.dataxx:", self.index)
  207. PrintTable(self.data)
  208. print("huangcong:GuildSupportInfoItem [end]")
  209. if not self.data or not self.data.support_sid then return end
  210. self.cfg = self.model:GetGuildSupportCfg(self.data.support_cfg_id)
  211. if not self.cfg then return end
  212. --以下就是玩家的个人数据
  213. self.power_txt.text = self.data.power
  214. self.name_tmp.text = self.data.name
  215. if not self.vipItem then
  216. self.vipItem = RoleVipItem.New(self.vip)
  217. end
  218. self.vipItem:SetData(self.data.vip_flag,self.data.sup_vip_type)
  219. if self.data.vip_flag > 0 then
  220. SetAnchoredPositionX(self.nameCon,-185)
  221. else
  222. SetAnchoredPositionX(self.nameCon,-226)
  223. end
  224. local role_lv = WordManager:GetRoleLevel(self.data.level,self.data.turn)
  225. local head_data = {
  226. vo = {
  227. id = self.data.role_id,
  228. server_id = self.data.server_num,
  229. career = self.data.career,
  230. sex = self.data.sex,
  231. turn = self.data.turn,
  232. picture_ver = self.data.picture_ver,
  233. picture = self.data.picture,
  234. profile_photo_id = self.data.profile_photo_id,
  235. dress_board_id = self.data.dress_board or self.data.dress_id,
  236. level = self.data.level,
  237. empty_head = false, -- 是否是空数据头像
  238. }
  239. }
  240. self.roleItem:SetData(head_data)
  241. local function callback( ... )
  242. SetSizeDeltaX(self.name,self.name_tmp.preferredWidth+2)
  243. end
  244. if self.data.sex then
  245. lua_resM:setImageSprite(self, self.sex_img, "common_asset", self.data.sex == 1 and "com_boy" or "com_girl", true,callback)
  246. end
  247. self.guild_collect_go_help_obj:SetActive(false)
  248. self.go_help_obj:SetActive(false)
  249. self.guild_collect_go_text_tmp.text = "前往"
  250. SetImageGray(self.guild_collect_go_help_img,false)
  251. SetTMPSharedMaterial(self.guild_collect_go_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn)
  252. self:StopLeftTime()
  253. local cfg_id = self.data.support_cfg_id
  254. if cfg_id == GuildSupportInfoItem.CFG_TYPE.MONEY_BOSS or cfg_id == GuildSupportInfoItem.CFG_TYPE.PIN_DUODUO
  255. or cfg_id == GuildSupportInfoItem.CFG_TYPE.DESERTED_BOSS then
  256. self:SetBossUI()
  257. elseif cfg_id == GuildSupportInfoItem.CFG_TYPE.COLLECT then
  258. self:SetCollectUI()
  259. elseif cfg_id == GuildSupportInfoItem.CFG_TYPE.ANSWER then
  260. self:SetAnswerUI()
  261. elseif cfg_id == GuildSupportInfoItem.CFG_TYPE.GUILD_BOSS then
  262. self:SetGuildBossUI()
  263. end
  264. -- if self.data.vip_flag then
  265. -- lua_resM:setImageSprite(self, self.vip_img, "common_asset", "vip_"..self.data.vip_flag, true)
  266. -- else
  267. -- lua_resM:setImageSprite(self, self.vip_img, "uiComponent_asset", "com_empty",false,callback)
  268. -- end
  269. end
  270. function GuildSupportInfoItem:SetBossUI()
  271. local is_open = GetModuleIsOpen(self.cfg.module_id,self.cfg.sub_mod_id)
  272. local open_level = GetModuleOpenLevel(self.cfg.module_id,self.cfg.sub_mod_id)
  273. local boss_open_lv = 0
  274. local monster_lv = 0
  275. local level = RoleManager.Instance.mainRoleInfo.level
  276. if self.data.boss_id and self.data.boss_id ~= 0 then
  277. if BossModel:GetInstance():GetBossTypeByBossId(self.data.boss_id) == Config.ConfigBoss.ModuleId.Deserted then--假如是星域幻魔,就只限制层的等级
  278. local boss_cfg = BossModel:GetInstance():GetBossCfgByBossId(self.data.boss_id)
  279. if boss_cfg then
  280. if Config.Desertedlevel[boss_cfg.level] then
  281. boss_open_lv = Config.Desertedlevel[boss_cfg.level].open_lv
  282. end
  283. end
  284. local monster_cfg = ConfigItemMgr.Instance:GetMonsterDataItem(self.data.boss_id)
  285. if monster_cfg then
  286. monster_lv = monster_cfg.lv or 0
  287. if boss_open_lv == 0 then--还找不到就去找bOSS配置表的
  288. boss_open_lv = monster_cfg.lv or 0
  289. end
  290. end
  291. else
  292. local boss_cfg = BossModel:GetInstance():GetBossCfgByBossId(self.data.boss_id)
  293. if boss_cfg then
  294. boss_open_lv = boss_cfg.boss_lv or boss_cfg.enter_lv or 0
  295. monster_lv = boss_open_lv
  296. if boss_open_lv == 0 then--还找不到就去找bOSS配置表的
  297. local monster_cfg = ConfigItemMgr.Instance:GetMonsterDataItem(self.data.boss_id)
  298. if monster_cfg then
  299. boss_open_lv = monster_cfg.lv or 0
  300. monster_lv = monster_cfg.lv or 0
  301. end
  302. end
  303. end
  304. end
  305. end
  306. open_level = open_level>boss_open_lv and open_level or boss_open_lv
  307. is_open = level >= open_level
  308. if self.data.role_id == RoleManager.Instance.mainRoleInfo.role_id then
  309. self.go_help_text_tmp.text = "请求协助中"
  310. SetImageGray(self.go_help_img,true)
  311. SetTMPSharedMaterial(self.go_help_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  312. else
  313. if self.data.support_cfg_id == 2 then--封印裂隙协助单独逻辑
  314. local guild_collect_support_id = self.model:GetSelfGuildCollectSupportId()
  315. local guild_collect_support_status = guild_collect_support_id == self.data.support_sid
  316. self.go_help_text_tmp.text = not guild_collect_support_status and "前往协助" or "正在协助中"
  317. SetImageGray(self.go_help_img,guild_collect_support_status)
  318. SetTMPSharedMaterial(self.go_help_text_tmp, not guild_collect_support_status and ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn or ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  319. else
  320. local self_support_sid = self.model:GetSelfGuildSupportId()
  321. local status = self_support_sid == self.data.support_sid
  322. self.go_help_text_tmp.text = not status and "前往协助" or "正在协助中"
  323. SetImageGray(self.go_help_img,status)
  324. SetTMPSharedMaterial(self.go_help_text_tmp, not status and ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn or ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  325. end
  326. end
  327. self.go_help_obj:SetActive(is_open == true)
  328. self.guild_collect_go_help_obj:SetActive(false)
  329. self.lock_text_tmp.text = is_open and "" or "Lv."..open_level.."解锁"
  330. self.is_open = is_open
  331. self.open_level = open_level
  332. --Boss形象
  333. local monster = ConfigItemMgr.Instance:GetMonsterDataItem(self.data.boss_id)
  334. if not monster then
  335. print('----HC GuildSupportThankView.lua -- 没有找到怪物配置=',self.data.boss_id)
  336. return
  337. end
  338. local boss_type = BossModel:GetInstance():GetBossTypeByBossId( self.data.boss_id )
  339. local boss_type_name = self.model:GetSupportTypeName(boss_type) or ""
  340. self.play_title_tmp.text = boss_type_name
  341. if monster_lv ~= 0 then--有这个等级说明是boss
  342. self.kill_text_tmp.text = "击杀"..HtmlColorTxt(Trim(monster.name).."Lv."..monster_lv, ColorUtil.PURPLE_DARK)
  343. else
  344. self.kill_text_tmp.text = "击杀"..HtmlColorTxt(Trim(monster.name).."Lv."..open_level, ColorUtil.PURPLE_DARK)
  345. end
  346. if self.data.boss_id == self.model:GetGuildCollectKvByKey("invade_mon").value then -- 采集boos单独描述
  347. self.kill_text_tmp.text = "击杀"..HtmlColorTxt(Trim(monster.name), ColorUtil.PURPLE_DARK)
  348. end
  349. end
  350. function GuildSupportInfoItem:SetCollectUI()
  351. local is_open = GetModuleIsOpen(self.cfg.module_id,self.cfg.sub_mod_id)
  352. local open_level = GetModuleOpenLevel(self.cfg.module_id,self.cfg.sub_mod_id)
  353. local level = RoleManager.Instance.mainRoleInfo.level
  354. local boss_open_lv = 0
  355. open_level = open_level>boss_open_lv and open_level or boss_open_lv
  356. is_open = level >= open_level
  357. self.is_open = is_open
  358. if self.data.role_id == RoleManager.Instance.mainRoleInfo.role_id then--自己请求的封印裂隙协助
  359. self.guild_collect_go_help_obj:SetActive(true)
  360. self.go_help_obj:SetActive(false)
  361. else
  362. self.guild_collect_go_help_obj:SetActive(false)
  363. self.go_help_obj:SetActive(is_open == true)
  364. end
  365. if self.data.role_id == RoleManager.Instance.mainRoleInfo.role_id then
  366. self.go_help_text_tmp.text = "请求协助中"
  367. SetImageGray(self.go_help_img,true)
  368. SetTMPSharedMaterial(self.go_help_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  369. else
  370. local guild_collect_support_id = self.model:GetSelfGuildCollectSupportId()
  371. local guild_collect_support_status = guild_collect_support_id == self.data.support_sid
  372. self.go_help_text_tmp.text = not guild_collect_support_status and "前往协助" or "正在协助中"
  373. SetImageGray(self.go_help_img,guild_collect_support_status)
  374. SetTMPSharedMaterial(self.go_help_text_tmp, not guild_collect_support_status and ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn or ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  375. end
  376. --宝箱怪信息
  377. local monster = ConfigItemMgr.Instance:GetMonsterDataItem(self.data.boss_id)
  378. if not monster then
  379. print('----HC GuildSupportThankView.lua -- 没有找到怪物配置=',self.data.boss_id)
  380. return
  381. end
  382. local boss_type = BossModel:GetInstance():GetBossTypeByBossId( self.data.boss_id )
  383. local boss_type_name = self.model:GetSupportTypeName(boss_type) or ""
  384. self.play_title_tmp.text = boss_type_name
  385. if self.data.boss_id == self.model:GetGuildCollectKvByKey("invade_mon").value then -- 采集boos单独描述
  386. self.kill_text_tmp.text = "击杀"..HtmlColorTxt(Trim(monster.name), ColorUtil.PURPLE_DARK)
  387. end
  388. end
  389. function GuildSupportInfoItem:SetAnswerUI()
  390. local is_open = GetModuleIsOpen(self.cfg.module_id,self.cfg.sub_mod_id)
  391. local open_level = GetModuleOpenLevel(self.cfg.module_id,self.cfg.sub_mod_id)
  392. local level = RoleManager.Instance.mainRoleInfo.level
  393. local bosspower, end_time, boss_id, dun_id, status = self:ParseData(self.data.kv_data)
  394. is_open = level >= open_level
  395. self.is_open = status == 0 --目前先不判断等级
  396. --self.is_open = is_open and status == 0
  397. self.play_title_tmp.text = Trim(self.cfg.mod_name)
  398. self.go_help_obj:SetActive(self.is_open)
  399. self.guild_collect_go_help_obj:SetActive(not self.is_open)
  400. self.guild_collect_go_text_tmp.text = "已被接取"
  401. self.go_help_text_tmp.text = "前往协助"
  402. SetImageGray(self.guild_collect_go_help_img,true)
  403. SetTMPSharedMaterial(self.guild_collect_go_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  404. if self.data.role_id == RoleManager.Instance.mainRoleInfo.role_id then
  405. self.go_help_text_tmp.text = "请求协助中"
  406. SetImageGray(self.go_help_img,true)
  407. SetTMPSharedMaterial(self.go_help_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  408. else
  409. self.go_help_text_tmp.text = "前往协助"
  410. SetImageGray(self.go_help_img,false)
  411. SetTMPSharedMaterial(self.go_help_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  412. end
  413. local max_time, right_time = self.model:GetQuizTimesKv()
  414. self.kill_text_tmp.text = string.format("答对%s道题目", HtmlColorTxt(right_time , "#2cf86f" ))
  415. local leftTime = end_time - TimeUtil:getServerTime()
  416. self:CheckLeftTime(leftTime)
  417. end
  418. function GuildSupportInfoItem:SetGuildBossUI()
  419. local is_open = GetModuleIsOpen(self.cfg.module_id,self.cfg.sub_mod_id)
  420. local open_level = GetModuleOpenLevel(self.cfg.module_id,self.cfg.sub_mod_id)
  421. local level = RoleManager.Instance.mainRoleInfo.level
  422. local bosspower, end_time, boss_id, dun_id, status = self:ParseData(self.data.kv_data)
  423. is_open = level >= open_level
  424. self.is_open = status == 0 --目前先不判断等级
  425. --self.is_open = is_open and status == 0
  426. self.go_help_obj:SetActive(self.is_open)
  427. self.guild_collect_go_help_obj:SetActive(not self.is_open)
  428. self.guild_collect_go_text_tmp.text = "已被接取"
  429. self.go_help_text_tmp.text = "前往协助"
  430. SetImageGray(self.guild_collect_go_help_img,true)
  431. SetTMPSharedMaterial(self.guild_collect_go_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  432. if self.data.role_id == RoleManager.Instance.mainRoleInfo.role_id then
  433. self.go_help_text_tmp.text = "请求协助中"
  434. SetImageGray(self.go_help_img,true)
  435. SetTMPSharedMaterial(self.go_help_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  436. else
  437. self.go_help_text_tmp.text = "前往协助"
  438. SetImageGray(self.go_help_img,false)
  439. SetTMPSharedMaterial(self.go_help_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  440. end
  441. local max_time, right_time = self.model:GetQuizTimesKv()
  442. self.boss_id = boss_id
  443. self.dun_id = dun_id
  444. self.boss_power = bosspower
  445. local monster = ConfigItemMgr.Instance:GetMonsterDataItem(boss_id)
  446. if monster then
  447. self.play_title_tmp.text = Trim(monster.name)
  448. else
  449. self.play_title_tmp.text = Trim(self.cfg.mod_name)
  450. end
  451. self.kill_text_tmp.text = string.format("BOSS战力:%s", HtmlColorTxt(bosspower , RoleManager.Instance.mainRoleInfo.fighting >= bosspower and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK))
  452. local leftTime = end_time - TimeUtil:getServerTime()
  453. self:CheckLeftTime(leftTime)
  454. end
  455. function GuildSupportInfoItem:ParseData(str)
  456. local bosspower = 0
  457. local end_time = 0
  458. local boss_id = 0
  459. local dun_id = 0
  460. local status = 0
  461. if str and str ~= "" then
  462. local info = stringtotable(str)
  463. if info and #info > 0 then
  464. for i,v in ipairs(info) do
  465. local key = tonumber(v[1])
  466. if key == 1 then
  467. bosspower = tonumber(v[2])
  468. elseif key == 2 then
  469. end_time = tonumber(v[2])
  470. elseif key == 3 then
  471. boss_id = tonumber(v[2])
  472. elseif key == 4 then
  473. dun_id = tonumber(v[2])
  474. elseif key == 5 then
  475. status = tonumber(v[2])
  476. end
  477. end
  478. end
  479. end
  480. return bosspower, end_time, boss_id, dun_id, status
  481. end