local wanfa={ playnum={ {name="4人",value=4}, {name="3人",value=3}, {name="2人",value=2}, }, isfaststart={ {name="快速成局",value=1}, {name="",value=0,hide=true}, }, limitfan={ {name="2番",value=2}, {name="3番",value=3}, {name="4番",value=4}, }, gshmode={ {name="点杠花(点炮)",value=1}, {name="点杠花(自摸)",value=2}, }, playmode={ {name="自摸加底",value=1}, {name="自摸加番",value=2}, {name="自摸不加",value=0}, }, cardtype = { {name="两方",value=2}, {name="三方",value=3}, }, swapcard={ {name="不换牌",value=0}, {name="换三张",value=3}, {name="换四张",value=4}, }, yj = { {name="幺九",value=1}, {name="",value=0,hide=true}, }, jd = { {name="将对",value=1}, {name="",value=0,hide=true}, }, tdh = { {name="天地胡",value=1}, {name="",value=0,hide=true}, }, mq = { {name="门清",value=1}, {name="",value=0,hide=true}, }, zz = { {name="中张",value=1}, {name="",value=0,hide=true}, }, efkh = { {name = "两分起胡", value = 1}, {name = "", value = 0, hide = true} }, ting = { {name = "听牌提示", value = 1}, {name = "", value = 0, hide = true} }, 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={ playmode="玩法", playnum="人数", limitfan="封顶", baseMulti="积分倍数", forbidProp = "其他", } wanfa.ruleText = { { title = "基础规则", content = { "1、人数:2人。", "2、道具:两方:麻将“筒”“条”共72张。三方:麻将“筒”“条”“万”共108张。", "3、三方玩法中,胡牌时,手牌最多只有2种花色,否则不可以胡牌。", "4、流局时查叫,即未叫玩家要赔偿有叫玩家最大可能番数。", }, }, --[[{ title = "胡牌类型", content = { "13张模式", "1、平胡(0番):四坎(除4副刻子)加一对将。", "2、对对胡(1番):四副刻子加一对将。", "3、清一色(2番):全部是一种花色的平胡。", "4、七对(2番):玩家手牌都是对子,没有碰和刮风下雨。", "5、龙七对(3番):玩家手牌都是对子,并且有一个根儿,没有碰和刮风下雨。", "6、清对(3番):清一色+对对胡。", "7、清七对(4番):清一色+七对", "8、清龙七对(5番):清一色+龙七对", "9、全幺九(3番):所有组成的顺子、刻子、将牌里都包含1或9。", "10、将对(3番):所有牌当中,全部是2、5、8组成的对对胡。", "11、将七对(4番):所有牌当中,全是2、5、8组成的龙七对。", "12、卡二条(1番):胡牌时,牌型可以摆成1条和3条夹一个2条的胡牌。", "", "10张模式", "1、平胡(0番):三坎(除3副刻子)加一对将。", "2、对对胡(1番):三副刻子加一对将。", "3、清一色(2番):全部是一种花色的平胡。", "4、清对(3番):清一色+对对胡。", "5、全幺九(3番):所有组成的顺子、刻子、将牌里都包含1或9。", "6、将对(3番):所有牌当中,全部是2、5、8组成的对对胡。", "7、卡二条(1番):胡牌时,牌型可以摆成1条和3条夹一个2条的胡牌。", "", "7张模式", "1、平胡(0番):两坎(除2副刻子)加一对将。", "2、对对胡(1番):两副刻子加一对将。", "3、清一色(2番):全部是一种花色的平胡。", "4、四对(2番):玩家手牌都是对子,没有碰和刮风下雨。", "5、龙四对(3番):玩家手牌都是对子,并且有一个根儿,没有碰和刮风下雨。", "6、清对(3番):清一色+对对胡。", "7、清四对(4番):清一色+四对", "8、清龙四对(5番):清一色+龙四对", "9、全幺九(3番):所有组成的顺子、刻子、将牌里都包含1或9。", "10、将对(3番):所有牌当中,全部是2、5、8组成的对对胡。", "11、将四对(4番):所有牌当中,全是2、5、8组成的四对。", "12、卡二条(1番):胡牌时,牌型可以摆成1条和3条夹一个2条的胡牌。", } }, { title = "算分规则", content = { "1、番=底金×2 例如:底金为1分,2番=1*2*2=4分 3番=1*2*2*2=8分", "2、基本输(赢)积分=番数+刮风下雨+自摸加底(自摸加番玩法则算在总番里)", "3、点炮结算方式为1对1,自摸结算方式为1对多。", "", "另加番", "1、根:+1番 所有牌中有4张一样的牌,(无论是否碰、杠),可累计计算。", "2、杠上开花:+1番", "3、杠上炮:+1番", "4、抢杠胡:+1番", "5、扫底胡:+1番", "6、金钩胡:+1番", "7、海底炮:+1番", "8、天胡:+3番", "9、地胡:+2番", "", "备注:各个牌型不重复计算,只收取最大番。", } },--]] } function wanfa.getWanFaInfo(str) local tab=json.decode(str) local temp="" local sortTable = { 'playnum', 'isfaststart', 'limitfan', 'gshmode', 'playmode', 'cardtype', 'swapcard', 'yj', 'jd', 'tdh', 'mq', 'zz', 'efkh', 'ting', 'baseMulti', 'forbidProp', 'forbidVoice', } for _, key in ipairs(sortTable) do for k,v in pairs(tab) do if key == k then if wanfa[k] then if k == "playnum" then--and tab["isfaststart"] == 1 temp=temp.."" elseif k == "baseMulti" then temp=temp..wanfa[k][1].name..v.." " elseif k == "diFenLimit" and (tab.playnum == 2 or tab.isfaststart==1) then if v > 0 and (tab.diFenAdd and tab.diFenAdd > 0) then for _,data in pairs(wanfa[k]) do if not data.hide then local des = string.format(data.name,v,tab.diFenAdd) temp=temp..des.." " end end else temp=temp.."不加分".." " end elseif k == "specrule" 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 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 end return temp end function wanfa.getWanFaInfoTab(str) local tab=json.decode(str) local temp={} local sortTable = { 'playnum', 'isfaststart', 'limitfan', 'gshmode', 'playmode', 'cardtype', 'swapcard', 'yj', 'jd', 'tdh', 'mq', 'zz', 'efkh', 'ting', 'baseMulti', 'forbidProp', 'forbidVoice', } for _, key in ipairs(sortTable) do for k,v in pairs(tab) do if key == k then if wanfa[k] then if k == "playnum" then--and tab["isfaststart"] == 1 -- temp=temp.."" elseif k == "baseMulti" then table.insert(temp,wanfa[k][1].name..v) elseif k == "diFenLimit" and (tab.playnum == 2 or tab.isfaststart==1) then if v > 0 and (tab.diFenAdd and tab.diFenAdd > 0) then for _,data in pairs(wanfa[k]) do if not data.hide then local des = string.format(data.name,v,tab.diFenAdd) table.insert(temp,des) end end else table.insert(temp,"不加分") end elseif k == "specrule" then for _,data in pairs(wanfa[k]) do if not data.hide then if getNumBand(v,data.value) > 0 then table.insert(temp,data.name) end end end else for _,data in pairs(wanfa[k]) do if v==data.value and not data.hide then -- temp=temp..data.name.." " table.insert(temp,data.name) end end end end end end end return temp end function wanfa.getClubWaFaInfo(str) local tab=json.decode(str) local temp={} local sortTable = { 'playnum', 'isfaststart', 'limitfan', 'gshmode', 'playmode', 'cardtype', 'swapcard', 'yj', 'jd', 'tdh', 'mq', 'zz', 'efkh', 'ting', 'baseMulti', 'forbidProp', 'forbidVoice', } for _, key in ipairs(sortTable) do for k,v in pairs(tab) do if key == k then if wanfa[k] then if k == "playnum" and tab["isfaststart"] == 1 then --temp=temp.."" elseif k == "baseMulti" then table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={wanfa[k][1].name .. v}}) elseif k == "diFenLimit" and (tab.playnum == 2 or tab.isfaststart==1) then if v > 0 and (tab.diFenAdd and tab.diFenAdd > 0) then for _,data in pairs(wanfa[k]) do if not data.hide then local des = string.format(data.name,v,tab.diFenAdd) table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={des}}) end end else table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={"不加分"}}) end elseif k == "specrule" then local firstWf = true for _,data in pairs(wanfa[k]) do if not data.hide then if getNumBand(v,data.value) > 0 then if firstWf then firstWf = false table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}}) else table.insert(temp,{name="",value={data.name}}) end end end end 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}}) --temp=temp..data.name.." " end end end end end end end return temp end function wanfa.getClubTableWanFaInfo(str) local tab=json.decode(str) local temp="" local sortTable = { 'cardtype', 'limitfan', 'swapcard', } for _, key in ipairs(sortTable) do for k,v in pairs(tab) do if key == k then if wanfa[k] then if k == 'cardtype' or k == "limitfan" or k == "swapcard" then for _,data in pairs(wanfa[k]) do if v==data.value then -- table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}}) temp=temp..data.name.." " end end end end end end end return temp end --- -- 获取亲友圈玩法 -- @param gameId -- @param jushu -- @param ruleStr -- @param arena -- @return -- function wanfa.getRuleFromString (gameId, jushu, ruleStr,arena) local str = wanfa.getClubWaFaInfo(ruleStr, jushu) return str end --- -- 获取包间多玩法桌子上显示的信息 -- @param gameId -- @param ruleStr -- @param playerNum -- @return -- function wanfa.getClubTableRuleString (gameId, ruleStr, playerNum) local str = "" local jsonData=json.decode(ruleStr) -- if jsonData.isfaststart == 1 or jsonData.faststart == 1 then -- str = str .. "快速成局 " -- else -- if playerNum then -- str = str .. playerNum .. "人 " -- elseif jsonData.playnum then -- str = str .. jsonData.playnum .. "人 " -- end -- end local wanfaStr = wanfa.getClubTableWanFaInfo(ruleStr) str = str .. wanfaStr return str end return wanfa