|
- local wanfa={
- fanscore={
- {name="+1",value=1},
- {name="+2",value=2},
- {name="+5",value=5},
- {name="+10",value=10},
- {name="不加底",value=0},
- },
- highLimit={
- {name="3番",value=3},
- {name="4番",value=4},
- {name="不封顶",value=0},
- },
- Piaorule={
- {name="不吃飘",value=0},
- {name="吃飘",value=1},
- },
- playnum = {
- {name="二人玩",value=2},
- {name="三人玩",value=3},
- {name="四人玩",value=4},
- {name="快速成局",value=-1},
- },
- baseMulti = {
- {name = "积分倍数x", value = 0x0001}
- },
-
- forbidProp = {
- {name = "屏蔽聊天与互动道具", value = 1},
- {name = "屏蔽聊天与互动道具", value = 0, hide = true},
- },
- }
-
- wanfa.clubWanFaTitle={
- fanscore="超番加底",
- highLimit = "封顶",
- Piaorule = "玩法",
- playnum = "玩家人数",
- baseMulti="积分倍数",
- forbidProp="其他",
- }
-
- wanfa.RuleText =
- {
- --[1] =
- {
- title = "基础规则",
- content =
- {
- "1、人数:3人、4人",
- "2、用牌:长牌一套,总共84张牌, 21种牌,每种牌4张。",
- "3、定头:开局后,系统随机翻一张牌展示,然后根据牌面数字从对应玩家开始按逆时针顺序往下数,数到所翻牌面数字时,该玩家即本局头家",
- },
- },
- --[2] =
- --[[{
- title = "牌型介绍",
- content =
- {
- "1、基础胡牌:头家14坨起胡,闲家12坨起胡,小家4坨起胡,0番。",
- "2、特殊胡牌:",
- "龙胡:也叫24坨红,即总坨数大于等于24,+1番。",
- "坨坨红:胡牌牌面全是红色牌,+3番 。",
- "黑龙:胡牌牌面的红牌总坨数≤4,+1番。",
- "坨坨黑:胡牌牌面全是黑色牌,+3番。",
- "天胡:庄家起手直接胡(天胡胡牌不需要等别人偷),+2番。",
- }
- },
- --[3] =
- {
- title = "玩法介绍",
- content =
- {
- "1、偷牌:手中有3张一样的牌可偷牌,偷的牌需展示至桌面。",
- "2、报叫:起手所有玩家不再偷牌后,若听牌,可选择报叫,报叫后必须胡牌。",
- "3、打牌:确定所有玩家都不再偷牌后,头家开始打牌。从手中16张牌选择一张打出。",
- "4、翻牌:上家出完牌后,若无人吃/碰/胡,则下家开始翻牌堆最上面的牌。",
- "5、吃牌:上家打出、翻出的牌以及自己翻出的牌,与自己手牌可组成“点数和等于14”的组合时,可选择吃,吃的牌需展示至桌面。",
- "6、碰牌:手中有一对牌(一模一样),其他玩家打或翻出同样的牌时,可选择碰,碰的牌需展示至桌面。",
- "7、巴牌:偷/碰牌的基础上,若再摸进/翻出一张相同的牌,可选择巴(四张一样的牌叫做巴牌),巴的牌需展示至桌面。",
- "8、胡牌:可以胡其他任何玩家打出或翻出的牌,若多家胡同样的牌,则按逆时针顺序,排在前面的才可以胡,无一炮多响。",
- "9、点炮:从某玩家手中打出一张牌后,被其他玩家胡了。",
- "10、黄庄:三人玩法剩余5张无人胡、四人玩法剩余2张无人胡,则黄庄。",
- }
- },
-
- --[4] =
- {
- title = "特殊规则",
- content =
- {
- "1、冲番牌:天、地、人、和、幺四、红九、三四。",
- "2、吃飘:玩家胡牌后,满足吃飘条件,即吃飘。",
- }
- },--]]
- }
-
-
-
- --获取玩法规则
- function wanfa.getRuleInfo(ruleStr)
- --return "luzhouwanfa"
- if not ruleStr then
- ruleStr = app.room.roomInfo.strGameInfo
- end
- 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
- if (tab.playnum == 2 or tab.playnum == 3) and data.value == 32 then--固定2人3人时不显示小家可看牌
- else
- temp=temp..data.name.." "
- end
- end
- end
- end
- elseif k == "highLimit" then
- if v>0 then
- temp=temp..v.."番 "
- else
- temp=temp.."不封顶 "
- end
- elseif k == "fanscore" then
- for _,data in pairs(wanfa[k]) do
- if v==data.value and not data.hide then
- temp=temp.."超番"..data.name.." "
- end
- end
- elseif 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
- return temp
- end
-
- --获取茶馆玩法规则
- function wanfa.getClubRuleInfo(ruleStr, jushu)
- if not ruleStr then
- ruleStr = app.room.roomInfo.strGameInfo
- end
- --return "luzhouclubwanfa"
- local tab=json.decode(ruleStr)
- local temp={}
-
- if jushu then
- local jushuText = string.format("%d 局", jushu);
- table.insert(temp, 1, {name = "局数", value = {jushuText}})
- end
-
- 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
- if (tab.playnum == 2 or tab.playnum == 3) and data.value == 32 then--固定2人3人时不显示小家可看牌
- else
- table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}})
- --只有第一行显示玩法
- k = ""
- end
- end
- end
- end
- elseif 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
- 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 ~= "playnum" then
- if k == "fanscore" then
- for _,data in pairs(wanfa[k]) do
- if v==data.value then
- temp=temp.."超番"..data.name.." "
- end
- end
- elseif k == "baseMulti" then
- 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
- return temp
- end
- ---
- -- 获取包间玩法信息
- -- @param gameId
- -- @param jushu
- -- @param ruleStr
- -- @param arena
- -- @return
- --
- function wanfa.getRuleFromString (gameId, jushu, ruleStr,arena)
- local str = wanfa.getClubRuleInfo(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.startMode == 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
|