local PdkRoomViewConfig = {} local gameConfig = getSubGameConfig(GAME_IDS.PaoDeKuai) local PDKDefine = require("luaScript.SubGameDefine.Poker.pdkWanFa") local winSize = cc.Director:getInstance():getWinSize() local designSize = cc.p(1280,720) -- 玩家节点位置 PdkRoomViewConfig.PLAYER_POS = { [0] = { -- cc.p(62, 111), -- cc.p(62, 481), -- cc.p(1224, 481),--x-机器人牌位置 cc.p((62)/designSize.x * winSize.width, 111/designSize.y * winSize.height), cc.p((1224-25)/designSize.x * winSize.width, 481/designSize.y * winSize.height), cc.p((62+25)/designSize.x * winSize.width, 481/designSize.y * winSize.height), }, [1] = { cc.p((62)/designSize.x * winSize.width, 111/designSize.y * winSize.height), cc.p((1224-25)/designSize.x * winSize.width, 481/designSize.y * winSize.height), cc.p((62+25)/designSize.x * winSize.width, 481/designSize.y * winSize.height), }, } --root cardRoot手牌开始位置 PdkRoomViewConfig.CARD_POS = { [0] = { cc.p(62/designSize.x * winSize.width, 111), cc.p(1134/designSize.x * winSize.width, 596/designSize.y * winSize.height), }, [1] = { cc.p(62/designSize.x * winSize.width, 111), cc.p(1134/designSize.x * winSize.width, 596/designSize.y * winSize.height), cc.p(152/designSize.x * winSize.width, 596/designSize.y * winSize.height), }, } -- 出牌显示位置 PdkRoomViewConfig.SHOW_CARD_POS = { [0] = { cc.p(200/designSize.x * winSize.width, 110/designSize.y * winSize.height), cc.p(980/designSize.x * winSize.width, 481/designSize.y * winSize.height), }, [1] = { cc.p(200/designSize.x * winSize.width, 110/designSize.y * winSize.height), cc.p(1095/designSize.x * winSize.width, 481/designSize.y * winSize.height), cc.p(200/designSize.x * winSize.width, 481/designSize.y * winSize.height), }, } PdkRoomViewConfig.NEW_SHOW_CARD_POS = { [0] = { cc.p(640/designSize.x * winSize.width, 330/designSize.y * winSize.height), cc.p(-130/designSize.x * winSize.width, 0/designSize.y * winSize.height), }, [1] = { cc.p(640/designSize.x * winSize.width, 330/designSize.y * winSize.height), cc.p(-130/designSize.x * winSize.width, 0/designSize.y * winSize.height), cc.p(230/designSize.x * winSize.width, 0/designSize.y * winSize.height), }, } PdkRoomViewConfig.PASS_SHOW_POS = { [0] = { cc.p(580/designSize.x * winSize.width, 200/designSize.y * winSize.height), cc.p(-160/designSize.x * winSize.width, 0/designSize.y * winSize.height), }, [1] = { cc.p(580/designSize.x * winSize.width, 200/designSize.y * winSize.height), cc.p(-160/designSize.x * winSize.width, 0/designSize.y * winSize.height), cc.p(170/designSize.x * winSize.width, 0/designSize.y * winSize.height), }, } -- 牌缩放 PdkRoomViewConfig.CARD_SCALE = { [1] = 1, [2] = 0.6, [3] = 0.6, } -- 发牌时的起始缩放 PdkRoomViewConfig.CARD_SCALE_START = 0.5 -- 牌间距 PdkRoomViewConfig.CARD_DLT_WIDTH = 60 -- 发牌开始位置 PdkRoomViewConfig.CARD_START_POS = cc.p(640/designSize.x * winSize.width, 340/designSize.y * winSize.height) -- 牌的正常位置高度 PdkRoomViewConfig.NORMAL_HEIGHT = 111 -- 牌选择时的高度 PdkRoomViewConfig.SELECTED_HEIGHT = 111+40 -- 卡牌高度 PdkRoomViewConfig.CARD_HEIGHT = 231 PdkRoomViewConfig.CARD_WIDTH = 163 --[[ ]] -- 牌型显示类型 PdkRoomViewConfig.EffectType = { PASS = 0,--要不起 SINGLE_CARD = 1, --//单牌 DUI_ZI = 2, --//对子 THREE_AND_TWO = 3, --//三带二 SHUN_ZI = 4, --//顺子 LIAN_DUI = 5, --//连对(至少3连对) AIRPLANE = 6, --//飞机 FOUR_AND_THREE = 7, --//四带三 BOMB = 8, --//炸弹 FOUR_AND_ONE = 9, --//四带一 THREE_AND_ONE = 10, --三带一 THREE = 11, --三个 FOUR_AND_TWO = 12, --四带二 SPRING_HUA = 99, -- 春天花 NONE = 100, --不适用类型 } -- 游戏桌子状态 PdkRoomViewConfig.GameStatus = { GAME_STATE_INIT =0, --//游戏准备状态 GAME_STATE_SEND_HAND_CARD =1, --//发牌 GAME_STATE_OUT_CARD =2, --//打牌 GAME_STATE_ROUND_OVER =3, --//游戏一局结束 GAME_STATE_GAME_OVER =4, --//游戏结束 } -- 创建房间参数 PdkRoomViewConfig.CreateParams = { 0x0001, --红桃10扎鸟 0x0002, --可4带3 0x0004, --炸弹可拆 0x0008, --3张,飞机少带接完 0x0010, --首局先出黑桃三 0x0020, --显示牌的张数 0x0040, --第一手牌必须包含最小牌 0x0200, -- '3必带2', 0x0400, -- '可4带2', 0x0800, -- '反春天', } PdkRoomViewConfig.CreateParamsMean = PDKDefine.CreateParamsMean PdkRoomViewConfig.RoonInfoConfig = { play = PDKDefine.GameTypesStr, num = PDKDefine.GamePlayerCount, wanfa = PDKDefine.GameWanfa, bombScore = PDKDefine.BombScore, } PdkRoomViewConfig.InviteConfig = { [2] = { [1] = "一缺一", [2] = "", }, [3] = { [1] = "一缺二", [2] = "二缺一", [3] = "", } } --[[ print("------------rule--------", getNumBand(rule, 0x0001)) print("------------rule--------", getNumBand(rule, 0x0002)) print("------------rule--------", getNumBand(rule, 0x0004)) print("------------rule--------", getNumBand(rule, 0x0008)) print("------------rule--------", getNumBand(rule, 0x0010)) print("------------rule--------", getNumBand(rule, 0x0020)) print("------------rule--------", getNumBand(rule, 0x0040)) ]] PdkRoomViewConfig.PayConfig = { [0] = "房主付费", [1] = "AA支付" } function PdkRoomViewConfig.getPayInfo( gameInfo ) local data = json.decode(gameInfo) if data == nil then return "" end return PdkRoomViewConfig.PayConfig[tonumber(data.deductRule)] end function PdkRoomViewConfig.getRoundCount( gameInfo ) local data = json.decode(gameInfo) if data == nil then return "" end return PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playerNum)] end function PdkRoomViewConfig.getWanfa( gameInfo ) local data = json.decode(gameInfo) if data == nil then return "" end return PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)] end --[[获取房间详情字符串--]] function PdkRoomViewConfig.getRuleString(gameInfo) -- local gameInfo = app.room:getRoomInfo().nGameInfo local data = json.decode(gameInfo) if data == nil then return "" end local rule = tonumber(data.specialRule) local ruleStr = "" ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.play[tonumber(data.gamerule)].."," ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playerNum)].."," ruleStr = ruleStr..(PdkRoomViewConfig.RoonInfoConfig.bombScore[tonumber(data.bombScore)] or "").."," if data.allowPass and data.allowPass >= 0 then ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)].."," end if data.baseMulti and data.baseMulti > 0 then ruleStr = ruleStr .. "积分倍数x" .. data.baseMulti .. "," end if getNumBand(rule, 0x0001)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].."," end if getNumBand(rule, 0x0002)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].."," end if getNumBand(rule, 0x0004)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].."," end -- if getNumBand(rule, 0x0008)>0 then -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0008].."," -- end if getNumBand(rule, 0x0010)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0010].."," end if getNumBand(rule, 0x0020)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0020].."," end if getNumBand(rule, 0x0040)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0040].."," end if getNumBand(rule, 0x0080)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0080].."," end if getNumBand(rule, 0x0200)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0200].."," end if getNumBand(rule, 0x0400)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0400].."," end if getNumBand(rule, 0x0800)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0800].."," end if string.len(ruleStr) > 0 then ruleStr = string.sub(ruleStr, 1, string.len(ruleStr)-1) end return ruleStr end function PdkRoomViewConfig.getRuleString2(gameInfo) -- local gameInfo = app.room:getRoomInfo().nGameInfo local data = json.decode(gameInfo) if data == nil then return "" end local rule = tonumber(data.specialRule) local ruleStr = "" if getNumBand(rule, 0x0001)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].. "、" end if getNumBand(rule, 0x0002)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].. "、" end if getNumBand(rule, 0x0004)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].. "、" end -- if getNumBand(rule, 0x0008)>0 then -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0008].."," -- end if getNumBand(rule, 0x0010)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0010].. "、" end if getNumBand(rule, 0x0020)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0020].. "、" end if getNumBand(rule, 0x0040)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0040].. "、" end if getNumBand(rule, 0x0080)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0080].. "、" end if getNumBand(rule, 0x0200)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0200].. "、" end if getNumBand(rule, 0x0400)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0400].. "、" end if getNumBand(rule, 0x0800)>0 then ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0800] end if data.baseMulti and data.baseMulti > 0 then ruleStr = ruleStr .. "积分倍数x" .. data.baseMulti .. "、" end return ruleStr end function PdkRoomViewConfig.getWanfaTab(strGameInfo) local data = json.decode(strGameInfo) local rule = tonumber(data.specialRule) local rules = {} table.insert(rules,PdkRoomViewConfig.getPayInfo(strGameInfo)) table.insert(rules,PdkRoomViewConfig.getRoundCount(strGameInfo)) table.insert(rules,PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)]) table.insert(rules,(PdkRoomViewConfig.RoonInfoConfig.bombScore[tonumber(data.bombScore)] or "")) if data.baseMulti and data.baseMulti > 0 then table.insert(rules, "积分倍数x" .. data.baseMulti) end if data.forbidProp and data.forbidProp > 0 then table.insert(rules, "屏蔽快捷语与道具") end if data.forbidVoice and data.forbidVoice > 0 then table.insert(rules, "屏蔽语音") end if getNumBand(rule, 0x0001)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0001]) -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].. "、" end if getNumBand(rule, 0x0002)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0002]) -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].. "、" end if getNumBand(rule, 0x0004)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0004]) -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].. "、" end -- if getNumBand(rule, 0x0008)>0 then -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0008].."," -- end if getNumBand(rule, 0x0010)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0010]) -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0010].. "、" end if getNumBand(rule, 0x0020)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0020]) -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0020].. "、" end if getNumBand(rule, 0x0040)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0040]) -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0040].. "、" end if getNumBand(rule, 0x0080)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0080]) -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0080] end if getNumBand(rule, 0x0200)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0200]) end if getNumBand(rule, 0x0400)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0400]) end if getNumBand(rule, 0x0800)>0 then table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0800]) end return rules end function PdkRoomViewConfig.getSimpleInviteStr(gameId, roomInfo) local data = json.decode(roomInfo.nGameInfo or "") if data == nil then return "" end local gamerule = data.gamerule -- 玩法 local roundCount = roomInfo.nTotalGameNum -- 局数 local gameConfig = getSubGameConfig(gameId) local gameType = gameConfig.GameType or {} local content = string.format("%s局 %s", roundCount, gameType[gamerule] or gameConfig.gameName) return content end return PdkRoomViewConfig