-- 跑得快 local DEF = {} -- 规则文本 DEF.RuleText = { --[1] = { title = "基础规则", content = { "1、牌数:52张牌不带王。", "2、游戏人数:4人,3人或2人。", "3、定庄:首局最小牌的人为庄,且必须出最小牌,之后的牌局上一局先出完牌的人为庄。", "4、王(鬼):即癞子,可代替任意一张牌。", "5、打牌规则:游戏开始后每人发牌13张,可以出任意的牌型。接牌时,有压必压,不能过牌。当自己的下家剩余一张牌时,若出单张,必须从大到小开始出。", }, }, --[[{ title = "牌型介绍", content = { "1、单张:任意一张单牌,3<4<5<6<7<8<9<10<J<Q<K<A<2(王)。", "2、对子:两张点数相同的牌。", "3、三张:3张点数相同的牌。", "4、三带二:3个点数一样的牌和2张其他牌,可为2散张,也可为1对。", "5、顺子:最少5张起,最多13张;2可以出现,A2345为最小,10JQKA最大。", "6、连对:相连2对及以上的牌,如5566、778899,接牌的玩家必须是点数更大的连对。KKAA最大,AA22最小。", "7、飞机:两个或两个以上相连的三同张牌。如555666、JJJQQQKKK;AAAKKK最大,AAA222最小。", "8、飞机带翅膀:两个或两个以上相连的三同张牌,且每个三同张牌必须带2张牌,可为2散张,也可为1对,如5556663241、JJJQQQ4488等。不能出现带2散,或一对,如5556664489不允许。3334445555这种牌型也不允许出。且带对的带对压,带散的带散压。", "9、炸弹:只能由4张相同点数的牌为炸弹。2222最大,3333最小。", } },--]] { title = "特殊牌型", content = { "1、连对特殊牌型:7788王王,可当做778899,也可当做777888;当用作管上家时,需按照上家牌型,进行组合。当自己作为上家首出,下家需用炸弹才可以管。", "2、三带特殊牌型:555鬼K可当做555KK也可以当做555QK;555鬼鬼,可以当做555带1对,也可以当做555带2散张;55鬼鬼鬼,可以当做555KK、555QK、55222;注:以上牌型,当做管上家时,需按照上家牌型,进行组合。当自己作为上家首出,下家需用炸弹或者相同带鬼的牌型(如555鬼K可以用666鬼3管)", "3、飞机带翅膀的特殊牌型:555666鬼鬼JQ,可当做55566689JQ,也可以当做555666JJQQ;555666鬼鬼鬼A,可以当做555666JQKA,也可以当做555666KKAA;当用做管上家时,需按照上家牌型,进行组合。当自己作为上家首出,下家需用炸弹才可以管。", "4、顺子的特殊牌型:789鬼鬼,可以为78910J,也可以为78999;78鬼鬼鬼,可以为7 8 9 10 J,也可以为78222;当用做管上家时,需按照上家牌型,进行组合。当自己作为上家首出,下家需用炸弹才可以管。", } }, --[[{ title = "算分规则", content = { "1、游戏结束剩余手牌张数为X,颗数为1/2/4/6:X=1时,扣0分。2≤X≤5,扣1分,5=0 then local specStr = DEF.GameGui[jsonData.jokerCount] or "" if specStr ~= "" then str = str..specStr.." " end end if jsonData.keCount and jsonData.keCount>0 then local specStr = DEF.GameKeShu[jsonData.keCount] or "" if specStr ~= "" then str = str..specStr end end return str end --- -- 获取包间玩法信息 -- @param gameId -- @param jushu -- @param ruleStr -- @param arena -- @return -- function DEF.getRuleFromString( gameId, jushu, ruleStr,arena ) local tt = {} local jushuText = string.format("%d 局",jushu); table.insert(tt, {name = "局数", value = {jushuText}}) local jsonData = json.decode(ruleStr) if jsonData.deductRule and jsonData.deductRule >= 0 then local specStr =jsonData.deductRule==0 and "房主付费" or "AA付费" if specStr ~= "" then table.insert(tt, {name = "房费", value = {specStr}}) end end if jsonData.gamerule and jsonData.gamerule>0 then local specStr = DEF.GameTypesStr[jsonData.gamerule] or "" if specStr ~= "" then table.insert(tt, {name = "玩法", value = {specStr}}) end end if jsonData.jokerCount and jsonData.jokerCount>0 then local specStr = DEF.GameGui[jsonData.jokerCount] or "" if specStr ~= "" then table.insert(tt, {name = "带鬼", value = {specStr}}) end end if jsonData.keCount and jsonData.keCount>0 then local specStr = DEF.GameKeShu[jsonData.keCount] or "" if specStr ~= "" then table.insert(tt, {name = "颗数", value = {specStr}}) end end if jsonData.playnum and jsonData.playnum>=0 then local specStr = DEF.GamePlayerCount[jsonData.playnum] or "" if specStr ~= "" then table.insert(tt, {name = "人数", value = {specStr}}) end end local function getRule( rule ) local CreateParamsMean = DEF.CreateParamsMean local ruleStr = "" if getNumBand(rule, 0x0001)>0 then ruleStr = ruleStr..CreateParamsMean[0x0001].."," end if getNumBand(rule, 0x0002)>0 then ruleStr = ruleStr..CreateParamsMean[0x0002].."," end if getNumBand(rule, 0x0008)>0 then ruleStr = ruleStr..CreateParamsMean[0x0008].."," end if string.len(ruleStr) > 0 then ruleStr = string.sub(ruleStr, 1, string.len(ruleStr)-1) end return ruleStr end if jsonData.specialRule and jsonData.specialRule>=0 then local specStr = getRule(jsonData.specialRule) if specStr ~= "" then table.insert(tt, {name = "可选", value = {specStr}}) end end if jsonData.baseMulti and jsonData.baseMulti > 0 then table.insert(tt, {name = "积分倍数", value = {"积分倍数x" .. jsonData.baseMulti}}) end if jsonData.forbidProp and jsonData.forbidProp > 0 then table.insert(tt, {name = "其他", value = {"屏蔽聊天与互动道具"}}) end return tt end --- -- 获取包间多玩法桌子上显示的信息 -- @param gameId -- @param ruleStr -- @param playerNum -- @return -- function DEF.getClubTableRuleString( gameId, ruleStr, playerNum ) local str = DEF.getClubTableWanFaInfo(ruleStr) return str end return DEF