123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780 |
- ---@class KLUIChatPanel:UIKmlLuaPanelBase
- ---@field view KLUIChatPanelView
- local KLUIChatPanel = class(UIKmlLuaPanelBase)
- local this = KLUIChatPanel
- ---创建时调用一次
- function this:Init()
- SL.HideMainPanel()
- self:GetSendNameList()
- if self.args.type and self.args.type.channel then
- self.args.channel = self.args.type.channel
- end
- if not self.args.channel then
- self.args.channel = EChatChannelType.ALL
- end
- self.isHideMainPanel = self.args and self.args.type and self.args.type.isHide
- self.allType = EChatChannelType.WORLD
- self:ZongSelectType(self.allType)
- self.allTypeIsShow = false
- self.message = ""
- GUI:UIPanel_Open("dev/ui/Chat/Item/KLUIChatView/KLUIChatView",self.view.panel_root,self,{width=400,height=570,x=2,y=55},false ,
- function (item)
- self.chatView = item
- end)
- self.all_type_info = {2,6,4,7}
- self.all_emoji_info = {}
- for i = 61, 87 do
- table.insert(self.all_emoji_info,i.."000")
- end
- GUI:Text_sethorwrap(self.view.text_input,"1")
- GUI:Text_setmline(self.view.text_input,"0")
- GUI:DataListInitData(self.view.zong_data_list,function()
- return self:TypeDataListItemCountFunc()
- end,function(realIndex)
- return self:TypeDataListItemGetFunc(realIndex)
- end,function(realIndex, kmlcontrol)
- return self:TypeDataListItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:TypeDataListItemUpdateFunc(realIndex, kmlcontrol)
- end)
- self.btn_all_item = {}
- self.emoji_is_show = false
- GUI:DataListInitData(self.view.emoji_data_list,function()
- return self:EmojiDataListItemCountFunc()
- end,function(realIndex)
- return self:EmojiDataListItemGetFunc(realIndex)
- end,function(realIndex, kmlcontrol)
- return self:EmojiDataListItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:EmojiDataListItemUpdateFunc(realIndex, kmlcontrol)
- end)
- self.btn_emoji_item = {}
- self.item_is_show = false
- self.ChatItem = {}
- self.item_select_type = 1
- self:ItemBtnShow()
- self:SelectChatType()
- GUI:DataListUpdateData(self.view.zong_data_list)
- GUI:UIPanel_Open("dev/ui/Chat/Item/KLUIChatItem/KLUIChatItem",self.view.root,self,{},true,function (item)
- self.calculationUI = item
- GUI:setPositionX(self.calculationUI.view.root,2000)
- GUI:setPositionY(self.calculationUI.view.root,2000)
- end)
- self.maxHeight = 320
- self.isClose = false
- self.submitName = ""
- self.submitId = 0
- self:ClosePrivateSelect()
- GUI:DataListInitData(self.view.all_name_data_list,function()
- return self:NameDataListItemCountFunc()
- end,function(realIndex)
- return self:NameDataListItemGetFunc(realIndex)
- end,function(realIndex, kmlcontrol)
- return self:NameDataListItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:NameDataListItemUpdateFunc(realIndex, kmlcontrol)
- end)
- self.btn_name_item = {}
- if self.args.channel == 8 then
- GUI:Toggle_setIsOn(self.view.siliao_toggle, self, true)
- if self.args.type and self.args.type.rid and self.args.type.name then
- self.submitName = self.args.type.name
- self.submitId = self.args.type.rid
- end
- GUI:Text_setString(self.view.private_input,self.submitName)
- self:AddChatName(self.submitId)
- end
- self.updateID = SL:Schedule(self.updateID,0,Time.deltaTime,-1,function()
- self:Update()
- end)
- end
- function this:Update()
- if not self.nextDoRevTime then
- return
- end
- if Time.time>self.nextDoRevTime then
- self.nextDoRevTime = nil
- self:UpdateChanInfo()
- end
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- end
- function this:SelectChatType()
- if self.args.channel == EChatChannelType.ALL then --综合
- GUI:setVisible(self.view.di_panel,true)
- GUI:setVisible(self.view.all_type_panel,true)
- GUI:setContentSize(self.view.text_input,250,38)
- GUI:setVisible(self.view.no_union_panel,false)
- GUI:setVisible(self.view.no_team_panel,false)
- GUI:setVisible(self.view.system_panel,false)
- GUI:setVisible(self.view.private_panel,false)
- elseif self.args.channel == EChatChannelType.SYSTEM then --系统
- GUI:setVisible(self.view.di_panel,false)
- GUI:setVisible(self.view.all_type_panel,false)
- GUI:setVisible(self.view.no_union_panel,false)
- GUI:setVisible(self.view.no_team_panel,false)
- GUI:setVisible(self.view.system_panel,true)
- GUI:setVisible(self.view.private_panel,false)
- elseif self.args.channel == EChatChannelType.WORLD then --世界
- GUI:setVisible(self.view.di_panel,true)
- GUI:setVisible(self.view.all_type_panel,false)
- GUI:setContentSize(self.view.text_input,370,38)
- GUI:setVisible(self.view.no_union_panel,false)
- GUI:setVisible(self.view.no_team_panel,false)
- GUI:setVisible(self.view.system_panel,false)
- GUI:setVisible(self.view.private_panel,false)
- elseif self.args.channel == EChatChannelType.NEARBY then --附近
- GUI:setVisible(self.view.di_panel,true)
- GUI:setVisible(self.view.all_type_panel,false)
- GUI:setContentSize(self.view.text_input,370,38)
- GUI:setVisible(self.view.no_union_panel,false)
- GUI:setVisible(self.view.no_team_panel,false)
- GUI:setVisible(self.view.system_panel,false)
- GUI:setVisible(self.view.private_panel,false)
- elseif self.args.channel == EChatChannelType.UNION then --战盟
- GUI:setVisible(self.view.all_type_panel,false)
- GUI:setContentSize(self.view.text_input,370,38)
- GUI:setVisible(self.view.no_team_panel,false)
- GUI:setVisible(self.view.system_panel,false)
- if not SL:MeData_Check() or not SL:MeData_GetRoleExtInfo() or SL:MeData_GetRoleExtInfo().unionId == 0 then
- GUI:setVisible(self.view.di_panel,false)
- GUI:setVisible(self.view.no_union_panel,true)
- else
- GUI:setVisible(self.view.no_union_panel,false)
- GUI:setVisible(self.view.di_panel,true)
- end
- GUI:setVisible(self.view.private_panel,false)
- elseif self.args.channel == EChatChannelType.TEAM then --队伍
- GUI:setVisible(self.view.all_type_panel,false)
- GUI:setContentSize(self.view.text_input,370,38)
- GUI:setVisible(self.view.no_union_panel,false)
- GUI:setVisible(self.view.system_panel,false)
- if SL:TeamInfo_IsInTeam() then
- GUI:setVisible(self.view.no_team_panel,false)
- GUI:setVisible(self.view.di_panel,true)
- else
- GUI:setVisible(self.view.no_team_panel,true)
- GUI:setVisible(self.view.di_panel,false)
- end
- GUI:setVisible(self.view.private_panel,false)
- elseif self.args.channel == EChatChannelType.RECRUIT then --招募
- GUI:setVisible(self.view.di_panel,false)
- GUI:setVisible(self.view.all_type_panel,false)
- GUI:setVisible(self.view.no_union_panel,false)
- GUI:setVisible(self.view.no_team_panel,false)
- GUI:setVisible(self.view.system_panel,false)
- GUI:setVisible(self.view.private_panel,false)
- elseif self.args.channel == EChatChannelType.PERSONAL then --私聊
- GUI:setVisible(self.view.di_panel,true)
- GUI:setVisible(self.view.all_type_panel,false)
- GUI:setContentSize(self.view.text_input,160,38)
- GUI:setVisible(self.view.no_union_panel,false)
- GUI:setVisible(self.view.no_team_panel,false)
- GUI:setVisible(self.view.system_panel,false)
- GUI:setVisible(self.view.private_panel,true)
- end
- self:ClosePrivateSelect()
- self.message = ""
- GUI:Text_setString(self.view.text_input,"")
- self.ChatItem = {}
- self.nextDoRevTime = Time.time+Time.deltaTime
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- GUI:AddOnClickEvent(self.view.background_close, self, self.ClosePanel)
- --GUI:AddOnClickEvent(self.view.left_btn, self, self.BtnLeftOnClick)
- --GUI:AddOnClickEvent(self.view.right_btn, self, self.BtnRightOnClick)
- --GUI:AddOnClickEvent(self.view.tuoxiabtn, self, self.TakeOffEquip)
- GUI:AddOnClickEvent(self.view.btn_close, self, self.ClosePanel)
- GUI:AddOnClickEvent(self.view.selectTyptbtn, self, self.SelectTypeAllShow)
- GUI:AddOnClickEvent(self.view.zong_panel_close, self, self.CloseAllShow)
- GUI:SetToggleOnValueChange(self.view.zonghe_toggle, self, self.zonghe_toggle_onclick)
- GUI:SetToggleOnValueChange(self.view.shijie_toggle, self, self.shijie_toggle_onclick)
- GUI:SetToggleOnValueChange(self.view.fujin_toggle, self, self.fujin_toggle_onclick)
- GUI:SetToggleOnValueChange(self.view.zhanmeng_toggle, self, self.zhanmeng_toggle_onclick)
- GUI:SetToggleOnValueChange(self.view.duiwu_toggle, self, self.duiwu_toggle_onclick)
- GUI:SetToggleOnValueChange(self.view.zhaomu_toggle, self, self.zhaomu_toggle_onclick)
- GUI:SetToggleOnValueChange(self.view.siliao_toggle, self, self.siliao_toggle_onclick)
- GUI:SetToggleOnValueChange(self.view.xitong_toggle, self, self.xitong_toggle_onclick)
- GUI:AddOnClickEvent(self.view.fasong, self, self.SendChat)
- GUI:AddOnClickEvent(self.view.pos_btn, self, self.AddPos)
- GUI:AddOnClickEvent(self.view.biaoqing_btn, self, self.OnlickEmoji)
- GUI:AddOnClickEvent(self.view.emoji_mask, self, self.HideEmoji)
- GUI:AddOnClickEvent(self.view.bag_btn, self, self.OnlickItem)
- GUI:AddOnClickEvent(self.view.item_mask, self, self.HideItem)
- GUI:Input_SetOnValueChange(self.view.text_input, self, self.TextChange)
- GUI:AddOnClickEvent(self.view.btn_bag, self, self.btn_bag_onclick)
- GUI:AddOnClickEvent(self.view.btn_equip, self, self.btn_equip_onclick)
- GUI:AddOnClickEvent(self.view.btn_datianshi, self, self.btn_datianshi_onclick)
- GUI:AddOnClickEvent(self.view.create_union_btn, self, self.JoinUnion)
- GUI:AddOnClickEvent(self.view.join_union_btn, self, self.JoinUnion)
- GUI:AddOnClickEvent(self.view.create_team_btn, self, self.CreateTeam)
- GUI:AddOnClickEvent(self.view.join_team_btn, self, self.JoinTeam)
- GUI:Input_SetOnEndEdit(self.view.private_input, self, self.NameChangeEnd)
- SL:RegisterLUAEvent(LUA_EVENT_CHAT_RECEIVE, self.ChatReceive, self)
- GUI:AddOnClickEvent(self.view.private_panel_btn, self, self.OpenPrivateSelect)
- GUI:AddOnClickEvent(self.view.private_panel_close_btn, self, self.ClosePrivateSelect)
- SL:RegisterLuaNetMsg(MessageDef.ResFindIdByNameMessage, self.ResNameMessage, self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.PLAYER_IS_ON_LINE_RES,self.PlayerIsOnLine,self)
- end
- function this:zonghe_toggle_onclick()
- self.args.channel = EChatChannelType.ALL
- self:SelectChatType()
- end
- function this:shijie_toggle_onclick()
- self.args.channel = EChatChannelType.WORLD
- self:SelectChatType()
- end
- function this:fujin_toggle_onclick()
- self.args.channel = EChatChannelType.NEARBY
- self:SelectChatType()
- end
- function this:zhanmeng_toggle_onclick()
- self.args.channel = EChatChannelType.UNION
- self:SelectChatType()
- end
- function this:duiwu_toggle_onclick()
- self.args.channel = EChatChannelType.TEAM
- self:SelectChatType()
- end
- function this:zhaomu_toggle_onclick()
- self.args.channel = EChatChannelType.RECRUIT
- self:SelectChatType()
- end
- function this:siliao_toggle_onclick()
- self.args.channel = EChatChannelType.PERSONAL
- self:SelectChatType()
- end
- function this:xitong_toggle_onclick()
- self.args.channel = EChatChannelType.SYSTEM
- self:SelectChatType()
- end
- function this:ClosePanel()
- self:saveData()
- SL:CloseChatUI()
- GUI:UIPanel_Close("dev/ui/Equip/Panel/KLEquipUI/KLEquipUIPanel")
- if not self.isHideMainPanel then
- SL.ShowMainPanel()
- end
- end
- function this:saveData()
- if SL.chatPrivatePlayerList then
- local allList = {}
- for id, onePlayer in pairs(SL.chatPrivatePlayerList) do
- local value = {}
- for id2, v2 in pairs(onePlayer) do
- table.insert(value,v2)
- end
- table.insert(allList,{k=id,v=value})
- end
- --SL:LogTable(SL.chatPrivatePlayerList,true)
- --SL:LogTable(allList,true)
- local str = SL:JsonEncode(allList)
- SL:SetLocalString("chat_ui_send_name_list",str)
- end
- end
- function this:GetSendNameList()
- SL.chatPrivatePlayerList = {}
- local str = SL:GetLocalString("chat_ui_send_name_list")
- if str and str ~= "" then
- local allList = SL:JsonDecode(str)
- for id, onePlayer in pairs(allList) do
- SL.chatPrivatePlayerList[onePlayer.k] = {}
- for j, oneName in pairs(onePlayer.v) do
- SL.chatPrivatePlayerList[onePlayer.k][oneName.rid] = oneName
- end
- end
- --SL:LogTable(SL.chatPrivatePlayerList,true)
- end
- end
- function this:Close()
- self.isClose = true
- end
- function this:UpdateChanInfo()
- self.chat_list = {}
- if self.args.channel == EChatChannelType.FRIEND or self.args.channel == EChatChannelType.PERSONAL then
- local msgids = SL:ChatInfo_GetChaTargetInfo(self.submitId)
- for i, v in ipairs(msgids) do
- table.insert(self.chat_list,v)
- end
- else
- self.chat_list = SL:ChatInfo_GetChatInfo(self.args.channel)
- end
- self.chatView:RefreshData(self.chat_list)
- end
- function this:TextChange(a, b,eventData)
- if self.isClose then
- return
- end
- local messageStr = eventData[1]
- if string.isNullOrEmpty(messageStr) then
- self.message = messageStr
- self.ChatItem = {}
- else
- local str = self:CheckInputRichText(messageStr)
- if str ~= messageStr then
- messageStr = str
- GUI:Text_setString(self.view.text_input,messageStr)
- end
- local mess = {message={channel = EChatChannelType.SYSTEM,message = messageStr}}
- self.calculationUI:RefreshItem(mess)
- local xx,yy = GUI:getSizeDelta(self.calculationUI.view.richT)
- if yy <= self.maxHeight then
- self.message = messageStr
- else
- GUI:Text_setString(self.view.text_input,self.message)
- end
- end
- end
- --去掉玩家输入的富文本
- function this:CheckInputRichText(message)
- --<size=500>超大字体</size>
- --<color=red>红色</color>
- local str = string.gsub(message, "<[^>]+>", "")
- return str
- end
- function this:SendChat()
- --PrivilegeCardManager.ReqAutoBuyStatus()
- --PrivilegeCardManager.ClearPrivilegeCardAllInfo()
- --PrivilegeCardManager.SendMU()
- if string.isNullOrEmpty(self.message) then
- return
- end
- local IsNeedAndActiveMonthCard = InfoManager.monthCardInfo:IsHaveMonthCardRights("chat")
- if not IsNeedAndActiveMonthCard then
- SL:TipMessage(SL:GetConfig('cfg_string',289).text, 1, NoticeType.NoticeMid )--"购买并使用月卡或日卡后解锁聊天系统",
- return
- end
- local chat_type = self.args.channel
- if chat_type == EChatChannelType.ALL then
- chat_type = self.allType
- end
- if chat_type == EChatChannelType.WORLD then
- local level = tonumber(SL:GetConfig("cfg_global", 125).value)
- local playLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
- if level > playLevel then
- SL:TipMessage(level.."级解锁世界发言", 1, NoticeType.NoticeMid )
- return
- end
- end
- local num = tonumber(SL:GetConfig("cfg_global", 9).value)
- if string.len(self.message) > num *3 then
- self.message = string.sub(self.message, 1, num *3)
- end
- if chat_type == EChatChannelType.PERSONAL and self.submitId == 0 then
- SL:TipMessage(SL:GetConfig('cfg_string',290).text,1, NoticeType.NoticeMid )--请输入私聊对象
- return
- end
- local targetid = nil
- if chat_type == EChatChannelType.PERSONAL then
- targetid = self.submitId
- end
- SL:SendChat(chat_type,self.message,targetid,self.ChatItem)
- self.ChatItem = {}
- self.message = ""
- GUI:Text_setString(self.view.text_input,"")
- end
- function this:ChatReceive(_id,message)
- if self.args.channel == EChatChannelType.ALL then --综合
- self.nextDoRevTime = Time.time+Time.deltaTime
- else
- if self.args.channel == message.channel then
- self.nextDoRevTime = Time.time+Time.deltaTime
- end
- end
- end
- function this:SelectTypeAllShow()
- self.allTypeIsShow = not self.allTypeIsShow
- GUI:setVisible(self.view.zong_panel,self.allTypeIsShow)
- end
- function this:CloseAllShow()
- self.allTypeIsShow = false
- GUI:setVisible(self.view.zong_panel,self.allTypeIsShow)
- end
- function this:TypeDataListItemCountFunc()
- return #self.all_type_info
- end
- function this:TypeDataListItemGetFunc(realIndex)
- local item = GUI:UIPanel_Open("dev/ui/Chat/Item/KLUIChatSelectTypeItem/KLUIChatSelectTypeItem", self.view.zong_data_list, self, {}, true)
-
- self.btn_all_item[item.view.root] = item
- return item.view.root
- end
- function this:TypeDataListItemInitFunc(realIndex, kmlcontrol)
- end
- function this:TypeDataListItemUpdateFunc(realIndex, kmlcontrol)
- local data = self.all_type_info[realIndex + 1]
- self.btn_all_item[kmlcontrol]:RefreshItem(data,self)
- end
- function this:ZongSelectType(channel)
- self:CloseAllShow()
- self.allType = channel
- local typeStr = SL:ChatInfo_GetChatTypeStr(self.allType)
- GUI:Text_setString(self.view.zonghe_text,typeStr)
- end
- function this:AddPos()
- -- @pos@135,130,1001,1@
- local x = SL:MeData_GetCoord().x
- local y = SL:MeData_GetCoord().z
- local mapId = SL:GetMetaValue(EMetaVarGetKey.MAP_ID)
- local line = SL:GetMetaValue(EMetaVarGetKey.MAP_LINE)
- local tab = SL:HasConfig("cfg_map_line",mapId)
- if not tab then
- line = 0
- end
- local posStr = string.format("pos@%s,%s,%s,%s@",x,y,mapId,line)
- self.message = self.message .. posStr
- GUI:Text_setString(self.view.text_input,self.message)
- end
- function this:EmojiDataListItemCountFunc()
- return #self.all_emoji_info
- end
- function this:EmojiDataListItemGetFunc(realIndex)
- local item = GUI:UIPanel_Open("dev/ui/Chat/Item/KLUIChatEmojiItem/KLUIChatEmojiItem", self.view.emoji_data_list, self, {}, true)
-
- self.btn_emoji_item[item.view.root] = item
- return item.view.root
- end
- function this:EmojiDataListItemInitFunc(realIndex, kmlcontrol)
- end
- function this:EmojiDataListItemUpdateFunc(realIndex, kmlcontrol)
- local data = self.all_emoji_info[realIndex + 1]
- self.btn_emoji_item[kmlcontrol]:RefreshItem(data,self)
- end
- function this:AddEmoji(emoji_id)
- self:HideEmoji()
- -- emoji@61000:1@
- local emojiStr = string.format("emoji@%s:1@",emoji_id)
- self.message = self.message .. emojiStr
- GUI:Text_setString(self.view.text_input,self.message)
- end
- function this:OnlickEmoji()
- self.emoji_is_show = not self.emoji_is_show
- GUI:setVisible(self.view.emoji_panel,self.emoji_is_show)
- if self.emoji_is_show then
- GUI:DataListUpdateData(self.view.emoji_data_list)
- end
- end
- function this:HideEmoji()
- self.emoji_is_show = false
- GUI:setVisible(self.view.emoji_panel,self.emoji_is_show)
- end
- function this:OnlickItem()
- self.item_is_show = not self.item_is_show
- GUI:setVisible(self.view.item_panel,self.item_is_show)
- if self.item_is_show then
- self:ShowItem()
- else
- GUI:UIPanel_Close("dev/ui/Chat/Item/KLUIChatBagScrollView/KLUIChatBagScrollViewItem")
- end
- end
- function this:HideItem()
- self.item_is_show = false
- GUI:setVisible(self.view.item_panel,self.item_is_show)
- end
- function this:forbidClick()
- end
- function this:ClickItemCallBack(itemControl, itemData)
- local cfgId = itemData.cfgId
- local id = itemData.id
- local datiankshi_show_type = itemData.datiankshi_show_type
- -- @item@0:0@
- local index = #self.ChatItem + 1
- local select = self.item_select_type
- if select == 3 then
- select = 2
- end
- if select == 2 then
- if not datiankshi_show_type or datiankshi_show_type == 0 then
- select = 1
- end
- end
- table.insert(self.ChatItem,{lid=id,type=select})
- local emojiStr = string.format("item@%s:%s@",index,select)
- self.message = self.message .. emojiStr
- GUI:Text_setString(self.view.text_input,self.message)
- self:HideItem()
- end
- function this:ItemBtnSelect()
- self.item_select_type = 1
- end
- function this:ItemBtnShow()
- if self.item_select_type == 1 then
- GUI:setVisible(self.view.btn_bag_select,true)
- GUI:setVisible(self.view.btn_equip_select,false)
- GUI:setVisible(self.view.btn_datianshi_select,false)
- elseif self.item_select_type == 2 then
- GUI:setVisible(self.view.btn_bag_select,false)
- GUI:setVisible(self.view.btn_equip_select,true)
- GUI:setVisible(self.view.btn_datianshi_select,false)
- else
- GUI:setVisible(self.view.btn_bag_select,false)
- GUI:setVisible(self.view.btn_equip_select,false)
- GUI:setVisible(self.view.btn_datianshi_select,true)
- end
- end
- function this:ShowItem()
- GUI:UIPanel_Close("dev/ui/Chat/Item/KLUIChatBagScrollView/KLUIChatBagScrollViewItem")
- local bag_info = string.split(SL:GetConfig("cfg_global", 6).value, '#')
- self.maxHor = tonumber(bag_info[1])
- self.maxVet = tonumber(bag_info[2])
- local itemList_ = {}
- local show_id = EBagTileScrollViewId.Bag
- if self.item_select_type == 1 then
- local itemList = SL:GetMetaValue("BAG_DATA")[1]
- --SL:LogTable(itemList,true)
- for k, v in pairs(itemList) do
- local cfg_id = v.cfgId
- local tab = SL:GetConfig("cfg_item",cfg_id)
- if tab.type == 2 and tab.strPart and table.count(tab.strPart) > 0 and tab.strPart[1] >= 71 and tab.strPart[1] <= 78 then
- elseif tab.type == 9 then
- else
- v.datiankshi_show_type = nil
- itemList_[k] = v
- end
- end
- elseif self.item_select_type == 2 then
- -- local itemList_1 = SL:GetMetaValue("EQUIP_DATA")[1]
- local itemList_1 = SL:GetWearBarsData(EEquipWearBarType.BaseEquip)
- if itemList_1 then
- for _, item in pairs(itemList_1) do
- item.datiankshi_show_type = 1
- table.insert(itemList_, item)
- end
- end
- itemList_ = SL.Bag:SortItemList(itemList_) ---BagCellUtil.SortItemList(itemList_)
- show_id = EBagTileScrollViewId.Recover
- else
- local itemList_1 = SL:GetWearBarsData(EEquipWearBarType.Archange)
- if itemList_1 then
- for _, item in pairs(itemList_1) do
- item.datiankshi_show_type = 1
- table.insert(itemList_, item)
- end
- end
- local itemList = SL:GetMetaValue("BAG_DATA")[1]
- for k, v in pairs(itemList) do
- local cfg_id = v.cfgId
- local tab = SL:GetConfig("cfg_item",cfg_id)
- if tab.type == 2 and tab.strPart and table.count(tab.strPart) > 0 and tab.strPart[1] >= 71 and tab.strPart[1] <= 78 then
- elseif tab.type == 9 then
- v.datiankshi_show_type = nil
- table.insert(itemList_, v)
- else
- end
- end
- itemList_ = SL.Bag:SortItemList(itemList_) ---BagCellUtil.SortItemList(itemList_)
- show_id = EBagTileScrollViewId.Recover
- end
- GUI:UIPanel_Open("dev/ui/Chat/Item/KLUIChatBagScrollView/KLUIChatBagScrollViewItem", self.view.item_panel, self,
- {
- itemList = itemList_,
- id = show_id,
- --forbidCount = SL:GetMetaValue("BAG_FORBID_COUNT"),
- hor = self.maxHor,
- vet = self.maxVet,
- canDrag = false,
- forbidClickCallback = self.forbidClick,
- itemClick = self.ClickItemCallBack,
- callBackUI = self
- })
- end
- function this:btn_bag_onclick()
- self.item_select_type = 1
- self:ItemBtnShow()
- self:ShowItem()
- end
- function this:btn_equip_onclick()
- self.item_select_type = 2
- self:ItemBtnShow()
- self:ShowItem()
- end
- function this:btn_datianshi_onclick()
- self.item_select_type = 3
- self:ItemBtnShow()
- self:ShowItem()
- end
- function this:JoinUnion()
- local needLevel = SL:GetConfig("cfg_system_switch",105,"id").needLevel
- local myLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
- if needLevel > myLevel then
- SL:TipMessage( SL:GetConfig('cfg_string',449).text,1, NoticeType.NoticeMid )
- return
- end
- SL:CloseChatUI()
- SL:OpenUnion()
- end
- function this:CreateTeam()
- SL:CloseChatUI()
- GUI:UIPanel_Open("dev/ui/Team/Panel/KLUITeamMain/KLUITeamMainPanel",nil,nil,{panelType = 1})
- end
- function this:JoinTeam()
- SL:CloseChatUI()
- GUI:UIPanel_Open("dev/ui/Team/Panel/KLUITeamMain/KLUITeamMainPanel",nil,nil,{panelType = 2})
- end
- function this:NameChangeEnd(a, b,eventData)
- if self.isClose then
- return
- end
- local messageStr = eventData[1]
- self.submitName = messageStr
- if string.isNullOrEmpty(self.submitName) then
- self.submitId = 0
- return
- end
- SL:ReqFindRidByNameMessage(self.submitName)
- end
- function this:ResNameMessage(id,message)
- if message and message.rid then
- self.submitId = message.rid
- self:AddChatName(self.submitId)
- else
- self.submitName = ""
- self.submitId = 0
- GUI:Text_setString(self.view.private_input,"")
- end
- self.nextDoRevTime = Time.time+Time.deltaTime
- end
- function this:AddChatName(_rid)
- if self.submitName then
- if not SL.chatPrivatePlayerList then
- SL.chatPrivatePlayerList = {}
- end
- local id = SL:GetMetaValue(EMetaVarGetKey.USER_ID)
- if not SL.chatPrivatePlayerList[id] then
- SL.chatPrivatePlayerList[id] = {}
- end
- if not table.getValue(SL.chatPrivatePlayerList[id], _rid) then
- --LogError(SL.chatPrivatePlayerList[id])
- SL.chatPrivatePlayerList[id][_rid] = {rid = _rid,submitName = self.submitName}
- end
- self:saveData()
- end
- end
- function this:OpenPrivateSelect()
- if not SL.chatPrivatePlayerList then
- SL.chatPrivatePlayerList = {}
- end
- local id = SL:GetMetaValue(EMetaVarGetKey.USER_ID)
- if not SL.chatPrivatePlayerList[id] then
- SL.chatPrivatePlayerList[id] = {}
- end
- self.all_name = {}
- local all_id = {}
- for k, v in pairs(SL.chatPrivatePlayerList[id]) do
- table.insert(self.all_name,v)
- table.insert(all_id,v.rid)
- end
- -- GUI:setVisible(self.view.private_select_panel,true)
- -- GUI:DataListUpdateData(self.view.all_name_data_list)
- SL:SendLuaNetMsg(LuaMessageIdToSever.PLAYER_IS_ON_LINE_REQ, all_id)
- end
- function this:PlayerIsOnLine(id,message)
- for i = 1, #self.all_name, 1 do
- for k, v in pairs(message) do
- if self.all_name[i].rid == v.rid then
- self.all_name[i].onLine = v.onLine
- end
- end
- end
- GUI:setVisible(self.view.private_select_panel,true)
- GUI:DataListUpdateData(self.view.all_name_data_list)
- end
- function this:ClosePrivateSelect()
- GUI:setVisible(self.view.private_select_panel,false)
- end
- function this:NameDataListItemCountFunc()
- return #self.all_name
- end
- function this:NameDataListItemGetFunc(realIndex)
- local item = GUI:UIPanel_Open("dev/ui/Chat/Item/KLUIChatSelectTypeItem/KLUIChatSelectTypeItem", self.view.all_name_data_list, self, {}, true)
-
- self.btn_name_item[item.view.root] = item
- return item.view.root
- end
- function this:NameDataListItemInitFunc(realIndex, kmlcontrol)
- end
- function this:NameDataListItemUpdateFunc(realIndex, kmlcontrol)
- local data = self.all_name[realIndex + 1]
- self.btn_name_item[kmlcontrol]:RefreshItem(2,self,data)
- end
- function this:SelectName(data)
- self.submitName = data.submitName
- self.submitId = data.rid
- GUI:Text_setString(self.view.private_input,self.submitName)
- self:ClosePrivateSelect()
- self.nextDoRevTime = Time.time+Time.deltaTime
- end
- return this
|