Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

290 rindas
7.7 KiB

  1. local wanfa={
  2. playnum={
  3. {name="4人",value=4},
  4. {name="3人",value=3},
  5. {name="2人",value=2},
  6. },
  7. isfaststart={
  8. {name="快速成局",value=1},
  9. {name="",value=0,hide=true},
  10. },
  11. limitfan={
  12. {name="封顶3番",value=3},
  13. {name="封顶4番",value=4},
  14. {name="封顶5番",value=5},
  15. },
  16. laizinum={
  17. -- {name="4鬼",value=4},
  18. -- {name="8鬼",value=8},
  19. -- {name="12鬼",value=12},
  20. },
  21. baojiao = {
  22. {name="报叫",value=1},
  23. {name="",value=0,hide=true},
  24. },
  25. -- xiqian = {
  26. -- {name="喜钱",value=1},
  27. -- {name="",value=0,hide=true},
  28. -- },
  29. guozhangjiafan = {
  30. -- {name="过张升番可胡",value=1},
  31. -- {name="",value=0,hide=true},
  32. },
  33. toujiazhuang = {
  34. -- {name="一炮多响头家庄",value=1},
  35. -- {name="",value=0,hide=true},
  36. },
  37. tingpai = {
  38. {name="听牌提示",value=1},
  39. {name="",value=0,hide=true},
  40. },
  41. zimorule = {
  42. {name="自摸不加",value=0},
  43. {name="自摸加番",value=1},
  44. {name="自摸加底",value=2},
  45. },
  46. baojiao = {
  47. {name = "报叫", value = 0x0001}
  48. },
  49. yibangao = {
  50. {name = "一般高", value = 0x0100}
  51. },
  52. piao = {
  53. {name = "飘", value = 0x0080}
  54. },
  55. baoziext = {
  56. {name = "骰子相同做豹子", value = 0x0002},
  57. {name = "骰子相加双数做豹子", value = 0x0040}
  58. },
  59. tingpai = {
  60. {name = "听牌提示", value = 0x0200}
  61. },
  62. baseMulti = {
  63. ["1"] = "积分倍数x"
  64. },
  65. forbidProp = {
  66. {name = "屏蔽快捷语与道具", value = 1},
  67. {name = "屏蔽快捷语与道具", value = 0, hide = true},
  68. },
  69. forbidVoice = {
  70. {name = "屏蔽语音", value = 1},
  71. {name = "屏蔽语音", value = 0, hide = true},
  72. },
  73. }
  74. wanfa.clubWanFaTitle={
  75. playnum="人数",
  76. limitfan="封顶",
  77. laizinum="鬼牌",
  78. gamerule="玩法",
  79. baseMulti="积分倍数",
  80. forbidProp = "其他",
  81. }
  82. wanfa.RuleText =
  83. {
  84. {
  85. title = "基础规则",
  86. content =
  87. {
  88. "1、用牌:麻将“条、筒”从一到九,各4张,合计72张牌。",
  89. "2、玩法:可碰、杠,不可吃,可点炮、自摸、一炮多响。",
  90. "3、定庄:首局房主坐庄。之后,由上局“一胡”玩家坐庄;一炮双响则放炮者坐庄,流局则摸最后一张牌玩家坐庄。",
  91. "4、一牌多用:碰杠胡可同时使用,一家操作操作完,需要等另一家操作完。",
  92. },
  93. },
  94. --[[{
  95. title = "名词解释",
  96. content =
  97. {
  98. "1、刮风(明杠),分为直杠和巴杠。",
  99. "(1)直杠:玩家手中有三张一样的牌,其他玩家打出此牌,该玩家杠。",
  100. "(2)巴杠(面下杠):玩家已经碰出一对牌,又自摸到碰的牌选中杠。",
  101. "2、下雨(暗杠):玩家手中有4张相同的牌选择杠。",
  102. "3、过手胡:在同一回合中,若有人点炮,玩家没有胡牌,则此回合其他玩家点炮,只要没有加番就不能胡,自摸可以胡。",
  103. "4、查大叫:流局时没有听牌的玩家赔给有叫的玩家最大番数,刮风下雨结算(未听牌玩家刮风下雨分数返还)。",
  104. "5、自摸加底:玩家自摸后,除获得相应牌型分后再加1底分。",
  105. "6、自摸加番:玩家自摸后,计算牌型分后,再在该牌型分*2。",
  106. "7、呼叫转移:开杠的人在杠上炮后,杠钱要一井转移给接炮的人,如果杠不结算则不转移。",
  107. "8、杠上花:明暗杠后,补张自摸。",
  108. "9、杠上炮:玩家开杠后放炮。",
  109. }
  110. },
  111. {
  112. title = "胡牌类型",
  113. content =
  114. {
  115. "1、平胡:四坎(除4副刻子)加一对将。",
  116. "2、对对胡:四副刻子加一对将。",
  117. "3、清一色:全部是一种花色的平胡。",
  118. "4、七对:玩家手牌都是对子。",
  119. "5、龙七对:玩家手牌都是对子,并且有一个根儿。",
  120. "6、清大对:清一色+对对胡。",
  121. "7、清七对:清一色+七对。",
  122. "8、清龙七对:清一色+龙七对。",
  123. "9、一般高:有两个相同的顺子,112233。",
  124. "10、天胡:庄家起牌就胡牌。",
  125. "11、地胡:只在庄家出的第一张牌为地胡。",
  126. }
  127. },
  128. {
  129. title = "特殊玩法",
  130. content =
  131. {
  132. "1、报叫:可选择报叫,赌自摸,不报。",
  133. "AB玩家均报,相互结算+2番;AB玩家其中1家报,相互结算+1番;AB玩家均不报,相互不加番。",
  134. "2、报叫反查:如果某玩家报叫,牌局结束未能胡牌,就需要支付听牌玩家可能的最大番数+1番。",
  135. "3、豹子:开局需做骰子效果,两个骰子一样/加起来是双数(做选项),则本局胡牌者+1番,由系统在开局时掷般。",
  136. "4、飘:开局选择飘或者不飘。",
  137. }
  138. },--]]
  139. }
  140. function wanfa.getWanFaInfo(str)
  141. local tab=json.decode(str)
  142. local temp=""
  143. for k,v in pairs(tab) do
  144. if wanfa[k] then
  145. if k == "playnum" and tab["isfaststart"] == 1 then
  146. temp=temp..""
  147. else
  148. for _,data in pairs(wanfa[k]) do
  149. if v==data.value and not data.hide then
  150. temp=temp..data.name.." "
  151. end
  152. end
  153. end
  154. end
  155. end
  156. if tab.baseMulti and tab.baseMulti > 0 then
  157. temp = temp..wanfa.baseMulti['1']..tab.baseMulti.." "
  158. end
  159. return temp
  160. end
  161. function wanfa.getWanFaInfoTab(str)
  162. local tab=json.decode(str)
  163. local temp={}
  164. for k,v in pairs(tab) do
  165. if wanfa[k] then
  166. if k == "playnum" and tab["isfaststart"] == 1 then
  167. -- temp=temp..""
  168. else
  169. for _,data in pairs(wanfa[k]) do
  170. if v==data.value and not data.hide then
  171. -- temp=temp..data.name.." "
  172. table.insert(temp,data.name)
  173. end
  174. end
  175. end
  176. end
  177. end
  178. if tab.baseMulti and tab.baseMulti > 0 then
  179. table.insert(temp, wanfa.baseMulti['1']..tab.baseMulti)
  180. end
  181. return temp
  182. end
  183. function wanfa.getClubWaFaInfo(str)
  184. local tab=json.decode(str)
  185. local temp={}
  186. if wanfa["limitfan"] then
  187. local limitfanValue = tab.limitfan;
  188. for _,data in pairs(wanfa["limitfan"]) do
  189. if limitfanValue==data.value and not data.hide then
  190. table.insert(temp,{name=wanfa.clubWanFaTitle["limitfan"] or "",value={data.name}});
  191. end
  192. end
  193. end
  194. local isFirstOne = true;
  195. for k,v in pairs(tab) do
  196. if wanfa[k] then
  197. if (k == "playnum" and tab["isfaststart"] == 1) or k == "limitfan" then
  198. else
  199. for _,data in pairs(wanfa[k]) do
  200. if v==data.value and not data.hide then
  201. if isFirstOne then
  202. table.insert(temp,{name="玩法",value={data.name}})
  203. isFirstOne = false;
  204. else
  205. table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}})
  206. --temp=temp..data.name.." "
  207. end
  208. end
  209. end
  210. end
  211. end
  212. end
  213. if tab.baseMulti and tab.baseMulti > 0 then
  214. table.insert(temp, {name = wanfa.clubWanFaTitle.baseMulti, value = {wanfa.baseMulti["1"] .. tab.baseMulti}})
  215. end
  216. return temp
  217. end
  218. function wanfa.getClubTableWanFaInfo(str)
  219. local tab=json.decode(str)
  220. local temp=""
  221. for k,v in pairs(tab) do
  222. if wanfa[k] then
  223. if k == "limitfan" or k == "laizinum" then
  224. for _,data in pairs(wanfa[k]) do
  225. if v==data.value then
  226. -- table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}})
  227. temp=temp..data.name.." "
  228. end
  229. end
  230. end
  231. end
  232. end
  233. return temp
  234. end
  235. ---
  236. -- 获取亲友圈玩法
  237. -- @param gameId
  238. -- @param jushu
  239. -- @param ruleStr
  240. -- @param arena
  241. -- @return
  242. --
  243. function wanfa.getRuleFromString (gameId, jushu, ruleStr,arena)
  244. local str = wanfa.getClubWaFaInfo(ruleStr, jushu)
  245. return str
  246. end
  247. function wanfa.getClubTableRuleString (gameId, ruleStr, playerNum)
  248. local str = ""
  249. local jsonData=json.decode(ruleStr)
  250. if jsonData.isfaststart == 1 then
  251. str = str .. "快速成局 "
  252. else
  253. if playerNum then
  254. str = str .. playerNum .. "人 "
  255. elseif jsonData.playnum then
  256. str = str .. jsonData.playnum .. "人 "
  257. end
  258. end
  259. local wanfaStr = wanfa.getClubTableWanFaInfo(ruleStr)
  260. str = str .. wanfaStr
  261. return str
  262. end
  263. return wanfa