-- 自贡五人斗地主 local DEF = { --[[playnum={ {name="4人",value=4}, {name="3人",value=3}, {name="2人",value=2}, },--]] multLimit={ {name="封顶30倍",value=30}, {name="封顶60倍",value=60}, }, playRule={ {name="加底1",value=0x0001}, {name="加底2",value=0x0002}, {name="加倍",value=0x0004}, {name="先小后大叫牌",value=0x0008}, }, baseMulti = { {name = "积分倍数x", value = 0x0001} }, forbidProp = { {name = "屏蔽快捷语与道具", value = 1}, {name = "", value = 0, hide = true}, }, forbidVoice = { {name = "屏蔽语音", value = 1}, {name = "", value = 0, hide = true}, }, } -- 规则文本 DEF.RuleText = { --[1] = { title = "基础规则", content = { "1、三副扑克牌,去除数字为3、4、5的所有牌,加5张花牌当癞子,总张数一共131张,5人玩,每人25张,底牌6张;", "2、游戏人数为5人,游戏中可能有两个地主,一个地主是公开身份的,一个地主是可能隐藏在其他四个玩家中的暗地主。", }, }, --[[{ title = "癞子说明", content = { "1、癞子可代替任意一张真实牌,但必须与其他牌结合使用不可单打;", "2、除顺子之外,三带一、三带二、飞机、飞机带翅膀、连对牌型,与癞子组合时,癞子跟旁边的牌变(癞子必须跟着真实牌变),且不可形成炸弹(组合的牌不能形成炸弹);", }, },--]] --[2] = --[[{ title = "牌型", content = { "1、单张:任意一张单牌除癞子;", "2、顺子:五张或五张以上点数相连的牌,不包括2和双王;", "3、对子:除王外任意两张点数相同的牌;", "4、连对:三对或三对以上点数相连的牌,不包括2和双王;", "5、三张:任意三张点数相同的牌,不包括双王;", "6、三顺(飞机、双飞、三飞、四...):两组或两组以上点数相连的三张牌,不包括2和双王;", "7、三带一:点数相同的三张牌+一张单牌,若那张单牌是一张癞子时,直接视为炸弹;", "8、三带二:点数相同的三张牌+一对牌;", "9、飞机带翅膀(不可有炸弹): 三顺+数量相同的对牌或者三顺+数量相同的单牌,特殊: 666777888999算三顺;", "10、炸弹:4张、8张、12张点数相同的牌;", "11、王炸:双王炸、4王炸、6王炸;", "12、春天:闲家未出牌算春天", } },--]] --[3] = --[[{ title = "牌型比较", content = { "1、从大到小依次为:大王、小王、2、A、K、Q、J、10、9、8、7、6;", "2、炸弹牌型比较: 4炸<双王炸<8炸<4王炸< 12炸<6王炸,除王炸外,张数相同的炸弹,点数大的则大;", "3、王炸比较:小王<大王;", "4、双王炸:癞子随王听;两个大王>一个小+大王>两个小王", "5、四王炸:(癞子随大王听);两个大王+一个癞子+一个小王>一个大王+两个癞子+一个小王", } }, { title = "倍数", content = { "1、双王炸、4炸:一倍;", "2、4王炸、8炸:三倍;", "3、6王炸、12炸:六倍;", "4、春天:二十倍(过程中产生的倍数不算入,除涨水和基础倍数外);", "5、涨水:在叫地主过程中,五人都不叫地主,形成涨水,加一倍,无上限;", "5、基础倍数:初始倍数,一倍;", } },--]] --[4] = --[[{ title = "分数计算", content = { "1、个人总分=底分*总倍数+n底;", "2、个人加倍结算: (底分* 总倍数+n底) *2, 明地主一人出/得加倍的分;", } },--]] } -- 玩法 -- 必须跟服务器保持一致,增删都需要和server及web确认 DEF.GameTypes = { Normal = 0, } -- 聊天快捷语 DEF.ChatMessages = { [1] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat1_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat1_%s.ogg",txt = "哎呀,咋子比乌龟还慢嘛!"}, [2] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat2_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat2_%s.ogg",txt = "打就好森点打嘛,不要跟我醒尔黄当的。"}, [3] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat3_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat3_%s.ogg",txt = "不要紧斗催,再催奢我就要削桌儿了哦!"}, [4] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat4_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat4_%s.ogg",txt = "和你一帮,简直遇朵胎神甲!"}, [5] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat5_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat5_%s.ogg",txt = "看他阴索索的都晓得他就是跟地主一伙的。"}, [6] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat6_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat6_%s.ogg",txt = "你硬是太散德了撒,按斗老子一个人来整。"}, [7] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat7_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat7_%s.ogg",txt = "跟你一帮人都长得撑偷啊!"}, [8] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat8_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat8_%s.ogg",txt = "洗白地主,大家吃皮!"}, [9] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat9_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat9_%s.ogg",txt = "看清楚形势,不要扯斤斤,好森点耍"}, [10] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat10_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat10_%s.ogg",txt = "哎呀,不要紧到绵,炸弹先甩啦,炸死当水戳。"}, } DEF.GameTypesStr = { [0] = "五人斗地主", [1] = "五人斗地主", } DEF.Language = { PU_TONG_HUA = 1, FANG_YAN = 2, } DEF.clubWanFaTitle={ playRule="玩法", multLimit="封顶", baseMulti="积分倍数", } function DEF.getWanFaInfo(str) local tab=json.decode(str) local temp="" for k,v in pairs(tab) do if DEF[k] then if k == "playnum" then--and tab["isfaststart"] == 1 temp=temp.."" elseif k == "baseMulti" then temp = temp .. DEF.baseMulti[1].name .. v elseif k == "playRule" then for _,data in pairs(DEF[k]) do if not data.hide then if getNumBand(v,data.value) > 0 then temp=temp..data.name.." " end end end else for _,data in pairs(DEF[k]) do if v==data.value and not data.hide then temp=temp..data.name.." " end end end end end return temp end function DEF.getWanFaInfoTab(str) local tab=json.decode(str) local temp={} for k,v in pairs(tab) do if DEF[k] then if k == "playnum" then--and tab["isfaststart"] == 1 -- temp=temp.."" elseif k == "baseMulti" then table.insert(temp, DEF.baseMulti[1].name .. v) elseif k == "playRule" then for _,data in pairs(DEF[k]) do if not data.hide then if getNumBand(v,data.value) > 0 then table.insert(temp,data.name) end end end else for _,data in pairs(DEF[k]) do if v==data.value and not data.hide then table.insert(temp,data.name) end end end end end return temp end function DEF.getClubWaFaInfo(str) local tab=json.decode(str) local temp={} for k,v in pairs(tab) do if DEF[k] then if k == "playnum" and tab["isfaststart"] == 1 then --temp=temp.."" elseif k == "baseMulti" then table.insert(temp, {name = DEF.clubWanFaTitle.baseMulti, value = {DEF.baseMulti[1].name .. v}}) elseif k == "playRule" then local firstWf = true for _,data in pairs(DEF[k]) do if not data.hide then if getNumBand(v,data.value) > 0 then if firstWf then firstWf = false table.insert(temp,{name=DEF.clubWanFaTitle[k] or "",value={data.name}}) else table.insert(temp,{name="",value={data.name}}) end end end end else for _,data in pairs(DEF[k]) do if v==data.value and not data.hide then table.insert(temp,{name=DEF.clubWanFaTitle[k] or "",value={data.name}}) --temp=temp..data.name.." " end end end end end return temp end DEF.FengDing = { [30] = "封顶30倍", [60] = "封顶60倍", } --获取桌面玩法显示 function DEF.getClubTableWanFaInfo(ruleStr) if not ruleStr then return "" end local jsonData = json.decode(ruleStr); local str = "" if jsonData.multLimit and jsonData.multLimit>=0 then local specStr = DEF.FengDing[jsonData.multLimit] 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 = DEF.getClubWaFaInfo(ruleStr) return tt end --- -- 获取包间多玩法桌子上显示的信息 -- @param gameId -- @param ruleStr -- @param playerNum -- @return -- function DEF.getClubTableRuleString (gameId, ruleStr, playerNum) local wanfaStr = DEF.getClubTableWanFaInfo(ruleStr) return wanfaStr end return DEF