|
- 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},
- },
- laizinum={
- -- {name="4鬼",value=4},
- -- {name="8鬼",value=8},
- -- {name="12鬼",value=12},
- },
- baojiao = {
- {name="报叫",value=1},
- {name="",value=0,hide=true},
- },
- -- xiqian = {
- -- {name="喜钱",value=1},
- -- {name="",value=0,hide=true},
- -- },
- guozhangjiafan = {
- -- {name="过张升番可胡",value=1},
- -- {name="",value=0,hide=true},
- },
- toujiazhuang = {
- -- {name="一炮多响头家庄",value=1},
- -- {name="",value=0,hide=true},
- },
- tingpai = {
- {name="听牌提示",value=1},
- {name="",value=0,hide=true},
- },
-
- zimorule = {
- {name="自摸不加",value=0},
- {name="自摸加番",value=1},
- {name="自摸加底",value=2},
- },
-
- baojiao = {
- {name = "报叫", value = 0x0001}
- },
-
- yibangao = {
- {name = "一般高", value = 0x0100}
- },
-
- piao = {
- {name = "飘", value = 0x0080}
- },
-
- baoziext = {
- {name = "骰子相同做豹子", value = 0x0002},
- {name = "骰子相加双数做豹子", value = 0x0040}
- },
-
- tingpai = {
- {name = "听牌提示", value = 0x0200}
- },
-
- baseMulti = {
- ["1"] = "积分倍数x"
- },
-
- forbidProp = {
- {name = "屏蔽快捷语与道具", value = 1},
- {name = "屏蔽快捷语与道具", value = 0, hide = true},
- },
- forbidVoice = {
- {name = "屏蔽语音", value = 1},
- {name = "屏蔽语音", value = 0, hide = true},
- },
- }
-
- wanfa.clubWanFaTitle={
- playnum="人数",
- limitfan="封顶",
- laizinum="鬼牌",
- gamerule="玩法",
- baseMulti="积分倍数",
- forbidProp = "其他",
-
- }
-
- wanfa.RuleText =
- {
- {
- title = "基础规则",
- content =
- {
- "1、用牌:麻将“条、筒”从一到九,各4张,合计72张牌。",
- "2、玩法:可碰、杠,不可吃,可点炮、自摸、一炮多响。",
- "3、定庄:首局房主坐庄。之后,由上局“一胡”玩家坐庄;一炮双响则放炮者坐庄,流局则摸最后一张牌玩家坐庄。",
- "4、一牌多用:碰杠胡可同时使用,一家操作操作完,需要等另一家操作完。",
- },
- },
- --[[{
- title = "名词解释",
- content =
- {
- "1、刮风(明杠),分为直杠和巴杠。",
- "(1)直杠:玩家手中有三张一样的牌,其他玩家打出此牌,该玩家杠。",
- "(2)巴杠(面下杠):玩家已经碰出一对牌,又自摸到碰的牌选中杠。",
- "2、下雨(暗杠):玩家手中有4张相同的牌选择杠。",
- "3、过手胡:在同一回合中,若有人点炮,玩家没有胡牌,则此回合其他玩家点炮,只要没有加番就不能胡,自摸可以胡。",
- "4、查大叫:流局时没有听牌的玩家赔给有叫的玩家最大番数,刮风下雨结算(未听牌玩家刮风下雨分数返还)。",
- "5、自摸加底:玩家自摸后,除获得相应牌型分后再加1底分。",
- "6、自摸加番:玩家自摸后,计算牌型分后,再在该牌型分*2。",
- "7、呼叫转移:开杠的人在杠上炮后,杠钱要一井转移给接炮的人,如果杠不结算则不转移。",
- "8、杠上花:明暗杠后,补张自摸。",
- "9、杠上炮:玩家开杠后放炮。",
- }
- },
- {
- title = "胡牌类型",
- content =
- {
- "1、平胡:四坎(除4副刻子)加一对将。",
- "2、对对胡:四副刻子加一对将。",
- "3、清一色:全部是一种花色的平胡。",
- "4、七对:玩家手牌都是对子。",
- "5、龙七对:玩家手牌都是对子,并且有一个根儿。",
- "6、清大对:清一色+对对胡。",
- "7、清七对:清一色+七对。",
- "8、清龙七对:清一色+龙七对。",
- "9、一般高:有两个相同的顺子,112233。",
- "10、天胡:庄家起牌就胡牌。",
- "11、地胡:只在庄家出的第一张牌为地胡。",
- }
- },
- {
- title = "特殊玩法",
- content =
- {
- "1、报叫:可选择报叫,赌自摸,不报。",
- "AB玩家均报,相互结算+2番;AB玩家其中1家报,相互结算+1番;AB玩家均不报,相互不加番。",
- "2、报叫反查:如果某玩家报叫,牌局结束未能胡牌,就需要支付听牌玩家可能的最大番数+1番。",
- "3、豹子:开局需做骰子效果,两个骰子一样/加起来是双数(做选项),则本局胡牌者+1番,由系统在开局时掷般。",
- "4、飘:开局选择飘或者不飘。",
- }
- },--]]
- }
-
- 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..""
- 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
-
- if tab.baseMulti and tab.baseMulti > 0 then
- temp = temp..wanfa.baseMulti['1']..tab.baseMulti.." "
- 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..""
- 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
-
- if tab.baseMulti and tab.baseMulti > 0 then
- table.insert(temp, wanfa.baseMulti['1']..tab.baseMulti)
- 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
- 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
-
- if tab.baseMulti and tab.baseMulti > 0 then
- table.insert(temp, {name = wanfa.clubWanFaTitle.baseMulti, value = {wanfa.baseMulti["1"] .. tab.baseMulti}})
- 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" 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
-
- 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
|