You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

283 rivejä
8.9 KiB

  1. -- 自贡五人斗地主
  2. local DEF = {
  3. --[[playnum={
  4. {name="4人",value=4},
  5. {name="3人",value=3},
  6. {name="2人",value=2},
  7. },--]]
  8. multLimit={
  9. {name="封顶30倍",value=30},
  10. {name="封顶60倍",value=60},
  11. },
  12. playRule={
  13. {name="加底1",value=0x0001},
  14. {name="加底2",value=0x0002},
  15. {name="加倍",value=0x0004},
  16. {name="先小后大叫牌",value=0x0008},
  17. },
  18. baseMulti = {
  19. {name = "积分倍数x", value = 0x0001}
  20. },
  21. forbidProp = {
  22. {name = "屏蔽快捷语与道具", value = 1},
  23. {name = "", value = 0, hide = true},
  24. },
  25. forbidVoice = {
  26. {name = "屏蔽语音", value = 1},
  27. {name = "", value = 0, hide = true},
  28. },
  29. }
  30. -- 规则文本
  31. DEF.RuleText =
  32. {
  33. --[1] =
  34. {
  35. title = "基础规则",
  36. content =
  37. {
  38. "1、三副扑克牌,去除数字为3、4、5的所有牌,加5张花牌当癞子,总张数一共131张,5人玩,每人25张,底牌6张;",
  39. "2、游戏人数为5人,游戏中可能有两个地主,一个地主是公开身份的,一个地主是可能隐藏在其他四个玩家中的暗地主。",
  40. },
  41. },
  42. --[[{
  43. title = "癞子说明",
  44. content =
  45. {
  46. "1、癞子可代替任意一张真实牌,但必须与其他牌结合使用不可单打;",
  47. "2、除顺子之外,三带一、三带二、飞机、飞机带翅膀、连对牌型,与癞子组合时,癞子跟旁边的牌变(癞子必须跟着真实牌变),且不可形成炸弹(组合的牌不能形成炸弹);",
  48. },
  49. },--]]
  50. --[2] =
  51. --[[{
  52. title = "牌型",
  53. content =
  54. {
  55. "1、单张:任意一张单牌除癞子;",
  56. "2、顺子:五张或五张以上点数相连的牌,不包括2和双王;",
  57. "3、对子:除王外任意两张点数相同的牌;",
  58. "4、连对:三对或三对以上点数相连的牌,不包括2和双王;",
  59. "5、三张:任意三张点数相同的牌,不包括双王;",
  60. "6、三顺(飞机、双飞、三飞、四...):两组或两组以上点数相连的三张牌,不包括2和双王;",
  61. "7、三带一:点数相同的三张牌+一张单牌,若那张单牌是一张癞子时,直接视为炸弹;",
  62. "8、三带二:点数相同的三张牌+一对牌;",
  63. "9、飞机带翅膀(不可有炸弹): 三顺+数量相同的对牌或者三顺+数量相同的单牌,特殊: 666777888999算三顺;",
  64. "10、炸弹:4张、8张、12张点数相同的牌;",
  65. "11、王炸:双王炸、4王炸、6王炸;",
  66. "12、春天:闲家未出牌算春天",
  67. }
  68. },--]]
  69. --[3] =
  70. --[[{
  71. title = "牌型比较",
  72. content =
  73. {
  74. "1、从大到小依次为:大王、小王、2、A、K、Q、J、10、9、8、7、6;",
  75. "2、炸弹牌型比较: 4炸<双王炸<8炸<4王炸< 12炸<6王炸,除王炸外,张数相同的炸弹,点数大的则大;",
  76. "3、王炸比较:小王<大王;",
  77. "4、双王炸:癞子随王听;两个大王>一个小+大王>两个小王",
  78. "5、四王炸:(癞子随大王听);两个大王+一个癞子+一个小王>一个大王+两个癞子+一个小王",
  79. }
  80. },
  81. {
  82. title = "倍数",
  83. content =
  84. {
  85. "1、双王炸、4炸:一倍;",
  86. "2、4王炸、8炸:三倍;",
  87. "3、6王炸、12炸:六倍;",
  88. "4、春天:二十倍(过程中产生的倍数不算入,除涨水和基础倍数外);",
  89. "5、涨水:在叫地主过程中,五人都不叫地主,形成涨水,加一倍,无上限;",
  90. "5、基础倍数:初始倍数,一倍;",
  91. }
  92. },--]]
  93. --[4] =
  94. --[[{
  95. title = "分数计算",
  96. content =
  97. {
  98. "1、个人总分=底分*总倍数+n底;",
  99. "2、个人加倍结算: (底分* 总倍数+n底) *2, 明地主一人出/得加倍的分;",
  100. }
  101. },--]]
  102. }
  103. -- 玩法
  104. -- 必须跟服务器保持一致,增删都需要和server及web确认
  105. DEF.GameTypes =
  106. {
  107. Normal = 0,
  108. }
  109. -- 聊天快捷语
  110. DEF.ChatMessages =
  111. {
  112. [1] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat1_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat1_%s.ogg",txt = "哎呀,咋子比乌龟还慢嘛!"},
  113. [2] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat2_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat2_%s.ogg",txt = "打就好森点打嘛,不要跟我醒尔黄当的。"},
  114. [3] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat3_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat3_%s.ogg",txt = "不要紧斗催,再催奢我就要削桌儿了哦!"},
  115. [4] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat4_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat4_%s.ogg",txt = "和你一帮,简直遇朵胎神甲!"},
  116. [5] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat5_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat5_%s.ogg",txt = "看他阴索索的都晓得他就是跟地主一伙的。"},
  117. [6] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat6_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat6_%s.ogg",txt = "你硬是太散德了撒,按斗老子一个人来整。"},
  118. [7] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat7_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat7_%s.ogg",txt = "跟你一帮人都长得撑偷啊!"},
  119. [8] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat8_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat8_%s.ogg",txt = "洗白地主,大家吃皮!"},
  120. [9] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat9_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat9_%s.ogg",txt = "看清楚形势,不要扯斤斤,好森点耍"},
  121. [10] = {oggStandard = "pk_zgwrddz/res/snd/%s/wrddz_chat10_%s.ogg", oggLocal = "pk_zgwrddz/res/snd/%s/wrddz_chat10_%s.ogg",txt = "哎呀,不要紧到绵,炸弹先甩啦,炸死当水戳。"},
  122. }
  123. DEF.GameTypesStr =
  124. {
  125. [0] = "五人斗地主",
  126. [1] = "五人斗地主",
  127. }
  128. DEF.Language = {
  129. PU_TONG_HUA = 1,
  130. FANG_YAN = 2,
  131. }
  132. DEF.clubWanFaTitle={
  133. playRule="玩法",
  134. multLimit="封顶",
  135. baseMulti="积分倍数",
  136. }
  137. function DEF.getWanFaInfo(str)
  138. local tab=json.decode(str)
  139. local temp=""
  140. for k,v in pairs(tab) do
  141. if DEF[k] then
  142. if k == "playnum" then--and tab["isfaststart"] == 1
  143. temp=temp..""
  144. elseif k == "baseMulti" then
  145. temp = temp .. DEF.baseMulti[1].name .. v
  146. elseif k == "playRule" then
  147. for _,data in pairs(DEF[k]) do
  148. if not data.hide then
  149. if getNumBand(v,data.value) > 0 then
  150. temp=temp..data.name.." "
  151. end
  152. end
  153. end
  154. else
  155. for _,data in pairs(DEF[k]) do
  156. if v==data.value and not data.hide then
  157. temp=temp..data.name.." "
  158. end
  159. end
  160. end
  161. end
  162. end
  163. return temp
  164. end
  165. function DEF.getWanFaInfoTab(str)
  166. local tab=json.decode(str)
  167. local temp={}
  168. for k,v in pairs(tab) do
  169. if DEF[k] then
  170. if k == "playnum" then--and tab["isfaststart"] == 1
  171. -- temp=temp..""
  172. elseif k == "baseMulti" then
  173. table.insert(temp, DEF.baseMulti[1].name .. v)
  174. elseif k == "playRule" then
  175. for _,data in pairs(DEF[k]) do
  176. if not data.hide then
  177. if getNumBand(v,data.value) > 0 then
  178. table.insert(temp,data.name)
  179. end
  180. end
  181. end
  182. else
  183. for _,data in pairs(DEF[k]) do
  184. if v==data.value and not data.hide then
  185. table.insert(temp,data.name)
  186. end
  187. end
  188. end
  189. end
  190. end
  191. return temp
  192. end
  193. function DEF.getClubWaFaInfo(str)
  194. local tab=json.decode(str)
  195. local temp={}
  196. for k,v in pairs(tab) do
  197. if DEF[k] then
  198. if k == "playnum" and tab["isfaststart"] == 1 then
  199. --temp=temp..""
  200. elseif k == "baseMulti" then
  201. table.insert(temp, {name = DEF.clubWanFaTitle.baseMulti, value = {DEF.baseMulti[1].name .. v}})
  202. elseif k == "playRule" then
  203. local firstWf = true
  204. for _,data in pairs(DEF[k]) do
  205. if not data.hide then
  206. if getNumBand(v,data.value) > 0 then
  207. if firstWf then
  208. firstWf = false
  209. table.insert(temp,{name=DEF.clubWanFaTitle[k] or "",value={data.name}})
  210. else
  211. table.insert(temp,{name="",value={data.name}})
  212. end
  213. end
  214. end
  215. end
  216. else
  217. for _,data in pairs(DEF[k]) do
  218. if v==data.value and not data.hide then
  219. table.insert(temp,{name=DEF.clubWanFaTitle[k] or "",value={data.name}})
  220. --temp=temp..data.name.." "
  221. end
  222. end
  223. end
  224. end
  225. end
  226. return temp
  227. end
  228. DEF.FengDing = {
  229. [30] = "封顶30倍",
  230. [60] = "封顶60倍",
  231. }
  232. --获取桌面玩法显示
  233. function DEF.getClubTableWanFaInfo(ruleStr)
  234. if not ruleStr then return "" end
  235. local jsonData = json.decode(ruleStr);
  236. local str = ""
  237. if jsonData.multLimit and jsonData.multLimit>=0 then
  238. local specStr = DEF.FengDing[jsonData.multLimit] or ""
  239. if specStr ~= "" then
  240. str = str..specStr.." "
  241. end
  242. end
  243. return str
  244. end
  245. ---
  246. -- 获取亲友圈玩法
  247. -- @param gameId
  248. -- @param jushu
  249. -- @param ruleStr
  250. -- @param arena
  251. -- @return
  252. --
  253. function DEF.getRuleFromString (gameId, jushu, ruleStr,arena)
  254. local tt = DEF.getClubWaFaInfo(ruleStr)
  255. return tt
  256. end
  257. ---
  258. -- 获取包间多玩法桌子上显示的信息
  259. -- @param gameId
  260. -- @param ruleStr
  261. -- @param playerNum
  262. -- @return
  263. --
  264. function DEF.getClubTableRuleString (gameId, ruleStr, playerNum)
  265. local wanfaStr = DEF.getClubTableWanFaInfo(ruleStr)
  266. return wanfaStr
  267. end
  268. return DEF