local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJRoomPlayerView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomPlayerView") local ncmajRoomPlayerView = class("ncmajRoomPlayerView", MJRoomPlayerView) function ncmajRoomPlayerView:ctor() ncmajRoomPlayerView.super.ctor(self); end function ncmajRoomPlayerView:loadUI() local ui = loadUI("mj_ncmaj/res/ui_fangjian/mj_ncmaj_playerView.ui"); self.ui = ui; self:addChild(ui); end function ncmajRoomPlayerView:onEnter() self:loadUI() self:init() self:resetTuoGuanShow() end -- 托管显示 function ncmajRoomPlayerView:resetTuoGuanShow() for i=1,4 do self.ui.Items["ImageView_tuoguan_"..i]:setVisible(false) end end function ncmajRoomPlayerView:showTuoGuanByViewId(viewId,bVisible) if viewId and self.ui.Items["ImageView_tuoguan_"..viewId] then self.ui.Items["ImageView_tuoguan_"..viewId]:setVisible(bVisible) end end function ncmajRoomPlayerView:init() local names = { player = "Layout_player_%d", -- 头像绿圈根节点 head = "ImageView_head_%d", -- 头像 -- headBoarder = "ImageView_head_border_%d", --头像边 name = "Text_Name_%d", -- 名字 score = "Text_Score_%d", -- 总分数 banker = "ImageView_banker_%d", -- 庄家 readyState = "ImageView_ready_%d", -- 准备 headInfo = "Layout_PlayerInfo_%d", --个人信息点击触发框 offLine = "ImageView_offLine_%d", --离线标志 --其他节点 arrow = "ImageView_arrow_%d", -- 指示器 tip = "ImageView_tip_%d", --提示操作图 huxi = "Text_huxi_%d", --胡息 qihu = "ImageView_qihu_%d", --弃胡 bao = "ImageView_bao_%d", --爆 piao = "ImageView_piao_%d", --飘 --bozimo = "ImageView_bozimo_%d", --博自摸 que = "ImageView_que_%d", --缺牌 bai = "ImageView_bai_%d", --摆标志 } self.allNodes = {} self.headSize = {} for i = 1,4 do--LHQ_GAME_CONST.LHQ_GAME_CONST_PLAYER do local nodes = {} --玩家根节点 local namePlayer = string.format(names.player,i) local nodePlayer = self.ui.Items[namePlayer] -- nodePlayer:setVisible(false) nodes.player = nodePlayer --头像 local nameHead = string.format(names.head,i) local nodeHead = self.ui.Items[nameHead] nodes.head = nodeHead nodeHead:setTouchEnabled(true) nodeHead:registerClick(function() self:onClickHead(i) end) -- 需要记录头像的原始尺寸 if not self.headSize.width then self.headSize.width = nodeHead:getContentSize().width self.headSize.height = nodeHead:getContentSize().height end --昵称 local nickName = string.format(names.name,i) local nodeName = self.ui.Items[nickName] nodes.name = nodeName nodeName:setText("") --总分 local nickScore = string.format(names.score,i) local nodeScore = self.ui.Items[nickScore] nodes.score = nodeScore --庄家 local nameBanker = string.format(names.banker,i) local nodeBanker = self.ui.Items[nameBanker] nodeBanker:setVisible(false) nodes.banker = nodeBanker --准备 local nameReadyState = string.format(names.readyState,i) local nodeReadyState = self.ui.Items[nameReadyState] nodes.readyState = nodeReadyState --头像信息 local headInfo = string.format(names.headInfo,i) local nodeheadInfo = self.ui.Items[headInfo] nodes.headInfo = nodeheadInfo --离线信息 local offLine = string.format(names.offLine,i) local nodeoffLine = self.ui.Items[offLine] nodes.offLine = nodeoffLine --指示器 -- local nameArrow = string.format(names.arrow,i) -- local nodeArrow = self.ui.Items[nameArrow] -- nodes.arrow = nodeArrow --tip local nameTip = string.format(names.tip,i) local nodeTip = self.ui.Items[nameTip] nodes.tip = nodeTip --huxi local nameHuxi = string.format(names.huxi,i) local nodeHuxi = self.ui.Items[nameHuxi] nodes.huxi = nodeHuxi --弃胡 local nameQiHu = string.format(names.qihu,i) local nodeQiHu = self.ui.Items[nameQiHu] nodeQiHu:setVisible(false) nodes.qihu = nodeQiHu local nameQue = string.format(names.que,i) local nodeQue = self.ui.Items[nameQue] nodeQue:setVisible(false) nodes.que = nodeQue --飘 local namePiao = string.format(names.piao,i) local nodePiao = self.ui.Items[namePiao] nodePiao:setVisible(false) nodes.piao = nodePiao --爆 local nameBao = string.format(names.bao,i) local nodeBao = self.ui.Items[nameBao] nodeBao:setVisible(false) nodes.bao = nodeBao local nameBai = string.format(names.bai,i) local nodeBai = self.ui.Items[nameBai] nodeBai:setVisible(false) nodes.bai = nodeBai --[[--博自摸 local nameBoZiMo = string.format(names.bozimo,i) local nodeBoZiMo = self.ui.Items[nameBoZiMo] nodeBoZiMo:setVisible(false) nodes.bozimo = nodeBoZiMo--]] self.allNodes[i] = nodes end self:initChatComponent() self.PropAniManager = import("luaScript.Tools.PropAniPlayer"):new(self.ui) --发送道具 self:bindEvent(app.room,"showProp" , handler(self , self.showProp)); self:bindEvent(app , MJDefine.MJEvent.ChangeChatEnable , handler(self , self.onChangeChatEnable)) end -- 更新玩家基本信息 : 昵称、头像 -- index :是玩家展示出来的座位号 function ncmajRoomPlayerView:updatePlayerInfo(index) logE("ncmajRoomPlayerView:updatePlayerInfo() index = ", index) local nodes = self.allNodes[index] local nUserId = app.room.seatShowList[index] local roomInfo = app.room.roomInfo local memberInfo = app.room.roomInfo.memberList[nUserId] if roomInfo.isEapCreate == 1 then local playerInfo = G_EapSdkMgr:getTableUserBaseInfo(nUserId) if playerInfo and memberInfo then logD("获取电竞Sdk的用户信息并赋值", table.tostring(playerInfo)) local nPID = playerInfo.nPID --平台账号 id local strNickname = playerInfo.strNickname --平台昵称 local strAvatar = playerInfo.strAvatar --头像url local userInfo = memberInfo.userInfo userInfo.headimgurl = strAvatar userInfo.nickname = strNickname end end if memberInfo then --[[if memberInfo.nPlayerFlag == LHQ_GAME_CONST.LHQ_GAME_CONST_ONLOOKER then return end--]] nodes.player:setVisible(true) local userInfo = json.decode(memberInfo.userInfo) if not userInfo then return end -- 玩家名字 local nickname = userInfo.nickname nickname = getSubStringNickname(nickname) nodes.name:setText(tostring(nickname)) nodes.score:setText(tostring(memberInfo.nTotalMoney)) -- 玩家头像 local nodeHead = nodes.head; --先设置默认头像 local width = nodeHead:getContentSize().width setPlayerHeadImage(nUserId, userInfo.headimgurl, nodeHead) else nodes.player:setVisible(false) nodes.offLine:setVisible(bVisible) end end function ncmajRoomPlayerView:initChatComponent() ncmajRoomPlayerView.super.initChatComponent(self); local voiceEnable = tonumber(loadUserInfo("ncmajPingBiYuYinKG")) or 1 local propEnable = tonumber(loadUserInfo("ncmajHuDongBiaoQingKG")) or 1 self.chatComponentView:setVoiceEnabled(voiceEnable==1) self.chatComponentView:setPropEnabled(propEnable==1) end function ncmajRoomPlayerView:onChangeChatEnable() if not self.chatComponentView or tolua.isnull(self.chatComponentView) then return end local voiceEnable = tonumber(loadUserInfo("ncmajPingBiYuYinKG")) or 1 local propEnable = tonumber(loadUserInfo("ncmajHuDongBiaoQingKG")) or 1 self.chatComponentView:setVoiceEnabled(voiceEnable==1) self.chatComponentView:setPropEnabled(propEnable==1) end function ncmajRoomPlayerView:playBaoAnim(view) if self.allNodes[view] and self.allNodes[view].bao then self.allNodes[view].bao:setVisible(true) --自贡不播爆动画了 --[[-- 加载第一张图片 local nodeImage = cc.ImageView:createNode() nodeImage:loadTexture(string.format("luzhou_bao_%d",1)) self.allNodes[view].bao:addChild(nodeImage) local baoSize = self.allNodes[view].bao:getContentSize() nodeImage:setPosition(cc.p(baoSize.width/2-1,baoSize.height/2-2)) -- 循环修改图片 local everyFrame = 0.1 local indexFace = 0 local indexMax = 7 local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function () indexFace = indexFace + 1 if 0 < indexFace and indexFace <= indexMax then else indexFace = 1 end local name = string.format("luzhou_bao_%d.png",indexFace) if not tolua.isnull(nodeImage) then nodeImage:loadTexture(name, cc.TextureResType.plistType) end end)) local action2 = cc.Repeat:create(action1, indexMax) nodeImage:stopAllActions() nodeImage:runAction(cc.RepeatForever:create(action2)); nodeImage:setVisible(true)--]] end end function ncmajRoomPlayerView:clearBao() for i=1,4 do if self.allNodes[i] and self.allNodes[i].bao then self.allNodes[i].bao:setVisible(false) self.allNodes[i].bao:removeAllChildren() end end end -- 显示飘标志 function ncmajRoomPlayerView:showPiao(viewId,piaoState) local bVisible = piaoState > 0 if self.allNodes[viewId] and self.allNodes[viewId].piao then if piaoState > 0 then local fileStr = string.format("mj_ncmaj/res/zy_fangjian/ncmajadd/ncmaj_room_spr_piao%d.png",piaoState) self.allNodes[viewId].piao:loadTexture(fileStr,0) end self.allNodes[viewId].piao:setVisible(bVisible) else logE("ncmajRoomPlayerView:showPiao ->viewId is not exit"..viewId) end end -- 清理所有飘标志 function ncmajRoomPlayerView:clearAllPiao() for i=1,4 do if self.allNodes[i] and self.allNodes[i].piao then self.allNodes[i].piao:setVisible(false) end end end -- 显示博自摸 function ncmajRoomPlayerView:showBoZiMo(viewId,bVisible) if self.allNodes[viewId] and self.allNodes[viewId].bozimo then self.allNodes[viewId].bozimo:setVisible(bVisible) else logE("ncmajRoomPlayerView:showBoZiMo ->viewId is not exit"..viewId) end end -- 清理所有博自摸 function ncmajRoomPlayerView:clearAllBoZiMo() for i=1,4 do if self.allNodes[i] and self.allNodes[i].bozimo then self.allNodes[i].bozimo:setVisible(false) end end end --显示定缺 function ncmajRoomPlayerView:showQue(tp,viewId,bVisible) if self.allNodes[viewId] and self.allNodes[viewId].que then self.allNodes[viewId].que:setVisible(bVisible) if tp == 0 then self.allNodes[viewId].que:loadTexture("mj_ncmaj/res/zy_fangjian/ncmjadd/ncmaj_btn_wan.png", 0) elseif tp == 1 then self.allNodes[viewId].que:loadTexture("mj_ncmaj/res/zy_fangjian/ncmjadd/ncmaj_btn_tong.png", 0) elseif tp == 2 then self.allNodes[viewId].que:loadTexture("mj_ncmaj/res/zy_fangjian/ncmjadd/ncmaj_btn_tiao.png", 0) end else logE("ncmajRoomPlayerView:showQue ->viewId is not exit"..viewId) end end -- 清理所有定缺 function ncmajRoomPlayerView:clearAllQue() for i=1,4 do if self.allNodes[i] and self.allNodes[i].que then self.allNodes[i].que:setVisible(false) end end end -- 显示摆标志 function ncmajRoomPlayerView:showBai(viewId,bVisible) if self.allNodes[viewId] and self.allNodes[viewId].bai then self.allNodes[viewId].bai:setVisible(bVisible) else logE("ncmajRoomPlayerView:showBai ->viewId is not exit"..viewId) end end -- 清理所有摆标志 function ncmajRoomPlayerView:clearAllBai() for i=1,4 do if self.allNodes[i] and self.allNodes[i].bai then self.allNodes[i].bai:setVisible(false) end end end return ncmajRoomPlayerView