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.

213 line
5.7 KiB

  1. local wanfa={
  2. scoreNum={
  3. {name="2/3/4颗",value=2},
  4. {name="3/4/5颗",value=3},
  5. {name="4/5/6颗",value=4},
  6. {name="5/6/7颗",value=5},
  7. {name="8/10/12颗",value=8},
  8. {name="10/12/14颗",value=10},
  9. },
  10. bankMode={
  11. {name="胡牌者当庄",value=0},
  12. {name="轮庄",value=1},
  13. },
  14. specialRule={
  15. {name="自摸翻倍",value=1},
  16. {name="放炮全赔",value=8},
  17. {name="过胡升番可胡",value=16},
  18. {name="小家可看牌",value=32},
  19. {name="整胡翻倍",value=64},
  20. {name="海底捞/水上漂",value=128},
  21. {name="查叫",value=256},
  22. {name="可吃对家",value=0x200},
  23. {name="延迟提醒",value=0x0400},
  24. },
  25. playnum = {
  26. {name="两人玩",value=2},
  27. {name="三人玩",value=3},
  28. {name="四人玩",value=4},
  29. {name="快速成局",value=-1},
  30. },
  31. speed = {
  32. {name="正常",value=0},
  33. {name="慢速",value=1},
  34. },
  35. baseMulti = {
  36. {name = "积分倍数x", value = 0x0001}
  37. },
  38. forbidProp = {
  39. {name = "屏蔽快捷语与道具", value = 1},
  40. {name = "屏蔽快捷语与道具", value = 0, hide = true},
  41. },
  42. forbidVoice = {
  43. {name = "屏蔽聊天", value = 1},
  44. {name = "屏蔽聊天", value = 0, hide = true},
  45. },
  46. }
  47. wanfa.clubWanFaTitle={
  48. specialRule="玩法",
  49. scoreNum = "颗数",
  50. --scoreRule = "结算",
  51. playnum = "玩家人数",
  52. bankMode="定庄",
  53. speed="速度",
  54. baseMulti="积分倍数",
  55. forbidProp="其他",
  56. forbidVoice="其他",
  57. }
  58. wanfa.RuleText =
  59. {
  60. --[1] =
  61. {
  62. title = "基础规则",
  63. content =
  64. {
  65. "1、用牌:小写“一”到“十”各4张,大写“壹”到“拾”各4张,共80张牌;其中“二七十”和“贰柒拾”为红色牌,其余为黑色牌。",
  66. "2、砌牌:大贰一般4人同玩,其中1人坐底。庄家摸21张,闲家摸20张,留19张在墩上。",
  67. "3、定庄:首局随机选庄,之后谁胡牌谁坐庄。",
  68. },
  69. },
  70. --[2] =
  71. --[[{
  72. title = "牌型介绍",
  73. content =
  74. {
  75. "1、一将牌:洗牌后,手中2个相同的牌为1对。",
  76. "2、一坎牌:洗牌后,手中3个相同的牌为1坎。",
  77. "3、一拢牌:洗牌后,手中4个相同的牌为拢。",
  78. "4、一列牌:砌牌后,手中的牌依据规则组合成相连的牌。",
  79. }
  80. },
  81. --[3] =
  82. {
  83. title = "玩法介绍",
  84. content =
  85. {
  86. "1、拢牌:拢牌为起手20张牌时,系统自动拢牌。",
  87. "2、招牌:游戏中,别人打或摸的牌与自己手中一坎牌相同时,则可招牌。",
  88. "3、碰牌:游戏中,别人打或摸的牌与自己手中一对牌相同时,则可碰牌。",
  89. "4、八块:当招或拢牌超过1次时,称为八块,此时不用从手中打牌出去,而是下家摸牌。",
  90. "5、吃牌:自己摸的或者上家出的牌,无人碰或招时,则可以与自己手中的牌组合成一列牌,称为吃牌。",
  91. "6、比牌:当吃的该牌与手中有相同牌时,必须要将手中的这张牌也根据某种组合起来,井将这2个组合的牌都放到桌上,称为比牌。",
  92. "7、过张:能吃却没有吃的牌,称为过张。",
  93. "8、进张:每进1张,必须打出1张,八块除外。",
  94. "9、胡牌:满足以下条件可以胡牌。",
  95. "(1)至少有10胡,或者0胡(无胡)。",
  96. "(2)手中的与放于桌上的牌组合完毕,而且有7列牌。",
  97. "10、荒庄:底牌都发完后却没人可胡牌时,则荒庄。",
  98. }
  99. },--]]
  100. }
  101. --获取玩法规则
  102. function wanfa.getRuleInfo(ruleStr)
  103. --return "luzhouwanfa"
  104. if not ruleStr then
  105. ruleStr = app.room.roomInfo.strGameInfo
  106. end
  107. local tab=json.decode(ruleStr or "")
  108. local temp=""
  109. for k,v in pairs(tab) do
  110. if wanfa[k] then
  111. if k == "specialRule" then
  112. for _,data in pairs(wanfa[k]) do
  113. if not data.hide then
  114. if getNumBand(v,data.value) > 0 then
  115. temp=temp..data.name.." "
  116. end
  117. end
  118. end
  119. else
  120. if k == "baseMulti" then
  121. temp = temp .. wanfa[k][1].name .. v .. " "
  122. else
  123. for _,data in pairs(wanfa[k]) do
  124. if v==data.value and not data.hide then
  125. temp=temp..data.name.." "
  126. end
  127. end
  128. end
  129. end
  130. end
  131. end
  132. return temp
  133. end
  134. --获取茶馆玩法规则
  135. function wanfa.getClubRuleInfo(ruleStr)
  136. if not ruleStr then
  137. ruleStr = app.room.roomInfo.strGameInfo
  138. end
  139. --return "luzhouclubwanfa"
  140. local tab=json.decode(ruleStr or "")
  141. local temp={}
  142. for k,v in pairs(tab) do
  143. if wanfa[k] then
  144. if k == "specialRule" then
  145. for _,data in pairs(wanfa[k]) do
  146. if not data.hide then
  147. if getNumBand(v,data.value) > 0 then
  148. table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}})
  149. end
  150. end
  151. end
  152. else
  153. if k == "baseMulti" then
  154. table.insert(temp, {name = wanfa.clubWanFaTitle[k] or "", value = {wanfa[k][1].name .. v}})
  155. else
  156. for _,data in pairs(wanfa[k]) do
  157. if v==data.value and not data.hide then
  158. table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}})
  159. end
  160. end
  161. end
  162. end
  163. end
  164. end
  165. return temp
  166. end
  167. function wanfa.getClubTableWanFaInfo(str)
  168. local tab=json.decode(str)
  169. local temp=""
  170. for k,v in pairs(tab) do
  171. if wanfa[k] then
  172. if k == "scoreNum" then
  173. for _,data in pairs(wanfa[k]) do
  174. if v==data.value then
  175. temp=data.name.." "
  176. end
  177. end
  178. end
  179. end
  180. end
  181. return temp
  182. end
  183. function wanfa.getRuleFromString (gameId, jushu, ruleStr,arena)
  184. local str = wanfa.getClubRuleInfo(ruleStr, jushu)
  185. return str
  186. end
  187. function wanfa.getClubTableRuleString (gameId, ruleStr, playerNum)
  188. local str = ""
  189. local jsonData=json.decode(ruleStr)
  190. if jsonData.startMode == 1 then
  191. str = "快速成局 "
  192. else
  193. if jsonData.playerNum == 2 then
  194. str = str .. "快速成局 "
  195. else
  196. str = tostring(playerNum) .. "人 "
  197. end
  198. end
  199. local wanfaStr = wanfa.getClubTableWanFaInfo(ruleStr)
  200. str = str .. wanfaStr
  201. return str
  202. end
  203. return wanfa