|
- 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
|