|
- local Define_53 = {}
-
- local gameConfig = getSubGameConfig(GAME_IDS.NanChongDouDiZhu)
-
- --游戏内玩法
- Define_53.GAME_RULE = {
- ["gameid"] = gameConfig.gameName,
- ["gamerule"] = gameConfig.GameType,
- ["game_num"] = gameConfig.playerNum,
- ["deductRule"] = {
- ["0"] = "房主支付",
- ["1"] = "AA支付",
- },
- ["multLimit"] = {
- ["3"] = "3番",
- ["4"] = "4番",
- ["0"] = "3+1",
- },
- ["piaoType"] = {
- ["0"] = "不漂",
- ["1"] = "随漂",
- ["2"] = "定漂",
- },
- ["calcFan"] = {
- ["1"] = "梯番",
- ["2"] = "滚番",
- },
-
- ["playRule"] = {
- ["1"] = "癞子",
- ["2"] = "闷抓",
- ["4"] = "双王四个二必倒",
- ["3"] = "癞子 闷抓",
- ["5"] = "癞子 双王四个二必倒",
- ["6"] = "闷抓 双王四个二必倒",
- ["7"] = "癞子 闷抓 双王四个二必倒",
- },
-
- ["baseMulti"] = {
- ["1"] = "积分倍数x"
- },
-
- ["forbidProp"] = {
- ["1"] = "屏蔽快捷语与道具"
- },
- ["forbidVoice"] = {
- ["1"] = "屏蔽语音"
- }
- }
-
- -- 斗地主规则文本
- Define_53.ruleText =
- {
- --[1] =
- {
- title = "基础规则",
- content =
- {
- "1、一副扑克54张牌+一张花牌赖子=55张,一人17张,留4张做底牌,在确定地主之前玩家不能查看底牌。",
- "2、叫地主:首先由第一个进入房间玩家位置开始翻牌,翻的牌需要展示一下,后面则由上局赢牌位置随机翻牌。",
- "3、倒牌:叫地主后,农民玩家可以“倒”或者是“不倒”,“倒牌”后,该局输赢翻倍,选择“不倒”的玩家,输赢不翻倍。",
- "4、拉牌:在有玩家“倒”的情况下,地主才可以选择“拉”,地主“拉”后,输赢在“倒”的基础上再翻倍。每局玩家只有一次“倒”和“拉”的机会。",
- "5、游戏结束:有玩家先出完牌则游戏结束,地主先出完则地主赢,农民先出完则农名赢。",
- },
- },
-
- -- {
- -- title = "特殊规则",
- -- content =
- -- {
- -- "1、三主必抓规则(三个2除外):",
- -- "单癞子的情况下手牌分值达到3主必须叫地主(分值计算:王算1个主,不分大小,2算1个主,癞子算1个主,原始炸弹算1个主)。",
- -- "无癞子的情况下三主必须叫地主。",
- -- "双王或者是四个二必抓。",
- -- }
- -- },
-
- --[2] =
- --[[{
- title = "牌型介绍",
- content =
- {
- "1、单牌:任意一张单牌。",
- "2、对牌:数值相同的两张牌。",
- "3、三张牌:数值相同的三张牌。例: JJJ,最后一手可出。",
- "4、三带一:数值相同的三张牌+ 一张单牌(没有三带二)。 例: 333+6。",
- "5、单顺:五张或更多的连续单牌。不包括2点和双王。例: 34567。",
- "6、连对:三対或更多的達姨対牌。不包括2点和双王。例: 334455。",
- "7、飞机:二个或更多的连续同点数的三張牌。不包括2点和双王。",
- "8、飞机帯翅膀:飞机+同数量的单牌。例: 333444+88 。",
- "9、四帯二:四张先生共同的牌带两张牌,可以是单张也可以是一对,只能最后一手出。例: 5555 +3+ 8",
- "10、火箭:即双王(双鬼牌),什么牌型都可打,是最大的牌,出牌时也算作炸弹。",
- "12、炸弹:由四张相同点数的牌组成的牌型,大于其他的一切牌型。例: 6666。",
- "13、软炸弹:由癞子和其他牌组成的炸弹大于炸弹以外的所有牌型。",
- }
- },
-
- --[3] =
- {
- title = "牌型比较",
- content =
- {
- "1、火箭最大,可以打任意其他的牌。",
- "2、炸弹比火箭小,软炸弹(由赖子和其他的牌组成的炸弹牌型)比炸弹小,比其他牌大。",
- "3、都是炸弹时按牌的分值比大小。",
- "4、单牌按分值比大小依次是:",
- " 大王>小王>2>A>K>Q>J>10>9>8>7>6>5>4>3,不分花色。 ",
- "5、对牌、三张牌都按分值比大小。",
- "6、单顺按最大的一张牌的分值来比大小。 ",
- "7、飞机带翅膀和四带二按其中的飞机和四张部分来比,带的牌不影响大小。",
- }
- },
-
- --[5] =
- {
- title = "算分规则",
- content =
- {
- "1、闷抓:1番",
- "2、倒(闷倒):1番",
- "3、拉:1番",
- "4、炸弹: 1番",
- "5、春天: 1番",
- "6、反春天: 1番",
- "7、尾家叫地主: 1番",
- "8、滚番:积分=(底分1分+漂分)*2的N次方(N为番数)",
- "9、梯番:积分=(底分1分+漂分)+N(N为番数)",
- "10、漂分:漂分为1",
- }
- },--]]
- }
-
- --俱乐部切换多玩法桌子显示的玩法 8倍 经典/不洗牌 飘分
- function Define_53.getClubTableWanFaInfo(str)
- local tab=json.decode(str)
- local temp=""
-
- if tab.gamerule and tonumber(tab.gamerule) >= 0 then
- temp = temp .. Define_53.GAME_RULE.game_num[tab.gamerule] .. '人 '
- end
-
- if tab.multLimit and tonumber(tab.multLimit) >= 0 then
- local multLimit = tab.multLimit
- if Define_53.GAME_RULE['multLimit'][''..multLimit] then
- temp = temp .. Define_53.GAME_RULE['multLimit'][''..multLimit] .. ' '
- end
- end
-
- if tab.piaoType and tonumber(tab.piaoType) >= 0 then
- local piaoType = tab.piaoType
- if Define_53.GAME_RULE['piaoType'][''..piaoType] then
- temp = temp .. Define_53.GAME_RULE['piaoType'][''..piaoType] .. ' '
- end
- end
-
- if tab.calcFan and tonumber(tab.calcFan) >= 0 then
- local calcFan = tab.calcFan
- if Define_53.GAME_RULE['calcFan'][''..calcFan] then
- temp = temp .. Define_53.GAME_RULE['calcFan'][''..calcFan] .. ' '
- end
- end
-
- return temp
- end
-
- function Define_53.getRuleFromString(gameId, jushu, ruleStr)
- local jsonData = json.decode(ruleStr)
- local tt = {}
-
- if jushu then
- local jushuText = string.format("%d 局",jushu);
- table.insert(tt, {name = "局数", value = {jushuText}})
- end
-
- if jsonData.multLimit and jsonData.multLimit >= 0 then
- local specStr = Define_53.GAME_RULE.multLimit["" .. jsonData.multLimit] or ""
- if specStr ~= "" then
- table.insert(tt, {name = "封顶", value = {specStr}})
- end
- end
- if jsonData.piaoType and jsonData.piaoType >= 0 then
- local specStr = Define_53.GAME_RULE.piaoType["" .. jsonData.piaoType] or ""
- if specStr ~= "" then
- table.insert(tt, {name = "漂分", value = {specStr}})
- end
- end
- if jsonData.calcFan and jsonData.calcFan >= 0 then
- local specStr = Define_53.GAME_RULE.calcFan["" .. jsonData.calcFan] or ""
- if specStr ~= "" then
- table.insert(tt, {name = "算番", value = {specStr}})
- end
- end
- if jsonData.playRule and jsonData.playRule >= 0 then
- local specStr = Define_53.GAME_RULE.playRule["" .. jsonData.playRule] or ""
- if specStr ~= "" then
- table.insert(tt, {name = "玩法", value = {specStr}})
- end
- end
-
- if jsonData.baseMulti and jsonData.baseMulti > 0 then
- table.insert(tt, {name = '积分倍数', value = {Define_53.GAME_RULE.baseMulti["1"] .. jsonData.baseMulti}})
- end
-
- if jsonData.forbidProp and jsonData.forbidProp > 0 then
- table.insert(tt, {name = '其他', value = {Define_53.GAME_RULE.forbidProp["1"]}})
- end
-
- return tt
- end
-
- function Define_53.getClubTableRuleString(gameId, ruleStr, playerNum)
- local str = ""
- str = str..Define_53.getClubTableWanFaInfo(ruleStr)
- return str
- end
-
- return Define_53
|