|
- local wanfa={
- scoreRule={
- {name="加底",value=1},
- {name="不加底",value=0},
- },
- highLimit={
- {name="48分",value=48},
- {name="64分",value=64},
- {name="96分",value=96},
- },
- bankMode={
- {name="胡牌者当庄",value=0},
- {name="轮庄",value=1},
- },
- specialRule={
- {name="自摸翻倍",value=1},
- {name="归翻倍",value=2},
- {name="可三招胡",value=4},
- {name="放炮全赔",value=8},
- {name="过胡升番可胡",value=16},
- {name="小家可看牌",value=32},
- {name="可吃对家",value=64},
- },
- 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},
- },
- forbidVoice = {
- {name = "屏蔽聊天", value = 1},
- {name = "屏蔽聊天", value = 0, hide = true},
- },
- }
-
- wanfa.clubWanFaTitle={
- specialRule="玩法",
- highLimit = "封顶",
- scoreRule = "结算",
- playnum = "玩家人数",
- bankMode="定庄",
- baseMulti="积分倍数",
- forbidProp="其他",
- forbidVoice="其他",
- }
-
- wanfa.RuleText =
- {
- --[1] =
- {
- title = "基础规则",
- content =
- {
- "1、用牌:小写“一”到“十”各4张,大写“壹”到“拾”各4张,共80张牌;其中“二七十”和“贰柒拾”为红色牌,其余为黑色牌。",
- "2、砌牌:大贰一般4人同玩,其中1人坐底。庄家摸21张,闲家摸20张,留19张在墩上。",
- "3、定庄:首局随机选庄,之后谁胡牌谁坐庄。",
- },
- },
- --[2] =
- --[[{
- title = "牌型介绍",
- content =
- {
- "1、一将牌:洗牌后,手中2个相同的牌为1对。",
- "2、一坎牌:洗牌后,手中3个相同的牌为1坎。",
- "3、一拢牌:洗牌后,手中4个相同的牌为拢。",
- "4、一列牌:砌牌后,手中的牌依据规则组合成相连的牌。",
- }
- },
- --[3] =
- {
- title = "玩法介绍",
- content =
- {
- "1、拢牌:拢牌为起手20张牌时,系统自动拢牌。",
- "2、招牌:游戏中,别人打或摸的牌与自己手中一坎牌相同时,则可招牌。",
- "3、碰牌:游戏中,别人打或摸的牌与自己手中一对牌相同时,则可碰牌。",
- "4、八块:当招或拢牌超过1次时,称为八块,此时不用从手中打牌出去,而是下家摸牌。",
- "5、吃牌:自己摸的或者上家出的牌,无人碰或招时,则可以与自己手中的牌组合成一列牌,称为吃牌。",
- "6、比牌:当吃的该牌与手中有相同牌时,必须要将手中的这张牌也根据某种组合起来,井将这2个组合的牌都放到桌上,称为比牌。",
- "7、过张:能吃却没有吃的牌,称为过张。",
- "8、进张:每进1张,必须打出1张,八块除外。",
- "9、爆牌:当砌牌后手中6列牌全部组合完毕,只差组成最后一列或1对时可以爆牌。",
- "10、胡牌:满足以下条件可以胡牌。",
- "(1)至少有10胡,或者0胡(无胡)。",
- "(2)手中的与放于桌上的牌组合完毕,而且有7列牌。",
- "11、荒庄:底牌都发完后却没人可胡牌时,则荒庄。",
- }
- },--]]
- }
-
- --获取玩法规则
- 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.." "
- end
- else
- if 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
- end
- return temp
- end
-
- --获取茶馆玩法规则
- function wanfa.getClubRuleInfo(ruleStr)
- if not ruleStr then
- ruleStr = app.room.roomInfo.strGameInfo
- end
- --return "luzhouclubwanfa"
- 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
- table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}})
- --只有第一行显示玩法
- k = ""
- end
- end
- end
- end
- else
- if 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
- table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={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 == "highLimit" 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
-
- function wanfa.getRuleFromString (gameId, jushu, ruleStr,arena)
- local str = wanfa.getClubRuleInfo(ruleStr, jushu)
- return str
- end
-
- function wanfa.getClubTableRuleString (gameId, ruleStr, playerNum)
- local str = ""
- local jsonData=json.decode(ruleStr)
- if jsonData.startMode == 1 then
- str = "快速成局 "
- else
- if jsonData.playerNum == 2 then
- str = str .. "快速成局 "
- else
- str = tostring(playerNum) .. "人 "
- end
- end
-
- local wanfaStr = wanfa.getClubTableWanFaInfo(ruleStr)
- str = str .. wanfaStr
- return str
- end
-
- return wanfa
|