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="封顶3番",value=3}, {name="封顶4番",value=4}, {name="封顶5番",value=5}, }, piaomode={ {name="不飘",value=0}, {name="随飘",value=1}, {name="定飘",value=2}, }, gamescore={ {name="1分",value=1}, {name="2分",value=2}, {name="3分",value=3}, }, laizinum={ -- {name="4鬼",value=4}, -- {name="8鬼",value=8}, -- {name="12鬼",value=12}, }, baojiao = { {name="报叫",value=1}, {name="",value=0,hide=true}, }, zimomode = { --{name="自摸不加",value=0}, {name="自摸加番",value=2}, {name="自摸加底",value=1}, }, srlf = { {name = "三人两房", value = 0x0001} }, lrlf = { {name = "两人两房", value = 0x0002} }, 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="人数", limitfan="封顶", --laizinum="鬼牌", gamescore="底分", advancerule="玩法", baseMulti="积分倍数", forbidProp = "其他", } wanfa.RuleText = { { title = "基础规则", content = { "1、用牌 :麻将“筒条万”,合计108张。", "2、玩法:可碰、杠,不可吃,可点炮、自摸、一炮多响。", "3、坐庄:最先胡牌玩家坐庄,一炮多响则点炮玩家坐庄,流局庄家下家坐庄。", "4、定缺:在发完手牌后选择一门不要的花色即为定缺,摸到这门花色的牌必须要打出,对局中不可再更改定缺。", "5、胡牌", "(1)胡牌时,手牌最多只有2种花色,否则不可胡牌。", "(2)玩家胡牌后,其余玩家继续游戏,直到流局或只有一位未胡牌玩家为止。", "6、查大叫:流局时没叫的玩家赔给有叫的玩家最大可能的番数,且刮风下雨不再结算。", }, }, --[[{ title = "名词解释", content = { "1、刮风(明杠),分为直杠和巴杠。", "(1)直杠:玩家手中有三张一样的牌,其他玩家打出此牌,该玩家杠。", "(2)巴杠(面下杠):玩家已经碰出一对牌,又自摸到碰的牌选中杠。", "2、下雨(暗杠):玩家手中有4张相同的牌选择杠。", "3、过手胡:在同一回合中,若有人点炮,玩家没有胡牌,则此回合其他玩家点炮,只要没有加番就不能胡,自摸可以胡。", "4、查大叫:流局时没有听牌的玩家赔给有叫的玩家最大番数,刮风下雨结算(未听牌玩家刮风下雨分数返还)。", "5、自摸加底:玩家自摸后,除获得相应牌型分后再加1底分。", "6、自摸加番:玩家自摸后,计算牌型分后,再在该牌型分*2。", "7、呼叫转移:开杠的人在杠上炮后,杠钱要一井转移给接炮的人,如果杠不结算则不转移。", "8、杠上花:明暗杠后,补张自摸。", "9、杠上炮:玩家开杠后放炮。", } },--]] --[[{ title = "胡牌类型", content = { "1、平胡:四坎(除4副刻子)加一对将(0番)。", "2、对对胡:四副刻子加一对将(2番)。", "3、清一色:全部是一种花色的平胡(3番)。", "4、七对:玩家手牌都是对子,没有碰和刮风下雨(3番)。", } }, { title = "算分规则", content = { "1、总分=胡牌番数+杠分,1番=2,2番=2×2,依此类推。", "2、点炮结算方式为1对1,自摸结算方式为1对多。", "根:+1番 所有牌中有4张一样的牌,可累加计算", "杠上开花:+1番", "杠上炮:+1番", "抢杠胡:+1番", "金钩钓:+3番", "注:各个牌型不重复计算,只收取最大番。", } },--]] } function wanfa.getWanFaInfo(str) local tab=json.decode(str) local temp="" for k,v in pairs(tab) do if wanfa[k] then if k == "playnum" and tab["isfaststart"] == 1 then temp=temp.."" elseif 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 return temp end function wanfa.getWanFaInfoTab(str) local tab=json.decode(str) local temp={} for k,v in pairs(tab) do if wanfa[k] then if k == "playnum" and tab["isfaststart"] == 1 then -- temp=temp.."" elseif k == "baseMulti" then table.insert(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.." " table.insert(temp,data.name) end end end end end return temp end function wanfa.getClubWaFaInfo(str) local tab=json.decode(str) local temp={} if wanfa["limitfan"] then local limitfanValue = tab.limitfan; for _,data in pairs(wanfa["limitfan"]) do if limitfanValue==data.value and not data.hide then table.insert(temp,{name=wanfa.clubWanFaTitle["limitfan"] or "",value={data.name}}); end end end local isFirstOne = true; for k,v in pairs(tab) do if wanfa[k] then if (k == "playnum" and tab["isfaststart"] == 1) or k == "limitfan" then elseif 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 if isFirstOne then table.insert(temp,{name="玩法",value={data.name}}) isFirstOne = false; else table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}}) --temp=temp..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 == "limitfan" or k == "laizinum" or k == "zimomode" 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 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 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