|
- -- 自贡五人斗地主
- 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
|