|
- 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="40颗",value=5},
- {name="80颗",value=6},
- },
- 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},
- },
- isoutredcard = {
- {name="杠后不可打红中",value=1},
- {name="",value=0,hide=true},
- },
- hufan = {
- {name="5颗起胡",value=2},
- {name="",value=0,hide=true},
- },
- diFenLimit={
- {name="小于等于%d分加%d",value=1},
- {name="",value=0,hide=true},
- },
- 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={
- playnum="人数",
- limitfan="封顶",
- laizinum="鬼牌",
- diFenLimit="低分加分",
- baseMulti="积分倍数",
- forbidProp = "其他",
- }
-
- wanfa.ruleText =
- {
- {
- title = "基础规则",
- content =
- {
- "1、人数:4人",
- "2、用牌:麻将“筒”、“条”、“万”三种牌",
- "3、红中:泸州俗称“鬼”,创建房间可选择4鬼、8鬼或12鬼,可任意当做万子、筒子、条子使用。",
- "4、坐庄:第一局创建房间房主或第一进入房间玩家为庄家。上一局“一胡”玩家当庄,可以连庄,和局则连庄。",
- },
- },
- --[2] =
- --[[{
- title = "坐庄规则",
- content =
- {
- "第一局创建房间房主或第一进入房间玩家为庄家。 ",
- "上一局“一胡”玩家当庄,可以连庄,和局则连庄。 ",
- "如牌局中有玩家“一炮双响“或“一炮三响”,则由此玩家当庄。",
- "如流局则此局庄家的下家当庄。 ",
- }
- },
- --[3] =
- {
- title = "胡牌类型",
- content =
- {
- "平胡:胡牌时,必须是有任意一对将牌(任意一对对子),其他牌组成顺子或刻子。",
- "对对胡:四副刻子加一对将。",
- "七对:玩家手牌都是对子,没有碰和刮风下雨。",
- "清一色:全部是一种花色的平胡。",
- "龙七对:玩家手牌都是对子,并且有一个根儿,没有碰和刮风下雨。",
- "清对:清一色+对对胡",
- "清七对:清一色+七对。",
- "清龙七对:清一色+龙七对。",
- }
- },
- --[4] =
- {
- title = "名词解释",
- content =
- {
- "点炮:胡其他玩家发出来的牌。",
- "自摸:玩家本人摸到的牌且能胡牌。",
- "荒庄(流局):摸完所有牌后都无人胡牌即称为荒庄。",
- "归:牌型中有四张同样的牌,称为“归”。",
- "碰:自己有两张相同牌,其他玩家打一张同样牌即可形成坎,此操作叫“碰”,碰牌时用普通的对子碰称为“硬碰”,用红中代替时,称为“加鬼碰”。",
- "杠:自己有三张相同牌,其他玩家打一张同样牌即可形成归,此操作叫“杠”。杠牌时用普通的三张相同牌碰称为“明杠”,用红中代替时,称为“加鬼杠”。",
- "暗杠:玩家本人摸到四张相同的牌杠下去叫“暗杠”,可加红中。",
- "巴杠:玩家本人已经碰牌,在下一轮到玩家本人摸牌后,手牌里有与碰牌相同的牌或者红中即可进行巴杠。",
- "抢杠胡:A玩家在杠牌(巴杠)时,B玩家恰好能胡这张牌,则可以胡牌,称为“抢杠”,暗杠不能“抢杠”。",
- "杠上花:杠牌之后摸起来张牌如果能胡,称为“杠上花”。",
- "杠上炮:杠牌之后打出去的牌,点炮其他玩家,称为“杠上炮”。",
- "查叫:每盘最后一张牌打出后,如果还有至少两家未胡牌,此时需要检查未胡牌的玩家是否下叫。未下叫的玩家将赔付未胡牌但已下叫的玩家,按可达到最高番数牌面计算。",
- "花猪:必须缺门可胡,即胡牌的时候不能有三种花色的牌,红中除外。查叫时,手上还有三种花色牌的玩家称为花猪。",
- "爆牌:开局庄家打出去第一张牌后或闲家开局摸起来的牌就已经下叫了,可进行爆牌,需即时进行操作。爆牌后不能碰牌和打牌出去,但是可以杠牌。其他玩家打出或者自己摸到听牌即可胡牌。",
- "杀爆:在爆牌情况下,未报爆玩家领先爆牌玩家胡牌。",
- }
- },
- --[5] =
- {
- title = "补充说明",
- content =
- {
- " 过手胡:某一回合中,若有人点炮,玩家没有选择胡,则此回合有其他玩家点炮,也不能胡,自摸除外。当该玩家摸牌,碰牌,杠牌后,过手胡限制解除。",
- " 关于碰杠优先级:抢碰杠:如果A玩家岀牌,BCD玩家都能碰或杠,按以下优先级确认操作优先级:“硬碰”/“明杠”>“加鬼碰”>“加鬼杠”。没有以上确认操作时,“加鬼碰杠”玩家则按逆时针顺序优先确认操作选择。",
-
- }
- },--]]
- }
-
- 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..""
- elseif k == "baseMulti" then
- temp=temp..wanfa[k][1].name..v.." "
- elseif k == "diFenLimit" and (tab.playnum == 2 or tab.isfaststart==1) then
- if v > 0 and (tab.diFenAdd and tab.diFenAdd > 0) then
- for _,data in pairs(wanfa[k]) do
- if not data.hide then
- local des = string.format(data.name,v,tab.diFenAdd)
- temp=temp..des.." "
- end
- end
- else
- temp=temp.."不加分".." "
- end
- 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.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..""
- elseif k == "baseMulti" then
- table.insert(temp,wanfa[k][1].name..v)
- elseif k == "diFenLimit" and (tab.playnum == 2 or tab.isfaststart==1) then
- if v > 0 and (tab.diFenAdd and tab.diFenAdd > 0) then
- for _,data in pairs(wanfa[k]) do
- if not data.hide then
- local des = string.format(data.name,v,tab.diFenAdd)
- table.insert(temp,des)
- end
- end
- else
- table.insert(temp,"不加分")
- end
- 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
- 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
- if k == "playnum" and tab["isfaststart"] == 1 then
- --temp=temp..""
- elseif k == "baseMulti" then
- table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={wanfa[k][1].name..v}})
- elseif k == "diFenLimit" and (tab.playnum == 2 or tab.isfaststart==1) then
- if v > 0 and (tab.diFenAdd and tab.diFenAdd > 0) then
- for _,data in pairs(wanfa[k]) do
- if not data.hide then
- local des = string.format(data.name,v,tab.diFenAdd)
- table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={des}})
- end
- end
- else
- table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={"不加分"}})
- end
- 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}})
- --temp=temp..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 == "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}})
- local isLimitFan40 = string.find(data.name,"40颗") or 0
- if isLimitFan40 > 0 then
- if tab.hufan == 2 then
- temp=temp..data.name.."(5)".." "
- else
- temp=temp..data.name.."(2)".." "
- end
- else
- 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.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
|