local wanfa={ highLimit={ {name="3番",value=3}, {name="4番",value=4}, {name="不封顶",value=0}, }, Piaorule={ {name="不漂",value=0}, {name="随漂",value=1}, {name="定漂",value=2}, }, playnum = { {name="三人玩",value=3}, {name="四人玩",value=4}, {name="快速成局",value=-1}, }, specialRule={ {name="十八烂",value=0x0001}, {name="可弯叫",value=0x0002}, {name="占山玩法",value=0x0004}, }, 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 = "玩家人数", Piaorule = "漂", highLimit = "封顶", specialRule="玩法", baseMulti="积分倍数", forbidProp="其他", forbidVoice="其他", } wanfa.RuleText = { --[1] = { title = "基础规则", content = { "1、人数:3人、4人", "2、用牌:长牌一套,总共84张牌,21种牌,每种牌4张。", "3、发牌:庄家18张,两家17张,小家5张。", }, }, --[2] = --[[{ title = "游戏玩法", content = { "1.漂:摸牌前选择漂,漂后相互结算的玩家加1分/漂。", "2.吃:上家打出、翻出的牌以及自己翻出的牌,与自己手牌可组成“点数和等于14”的吃牌组合时,可选择吃,吃的牌需展示至桌面。", "3.暗:大家起手有3/4张一样的牌,必须暗(系统强制),胡牌时手上不能有暗牌。轮到小家偷牌后,有3/4张一样的可以暗或者过。", "4.碰:手中有一对牌,其他玩家打/翻出,或自己翻出同样的牌时,可以碰,碰牌后需偷一张牌。", "5. 垮:对局中,大家碰/垮后偷了一张牌,刚好与手上的对子凑成3张的情况。", "6. 偷:暗/垮/碰牌后或轮到小家偷牌,玩家从牌墩抓一张牌到手中,不展示给其他玩家看。", "7. 违规:在有玩家碰了天(/地/丁/斧)的情况下,手中有单张(没有成对,也没成组合)的地(/天/斧/丁),且是曾吃过的牌时,必须打出的情况。若是偷牌后报退打出,则不算违规。", "8. 胡:手牌和出现的牌全部两两成吃牌组合,且满足胡牌条件,即可胡牌。", "9. 红十八:没有碰牌的情况下,摆牌和手牌全部成14组合,且全部是红牌(可以有丁点斧头);", "10. 十八烂:大家原手牌没有2张一样的牌,可直接胡牌;需在创建房间时勾选该玩法;", "11.招吃无叫:玩家报招吃后,不能胡牌,下次吃碰操作后即可解除招吃无叫的限制。", "12. 正吃正打:同点数的牌,只能吃红打黑,不能吃红打红,不能吃黑打红。", "13. 弯叫:玩家换叫,不管够不够点,单次或者多次连续吃牌后变换叫,即为弯叫。", } }, --[2] = { title = "胡牌结算", content = { "1. 点数计算:(胡牌需满足:庄家20点,闲家18点,小家5点。)", "单张红牌:1点", "碰/暗/垮3张红牌:8点,暗4张红牌:10点", "碰/暗/垮3张黑牌:4点,暗4张黑牌:6点", "2. 番数计算:", "(1)大家:", "①五门红(天、地、人、和、幺四)碰/暗/垮3张1番,原手暗4张2番;", "②其他牌原手暗4张1番;", "③十八烂:1番;", "④红十八:3番;", "⑤30点:点数≥30,1番;", "(2)小家:", "①五门红(天、地、人、和、幺四)碰/暗/垮3张1番,原手暗4张2番;", "②其他牌原手暗4张1番;", "③全红/全黑:1番", "④10点1番,满12点2番,满18点3番", "⑤自摸1番;", } },--]] } --获取玩法规则 function wanfa.getRuleInfo(ruleStr) if not ruleStr then ruleStr = app.room.roomInfo.strGameInfo end --return "luzhouclubwanfa" local tab=json.decode(ruleStr) 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.." " else if data.value == 0x0002 then temp = temp.."不可弯叫".." " end end end end else if k == "baseMulti" then temp = temp .. wanfa.baseMulti[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) 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}}) --只有第一行显示玩法 k = "" else if data.value == 0x0002 then table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={"不可弯叫"}}) k = "" end end end end else if k == "baseMulti" then table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={wanfa.baseMulti[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="" local tempTab = {} tempTab["Piaorule"] = tab.Piaorule or 1 tempTab["specialRule"] = tab.specialRule or 0 for k,v in pairs(tab) do if wanfa[k] then if k ~= "playnum" and k ~= "highLimit" then if k == "specialRule" then local iswanJiao = false if getNumBand(v,0x0002) > 0 then iswanJiao = true end for _,data in pairs(wanfa[k]) do if getNumBand(v,data.value) > 0 then temp=temp..data.name.." " end end if not iswanJiao then temp=temp.."不可弯叫".." " end else if k == "baseMulti" then -- temp = temp .. wanfa.baseMulti[1].name .. v .. " " elseif k == "forbidProp" then else for _,data in pairs(wanfa[k]) do if v==data.value then temp=temp..data.name.." " end end 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