local wanfa={ scoreNum={ {name="2/3/4颗",value=2}, {name="3/4/5颗",value=3}, {name="4/5/6颗",value=4}, {name="5/6/7颗",value=5}, {name="8/10/12颗",value=8}, {name="10/12/14颗",value=10}, }, bankMode={ {name="胡牌者当庄",value=0}, {name="轮庄",value=1}, }, specialRule={ {name="自摸翻倍",value=1}, {name="放炮全赔",value=8}, {name="过胡升番可胡",value=16}, {name="小家可看牌",value=32}, {name="整胡翻倍",value=64}, {name="海底捞/水上漂",value=128}, {name="查叫",value=256}, {name="可吃对家",value=0x200}, {name="延迟提醒",value=0x0400}, }, playnum = { {name="两人玩",value=2}, {name="三人玩",value=3}, {name="四人玩",value=4}, {name="快速成局",value=-1}, }, speed = { {name="正常",value=0}, {name="慢速",value=1}, }, 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={ specialRule="玩法", scoreNum = "颗数", --scoreRule = "结算", playnum = "玩家人数", bankMode="定庄", speed="速度", 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、胡牌:满足以下条件可以胡牌。", "(1)至少有10胡,或者0胡(无胡)。", "(2)手中的与放于桌上的牌组合完毕,而且有7列牌。", "10、荒庄:底牌都发完后却没人可胡牌时,则荒庄。", } },--]] } --获取玩法规则 function wanfa.getRuleInfo(ruleStr) --return "luzhouwanfa" if not ruleStr then ruleStr = app.room.roomInfo.strGameInfo end local tab=json.decode(ruleStr or "") local temp="" for k,v in pairs(tab) do if wanfa[k] then if k == "specialRule" then for _,data in pairs(wanfa[k]) do if not data.hide then if getNumBand(v,data.value) > 0 then temp=temp..data.name.." " end end end else if k == "baseMulti" then temp = temp .. wanfa[k][1].name .. v .. " " else for _,data in pairs(wanfa[k]) do if v==data.value and not data.hide then temp=temp..data.name.." " end end end end end end return temp end --获取茶馆玩法规则 function wanfa.getClubRuleInfo(ruleStr) if not ruleStr then ruleStr = app.room.roomInfo.strGameInfo end --return "luzhouclubwanfa" local tab=json.decode(ruleStr or "") local temp={} for k,v in pairs(tab) do if wanfa[k] then if k == "specialRule" then for _,data in pairs(wanfa[k]) do if not data.hide then if getNumBand(v,data.value) > 0 then table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}}) end end end else if k == "baseMulti" then table.insert(temp, {name = wanfa.clubWanFaTitle[k] or "", value = {wanfa[k][1].name .. v}}) else for _,data in pairs(wanfa[k]) do if v==data.value and not data.hide then table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}}) end end end end end end return temp end function wanfa.getClubTableWanFaInfo(str) local tab=json.decode(str) local temp="" for k,v in pairs(tab) do if wanfa[k] then if k == "scoreNum" then for _,data in pairs(wanfa[k]) do if v==data.value then temp=data.name.." " end end end 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