|
- local wanfa={
- {
- playerNum = {
- {name="2人",value=2},
- {name="3人",value=3},
- {name="4人",value=4},
- {name="快速成局",value=5},
- },
- },
- {
- deductRule={
- {name="房主支付",value=0},
- {name="AA支付",value=1},
- },
- },
- {
- baseScore={
- {name="1分",value=1},
- {name="2分",value=2},
- {name="5分",value=5},
- {name="10分",value=10},
- {name="20分",value=20},
- },
- },
- {
- jiaoPaiType={
- {name="明叫",value=1},
- {name="暗叫",value=2},
- },
- isAndOr = false;
- },
- {
- fanBao={
- {name="允许反包",value=1},
- },
- },
- {
- firstBao={
- {name="允许第一把包牌",value=1},
- },
- },
- {
- fightAlone={
- {name="各自为战",value=1},
- },
- },
- {
- unshuffle={
- {name="不洗牌玩法",value=1},
- },
- },
- {
- bombScore={
- {name="炸弹加分",value=1},
- },
- },
- {
- withFlower={
- {name="带花牌",value=1},
- },
- },
- {
- reNumShow={
- {name="显示剩余张数",value=1},
- },
- },
- {
- jzdybq={
- {name="禁用快捷语和表情",value=1},
- },
- },
- {
- baseMulti = {
- {name = "积分倍数x"}
- }
- },
- -- {
- -- forbidProp = {
- -- {name = "屏蔽聊天与互动道具", value = 1, hide = false},
- -- {name = "屏蔽聊天与互动道具", value = 0, hide = true},
- -- }
- -- }
- {
- forbidProp = {
- {name = "屏蔽快捷语与道具", value = 1, hide = false},
- {name = "", value = 0, hide = true},
- }
- },
- {
- forbidVoice = {
- {name = "屏蔽语音", value = 1, hide = false},
- {name = "", value = 0, hide = true},
- }
- }
- }
-
- wanfa.clubWanFaTitle = {
- playerNum = "玩家人数",
- deductRule = "房费",
- baseScore = "底分",
- jiaoPaiType = "叫牌",
- fanBao = "玩法",
- fanBao = "玩法",
- firstBao = "玩法",
- fightAlone = "玩法",
- unshuffle = "玩法",
- bombScore = "玩法",
- withFlower = "玩法",
- reNumShow = "玩法",
- jzdybq = "玩法",
- baseMulti="积分倍数",
- forbidProp= "其他",
- }
-
- wanfa.ruleStr = ""
-
- --获取茶馆玩法规则
- function wanfa.getClubRuleInfo(ruleStr)
- if not ruleStr then
- ruleStr = app.room.roomInfo.strGameInfo
- end
- local strGameInfo = json.decode(ruleStr)
- local temp = {}
- wanfa.ruleStr = ""
- for k,v in ipairs(wanfa) do
- for serverKey,serverValue in pairs(strGameInfo) do
- if v[serverKey] then
- if v.isAndOr then
- for i,data in ipairs(v[serverKey]) do
- if not data.hide then
- if getNumBand(serverValue,data.value) > 0 then
- table.insert(temp,{name=wanfa.clubWanFaTitle[serverKey] or "",value={data.name}})
- wanfa.ruleStr = wanfa.ruleStr..data.name.." "
- end
- end
- end
- else
- for i,data in ipairs(v[serverKey]) do
- if serverKey == "baseMulti" then
- table.insert(temp,{name=wanfa.clubWanFaTitle[serverKey] or "",value={data.name .. serverValue}})
- wanfa.ruleStr = wanfa.ruleStr..data.name .. serverValue .. " "
- break;
- end
- if serverValue == data.value and not data.hide then
- table.insert(temp,{name=wanfa.clubWanFaTitle[serverKey] or "",value={data.name}})
- wanfa.ruleStr = wanfa.ruleStr..data.name.." "
- break
- end
- end
- end
- break;
- end
- end
- end
- return temp,wanfa.ruleStr
- end
-
- --获取玩法规则
- function wanfa.getRuleInfo(ruleStr)
- local temp,tempStr = wanfa.getClubRuleInfo(ruleStr)
- return tempStr;
- end
-
- --获取玩法规则
- function wanfa.getInviteInfo()
- local strGameInfo = json.decode(app.room.roomInfo.strGameInfo)
- local gameRuleName = getSubGameRuleName(29,strGameInfo.gamerule)
- local roomInfo = app.room.roomInfo
- return (roomInfo.nTotalGameNum.."局 "..tostring(gameRuleName))
- end
-
- function wanfa.getClubTableWanFaInfo(ruleStr,key)
- local strGameInfo = json.decode(ruleStr)
- local temp = ""
- local word = key or "highLimit"
- for serverKey,serverValue in pairs(strGameInfo) do
- if serverKey == word then
- for k,v in ipairs(wanfa) do
- if v[serverKey] then
- if v.isAndOr then
- for i,data in ipairs(v[serverKey]) do
- if getNumBand(serverValue,data.value) > 0 then
- temp = data.name.." "
- end
- end
- else
- for i,data in ipairs(v[serverKey]) do
- if serverKey == "baseMulti" then
- temp = temp .. data.name .. serverValue .. " "
- break;
- end
- if serverValue == data.value then
- temp = data.name.." "
- break
- end
- end
- end
- break
- end
- end
- break
- end
- end
- return temp
- end
-
- -- 规则文本
- wanfa.RuleText =
- {
- --[1] =
- {
- title = "基础规则",
- content =
- {
- "1、庄家:",
- "板子炮游戏每局均以拥有黑桃7者为庄家,其他3人为闲家。庄家具有叫牌和“包牌”和出牌的优先发言权。",
- "2、包牌和反包:",
- "包牌玩法时,每局均由庄家先发言,选挥“包牌”或“不包”,如果庄家“不包”,则依次由闲家选择包牌或不包;如果有人选择包牌了,则他的下家还可以选“反包”;如果四人均发言完毕,仍无人“包牌”,则包牌环节结束。如果有人包牌无人反包,则包牌玩家当庄1打3的局面,哪一方先有玩家出完牌则获得胜利;如果有人包牌且有人反包,则两人之间分胜负,谁先出完谁胜,另外两名玩家不继续参与本轮游戏。",
- "3、叫牌:",
- "无人包牌时,庄家开始叫牌。庄家必须叫一张手中没有的牌,从2开始叫,叫牌还需要分花色,抓有庄家所叫的那张牌的人成为庄家的伴家。另外两人则是对手,就形成2人对2人的局面,有一方两名玩家最先出牌(称为双关)或者第一个和第三个出完牌(称为单关)则決出胜负。若一方两名玩家第二个和第三个出完牌,则此局平局。",
- "4、各自为战:",
- "若无人包牌时,庄家直接开始打牌,四名玩家各自決出名次,谁先出完牌谁的名次靠前。",
- "5、伴家:",
- "根据叫牌环节庄家选出的牌决定了伴家,在牌桌上未出现该张叫牌之前除了伴家之外的三家不能知晓谁是伴家。",
- "6、接风:",
- "当玩家出完最后一手牌无人打时,由其下家开始下一轮出牌。",
- },
- },
- -- --[2] =
- -- {
- -- title = "牌型介绍",
- -- content =
- -- {
- -- "1、用牌:一副牌不带王牌,52张牌。也可以选择带4张花牌,花牌可作任意牌组合。",
- -- "2、单张:即单个牌。",
- -- "3、顺子:3个或3个以上连牌(不帯2)。",
- -- "4、炸弹:即3张相同的牌,炸弹可以打上述牌型。",
- -- "5、板子炮:也常称作双顺或双龙,由3对或3对以上连牌组成,可以打上述牌型。板子炮之间大小首先看牌数,同牌数则看牌面大小。",
- -- "6、氢弹:即4张相同的牌,氢弹可以打上述牌型。",
- -- "7、滚筒:由连续3个或3个以上的炸弹组成,可以打上述牌型。滚筒间的大小比较类似板子炮。",
- -- "8、滚龙: 由连续4个或4个以上的炸弹组成,可打上述牌型。滚龙间的大小类似板子炮。",
- -- "9、天牌: 即手中全是单张牌,没有任何2张大小相同的牌。",
-
- -- }
- -- },
- -- --[3] =
- -- {
- -- title = "算分规则",
- -- content =
- -- {
- -- "1、常规模式:",
- -- "(1)如果某人包牌且获胜,则包牌者获9倍底分,其他每人扣3倍底分。否则需付其他每人3倍底分。",
- -- "(2)如果某两人选择了包牌与反包,如果反包失败,则反包者扣18倍底分,包牌者获18倍底分;反包成功则反包者获9倍底分,包牌者扣9底分,其他2人得分为零。",
- -- "(3)2V2模式下,双关时,胜方各获得2倍底分,输方各扣2倍底分。",
- -- "(4)2V2模式下,单关时,胜方各获得1倍底分,输方各扣倍底分。",
- -- "(5)2V2模式下,平局时,全部得分零分。",
- -- "2、各自为战:",
- -- "(1)如果某人包牌并获胜,则包牌者获12倍底分,其他每人扣4倍底分。否则需付其他每人4倍底分。",
- -- "(2)如果某两人选择了包牌与反包,如果反包失败,则反包者扣24倍底分,包牌者获24倍底分;反包成功则反包者获12倍底分,包牌者扣倍底分,其他2人得分为零。",
- -- "(3)无人包牌时,四名玩家決出各自名次,第一名获得6倍底分,第二名扣倍底分,第三名扣2倍底分,第四名扣3倍底分。",
-
- -- }
- -- },
- }
-
- function wanfa.getClubTableWanFaString(rule)
- local str = ""
- local jsonData=json.decode(rule)
- if jsonData.playerNum == 5 then
- str = str .. "快速成局"
- else
- str = tostring(jsonData.playerNum) .. "人"
- end
-
-
- if jsonData.baseScore then
- local valueStr = string.format("%d分", jsonData.baseScore)
- str = str .. valueStr
- end
-
- return str
- end
-
- return wanfa
|