Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

317 wiersze
8.6 KiB

  1. local wanfa={
  2. playmode={
  3. {name="自摸胡",value=1},
  4. {name="点炮胡",value=2},
  5. {name="红中不接炮",value=3},
  6. },
  7. niaopoint={
  8. {name="鸟1分",value=1},
  9. {name="鸟2分",value=2},
  10. },
  11. niaonumber={
  12. {name="不抓鸟",value=0,},
  13. {name="一码全中",value=1},
  14. {name="抓2鸟",value=2},
  15. {name="抓4鸟",value=4},
  16. {name="抓6鸟",value=6},
  17. },
  18. canqiangganghu={
  19. {name="不带抢杠胡",value=0,hide=true},
  20. {name="带抢杠胡",value=1},
  21. },
  22. extrahutype={
  23. {name="平胡",value=0, hide=true},
  24. {name="可7对胡",value=1},
  25. },
  26. noredaddniao={
  27. {name="有红不奖鸟", value=0, hide=true},
  28. {name="无红中加2鸟",value=1},
  29. },
  30. embarpeng={
  31. {name="可碰", value=0, hide=true},
  32. {name="不可碰",value=1},
  33. },
  34. zimoscore={
  35. {name="自摸2分",value=2},
  36. {name="自摸5分",value=5},
  37. },
  38. redsize={
  39. {name="4红中",value=4},
  40. {name="8红中",value=8},
  41. },
  42. piaotype={
  43. {name="不飘",value=0},
  44. {name="飘分",value=1},
  45. -- {name="飘235",value=3},
  46. },
  47. hosting = {
  48. {name = "超时托管", value = 1},
  49. {name = "不托管", value = 0, hide = true}
  50. },
  51. playnum = {
  52. {name="两人玩",value=0},
  53. {name="三人玩",value=1},
  54. {name="四人玩",value=2},
  55. {name="快速成局",value=4},
  56. },
  57. baseMulti = {
  58. {name = "积分倍数x", value = 0x0001}
  59. },
  60. forbidProp = {
  61. {name = "屏蔽快捷语与道具", value = 1},
  62. {name = "屏蔽快捷语与道具", value = 0, hide = true},
  63. },
  64. forbidVoice = {
  65. {name = "屏蔽语音", value = 1},
  66. {name = "屏蔽语音", value = 0, hide = true},
  67. },
  68. }
  69. wanfa.clubWanFaTitle={
  70. playmode="玩法",
  71. niaopoint="鸟分",
  72. niaonumber="抓鸟",
  73. canqiangganghu="抢杠胡",
  74. extrahutype="胡牌",
  75. noredaddniao="奖鸟",
  76. embarpeng="是否可碰",
  77. zimoscore="分数",
  78. redsize="红中个数",
  79. piaotype="是否飘风",
  80. hosting = "托管",
  81. playnum = "玩家人数",
  82. baseMulti="积分倍数",
  83. forbidProp = "其他",
  84. }
  85. wanfa.ruleText =
  86. {
  87. --[1] =
  88. {
  89. title = "基础规则",
  90. content =
  91. {
  92. "1、用牌:麻将“筒条万”,加4张红中,合计112张。",
  93. "2、打法:可碰、可杠、不可吃,可点炮、可自摸。",
  94. "3、坐庄:第一局由创建游戏的玩家做庄家,以后谁胡牌谁做庄,流局则最后摸牌的人做庄。",
  95. "4、红中:红中可代替任何牌,不可以碰,杠,接炮。",
  96. "5、荒庄不荒杠:所有杠牌,不论牌局最后是否有人胡牌,杠都需要算分。",
  97. "6、杠牌",
  98. "暗杠:自己摸到四张一样的牌直接开杠。",
  99. "弯杠:自己手中有三张一样的牌,其他玩家又打出一张同样的牌,可以开杠(无过手杠)。",
  100. "公杠:当自己摸到的牌是自己已经碰过的牌时,则可以开杠,此杠可被抢杠胡。",
  101. "7、通炮:几个玩家可同时胡一张牌,由放通炮玩家输分(此时由点炮玩家抓鸟)。",
  102. "8、抢杠全包:只可抢公杠,抢杠后,嬴家得分全由被抢玩家出(杠分除外)。",
  103. "9、过手胡:某一回合中,若有人点炮,玩家没有选择胡,则此回合有其他玩家点炮,也不能胡,自摸除外。当该玩家摸牌,碰牌,杠牌后,过手胡限制解除。",
  104. },
  105. },
  106. -- --[2] =
  107. -- {
  108. -- title = "胡牌类型",
  109. -- content =
  110. -- {
  111. -- "1、平胡:四坎(除4副刻子)加一对将。",
  112. -- "2、七对:牌面由七个对子组成。",
  113. -- "3、起手胡:起手4个红中,算自摸胡。",
  114. -- "4、抢杠胡:只能抢公杠(碰完之后补的杠)。",
  115. -- }
  116. -- },
  117. -- --[3] =
  118. -- {
  119. -- title = "算分规则",
  120. -- content =
  121. -- {
  122. -- "玩家得分由杠分+胡牌分+中鸟分组成:",
  123. -- "1、杠分",
  124. -- "公杠:从其他三家每家收1分,共计3分(被抢杠胡则不算分)。",
  125. -- "放杠:扣3分。",
  126. -- "接杠:加3分。",
  127. -- "暗杠:从其他三家每家收2分,共计6分。",
  128. -- "2、胡牌分",
  129. -- "(1)无庄闲算分情况",
  130. -- "自摸:从其他三家每家收2分,共计6分。",
  131. -- "点炮:扣1分。",
  132. -- "接炮:加1分。",
  133. -- "(2)有庄闲算分情况",
  134. -- "自摸:闲家自摸从其他两闲家每家收2分,庄家收3分,共计7分。庄家自摸从每家收3分,共计9分 。",
  135. -- "点炮:闲家点炮给闲家扣1分,庄家点炮或者点炮给庄家扣2分。",
  136. -- "3、中鸟分",
  137. -- "按照中鸟的个数加分,如中鸟2个,1鸟1分,则接炮胡从点炮玩家处扣分2分,自摸胡从其他三家分别扣2分,共计6分。",
  138. -- "(1)159中鸟",
  139. -- "胡牌者抓鸟中鸟的数值是固定的1、5、9,红中算1个。",
  140. -- "(2)一码全中",
  141. -- "胡牌者翻出一张牌,点数即为中鸟个数,红中算10个。",
  142. -- }
  143. -- },
  144. }
  145. function wanfa.getWanFaInfo(str)
  146. local tab=json.decode(str)
  147. local temp=""
  148. for k,v in pairs(tab) do
  149. if wanfa[k] then
  150. for _,data in pairs(wanfa[k]) do
  151. --选中不抓鸟时候不显示鸟分
  152. if k=="niaopoint" and tab.niaonumber==0 then
  153. elseif k=="hosting" and v==1 and v==data.value and not data.hide then
  154. temp=temp..tab["hostingtime"].."秒"..data.name.." "
  155. elseif k == "baseMulti" then
  156. temp = temp .. data.name .. v .. " "
  157. else
  158. if v==data.value and not data.hide then
  159. temp=temp..data.name.." "
  160. end
  161. end
  162. end
  163. end
  164. end
  165. return temp
  166. end
  167. function wanfa.getClubWaFaInfo(str)
  168. local tab=json.decode(str)
  169. local temp={}
  170. for k,v in pairs(tab) do
  171. if wanfa[k] then
  172. for _,data in pairs(wanfa[k]) do
  173. --选中不抓鸟时候不显示鸟分
  174. if k=="niaopoint" and tab.niaonumber==0 then
  175. elseif k=="hosting" and v==1 and v==data.value and not data.hide then
  176. table.insert(temp, {name=wanfa.clubWanFaTitle[k] or "",value={tab["hostingtime"].."秒"..data.name}})
  177. elseif k == "baseMulti" then
  178. table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name .. v}})
  179. else
  180. if v==data.value and not data.hide then
  181. table.insert(temp,{name=wanfa.clubWanFaTitle[k] or "",value={data.name}})
  182. --temp=temp..data.name.." "
  183. end
  184. end
  185. end
  186. end
  187. end
  188. return temp
  189. end
  190. --俱乐部切换多玩法桌子显示的玩法 x人 一码全中/抓2鸟 自模胡/点炮胡
  191. function wanfa.getClubTableWanFaInfo(str)
  192. local tab=json.decode(str)
  193. local temp=""
  194. -- if tab.isfaststart and tab.isfaststart == 0 then
  195. -- if tab.playnum and tonumber(tab.playnum) >= 0 then
  196. -- local playnum = tonumber(tab.playnum)
  197. -- if playnum == 0 then
  198. -- temp = temp.."2人 "
  199. -- elseif playnum == 1 then
  200. -- temp = temp.."3人 "
  201. -- elseif playnum == 2 then
  202. -- temp = temp.."4人 "
  203. -- end
  204. -- end
  205. -- end
  206. if tab.niaonumber and tonumber(tab.niaonumber) >= 0 then
  207. local niaonum = tonumber(tab.niaonumber)
  208. if niaonum > 0 then
  209. if niaonum == 1 then
  210. temp = temp.."一码全中 "
  211. else
  212. temp = temp.."抓"..niaonum.."鸟 "
  213. end
  214. end
  215. end
  216. if tab.piaotype then
  217. if tonumber(tab.piaotype) == 0 then
  218. temp = temp.."不飘 "
  219. else
  220. temp = temp.."飘分 "
  221. end
  222. end
  223. if tab.playmode then
  224. if tonumber(tab.playmode) == 1 then
  225. temp = temp.."自摸胡"
  226. elseif tonumber(tab.playmode) == 2 then
  227. temp = temp.."点炮胡"
  228. end
  229. end
  230. return temp
  231. end
  232. function wanfa.getWanFaName(k,value)
  233. for k,v in pairs(wanfa[k]) do
  234. if v.value==value then
  235. return v.name
  236. end
  237. end
  238. return ""
  239. end
  240. -- string gameInfo; //游戏信息,json格式 ,不同游戏内容不一样
  241. -- //红中麻将参数:
  242. -- {
  243. -- "gamerule":0, //游戏玩法:1:三人,2: 四人
  244. -- "playmode":1, //玩法:1自摸胡,2点炮胡, 3点炮胡红中不接炮
  245. -- ”extrahutype”:0, //拓展胡牌类型,1为支持7对胡,0为只有平胡
  246. -- “niaopoint”:1, //鸟分,只支持1分和2分
  247. -- “niaonumber”:1, //鸟数量,0:不抓鸟,1:一码全中,2:抓2鸟,4抓4鸟,6:抓6鸟
  248. -- “canqiangganghu”:1 //是否支持抢杠胡,1为支持,0为不支持
  249. -- }
  250. ---
  251. -- 获取包间玩法信息
  252. -- @param gameId
  253. -- @param jushu
  254. -- @param ruleStr
  255. -- @param arena
  256. -- @return
  257. --
  258. function wanfa.getRuleFromString (gameId, jushu, ruleStr,arena)
  259. local str = wanfa.getClubWaFaInfo(ruleStr, jushu)
  260. return str
  261. end
  262. ---
  263. -- 获取包间多玩法桌子上显示的信息
  264. -- @param gameId
  265. -- @param ruleStr
  266. -- @param playerNum
  267. -- @return
  268. --
  269. function wanfa.getClubTableRuleString (gameId, ruleStr, playerNum)
  270. local str = ""
  271. local jsonData=json.decode(ruleStr)
  272. if jsonData.isfaststart == 1 then
  273. str = str .. "快速成局 "
  274. else
  275. if playerNum then
  276. str = str .. playerNum .. "人 "
  277. elseif jsonData.playnum then
  278. str = str .. jsonData.playnum .. "人 "
  279. end
  280. end
  281. local wanfaStr = wanfa.getClubTableWanFaInfo(ruleStr)
  282. str = str .. wanfaStr
  283. return str
  284. end
  285. return wanfa