|
- local ZPDef = ZPFramework.ZPImport("zp_base.luaScript.ZPDef")
- local ZPMessage = ZPFramework.ZPImport("zp_base.luaScript.Protocol.ZPMessage")
- local ZPFuc = ZPFramework.ZPImport("zp_base.luaScript.ZPFunctions")
- local ZPSound = ZPFramework.ZPImport("zp_base.luaScript.ZPSound")
-
- local ZPRoomPlayerView = ZPFramework.ZPFrameworkClassImprot("zp_base.luaScript.Views.Room.ZPRoomPlayerView")
- local doushisiRoomPlayerView = class("doushisiRoomPlayerView", ZPRoomPlayerView)
-
- function doushisiRoomPlayerView:ctor( ... )
- doushisiRoomPlayerView.super.ctor(self)
- end
-
- function doushisiRoomPlayerView:loadUI()
- local ui = loadUI("zp_doushisi/res/ui/ui_fangjian/doushisi_ui_PlayerView.ui");
- self.ui = ui;
- self:addChild(ui);
- end
-
- function doushisiRoomPlayerView:onEnter()
- doushisiRoomPlayerView.super.onEnter(self)
-
- self.PropAniManager = import("luaScript.Tools.PropAniPlayer"):new(self.ui)
- --发送道具
- self:bindEvent(app.room,"showProp" , handler(self , self.showProp));
-
- self:bindEvent(app , ZPDef.ZPEvent.ChangeChatEnable , handler(self , self.onChangeChatEnable))
- self:resetTuoGuanShow()
- end
- ---
- -- 托管显示
- -- @return
- --
- function doushisiRoomPlayerView:resetTuoGuanShow()
- for i=1,4 do
- self.ui.Items["ImageView_tuoguan_"..i]:setVisible(false)
- end
- end
- ---
- -- 显示指定玩家头像托管标识
- -- @param viewId
- -- @param bVisible
- -- @return
- --
- function doushisiRoomPlayerView:showTuoGuanByViewId(viewId,bVisible)
- self.ui.Items["ImageView_tuoguan_"..viewId]:setVisible(bVisible)
- end
-
- function doushisiRoomPlayerView:initPlayerNodes()
- -- 玩家节点名称模板
- 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_headInfo_%d", --个人信息点击触发框
- offLine = "ImageView_offLine_%d", --离线标志
- --其他节点
- tip = "ImageView_tip_%d", --提示操作图
- clock = "ImageView_clock_%d", --闹钟
- txtClocl = "TextBMFont_clock_%d", --闹钟时间
- offLineTime = "Text_offLineTime_%d", --离线时间
- offLineTimeBg = "ImageView_txkYY_%d", --离线时间背景
- toujia = "ImageView_toujia_icon_%d", --头家角标
- xiaojia = "ImageView_xiao_icon_%d", --小家家角标
- baojiao = "ImageView_bao_icon_%d", --报叫角标
-
- }
- self.allNodes = {}
- self.headSize = {}
- for i = 1,ZPDef.GameMaxPlayer do
- local nodes = {}
- --玩家根节点
- local namePlayer = string.format(names.player,i)
- local nodePlayer = self.ui.Items[namePlayer]
- 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)
- local headBoarder = string.format(names.headBoarder,i)
- local nodeheadBoarder = self.ui.Items[headBoarder]
- nodes.headBoarder = nodeheadBoarder
-
- -- 需要记录头像的原始尺寸
- 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]
- nodes.banker = nodeBanker
- nodes.banker.pos = nodeBanker:getPosition()
-
-
- --准备
- 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
-
- --tip
- local nameTip = string.format(names.tip,i)
- local nodeTip = self.ui.Items[nameTip]
- nodes.tip = nodeTip
-
-
- --闹钟
- local nameClock = string.format(names.clock,i)
- local nodeClock = self.ui.Items[nameClock]
- nodes.clock = nodeClock
- --闹钟时间
- local nametxtClock = string.format(names.txtClocl,i)
- local nodetxtClock = self.ui.Items[nametxtClock]
- nodes.txtclock = nodetxtClock
-
- --离线时间
- local nameoffLineTime = string.format(names.offLineTime,i)
- local nodeoffLineTime = self.ui.Items[nameoffLineTime]
- nodes.offLineTime = nodeoffLineTime
-
- --离线时间背景
- local nameoffLineTimeBg = string.format(names.offLineTimeBg,i)
- local nodeoffLineTimeBg = self.ui.Items[nameoffLineTimeBg]
- nodes.offLineTimeBg = nodeoffLineTimeBg
- nodes.offLineTimeBg:setVisible(false)
-
- --头家
- local toujia = string.format(names.toujia,i)
- local nodetoujia = self.ui.Items[toujia]
- nodes.toujia = nodetoujia
-
- --小家
- local xiaojia = string.format(names.xiaojia,i)
- local nodexiaojia = self.ui.Items[xiaojia]
- nodes.xiaojia = nodexiaojia
-
- --报叫
- local baojiao = string.format(names.baojiao,i)
- local nodebaojiao = self.ui.Items[baojiao]
- nodes.baojiao = nodebaojiao
-
- self.allNodes[i] = nodes
- end
-
- self:setAllClockVisible(false)
- self:setOwnerVisible()
- self:stopAndHideBaoAnim()
- self:setXiaoJiaFlagVis(false)
- self:hideLeftCard()--隐藏剩余牌
- self:hideTouJia()
- self:hideXiaoJia()
- self:hideBaoJiao()
- end
-
- --隐藏头家
- function doushisiRoomPlayerView:hideTouJia()
- for i = 1,ZPDef.GameMaxPlayer do
- self.allNodes[i].toujia:setVisible(false)
- end
- end
-
- --设置某个玩家为头家
- function doushisiRoomPlayerView:setPlayerTouJiaVisible(viewId,bVisible)
- if self.allNodes[viewId] then
- self.allNodes[viewId].toujia:setVisible(bVisible)
- return true
- end
- return false
- end
-
-
- --隐藏小家
- function doushisiRoomPlayerView:hideXiaoJia()
- for i = 1,ZPDef.GameMaxPlayer do
- self.allNodes[i].xiaojia:setVisible(false)
- end
- end
-
- --设置某个玩家为小家
- function doushisiRoomPlayerView:setPlayerXiaoJiaVisible(viewId,bVisible)
- if self.allNodes[viewId] then
- self.allNodes[viewId].xiaojia:setVisible(bVisible)
- return true
- end
- return false
- end
-
- --隐藏报叫
- function doushisiRoomPlayerView:hideBaoJiao()
- for i = 1,ZPDef.GameMaxPlayer do
- self.allNodes[i].baojiao:setVisible(false)
- end
- end
-
- --设置某个报叫
- function doushisiRoomPlayerView:setPlayerBaoJiaoVisible(viewId,bVisible)
- if self.allNodes[viewId] then
- self.allNodes[viewId].baojiao:setVisible(bVisible)
- return true
- end
- return false
- end
-
-
- --隐藏房主
- function doushisiRoomPlayerView:setOwnerVisible()
- end
-
- --设置某个房主Visible
- function doushisiRoomPlayerView:setPlayerOwnerVisible(viewId,bVisible)
- return false
- end
-
- --设置胡息归0
- function doushisiRoomPlayerView:setHuXizero()
- end
-
-
- --设置某个玩家胡息
- function doushisiRoomPlayerView:setPlayerHuXi(viewId,huxi)
- end
-
-
- function doushisiRoomPlayerView:stopAndHideBaoAnim()
- end
-
- function doushisiRoomPlayerView:playBaoAnim(view)
-
- end
-
- --设置小家标志显示
- function doushisiRoomPlayerView:setXiaoJiaFlagVis(vis)
- end
-
-
- --设置某个庄家Visible
- function doushisiRoomPlayerView:setPlayerBankerVisible(viewId,bVisible)
- return false
- end
-
-
- function doushisiRoomPlayerView:setLeftCardNum(viewId,bVisible,num)
- end
-
-
- --用户行为提示
- function doushisiRoomPlayerView:showOperatorTip(viewId,mType)
- local tip = self.allNodes[viewId].tip
- local time = 1.3
- tip:setVisible(true)
-
- local count = 0
- if mType == ZPDef.OpType.OP_TYPE_CANCEL then
- tip:loadTextureFromPlist(ZPDef.TipFile.GUO)
- elseif mType == ZPDef.OpType.OP_TYPE_CHI then
- tip:loadTexture(ZPDef.TipFile.CHI)
- elseif mType == ZPDef.OpType.OP_TYPE_PENG then
- tip:loadTexture(ZPDef.TipFile.PENG)
- elseif mType == ZPDef.OpType.OP_TYPE_LAI_PENG then
- tip:loadTexture(ZPDef.TipFile.PENG)
- elseif mType == ZPDef.OpType.OP_TYPE_BA then
- tip:loadTexture(ZPDef.TipFile.BA)
- elseif mType == ZPDef.OpType.OP_TYPE_FANPAI_BA then
- tip:loadTexture(ZPDef.TipFile.BA)
- elseif mType == ZPDef.OpType.OP_TYPE_TOU then
- tip:loadTexture(ZPDef.TipFile.TOU)
- elseif mType == ZPDef.OpType.OP_TYPE_HU then
- time = 2.0
- if app.room.roomInfo.huType and app.room.roomInfo.huType >= 0 then
- local name = string.format(ZPDef.TipFile.HU,app.room.roomInfo.huType)
- tip:loadTextureFromPlist(name)
- end
- elseif mType == -55 then--单独处理爆牌动画
- tip:loadTexture(ZPDef.TipFile.BAOJIAO)
- elseif mType == -56 then
- tip:loadTexture(ZPDef.TipFile.BAOPEI)
- end
- --音效
- local nUserId = app.room:getUserIdByViewId(viewId)
- local userInfo=app.room:getUserInfo(nUserId)
- if userInfo then
- ZPSound.PlayOperateSound(userInfo.sex,mType)
- end
-
- tip:setScale(3.0)
- local seq = cc.Sequence:create(cc.ScaleTo:create(0.2,1),cc.DelayTime:create(time),cc.CallFunc:create(function ()
- tip:setVisible(false)
- end))
- tip:runAction(seq)
-
- end
-
-
-
- function doushisiRoomPlayerView:initChatComponent()
- local heads = {
- [1] = self.allNodes[1].head,
- [2] = self.allNodes[2].head,
- [3] = self.allNodes[3].head,
- [4] = self.allNodes[4].head,
- }
- if not self.chatComponentView then
- self.chatComponentView=import("luaScript.Views.Room.RoomChatComponentView"):new(heads,ZPDef.DOUSHISI_GAME_CHAT_TXT)
- self:addChild(self.chatComponentView)
- end
-
- local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1
- local propEnable = tonumber(loadUserInfo("propEnable")) or 1
- self.chatComponentView:setVoiceEnabled(voiceEnable==1)
- self.chatComponentView:setPropEnabled(propEnable==1)
- end
-
- function doushisiRoomPlayerView:onChangeChatEnable()
- if not self.chatComponentView or tolua.isnull(self.chatComponentView) then
- return
- end
- local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1
- local propEnable = tonumber(loadUserInfo("propEnable")) or 1
- self.chatComponentView:setVoiceEnabled(voiceEnable==1)
- self.chatComponentView:setPropEnabled(propEnable==1)
- end
-
-
- function doushisiRoomPlayerView:onClickHead(index)
- playBtnEffect()
- local nUserId = app.room.seatShowList[index]
- local memberInfo = app.room.roomInfo.memberList[nUserId]
- if memberInfo then
- local view = import("luaScript.Views.Room.RoomPlayerInfoViewNew"):new(nUserId, memberInfo.userInfo)
- view:setAnchorPoint(cc.p(0.5, 0.5))
- app:showWaitDialog(view, 0, true)
- end
- end
-
-
- function doushisiRoomPlayerView:showProp(data)
-
- local response = data.response
- logE("LHQRoomView:showProp response = "..table.tostring(response))
- --ui表现开始
- local uidStarId = response.uidStarId
- local uidEndId = response.uidEndId
- local propId = response.propId
- local isQunFa = response.isQunFa
-
- local beginViewId = app.room:getViewIdByUserId(uidStarId)
- local endViewId = app.room:getViewIdByUserId(uidEndId)
-
-
- if beginViewId==MJDefine.MyViewId then
- self:removePlayerInfoView()
- end
-
- if not self.allNodes[beginViewId] or not self.allNodes[endViewId]
- or not self.allNodes[endViewId].head or not self.allNodes[beginViewId].head then
- logE("场景还没初始化完成就收到道具消息果断return!")
- return
- end
-
- --播放动画
- if isQunFa == 1 then
- local onLineList = app.room.roomInfo.memberList
- for nUserId,v in pairs(onLineList) do
- local endViewId = app.room:getViewIdByUserId(nUserId)
- if endViewId ~= beginViewId then
- self.PropAniManager:playAnimation(self.allNodes[beginViewId].head,self.allNodes[endViewId].head,propId)
- end
- end
- else
- self.PropAniManager:playAnimation(self.allNodes[beginViewId].head,self.allNodes[endViewId].head,propId)
- end
- end
-
-
- --隐藏离线
- function doushisiRoomPlayerView:setPlayerOffLine(bVisible,viewId)
- --[[if not viewId or viewId > ZPDef.GameMaxPlayer or not self.allNodes[viewId] then
- return
- end--]]
- if viewId and self.allNodes[viewId] then
- --头像变灰
- if app.room.offLineTime and next(app.room.offLineTime) ~= nil then
- local nUserId = app.room:getUserIdByViewId(viewId)
- if app.room.offLineTime[nUserId] then
- self.offLineTime[viewId] = app.room.offLineTime[nUserId]
- else
- self.offLineTime[viewId] = 0
- end
- else
- self.offLineTime[viewId] = 0
- end
- self.allNodes[viewId].offLineTimeBg:setVisible(bVisible)
- self.allNodes[viewId].offLineTime:setVisible(false)
- end
- end
- return doushisiRoomPlayerView
|