KLIUItemTipsOtherPanel.lua 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739
  1. ---@class KLIUItemTipsOtherPanel:UIKmlLuaPanelBase
  2. ---@field view KLIUItemTipsOtherPanelView
  3. local KLIUItemTipsOtherPanel = class(UIKmlLuaPanelBase)
  4. local this = KLIUItemTipsOtherPanel
  5. ---创建时调用一次
  6. function this:Init()
  7. if self.args.equip_pos and self.args.equip_pos == "bag" then
  8. GUI:setAnchorPoint(self.view.root, 2, 0)
  9. GUI:setPositionX(self.view.root,-450)
  10. end
  11. if self.args.info and self.args.info.hideMask then
  12. GUI:setVisible(self.view.background_close, false)
  13. else
  14. GUI:setVisible(self.view.background_close, true)
  15. end
  16. if self.args.info and self.args.info.isRight then
  17. GUI:setAnchorPoint(self.view.root, 2, 0)
  18. end
  19. if self.args.info and self.args.info.posX then
  20. GUI:setPositionX(self.view.root,self.args.info.posX)
  21. end
  22. local itemInfo = SL:GetPosItemInfo(self.args.equip_pos, self.args.cfgId, self.args.id)
  23. local name = SL:GetEquipValue(EMetaVarGetKey.EQUIP_NAME, self.args.equip_pos, self.args.cfgId, self.args.id)
  24. self.type = SL:GetMetaValue(EMetaVarGetKey.ITEMTYPE, self.args.cfgId)
  25. self.subType = SL:GetMetaValue(EMetaVarGetKey.ITEMSUBTYPE, self.args.cfgId)
  26. --是否是果实
  27. self.isFruit = SL:HasConfig("cfg_fruit",self.args.cfgId)
  28. if self.isFruit then
  29. ---是否是从果实界面打开
  30. self.isFruitUI = GUI:GetUI("dev/outui/UIFruit/Panel/KLUIFruit/KLUIFruitPanel")
  31. end
  32. self.isGemBagUI= GUI:GetUI("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  33. local itemData = SL:GetConfig("cfg_item",self.args.cfgId)
  34. local name_color = SL:GetConfig("cfg_item",self.args.cfgId).color
  35. GUI:Text_setString(self.view.item_name, name)
  36. GUI:Text_setTextColor(self.view.item_name, tostring(name_color))
  37. GUI:Item_setItemId(self.view.item_img, self.args.cfgId)
  38. local shape = SL:GetConfig("cfg_item",self.args.cfgId).shape[1]
  39. local rotation = SL:GetConfig("cfg_model_charactor",shape).rotateAxis
  40. local rotation_str = rotation .. ",50,0"
  41. self.Schedule1 = SL:ScheduleOnce(0.2, function()
  42. GUI:Item_Rotate(self.view.item_img, rotation_str)
  43. end)
  44. local equip_status = ""
  45. local isDeal = 0
  46. if itemInfo then
  47. if itemInfo.bind then
  48. isDeal = 2
  49. else
  50. isDeal = 1
  51. end
  52. else
  53. local lockItem = SL:GetConfig("cfg_item",self.args.cfgId).lockItem
  54. if lockItem[1] then
  55. isDeal = lockItem[1]
  56. end
  57. end
  58. if isDeal == 1 then
  59. equip_status = "可交易"
  60. elseif isDeal == 2 then
  61. equip_status = "不可交易"
  62. end
  63. local typeStr = self:GetTypeStr(self.type)
  64. local topDesc = SL:GetMetaValue(EMetaVarGetKey.ITEM_TOP_DESC,self.args.cfgId)
  65. local midDesc = SL:GetMetaValue(EMetaVarGetKey.ITEM_MID_DESC,self.args.cfgId)
  66. local bottomDesc = SL:GetMetaValue(EMetaVarGetKey.ITEM_BOTTOM_DESC,self.args.cfgId)
  67. GUI:Text_setString(self.view.top_text, topDesc)
  68. GUI:Text_setString(self.view.mid_text, midDesc)
  69. GUI:Text_setString(self.view.bottom_text, bottomDesc)
  70. GUI:Text_setString(self.view.equip_deal, equip_status)
  71. GUI:Text_setString(self.view.item_type, typeStr)
  72. local is_show_btn = true
  73. if self.args.equip_pos == "bag" then
  74. GUI:setVisible(self.view.bag_root, true)
  75. GUI:setVisible(self.view.item_button, false)
  76. self:bagBtnUpdate()
  77. elseif self.args.equip_pos == "depots" then
  78. GUI:setVisible(self.view.bag_root, true)
  79. GUI:setVisible(self.view.item_button, false)
  80. self:depotsBtnUpdate()
  81. elseif self.args.equip_pos == "gems" then
  82. GUI:setVisible(self.view.bag_root, true)
  83. GUI:setVisible(self.view.item_button, false)
  84. self:gemSlateInlayBtnUpdate()
  85. else
  86. GUI:setVisible(self.view.bag_root, false)
  87. GUI:setVisible(self.view.item_button, true)
  88. is_show_btn = false
  89. end
  90. GUI:DataListInitData(self.view.yulan_data_list,function()
  91. return self:yulanDataListItemCountFunc()
  92. end,function(realIndex)
  93. return self:yulanDataListItemGetFunc(realIndex)
  94. end,function(realIndex, kmlcontrol)
  95. return self:yulanDataListItemInitFunc(realIndex, kmlcontrol)
  96. end, function(realIndex, kmlcontrol)
  97. return self:yulanDataListItemUpdateFunc(realIndex, kmlcontrol)
  98. end)
  99. self.All_yulan = {}
  100. self.yulan_all_item = {}
  101. local yulan_height = 0
  102. if itemData.type == 4 and itemData.subType == 2 and not string.isNullOrEmpty(itemData.useParam) then
  103. SL:LogTable(itemData.useParam,true)
  104. local strList = string.split(itemData.useParam,'|')
  105. for ii, one_str in ipairs(strList) do
  106. local id_yulan = string.split(one_str,'#')
  107. local one_id = tonumber(id_yulan[1])
  108. table.insert( self.All_yulan,one_id)
  109. end
  110. local yulan_hang = math.ceil(#self.All_yulan/4)
  111. yulan_height = yulan_hang *70
  112. GUI:DataListUpdateData(self.view.yulan_data_list)
  113. GUI:setVisible(self.view.yulan_content,true)
  114. else
  115. GUI:setVisible(self.view.yulan_content,false)
  116. end
  117. --计算高度
  118. local x_1,y_1 = GUI:getSizeDelta(self.view.top_text)
  119. local x_2,y_2 = GUI:getSizeDelta(self.view.mid_text)
  120. local x_3,y_3 = GUI:getSizeDelta(self.view.bottom_text)
  121. local str_height = y_1 + y_2 + y_3 + 20 + yulan_height
  122. if str_height > 310 then
  123. str_height = 310
  124. end
  125. GUI:setContentSize(self.view.view_info,340,str_height)
  126. if is_show_btn then
  127. local all_add = str_height - 180
  128. local change_y = all_add/2
  129. local info_y = -20
  130. local head_y = 105 + change_y
  131. local btn_y = -155 - change_y
  132. local bg_h = 400 + all_add
  133. GUI:setPositionY(self.view.item_head,head_y)
  134. GUI:setPositionY(self.view.view_info,info_y)
  135. GUI:setPositionY(self.view.bag_root,btn_y)
  136. GUI:setPositionY(self.view.item_button,btn_y)
  137. GUI:setContentSize(self.view.panel_bg,370,bg_h)
  138. EquipFunc.tipsHeight = bg_h
  139. else
  140. local all_add = str_height - 180
  141. local change_y = all_add/2
  142. local info_y = -20 - 30
  143. local head_y = 105 + change_y -30
  144. local btn_y = -155 - change_y -30
  145. local bg_h = 400 + all_add - 60
  146. GUI:setPositionY(self.view.item_head,head_y)
  147. GUI:setPositionY(self.view.view_info,info_y)
  148. GUI:setPositionY(self.view.bag_root,btn_y)
  149. GUI:setPositionY(self.view.item_button,btn_y)
  150. GUI:setContentSize(self.view.panel_bg,370,bg_h)
  151. EquipFunc.tipsHeight = bg_h
  152. end
  153. end
  154. ---创建或者刷新界面数据时调用
  155. function this:Refresh()
  156. if self.type==6 and self.subType==14 then--变身戒指
  157. SL:OpenEquipTips(self.args.equip_pos, self.args.cfgId, self.args.id)
  158. return
  159. end
  160. end
  161. ---注册UI事件和服务器消息
  162. function this:RegistEvents()
  163. GUI:AddOnClickEvent(self.view.background_close,self,self.CloseItemTips)
  164. GUI:AddOnClickEvent(self.view.left_btn,self,self.BtnLeftOnClick)
  165. GUI:AddOnClickEvent(self.view.right_btn,self,self.BtnRightOnClick)
  166. end
  167. function this:CloseItemTips()
  168. GUI:UIPanel_Close("dev/ui/Tips/Panel/KLIUItemTips/KLIUItemTipsOtherPanel")
  169. local itemGetPathPanel = GUI:GetUI("dev/ui/Common/Panel/KLItemGetPath/KLItemGetPathPanel")
  170. if itemGetPathPanel then
  171. GUI:UIPanel_Close("dev/ui/Common/Panel/KLItemGetPath/KLItemGetPathPanel")
  172. end
  173. end
  174. function this:Close()
  175. if self.Schedule1 then
  176. SL:UnSchedule(self.Schedule1)
  177. end
  178. SL:onLUAEvent(LUA_EVENT_TIPS_PANEL_CLOSE)
  179. end
  180. function this:bagBtnUpdate()
  181. local leftButton = SL:GetEquipValue(EMetaVarGetKey.EQUIP_TIPS_LEFT_BUTTON,self.args.equip_pos,self.args.cfgId,self.args.id)
  182. local rightButton = SL:GetEquipValue(EMetaVarGetKey.EQUIP_TIPS_RIGHT_BUTTON,self.args.equip_pos,self.args.cfgId,self.args.id)
  183. local isDelete = SL:GetConfig("cfg_item",self.args.cfgId).isDelete
  184. ---当是果实并且从果实界面打开时需要变成 左:使用 右:使用x个
  185. if self.isFruit and self.isFruitUI then
  186. leftButton = {}
  187. rightButton = {}
  188. if self.args.count > 0 then
  189. leftButton = {{"1"}}
  190. rightButton = {{"8"}}
  191. end
  192. end
  193. if self.isGemBagUI then
  194. leftButton = {}
  195. rightButton = {{"15"}}
  196. end
  197. self.left_all = {}
  198. self.left_all_item = {}
  199. for i, v in ipairs(leftButton) do
  200. -- for j, btn_type in ipairs(v) do
  201. -- if btn_type == "9" and isDelete == 0 then
  202. -- else
  203. -- table.insert(self.left_all,btn_type)
  204. -- end
  205. -- end
  206. local btn_type = v[1]
  207. if btn_type == "9" and isDelete == 0 then
  208. else
  209. table.insert(self.left_all, v)
  210. end
  211. end
  212. self.right_all = {}
  213. self.right_all_item = {}
  214. for i, vRight in ipairs(rightButton) do
  215. -- for j, btn_type in ipairs(v) do
  216. -- if btn_type == "9" and isDelete == 0 then
  217. -- else
  218. -- table.insert(self.right_all,btn_type)
  219. -- end
  220. -- end
  221. local btn_type = vRight[1]
  222. if btn_type == "9" and isDelete == 0 then
  223. else
  224. table.insert(self.right_all, vRight)
  225. end
  226. end
  227. -- SL:LogTable(self.right_all,true)
  228. -- SL:LogTable(self.right_all[1],true)
  229. self.left_is_open = false
  230. if #self.left_all < 1 then
  231. GUI:setVisible(self.view.left_btn,false)
  232. elseif #self.left_all == 1 then
  233. GUI:setVisible(self.view.left_btn,true)
  234. local str = self:getBtnName(self.left_all[1])
  235. GUI:Button_setTitleText(self.view.left_btn,str)
  236. else
  237. GUI:setVisible(self.view.left_btn,true)
  238. GUI:Button_setTitleText(self.view.left_btn,"更多")
  239. GUI:DataListInitData(self.view.left_data_list,function()
  240. return self:LeftDataListItemCountFunc()
  241. end,function(realIndex)
  242. return self:LeftDataListItemGetFunc(realIndex)
  243. end,function(realIndex, kmlcontrol)
  244. return self:LeftDataListItemInitFunc(realIndex, kmlcontrol)
  245. end, function(realIndex, kmlcontrol)
  246. return self:LeftDataListItemUpdateFunc(realIndex, kmlcontrol)
  247. end)
  248. end
  249. self.right_is_open = false
  250. if #self.right_all < 1 then
  251. GUI:setVisible(self.view.right_btn,false)
  252. elseif #self.right_all == 1 then
  253. GUI:setVisible(self.view.right_btn,true)
  254. local str = self:getBtnName(self.right_all[1])
  255. GUI:Button_setTitleText(self.view.right_btn,str)
  256. else
  257. GUI:setVisible(self.view.right_btn,true)
  258. GUI:Button_setTitleText(self.view.right_btn,"更多")
  259. GUI:DataListInitData(self.view.right_data_list,function()
  260. return self:RightDataListItemCountFunc()
  261. end,function(realIndex)
  262. return self:RightDataListItemGetFunc(realIndex)
  263. end,function(realIndex, kmlcontrol)
  264. return self:RightDataListItemInitFunc(realIndex, kmlcontrol)
  265. end, function(realIndex, kmlcontrol)
  266. return self:RightDataListItemUpdateFunc(realIndex, kmlcontrol)
  267. end)
  268. end
  269. if GUI:GetUI("dev/ui/Bag/Panel/KLDepots/KLDepotsPanel") then
  270. GUI:setVisible(self.view.right_btn, true)
  271. GUI:Button_setTitleText(self.view.right_btn, "放入")
  272. return
  273. end
  274. end
  275. function this:depotsBtnUpdate()
  276. GUI:setVisible(self.view.left_btn, true)
  277. GUI:Button_setTitleText(self.view.left_btn, "丢弃")
  278. GUI:setVisible(self.view.right_btn, true)
  279. GUI:Button_setTitleText(self.view.right_btn, "取出")
  280. end
  281. function this:gemSlateInlayBtnUpdate()
  282. GUI:setVisible(self.view.left_btn, false)
  283. GUI:setVisible(self.view.right_btn, true)
  284. GUI:Button_setTitleText(self.view.right_btn, "卸下")
  285. end
  286. function this:BtnLeftOnClick()
  287. if self.args.equip_pos == "depots" then
  288. local storeIndex = SL:GetDepotsIndex(self.args.id)
  289. SL:ReqStoreGiveUpItemMessage(storeIndex)
  290. self:CloseItemTips()
  291. return
  292. end
  293. if #self.left_all < 1 then
  294. elseif #self.left_all == 1 then
  295. local btnType = self.left_all[1][1]
  296. if not InfoManager.equipOrItemTipsInfo:IsCanOnClickButton(self.left_all[1]) then
  297. return
  298. end
  299. if btnType == "0" then
  300. self:CloseItemTips()
  301. elseif btnType == "1" then
  302. self:UseItem()
  303. elseif btnType == "2" then
  304. self:CloseItemTips()
  305. elseif btnType == "9" then
  306. local name = SL:GetEquipValue(EMetaVarGetKey.EQUIP_NAME, self.args.equip_pos, self.args.cfgId, self.args.id)
  307. SL:CommonTipsMessage({ showTips = "是否摧毁"..name ,
  308. ui = self,
  309. sureBtnText = "确定",
  310. cancelBtnText = "取消",
  311. callback = self.DestroyItem
  312. })
  313. elseif btnType == "10" then
  314. self:JieFeng()
  315. elseif btnType == "11" then
  316. self:DiuQi()
  317. elseif btnType == "99" then
  318. self:OpenPanel(self.left_all[1])
  319. end
  320. else
  321. if not self.left_is_open then
  322. GUI:setVisible(self.view.left_btn_content,true)
  323. self.left_is_open = true
  324. GUI:DataListUpdateData(self.view.left_data_list)
  325. else
  326. GUI:setVisible(self.view.left_btn_content,false)
  327. self.left_is_open = false
  328. end
  329. end
  330. end
  331. function this:PutOneEquip()
  332. local ItemInfo = SL:GetPosItemInfo(self.args.equip_pos,self.args.cfgId,self.args.id)
  333. if SL:CheckEquipWear(ItemInfo) == 1 then
  334. SL:PutOnEquip(ItemInfo)
  335. else
  336. EquipInfo.ShowCantEquipTip(ItemInfo)
  337. end
  338. self:CloseItemTips()
  339. end
  340. function this.DestroyItem(returnData)
  341. local ui = returnData.ui
  342. local index = SL:GetBagIndex(ui.args.id)
  343. SL:ReqDestroyItemMessage(index)
  344. ui:CloseItemTips()
  345. end
  346. function this:JieFeng()
  347. self:CloseItemTips()
  348. end
  349. function this:DiuQi()
  350. local index = SL:GetBagIndex(self.args.id)
  351. SL:ReqGiveUpItemMessage(index)
  352. self:CloseItemTips()
  353. end
  354. function this:TakeOffEquip()
  355. if not self.args.id then
  356. return
  357. end
  358. local wearBarId, pos = SL:GetEquipWearBarIdPos(self.args.id)
  359. SL:TakeOffEquip(wearBarId, pos)
  360. self:CloseItemTips()
  361. end
  362. function this:ForgeOnClick()
  363. if not InfoManager.equipOrItemTipsInfo:IsCanOnClickButton("",10401) then
  364. return
  365. end
  366. self:CloseItemTips()
  367. GUI:UIPanel_Close("dev/ui/Bag/Panel/KLUIBag/KLUIBagPanel")
  368. GUI:UIPanel_Close("dev/ui/Equip/Panel/KLEquipUI/KLEquipUIPanel")
  369. SL:OpenForgeGroupUI()
  370. end
  371. function this:UseItem()
  372. if self.isFruit then--跳转到果实界面
  373. ---@type cfg_global_column
  374. local switchCfg = SL:GetConfig("cfg_global",3003)
  375. if SL:MeData_GetLevel() < tonumber(switchCfg.value) then
  376. SL:TipMessage(SL:GetConfig('cfg_string',117).text,1, NoticeType.NoticeMid )-- "等级不足!",
  377. self:CloseItemTips()
  378. return
  379. end
  380. if self.isFruitUI then
  381. SL:UseItem(self.args.cfgId, self.args.id, 1)
  382. self:CloseItemTips()
  383. else
  384. self:CloseItemTips()
  385. GUI:UIPanel_Close("dev/ui/Tips/Panel/KLUIEquipTips/KLUIEquipTipsPanel")
  386. GUI:UIPanel_Close("dev/ui/Tips/Panel/KLIUItemTips/KLIUItemTipsOtherPanel")
  387. GUI:UIPanel_Close("dev/ui/Tips/Panel/KLUIEquipTipsComparsion/KLUIEquipTipsComparsionPanel")
  388. GUI:UIPanel_Close("dev/ui/Equip/Panel/KLEquipUI/KLEquipUIPanel")
  389. GUI:UIPanel_Close("dev/ui/Bag/Panel/KLUIBag/KLUIBagPanel")
  390. GUI:UIPanel_Open("dev/ui/Role/Panel/KLAttr/KLAttrPanel",_,_,{isShowFruit = true})
  391. end
  392. return
  393. end
  394. ---@type cfg_item_column
  395. local itemTbl = SL:GetConfig("cfg_item",self.args.cfgId)
  396. if itemTbl.type == E_ItemType.TriggerItem and itemTbl.subType == 10 and self.args.cfgId == 60090002 then --角色改名卡
  397. GUI:UIPanel_Close("dev/ui/Tips/Panel/KLIUItemTips/KLIUItemTipsOtherPanel")
  398. GUI:UIPanel_Open("dev/outui/ReName/Panel/KLRoleReName/KLRoleReNamePanel", nil, nil, {title="role_rename",des="请输入新的角色名称:",cfgId=self.args.cfgId})
  399. return
  400. elseif itemTbl.type == E_ItemType.TriggerItem and itemTbl.subType == 10 and self.args.cfgId == 60090003 then --战盟改名卡
  401. local isJoinUnion = SL:GetMetaValue(EMetaVarGetKey.ACTOR_HAVE_GUIDE)
  402. if isJoinUnion then
  403. GUI:UIPanel_Close("dev/ui/Tips/Panel/KLIUItemTips/KLIUItemTipsOtherPanel")
  404. GUI:UIPanel_Open("dev/outui/ReName/Panel/KLRoleReName/KLRoleReNamePanel", nil, nil, {title="rename",des="请输入新的战盟名称:",cfgId=self.args.cfgId})
  405. else
  406. SL:TipMessage("未加入战盟",1,NoticeType.NoticeMid)
  407. end
  408. return
  409. end
  410. --背包石特殊处理
  411. if self.args.cfgId == 50040001 then
  412. self:forbidClick()
  413. return
  414. end
  415. SL:UseItem(self.args.cfgId, self.args.id, self.args.count)
  416. self:CloseItemTips()
  417. if itemTbl.type == E_ItemType.TriggerItem and itemTbl.subType == E_OutTriggerItemType.TransferRing then
  418. GUI:UIPanel_Close("dev/ui/Bag/Panel/KLUIBag/KLUIBagPanel")
  419. SL.HideMainPanel()
  420. --守护处理,跳转到外观守护界面
  421. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLAppearGroup/KLAppearGroupPanel", nil, nil, E_FashionType.TransferRing)
  422. SL:ScheduleOnce(0.3,function()
  423. SL:onLUAEvent(TRANSFER_RING_SELECT_ITEM, self.args.cfgId)
  424. end)
  425. elseif itemTbl.type == E_ItemType.TriggerItem and itemTbl.subType == E_OutTriggerItemType.GuardSkin then
  426. GUI:UIPanel_Close("dev/ui/Bag/Panel/KLUIBag/KLUIBagPanel")
  427. SL.HideMainPanel()
  428. --守护处理,跳转到外观守护界面
  429. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLAppearGroup/KLAppearGroupPanel", nil, nil, E_FashionType.Appear)
  430. SL:ScheduleOnce(0.3,function()
  431. SL:onLUAEvent(APPEAR_SELECT_ITEM, self.args.cfgId)
  432. end)
  433. end
  434. end
  435. ---使用多个item(self.args.count的数量)
  436. function this:UseMultipleItem()
  437. SL:UseItem(self.args.cfgId, self.args.id, self.args.count)
  438. self:CloseItemTips()
  439. end
  440. function this:forbidClick()
  441. local bag_unlock_info = SL:GetConfig('cfg_global', 107).value
  442. local bag_unlock_split = string.split(bag_unlock_info, '#')
  443. local itemId = tonumber(bag_unlock_split[1])
  444. local needCount = tonumber(bag_unlock_split[2])
  445. SL:CommonTipsMessage({ stringTblID = 207,
  446. ui = self, cfgId = itemId, needCount = needCount, callback = self.UnlockGrid, callbackData = nil })
  447. --GUI:UIPanel_Open("dev/ui/Common/Panel/KLCommonItemTips/KLCommonItemTipsPanel", nil, nil, { showTips = string.format("是否消耗%s扩充背包空间?", "背包石"), ui = self, cfgId = itemId, needCount = needCount, callback = self.UnlockGrid, callbackData = nil })
  448. self:CloseItemTips()
  449. end
  450. function this:UnlockGrid()
  451. SL:ReqBagAddCapacityMessage(1)
  452. end
  453. function this:getBtnName(data)
  454. local btn_type = data[1]
  455. --SL:LogTable(data,true)
  456. if btn_type == "0" then
  457. return "取消"
  458. elseif btn_type == "1" then
  459. if GUI:GetUI("dev/ui/Bag/Panel/KLDepots/KLDepotsPanel") then
  460. return "放置"
  461. else
  462. return "使用"
  463. end
  464. elseif btn_type == "2" then
  465. return "回收"
  466. elseif btn_type == "3" then
  467. return "穿戴"
  468. elseif btn_type == "4" then
  469. return "强化"
  470. elseif btn_type == "5" then
  471. return "上架"
  472. elseif btn_type == "6" then
  473. return "合并"
  474. elseif btn_type == "7" then
  475. return "拆分"
  476. elseif btn_type == "8" then
  477. if self.isFruitUI and self.isFruit then
  478. return "使用"..self.args.count.."个"
  479. end
  480. return "批量使用"
  481. elseif btn_type == "9" then
  482. return "摧毁"
  483. elseif btn_type == "10" then
  484. return "解封"
  485. elseif btn_type == "11" then
  486. return "丢弃"
  487. elseif btn_type == "13" then
  488. return "分解"
  489. elseif btn_type == "14" then
  490. return "装备"
  491. elseif btn_type == "15" then
  492. return "镶嵌"
  493. elseif btn_type == "16" then
  494. return "卸下"
  495. elseif btn_type == "99" then
  496. return data[2]
  497. end
  498. return ""
  499. end
  500. function this:LeftDataListItemCountFunc()
  501. return #self.left_all
  502. end
  503. function this:LeftDataListItemGetFunc(realIndex)
  504. local data = self.left_all[realIndex + 1]
  505. local str = self:getBtnName(data)
  506. local message = {equip_pos=self.args.equip_pos,cfgId=self.args.cfgId,id=self.args.id,btnType=data,nameStr=str}
  507. local item = GUI:UIPanel_Open("dev/ui/Tips/Item/KLUITips/KLTipBtntem",self.view.left_data_list,self,message,true)
  508. self.left_all_item[item.view.root] = item
  509. return item.view.root
  510. end
  511. function this:LeftDataListItemInitFunc(realIndex, kmlcontrol)
  512. end
  513. function this:LeftDataListItemUpdateFunc(realIndex, kmlcontrol)
  514. end
  515. function this:BtnRightOnClick()
  516. if self.args.equip_pos == "depots" then
  517. local storeIndex = SL:GetDepotsIndex(self.args.id)
  518. SL.Equip:ReqStoreTakeButtonMessage(storeIndex)
  519. self:CloseItemTips()
  520. return
  521. end
  522. if self.args.equip_pos == "gems" then
  523. InfoManager.gemSlateInfo:ReqUnloadGem()
  524. self:CloseItemTips()
  525. return
  526. end
  527. local depotPanel = GUI:GetUI("dev/ui/Bag/Panel/KLDepots/KLDepotsPanel")
  528. if depotPanel then
  529. local BagIndex = SL:GetBagIndex(self.args.id)
  530. if depotPanel.bagType == "privilege" then
  531. SL.Equip:ReqBagPutStoreButtonMessage(BagIndex, SL:GetDepotsCurPage() + depotPanel.maxDepotsPages)
  532. else
  533. SL.Equip:ReqBagPutStoreButtonMessage(BagIndex, SL:GetDepotsCurPage())
  534. end
  535. self:CloseItemTips()
  536. return
  537. end
  538. if #self.right_all < 1 then
  539. elseif #self.right_all == 1 then
  540. local btnType = self.right_all[1][1]
  541. if not InfoManager.equipOrItemTipsInfo:IsCanOnClickButton(self.right_all[1]) then
  542. return
  543. end
  544. if btnType == "0" then
  545. self:CloseEquipTips()
  546. elseif btnType == "1" then
  547. self:UseItem()
  548. elseif btnType == "2" then
  549. self:CloseEquipTips()
  550. elseif btnType == "9" then
  551. SL:CommonTipsMessage({ showTips = "是否摧毁"..name ,
  552. ui = self,
  553. sureBtnText = "确定",
  554. cancelBtnText = "取消",
  555. callback = self.DestroyItem
  556. })
  557. elseif btnType == "8" then
  558. self:UseMultipleItem()
  559. elseif btnType == "10" then
  560. self:JieFeng()
  561. elseif btnType == "11" then
  562. self:DiuQi()
  563. elseif btnType == "15" then
  564. self:InlayGem()
  565. elseif btnType == "99" then
  566. self:OpenPanel(self.right_all[1])
  567. end
  568. else
  569. if not self.right_is_open then
  570. GUI:setVisible(self.view.right_btn_content,true)
  571. self.right_is_open = true
  572. GUI:DataListUpdateData(self.view.right_data_list)
  573. else
  574. GUI:setVisible(self.view.right_btn_content,false)
  575. self.right_is_open = false
  576. end
  577. end
  578. end
  579. function this:OpenPanel(btnType)
  580. if #btnType < 3 then
  581. return
  582. end
  583. self:CloseItemTips()
  584. GUI:UIPanel_Close("dev/ui/Bag/Panel/KLUIBag/KLUIBagPanel")
  585. GUI:UIPanel_Close("dev/ui/Equip/Panel/KLEquipUI/KLEquipUIPanel")
  586. local panel = btnType[4]
  587. if #btnType == 4 then
  588. GUI:UIPanel_Open(panel)
  589. elseif #btnType == 5 then
  590. local num = btnType[5]
  591. if tonumber(num) then
  592. num = tonumber(num)
  593. end
  594. GUI:UIPanel_Open(panel,nil,nil,num)
  595. elseif #btnType >=7 then
  596. local message = {}
  597. for i=5,#btnType-2,3 do
  598. if btnType[i] and btnType[i+1] and btnType[i+2] then
  599. if btnType[i+1] == "string" then
  600. message[btnType[i]] = btnType[i+2]
  601. else
  602. message[btnType[i]] = tonumber(btnType[i+2])
  603. end
  604. end
  605. end
  606. GUI:UIPanel_Open(panel,nil,nil,message)
  607. end
  608. SL.HideMainPanel()
  609. end
  610. function this:RightDataListItemCountFunc()
  611. return #self.right_all
  612. end
  613. function this:RightDataListItemGetFunc(realIndex)
  614. local data = self.right_all[realIndex + 1]
  615. local str = self:getBtnName(data)
  616. local message = {equip_pos=self.args.equip_pos,cfgId=self.args.cfgId,id=self.args.id,btnType=data,nameStr=str}
  617. local item = GUI:UIPanel_Open("dev/ui/Tips/Item/KLUITips/KLTipBtntem",self.view.right_data_list,self,message,true)
  618. self.right_all_item[item.view.root] = item
  619. return item.view.root
  620. end
  621. function this:RightDataListItemInitFunc(realIndex, kmlcontrol)
  622. end
  623. function this:RightDataListItemUpdateFunc(realIndex, kmlcontrol)
  624. end
  625. function this:GetTypeStr(type)
  626. if type == 1 then
  627. return "货币"
  628. elseif type == 2 then
  629. return "装备"
  630. elseif type == 3 then
  631. return "消耗品"
  632. elseif type == 4 then
  633. return "宝箱"
  634. elseif type == 5 then
  635. return "材料"
  636. elseif type == 6 then
  637. return "道具"
  638. end
  639. return ""
  640. end
  641. function this:InlayGem()
  642. InfoManager.gemSlateInfo:ReqInlayGem(self.args.cfgId, self.args.id)
  643. self:CloseItemTips()
  644. end
  645. ----自选宝箱预览
  646. function this:yulanDataListItemCountFunc()
  647. return #self.All_yulan
  648. end
  649. function this:yulanDataListItemGetFunc(realIndex)
  650. local item = GUI:UIPanel_Open("dev/ui/Tips/Item/KLUIItemPreviewItem/KLUIItemPreviewItem",self.view.yulan_data_list,self,{},true)
  651. self.yulan_all_item[item.view.root] = item
  652. return item.view.root
  653. end
  654. function this:yulanDataListItemInitFunc(realIndex, kmlcontrol)
  655. end
  656. function this:yulanDataListItemUpdateFunc(realIndex, kmlcontrol)
  657. local data = self.All_yulan[realIndex + 1]
  658. self.yulan_all_item[kmlcontrol]:RefreshItem({cfgId=data,itemPanel=self},self.select_Secret_level,self)
  659. end
  660. function this:ShowOtherItemData(cfg_id)
  661. SL:LogError("ShowOtherItemData---"..cfg_id)
  662. end
  663. return this