|
- local WRDDZRoomConfig = {}
- local gameConfig = getSubGameConfig(GAME_IDS.zgWuRenDouDiZhu)
-
- local DdzDefine = require("luaScript.SubGameDefine.zgwrDdzDefine")
- -- 玩家节点位置
- WRDDZRoomConfig.PLAYER_POS = {
- [5] = {
- cc.p((62+25)*g_radio_x, 84*g_radio_y),
- cc.p((1224-25)*g_radio_x, 366*g_radio_y),
- cc.p((1224-25)*g_radio_x, 561*g_radio_y),
- cc.p((62+25)*g_radio_x, 561*g_radio_y),
- cc.p((62+25)*g_radio_x, 366*g_radio_y),
- },
- }
-
- --root cardRoot手牌开始位置,只有自己有,别人的手牌起始位置不用管
- WRDDZRoomConfig.INIT_CARD_POS = {
- [5] = {
- cc.p(193*g_radio_x, 100*g_radio_y),
- },
- }
- -- 小局展示牌的起始位置
- WRDDZRoomConfig.SHOW_CARD_POS = {
- [5] = {
- cc.p(640*g_radio_x, 253*g_radio_y),
- cc.p((766+320)*g_radio_x, 352*g_radio_y),
- cc.p((766+320)*g_radio_x, 545*g_radio_y),
- cc.p(198*g_radio_x, 545*g_radio_y),
- cc.p(198*g_radio_x, 352*g_radio_y),
- },
- }
-
- -- 回放牌的起始位置
- WRDDZRoomConfig.RECORD_INIT_CARD_POS = {
- [5] = {
- cc.p(640*g_radio_x, 80*g_radio_y),
- cc.p((766+320-400)*g_radio_x, 352*g_radio_y),
- cc.p((766+320-400)*g_radio_x, 545*g_radio_y),
- cc.p((198+50)*g_radio_x, 545*g_radio_y),
- cc.p((198+50)*g_radio_x, 352*g_radio_y),
- },
- }
-
- --专门给5人玩回放定义的出牌位置
- WRDDZRoomConfig.RECORD_SHOW_CARD_POS5 = {
- [5] = {
- cc.p((200-8)*g_radio_x, 50*g_radio_y),
- cc.p((766+320)*g_radio_x, (372+50)*g_radio_y),
- cc.p((766+320)*g_radio_x, (575+50)*g_radio_y),
- cc.p(198*g_radio_x, (575+50)*g_radio_y),
- cc.p(198*g_radio_x, (372+50)*g_radio_y),
- },
- }
-
- WRDDZRoomConfig.OUT_CARD_POS = {
- [5] = {
- cc.p(640*g_radio_x, 253*g_radio_y),
- cc.p(-146*g_radio_x, 20*g_radio_y),
- cc.p(-146*g_radio_x, 10*g_radio_y),
- cc.p(230*g_radio_x, 10*g_radio_y),
- cc.p(230*g_radio_x, 20*g_radio_y),
- },
- }
-
- --抢地主 加倍 要不起 等显示操作的位置配置
- WRDDZRoomConfig.PASS_SHOW_POS = {
- [4] = {
- cc.p(580*g_radio_x, 200*g_radio_y),
- cc.p((-160-40)*g_radio_x, 0),--x-
- cc.p((-160-40)*g_radio_x, 0),--x+
- cc.p((170+40)*g_radio_x, 0),--x+
- },
- [5] = {
- cc.p(580*g_radio_x, 200*g_radio_y),
- cc.p(-200*g_radio_x, 0),
- cc.p(-200*g_radio_x, 0),
- cc.p(210*g_radio_x, 0),
- cc.p(210*g_radio_x, 0),
- },
- }
-
- --每行最多放多少牌
- WRDDZRoomConfig.ROW_MAX_CARDS_NUM = 17
- --手牌行间距
- WRDDZRoomConfig.ROW_SPACING = 92
- --手牌中间点(牌以这个点向两边展开)
- WRDDZRoomConfig.HANDCARD_MIDPOS = 640*g_radio_x
-
- -- 牌缩放
- WRDDZRoomConfig.CARD_SCALE = {
- [1] = 0.88,
- [2] = 0.5,
- [3] = 0.5,
- [4] = 0.5,
- [4] = 0.5,
- }
- -- 发牌时的起始缩放
- WRDDZRoomConfig.CARD_SCALE_START = 0.5
- -- 牌间距
- WRDDZRoomConfig.CARD_DLT_WIDTH = 60
- WRDDZRoomConfig.LCARD_DLT_WIDTH = 25
-
- -- 发牌开始位置
- WRDDZRoomConfig.CARD_START_POS = cc.p(640*g_radio_x, 340*g_radio_y)
-
- -- 牌的正常位置高度
- WRDDZRoomConfig.NORMAL_HEIGHT = 100*g_radio_y
- -- 第二排牌的正常位置高度
- WRDDZRoomConfig.ROW2_NORMAL_HEIGHT = WRDDZRoomConfig.NORMAL_HEIGHT - 92
-
- -- 牌选择时的高度
- WRDDZRoomConfig.SELECTED_HEIGHT = WRDDZRoomConfig.NORMAL_HEIGHT+40
- -- 第二排牌选择时的高度
- WRDDZRoomConfig.ROW2_SELECTED_HEIGHT = WRDDZRoomConfig.NORMAL_HEIGHT-92+30
-
- -- 卡牌高度
- WRDDZRoomConfig.CARD_HEIGHT = 231
- WRDDZRoomConfig.CARD_WIDTH = 163
-
- --[[
-
- ]]
- -- 牌型显示类型
- WRDDZRoomConfig.EffectType = {
- PASS = 0,--要不起
- SINGLE_CARD = 0x01,--单牌
- DUI_ZI = 0x02,--对子
- THREE = 0x03,--三个
- SHUN_ZI = 0x04,--顺子
- LIAN_DUI = 0x05,--连对
- SAN_SHUN = 0x06,--三顺
- THREE_AND_ONE = 0x07,--三带一
- THREE_AND_DUI = 0x08,--三带一对
- AIRPLANE_SINGLE = 0x09,--飞机(带单张)
- AIRPLANE_DUI = 0x0a,--飞机带对
- BOMB_FOUR = 0x0b,--炸弹4张
- TWO_SMALL_KING = 0x0c,--炸弹两小王(王炸)
- BIG_SMALL_KING = 0x0d,--炸弹一大王一小王(王炸)
- TWO_BIG_KING = 0x0e,--炸弹两大王(王炸)
- BOMB_EIGHT = 0x0f,--炸弹8张
- FOUR_SMALL_KING = 0x10,--炸弹四小王(王炸)
- BIG_THREE_SMALL_KING = 0x11,--炸弹一大王三小王(王炸)
- TWO_BIG_TWO_SMALL_KING = 0x12,--炸弹两大王两小王(王炸)
- THREE_BIG_SMALL_KING = 0x13,--炸弹三大王一小王(王炸)
- FOUR_BIG_KING = 0x14,--炸弹四大王(王炸)
- BOMB_TWELVE = 0x15,--炸弹12张
- SIX_SMALL_KING = 0x16,--炸弹六小王(王炸)
- THREE_BIG_THREE_SMALL_KING = 0x17,--炸弹三大王三小王(王炸)
- FOUR_BIG_TWO_SMALL_KING = 0x18,--炸弹四大王两小王(王炸)
- FIVE_BIG_SMALL_KING = 0x19,--炸弹五大王一小王(王炸)
- SIX_BIG_KING = 0x1a,--炸弹六大王(王炸)
- NONE = 100,--不适用类型
- }
- --是否是炸弹
- function WRDDZRoomConfig.isBomb( tp )
- if not tp or (not type(tp) == 'number') then return false end
- return tp >= WRDDZRoomConfig.EffectType.BOMB_FOUR and tp <= WRDDZRoomConfig.EffectType.SIX_BIG_KING
- end
-
- -- 游戏桌子状态
- WRDDZRoomConfig.GameStatus = {
- GAME_STATE_INIT =0, --游戏初始状态
- GAME_STATUS_WAIT_BANKER_START =1, --等待庄家开始游戏
- GAME_STATUS_WAITTING =2, --等待中
- GAME_STATUS_READALL =3, --所有玩家准备
- GAME_STATUS_SHUFFLE =4, --洗牌中
- GAME_STATUS_SENDCARDS =5, --发牌阶段
- GAME_STATUS_ASK_LOARD =6, --叫地主
- GAME_STATUS_ASK_DOUBLE =7, --加倍状态
- GAME_STATUS_SELECT_CARD =8, --选牌(暗地主)
- GAME_STATUS_PLAYING =9, --开始游戏出牌
- GAME_STATE_ROUND_OVER =10, --小局结束
- GAME_STATE_GAME_OVER =11, --大局结束
- }
-
- -- 创建房间参数
- WRDDZRoomConfig.CreateParams = {
- 0x0001, --记牌器
- 0x0002, --有大必打
- }
-
- WRDDZRoomConfig.CreateParamsMean = DdzDefine.CreateParamsMean
-
- WRDDZRoomConfig.RoonInfoConfig = {
- play = DdzDefine.GameTypesStr,
- num = DdzDefine.GamePlayerCount,
- wanfa = DdzDefine.GameWanfa,
- gui = DdzDefine.GameGui,
- keshu = DdzDefine.GameKeShu,
- }
-
- WRDDZRoomConfig.InviteConfig = {
- [2] = {
- [0] = "零缺二",
- [1] = "一缺一",
- [2] = "",
- },
- [3] = {
- [0] = "零缺三",
- [1] = "一缺二",
- [2] = "二缺一",
- [3] = "",
- },
- [5] = {
- [0] = "零缺五",
- [1] = "一缺四",
- [2] = "二缺三",
- [3] = "三缺二",
- [4] = "四缺一",
- }
- }
-
- WRDDZRoomConfig.PayConfig = {
- [0] = "房主付费",
- [1] = "AA支付"
- }
-
- function WRDDZRoomConfig.getPayInfo( gameInfo )
- local data = json.decode(gameInfo)
- if data == nil then
- return ""
- end
- return WRDDZRoomConfig.PayConfig[tonumber(data.deductRule)]
- end
-
- function WRDDZRoomConfig.getRoundCount( gameInfo )
- local data = json.decode(gameInfo)
- if data == nil then
- return ""
- end
- return WRDDZRoomConfig.RoonInfoConfig.num[tonumber(data.playnum)]
- end
- --带鬼数量
- function WRDDZRoomConfig.getGuiCount( gameInfo )
- local data = json.decode(gameInfo)
- if data == nil then
- return ""
- end
- return WRDDZRoomConfig.RoonInfoConfig.gui[tonumber(data.jokerCount)]
- end
- --颗数
- function WRDDZRoomConfig.getKeCount( gameInfo )
- local data = json.decode(gameInfo)
- if data == nil then
- return ""
- end
- return WRDDZRoomConfig.RoonInfoConfig.keshu[tonumber(data.keCount)]
- end
-
- function WRDDZRoomConfig.getWanfa( gameInfo )
- local data = json.decode(gameInfo)
- if data == nil then
- return ""
- end
- return WRDDZRoomConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)]
- end
-
- --[[获取房间详情字符串--]]
- function WRDDZRoomConfig.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..WRDDZRoomConfig.RoonInfoConfig.play[tonumber(data.gamerule)].." "
- ruleStr = ruleStr..WRDDZRoomConfig.RoonInfoConfig.num[tonumber(data.playnum)].." "
- ruleStr = ruleStr..WRDDZRoomConfig.RoonInfoConfig.gui[tonumber(data.jokerCount)].." "
- ruleStr = ruleStr..WRDDZRoomConfig.RoonInfoConfig.keshu[tonumber(data.keCount)].." "
- --[[if data.allowPass and data.allowPass >= 0 then
- ruleStr = ruleStr..WRDDZRoomConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)]..","
- end--]]
-
- if getNumBand(rule, 0x0001)>0 then
- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0001].." "
- end
- if getNumBand(rule, 0x0002)>0 then
- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0002].." "
- end
- if getNumBand(rule, 0x0004)>0 then
- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0004].." "
- end
- -- if getNumBand(rule, 0x0008)>0 then
- -- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0008]..","
- -- end
- if getNumBand(rule, 0x0010)>0 then
- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0010].." "
- end
- if getNumBand(rule, 0x0020)>0 then
- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0020].." "
- end
- if getNumBand(rule, 0x0040)>0 then
- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0040].." "
- end
- if getNumBand(rule, 0x0080)>0 then
- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0080].." "
- end
- if string.len(ruleStr) > 0 then
- ruleStr = string.sub(ruleStr, 1, string.len(ruleStr)-1)
- end
- return ruleStr
- end
-
- function WRDDZRoomConfig.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 = ""
- ruleStr = ruleStr..WRDDZRoomConfig.RoonInfoConfig.play[tonumber(data.gamerule)].."、"
- ruleStr = ruleStr..WRDDZRoomConfig.RoonInfoConfig.num[tonumber(data.playnum)].."、"
- ruleStr = ruleStr..WRDDZRoomConfig.RoonInfoConfig.gui[tonumber(data.jokerCount)].."、"
- ruleStr = ruleStr..WRDDZRoomConfig.RoonInfoConfig.keshu[tonumber(data.keCount)].."、"
- if getNumBand(rule, 0x0001)>0 then
- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0001].. "、"
- end
- if getNumBand(rule, 0x0002)>0 then
- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0002]
- end
- --if getNumBand(rule, 0x0004)>0 then
- -- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0004].. "、"
- --end
- return ruleStr
- end
-
- function WRDDZRoomConfig.getWanfaTab(strGameInfo)
- local data = json.decode(strGameInfo)
- local rule = tonumber(data.specialRule)
- local rules = {}
- table.insert(rules,WRDDZRoomConfig.getPayInfo(strGameInfo))
- table.insert(rules,WRDDZRoomConfig.getRoundCount(strGameInfo))
- table.insert(rules,WRDDZRoomConfig.getGuiCount(strGameInfo))
- table.insert(rules,WRDDZRoomConfig.getKeCount(strGameInfo))
- --table.insert(rules,WRDDZRoomConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)])
- if getNumBand(rule, 0x0001)>0 then
- table.insert(rules,WRDDZRoomConfig.CreateParamsMean[0x0001])
- -- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0001].. "、"
- end
- if getNumBand(rule, 0x0002)>0 then
- table.insert(rules,WRDDZRoomConfig.CreateParamsMean[0x0002])
- -- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0002].. "、"
- end
- --[[if getNumBand(rule, 0x0004)>0 then
- table.insert(rules,WRDDZRoomConfig.CreateParamsMean[0x0004])
- -- ruleStr = ruleStr..WRDDZRoomConfig.CreateParamsMean[0x0004].. "、"
- end--]]
-
- return rules
- end
-
- function WRDDZRoomConfig.getClubInviteWanFa(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 WRDDZRoomConfig
|