local wanfa={ playmode={ {name="自摸胡",value=1}, {name="点炮胡",value=2}, {name="红中不接炮",value=3}, }, niaopoint={ {name="鸟1分",value=1}, {name="鸟2分",value=2}, }, niaonumber={ {name="不抓鸟",value=0,}, {name="一码全中",value=1}, {name="抓2鸟",value=2}, {name="抓4鸟",value=4}, {name="抓6鸟",value=6}, }, canqiangganghu={ {name="不带抢杠胡",value=0,hide=true}, {name="带抢杠胡",value=1}, }, extrahutype={ {name="平胡",value=0, hide=true}, {name="可7对胡",value=1}, }, noredaddniao={ {name="有红不奖鸟", value=0, hide=true}, {name="无红中加2鸟",value=1}, }, embarpeng={ {name="可碰", value=0, hide=true}, {name="不可碰",value=1}, }, zimoscore={ {name="自摸2分",value=2}, {name="自摸5分",value=5}, }, redsize={ {name="4红中",value=4}, {name="8红中",value=8}, }, piaotype={ {name="不飘",value=0}, {name="飘分",value=1}, -- {name="飘235",value=3}, }, hosting = { {name = "超时托管", value = 1}, {name = "不托管", value = 0, hide = true} }, playnum = { {name="两人玩",value=0}, {name="三人玩",value=1}, {name="四人玩",value=2}, {name="快速成局",value=4}, }, 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="玩法", niaopoint="鸟分", niaonumber="抓鸟", canqiangganghu="抢杠胡", extrahutype="胡牌", noredaddniao="奖鸟", embarpeng="是否可碰", zimoscore="分数", redsize="红中个数", piaotype="是否飘风", hosting = "托管", playnum = "玩家人数", baseMulti="积分倍数", forbidProp = "其他", } wanfa.ruleText = { --[1] = { title = "基础规则", content = { "1、用牌:麻将“筒条万”,加4张红中,合计112张。", "2、打法:可碰、可杠、不可吃,可点炮、可自摸。", "3、坐庄:第一局由创建游戏的玩家做庄家,以后谁胡牌谁做庄,流局则最后摸牌的人做庄。", "4、红中:红中可代替任何牌,不可以碰,杠,接炮。", "5、荒庄不荒杠:所有杠牌,不论牌局最后是否有人胡牌,杠都需要算分。", "6、杠牌", "暗杠:自己摸到四张一样的牌直接开杠。", "弯杠:自己手中有三张一样的牌,其他玩家又打出一张同样的牌,可以开杠(无过手杠)。", "公杠:当自己摸到的牌是自己已经碰过的牌时,则可以开杠,此杠可被抢杠胡。", "7、通炮:几个玩家可同时胡一张牌,由放通炮玩家输分(此时由点炮玩家抓鸟)。", "8、抢杠全包:只可抢公杠,抢杠后,嬴家得分全由被抢玩家出(杠分除外)。", "9、过手胡:某一回合中,若有人点炮,玩家没有选择胡,则此回合有其他玩家点炮,也不能胡,自摸除外。当该玩家摸牌,碰牌,杠牌后,过手胡限制解除。", }, }, -- --[2] = -- { -- title = "胡牌类型", -- content = -- { -- "1、平胡:四坎(除4副刻子)加一对将。", -- "2、七对:牌面由七个对子组成。", -- "3、起手胡:起手4个红中,算自摸胡。", -- "4、抢杠胡:只能抢公杠(碰完之后补的杠)。", -- } -- }, -- --[3] = -- { -- title = "算分规则", -- content = -- { -- "玩家得分由杠分+胡牌分+中鸟分组成:", -- "1、杠分", -- "公杠:从其他三家每家收1分,共计3分(被抢杠胡则不算分)。", -- "放杠:扣3分。", -- "接杠:加3分。", -- "暗杠:从其他三家每家收2分,共计6分。", -- "2、胡牌分", -- "(1)无庄闲算分情况", -- "自摸:从其他三家每家收2分,共计6分。", -- "点炮:扣1分。", -- "接炮:加1分。", -- "(2)有庄闲算分情况", -- "自摸:闲家自摸从其他两闲家每家收2分,庄家收3分,共计7分。庄家自摸从每家收3分,共计9分 。", -- "点炮:闲家点炮给闲家扣1分,庄家点炮或者点炮给庄家扣2分。", -- "3、中鸟分", -- "按照中鸟的个数加分,如中鸟2个,1鸟1分,则接炮胡从点炮玩家处扣分2分,自摸胡从其他三家分别扣2分,共计6分。", -- "(1)159中鸟", -- "胡牌者抓鸟中鸟的数值是固定的1、5、9,红中算1个。", -- "(2)一码全中", -- "胡牌者翻出一张牌,点数即为中鸟个数,红中算10个。", -- } -- }, } function wanfa.getWanFaInfo(str) local tab=json.decode(str) local temp="" for k,v in pairs(tab) do if wanfa[k] then for _,data in pairs(wanfa[k]) do --选中不抓鸟时候不显示鸟分 if k=="niaopoint" and tab.niaonumber==0 then elseif k=="hosting" and v==1 and v==data.value and not data.hide then temp=temp..tab["hostingtime"].."秒"..data.name.." " elseif k == "baseMulti" then temp = temp .. data.name .. v .. " " else if v==data.value and not data.hide then temp=temp..data.name.." " end end end end end return temp end function wanfa.getClubWaFaInfo(str) local tab=json.decode(str) local temp={} for k,v in pairs(tab) do if wanfa[k] then for _,data in pairs(wanfa[k]) do --选中不抓鸟时候不显示鸟分 if k=="niaopoint" and tab.niaonumber==0 then elseif k=="hosting" and v==1 and v==data.value and not data.hide then table.insert(temp, {name=wanfa.clubWanFaTitle[k] or "",value={tab["hostingtime"].."秒"..data.name}}) elseif k == "baseMulti" then table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name .. v}}) else 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 return temp end --俱乐部切换多玩法桌子显示的玩法 x人 一码全中/抓2鸟 自模胡/点炮胡 function wanfa.getClubTableWanFaInfo(str) local tab=json.decode(str) local temp="" -- if tab.isfaststart and tab.isfaststart == 0 then -- if tab.playnum and tonumber(tab.playnum) >= 0 then -- local playnum = tonumber(tab.playnum) -- if playnum == 0 then -- temp = temp.."2人 " -- elseif playnum == 1 then -- temp = temp.."3人 " -- elseif playnum == 2 then -- temp = temp.."4人 " -- end -- end -- end if tab.niaonumber and tonumber(tab.niaonumber) >= 0 then local niaonum = tonumber(tab.niaonumber) if niaonum > 0 then if niaonum == 1 then temp = temp.."一码全中 " else temp = temp.."抓"..niaonum.."鸟 " end end end if tab.piaotype then if tonumber(tab.piaotype) == 0 then temp = temp.."不飘 " else temp = temp.."飘分 " end end if tab.playmode then if tonumber(tab.playmode) == 1 then temp = temp.."自摸胡" elseif tonumber(tab.playmode) == 2 then temp = temp.."点炮胡" end end return temp end function wanfa.getWanFaName(k,value) for k,v in pairs(wanfa[k]) do if v.value==value then return v.name end end return "" end -- string gameInfo; //游戏信息,json格式 ,不同游戏内容不一样 -- //红中麻将参数: -- { -- "gamerule":0, //游戏玩法:1:三人,2: 四人 -- "playmode":1, //玩法:1自摸胡,2点炮胡, 3点炮胡红中不接炮 -- ”extrahutype”:0, //拓展胡牌类型,1为支持7对胡,0为只有平胡 -- “niaopoint”:1, //鸟分,只支持1分和2分 -- “niaonumber”:1, //鸟数量,0:不抓鸟,1:一码全中,2:抓2鸟,4抓4鸟,6:抓6鸟 -- “canqiangganghu”:1 //是否支持抢杠胡,1为支持,0为不支持 -- } --- -- 获取包间玩法信息 -- @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