local wanfa={ { playnum = { {name="两人玩",value=2}, {name="三人玩",value=3}, {name="四人玩",value=4}, {name="快速成局",value=-1}, }, }, { deductRule={ {name="房主支付",value=0}, {name="AA支付",value=1}, }, }, { scoreRule={ {name="加底",value=1}, {name="不加底",value=0}, }, }, { highLimit={ {name="无封顶",value=0}, {name="160分",value=160}, }, }, { bankMode={ {name="",value=0,hide=true}, {name="轮庄",value=1}, }, }, { specialRule={ {name="自摸翻倍",value=0x0001}, {name="可无胡",value=0x0200}, {name="圈牌",value=0x0400}, {name="整胡翻倍",value=0x0080}, {name="放炮包赔",value=0x0008}, {name="查叫",value=0x0100}, {name="归翻倍",value=0x0002}, {name="单杀",value=0x0800}, {name="小家可看庄牌",value=0x0020}, {name="吃对家",value=0x0040}, {name="不可腾爆",value=0x1000}, }, isAndOr = true; }, { fourpeopleRule={ {name="满底6分",value=6}, {name="满底12分",value=12}, }, }, { baseMulti = { {name = "积分倍数x", value = 0x0001} }, }, { forbidProp = { {name = "屏蔽快捷语与道具", value = 1}, {name = "屏蔽快捷语与道具", value = 0, hide = true}, }, }, { forbidVoice = { {name = "屏蔽聊天", value = 1}, {name = "屏蔽聊天", value = 0, hide = true}, }, } } wanfa.clubWanFaTitle = { playnum = "玩家人数", deductRule = "房费", highLimit = "封顶", specialRule = "玩法", fourpeopleRule = "分数", bankMode="定庄", scoreRule = "结算", baseMulti="积分倍数", forbidProp="其他", forbidVoice="其他", } wanfa.RuleText = { --[1] = { title = "基础规则", content = { "1、用牌:小写“一”到“十”各4张,大写“壹”到“拾”各4张,共80张牌;其中“二七十”和“贰柒拾”为红色牌,其余为黑色牌。", "2、砌牌:大贰一般4人同玩,其中1人坐底。庄家摸21张,闲家摸20张,留19张在墩上。", "3、定庄:首局随机选庄,之后谁胡牌谁坐庄。", }, }, --[2] = --[[{ title = "牌型介绍", content = { "1、一将牌:洗牌后,手中2个相同的牌为1对。", "2、一坎牌:洗牌后,手中3个相同的牌为1坎。", "3、一拢牌:洗牌后,手中4个相同的牌为拢。", "4、一列牌:砌牌后,手中的牌依据规则组合成相连的牌。", } }, --[3] = { title = "玩法介绍", content = { "1、拢牌:拢牌为起手20张牌时,系统自动拢牌。", "2、招牌:游戏中,别人打或摸的牌与自己手中一坎牌相同时,则可招牌。", "3、碰牌:游戏中,别人打或摸的牌与自己手中一对牌相同时,则可碰牌。", "4、八块:当招或拢牌超过1次时,称为八块,此时不用从手中打牌出去,而是下家摸牌。", "5、吃牌:自己摸的或者上家出的牌,无人碰或招时,则可以与自己手中的牌组合成一列牌,称为吃牌。", "6、比牌:当吃的该牌与手中有相同牌时,必须要将手中的这张牌也根据某种组合起来,井将这2个组合的牌都放到桌上,称为比牌。", "7、过张:能吃却没有吃的牌,称为过张。", "8、进张:每进1张,必须打出1张,八块除外。", "9、爆牌:当砌牌后手中6列牌全部组合完毕,只差组成最后一列或1对时可以爆牌。", "10、胡牌:满足以下条件可以胡牌。", "(1)至少有10胡,或者0胡(无胡)。", "(2)手中的与放于桌上的牌组合完毕,而且有7列牌。", "11、荒庄:底牌都发完后却没人可胡牌时,则荒庄。", "12、圈:系统随机圈,大小贰柒拾任意一张,胡牌玩家手上有三个则为圈。", } },--]] } wanfa.ruleStr = "" --获取茶馆玩法规则 function wanfa.getClubRuleInfo(ruleStr) if not ruleStr then ruleStr = app.room.roomInfo.strGameInfo end local strGameInfo = json.decode(ruleStr) local temp = {} wanfa.ruleStr = "" for k,v in ipairs(wanfa) do for serverKey,serverValue in pairs(strGameInfo) do if v[serverKey] then if v.isAndOr then for i,data in ipairs(v[serverKey]) do if not data.hide then if getNumBand(serverValue,data.value) > 0 then table.insert(temp,{name=wanfa.clubWanFaTitle[serverKey] or "",value={data.name}}) wanfa.ruleStr = wanfa.ruleStr..data.name.." " end end end else for i,data in ipairs(v[serverKey]) do if serverKey == "baseMulti" then table.insert(temp,{name=wanfa.clubWanFaTitle[serverKey] or "",value={data.name .. serverValue}}) wanfa.ruleStr = wanfa.ruleStr..data.name .. serverValue .. " " break; end if serverValue == data.value and not data.hide then table.insert(temp,{name=wanfa.clubWanFaTitle[serverKey] or "",value={data.name}}) wanfa.ruleStr = wanfa.ruleStr..data.name.." " break end end end break; end end end return temp,wanfa.ruleStr end --获取玩法规则 function wanfa.getRuleInfo(ruleStr) if wanfa.ruleStr ~= "" then return wanfa.ruleStr; else local temp,tempStr = wanfa.getClubRuleInfo(ruleStr) return tempStr; end end function wanfa.getClubTableWanFaInfo(ruleStr) local strGameInfo = json.decode(ruleStr) local temp = "" for serverKey,serverValue in pairs(strGameInfo) do if serverKey == "highLimit" then for k,v in ipairs(wanfa) do if v[serverKey] then if v.isAndOr then for i,data in ipairs(v[serverKey]) do if getNumBand(serverValue,data.value) > 0 then temp = data.name.." " end end else for i,data in ipairs(v[serverKey]) do if serverKey == "baseMulti" then table.insert(temp,{name=wanfa.clubWanFaTitle[serverKey] or "",value={data.name .. serverValue}}) temp = temp .. wanfa.clubWanFaTitle[serverKey] .. data.name .. serverValue .. " " break; end if serverValue == data.value then if serverValue == 0 then temp = data.name.." " else temp = wanfa.clubWanFaTitle[serverKey]..data.name.." " end break end end end break end end break end end return temp end function wanfa.getRuleFromString (gameId, jushu, ruleStr,arena) local str = wanfa.getClubRuleInfo(ruleStr, jushu) return str end function wanfa.getClubTableRuleString (gameId, ruleStr, playerNum) local str = "" local jsonData=json.decode(ruleStr) if jsonData.startMode == 1 then str = "快速成局 " else if jsonData.playerNum == 2 then str = str .. "快速成局 " else str = tostring(playerNum) .. "人 " end end local wanfaStr = wanfa.getClubTableWanFaInfo(ruleStr) str = str .. wanfaStr return str end return wanfa