Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

415 строки
12 KiB

  1. local PdkRoomViewConfig = {}
  2. local gameConfig = getSubGameConfig(GAME_IDS.luzhouPaoDeKuai)
  3. local PDKDefine = require("luaScript.SubGameDefine.Poker.luzhouPdkWanFa")
  4. -- 玩家节点位置
  5. PdkRoomViewConfig.PLAYER_POS = {
  6. [2] = {
  7. cc.p((62+25)*g_radio_x, 111*g_radio_y),
  8. cc.p((1224-25)*g_radio_x, 560*g_radio_y),--调整后cc.p(936, 560)
  9. },
  10. [3] = {
  11. -- cc.p(62, 111),
  12. -- cc.p(62, 481),
  13. -- cc.p(1224, 481),--x-机器人牌位置
  14. cc.p((62+25)*g_radio_x, 111*g_radio_y),
  15. cc.p((1224-25)*g_radio_x, (505+20)*g_radio_y),
  16. cc.p((62+25)*g_radio_x, (505+20)*g_radio_y),
  17. },
  18. [4] = {
  19. cc.p((62+25)*g_radio_x, 111*g_radio_y),
  20. cc.p((1224-25)*g_radio_x, 450*g_radio_y),
  21. cc.p(940*g_radio_x, 590*g_radio_y),
  22. cc.p((62+25)*g_radio_x, 450*g_radio_y),
  23. },
  24. }
  25. --root cardRoot手牌开始位置
  26. PdkRoomViewConfig.CARD_POS = {
  27. [2] = {
  28. -- cc.p(62, 111),
  29. -- cc.p(62+90, 481+115),
  30. cc.p(62*g_radio_x, 111),
  31. cc.p((1224-120)*g_radio_x, (660-10)*g_radio_y),--cc.p(936-120, 560-10),
  32. },
  33. [3] = {
  34. cc.p(62*g_radio_x, 111),
  35. cc.p((1224-90)*g_radio_x, (481+115)*g_radio_y),
  36. cc.p((62+90)*g_radio_x, (481+115)*g_radio_y),
  37. },
  38. [4] = {
  39. cc.p(62*g_radio_x, 111),
  40. cc.p((1224-110)*g_radio_x, (481-30)*g_radio_y),
  41. cc.p((640-150)*g_radio_x, (531+80)*g_radio_y),
  42. cc.p((62+110)*g_radio_x, (481-30)*g_radio_y),
  43. },
  44. }
  45. -- 出牌显示位置
  46. PdkRoomViewConfig.SHOW_CARD_POS = {
  47. [2] = {
  48. cc.p(200*g_radio_x, 75*g_radio_y),
  49. cc.p((1224-120)*g_radio_x, (500+8)*g_radio_y),--x- --cc.p(840, 496-80),
  50. },
  51. [3] = {
  52. cc.p(200*g_radio_x, (70-10)*g_radio_y),
  53. cc.p(1095*g_radio_x, (481-8)*g_radio_y),--x-
  54. cc.p(200*g_radio_x, (481-8)*g_radio_y),--x+
  55. },
  56. [4] = {
  57. cc.p((200-8)*g_radio_x, 60*g_radio_y),
  58. cc.p((1095+30)*g_radio_x, (340+50+8)*g_radio_y),--x-
  59. cc.p(840*g_radio_x, (531+8)*g_radio_y),--x-
  60. cc.p((200-38)*g_radio_x, (340+50+8)*g_radio_y),--x+
  61. },
  62. }
  63. --专门给4人玩回放定义的出牌位置
  64. PdkRoomViewConfig.RECORD_SHOW_CARD_POS4 = {
  65. [2] = {
  66. cc.p(200*g_radio_x, 75*g_radio_y),
  67. cc.p((1095-40)*g_radio_x, (596-80)*g_radio_y),--x-
  68. },
  69. [3] = {
  70. cc.p(200*g_radio_x, 70),
  71. cc.p((1095-40)*g_radio_x, 481*g_radio_y),--x-
  72. cc.p((200+40)*g_radio_x, 481*g_radio_y),--x+
  73. },
  74. [4] = {
  75. cc.p((200-8)*g_radio_x, 50*g_radio_y),
  76. cc.p((1095-20)*g_radio_x, 340*g_radio_y),--x-
  77. cc.p((840-240)*g_radio_x, (531-30)*g_radio_y),--x-
  78. cc.p((200+20)*g_radio_x, 340*g_radio_y),--x+
  79. },
  80. }
  81. PdkRoomViewConfig.NEW_SHOW_CARD_POS = {
  82. [2] = {
  83. -- cc.p(640, 330),
  84. -- cc.p(230, 0),--x+
  85. cc.p(640*g_radio_x, 290*g_radio_y),
  86. cc.p((-130-16)*g_radio_x, 0),--x-
  87. },
  88. [3] = {
  89. cc.p(640*g_radio_x, 290*g_radio_y),
  90. cc.p((-130-16)*g_radio_x, 0),--x-
  91. cc.p((230+15)*g_radio_x, 0),--x+
  92. },
  93. [4] = {
  94. cc.p(640*g_radio_x, 285*g_radio_y),
  95. cc.p((-130-16)*g_radio_x, 0),--x-
  96. cc.p((-130-16)*g_radio_x, 0),--x-
  97. cc.p((230+15)*g_radio_x, 0),--x+
  98. },
  99. }
  100. PdkRoomViewConfig.PASS_SHOW_POS = {
  101. [2] = {
  102. -- cc.p(580, 200),
  103. -- cc.p(170, 0),--x+
  104. cc.p(580*g_radio_x, 200*g_radio_y),
  105. cc.p((-160-40)*g_radio_x, 0),--x-
  106. },
  107. [3] = {
  108. cc.p(580*g_radio_x, 200*g_radio_y),
  109. cc.p((-160-40)*g_radio_x, 0),--x-
  110. cc.p((170+40)*g_radio_x, 0),--x+
  111. },
  112. [4] = {
  113. cc.p(580*g_radio_x, 200*g_radio_y),
  114. cc.p((-160-40)*g_radio_x, 0),--x-
  115. cc.p((-160-40)*g_radio_x, 0),--x+
  116. cc.p((170+40)*g_radio_x, 0),--x+
  117. },
  118. }
  119. -- 牌缩放
  120. PdkRoomViewConfig.CARD_SCALE = {
  121. [1] = 1,
  122. [2] = 0.5,
  123. [3] = 0.5,
  124. [4] = 0.5,
  125. }
  126. -- 发牌时的起始缩放
  127. PdkRoomViewConfig.CARD_SCALE_START = 0.5
  128. -- 牌间距
  129. PdkRoomViewConfig.CARD_DLT_WIDTH = 60
  130. -- 发牌开始位置
  131. PdkRoomViewConfig.CARD_START_POS = cc.p(640*g_radio_x, 340*g_radio_y)
  132. -- 牌的正常位置高度
  133. PdkRoomViewConfig.NORMAL_HEIGHT = 111
  134. -- 牌选择时的高度
  135. PdkRoomViewConfig.SELECTED_HEIGHT = 111+40
  136. -- 卡牌高度
  137. PdkRoomViewConfig.CARD_HEIGHT = 231
  138. PdkRoomViewConfig.CARD_WIDTH = 163
  139. --[[
  140. ]]
  141. -- 牌型显示类型
  142. PdkRoomViewConfig.EffectType = {
  143. PASS = 0,--要不起
  144. SINGLE_CARD = 1, --//单牌
  145. DUI_ZI = 2, --//对子
  146. THREE = 3, --三个
  147. THREE_AND_TWO = 4, --//三带二张
  148. THREE_AND_DUI = 5, --//三带一对
  149. SHUN_ZI = 6, --//顺子
  150. LIAN_DUI = 7, --//连对(至少3连对)
  151. AIRPLANE = 8, --//飞机不带翅膀
  152. AIRPLANE_TOW = 9, --//飞机带散牌
  153. AIRPLANE_DUI = 10, --//飞机带对
  154. BOMB = 11, --//炸弹
  155. SPRING_HUA = 99, -- 春天花
  156. NONE = 100, --不适用类型
  157. }
  158. -- 游戏桌子状态
  159. PdkRoomViewConfig.GameStatus = {
  160. GAME_STATE_INIT =0, --//游戏准备状态
  161. GAME_STATE_SEND_HAND_CARD =1, --//发牌
  162. GAME_STATE_OUT_CARD =2, --//打牌
  163. GAME_STATE_ROUND_OVER =3, --//游戏一局结束
  164. GAME_STATE_GAME_OVER =4, --//游戏结束
  165. }
  166. -- 创建房间参数
  167. PdkRoomViewConfig.CreateParams = {
  168. 0x0001, --记牌器
  169. 0x0002, --有大必打
  170. }
  171. PdkRoomViewConfig.CreateParamsMean = PDKDefine.CreateParamsMean
  172. PdkRoomViewConfig.RoonInfoConfig = {
  173. play = PDKDefine.GameTypesStr,
  174. num = PDKDefine.GamePlayerCount,
  175. wanfa = PDKDefine.GameWanfa,
  176. gui = PDKDefine.GameGui,
  177. keshu = PDKDefine.GameKeShu,
  178. }
  179. PdkRoomViewConfig.InviteConfig = {
  180. [2] = {
  181. [0] = "零缺二",
  182. [1] = "一缺一",
  183. [2] = "",
  184. },
  185. [3] = {
  186. [0] = "零缺三",
  187. [1] = "一缺二",
  188. [2] = "二缺一",
  189. [3] = "",
  190. },
  191. [4] = {
  192. [0] = "零缺四",
  193. [1] = "一缺三",
  194. [2] = "二缺二",
  195. [3] = "三缺一",
  196. [4] = "",
  197. }
  198. }
  199. --[[
  200. print("------------rule--------", getNumBand(rule, 0x0001))
  201. print("------------rule--------", getNumBand(rule, 0x0002))
  202. print("------------rule--------", getNumBand(rule, 0x0004))
  203. print("------------rule--------", getNumBand(rule, 0x0008))
  204. print("------------rule--------", getNumBand(rule, 0x0010))
  205. print("------------rule--------", getNumBand(rule, 0x0020))
  206. print("------------rule--------", getNumBand(rule, 0x0040))
  207. ]]
  208. PdkRoomViewConfig.PayConfig = {
  209. [0] = "房主付费",
  210. [1] = "AA支付"
  211. }
  212. function PdkRoomViewConfig.getPayInfo( gameInfo )
  213. local data = json.decode(gameInfo)
  214. if data == nil then
  215. return ""
  216. end
  217. return PdkRoomViewConfig.PayConfig[tonumber(data.deductRule)]
  218. end
  219. function PdkRoomViewConfig.getRoundCount( gameInfo )
  220. local data = json.decode(gameInfo)
  221. if data == nil then
  222. return ""
  223. end
  224. return PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playnum)]
  225. end
  226. --带鬼数量
  227. function PdkRoomViewConfig.getGuiCount( gameInfo )
  228. local data = json.decode(gameInfo)
  229. if data == nil then
  230. return ""
  231. end
  232. return PdkRoomViewConfig.RoonInfoConfig.gui[tonumber(data.jokerCount)]
  233. end
  234. --颗数
  235. function PdkRoomViewConfig.getKeCount( gameInfo )
  236. local data = json.decode(gameInfo)
  237. if data == nil then
  238. return ""
  239. end
  240. return PdkRoomViewConfig.RoonInfoConfig.keshu[tonumber(data.keCount)]
  241. end
  242. function PdkRoomViewConfig.getWanfa( gameInfo )
  243. local data = json.decode(gameInfo)
  244. if data == nil then
  245. return ""
  246. end
  247. return PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)]
  248. end
  249. --[[获取房间详情字符串--]]
  250. function PdkRoomViewConfig.getRuleString(gameInfo)
  251. -- local gameInfo = app.room:getRoomInfo().nGameInfo
  252. local data = json.decode(gameInfo)
  253. if data == nil then
  254. return ""
  255. end
  256. local rule = tonumber(data.specialRule)
  257. local ruleStr = ""
  258. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.play[tonumber(data.gamerule)].." "
  259. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playnum)].." "
  260. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.gui[tonumber(data.jokerCount)].." "
  261. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.keshu[tonumber(data.keCount)].." "
  262. if data.baseMulti and data.baseMulti > 0 then
  263. ruleStr = ruleStr .. "积分倍数x" .. data.baseMulti .. " "
  264. end
  265. if data.forbidProp and data.forbidProp > 0 then
  266. ruleStr = ruleStr .. "屏蔽快捷语与道具" .. " "
  267. end
  268. if data.forbidVoice and data.forbidVoice > 0 then
  269. ruleStr = ruleStr .. "屏蔽语音" .. " "
  270. end
  271. --[[if data.allowPass and data.allowPass >= 0 then
  272. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)]..","
  273. end--]]
  274. if getNumBand(rule, 0x0001)>0 then
  275. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].." "
  276. end
  277. if getNumBand(rule, 0x0002)>0 then
  278. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].." "
  279. end
  280. if getNumBand(rule, 0x0004)>0 then
  281. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].." "
  282. end
  283. if getNumBand(rule, 0x0008)>0 then
  284. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0008]..","
  285. end
  286. if getNumBand(rule, 0x0010)>0 then
  287. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0010].." "
  288. end
  289. if getNumBand(rule, 0x0020)>0 then
  290. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0020].." "
  291. end
  292. if getNumBand(rule, 0x0040)>0 then
  293. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0040].." "
  294. end
  295. if getNumBand(rule, 0x0080)>0 then
  296. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0080].." "
  297. end
  298. if string.len(ruleStr) > 0 then
  299. ruleStr = string.sub(ruleStr, 1, string.len(ruleStr)-1)
  300. end
  301. return ruleStr
  302. end
  303. function PdkRoomViewConfig.getRuleString2(gameInfo)
  304. -- local gameInfo = app.room:getRoomInfo().nGameInfo
  305. local data = json.decode(gameInfo)
  306. if data == nil then
  307. return ""
  308. end
  309. local rule = tonumber(data.specialRule)
  310. local ruleStr = ""
  311. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.play[tonumber(data.gamerule)].."、"
  312. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playnum)].."、"
  313. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.gui[tonumber(data.jokerCount)].."、"
  314. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.keshu[tonumber(data.keCount)].."、"
  315. if data.baseMulti and data.baseMulti > 0 then
  316. ruleStr = ruleStr .. "积分倍数x" .. data.baseMulti .. "、"
  317. end
  318. if data.forbidProp and data.forbidProp > 0 then
  319. ruleStr = ruleStr .. "屏蔽聊天与互动道具" .. "、"
  320. end
  321. if getNumBand(rule, 0x0001)>0 then
  322. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].. "、"
  323. end
  324. if getNumBand(rule, 0x0002)>0 then
  325. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].. "、"
  326. end
  327. if getNumBand(rule, 0x0004)>0 then
  328. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].. "、"
  329. end
  330. if getNumBand(rule, 0x0008)>0 then
  331. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0008]
  332. end
  333. return ruleStr
  334. end
  335. function PdkRoomViewConfig.getWanfaTab(strGameInfo)
  336. local data = json.decode(strGameInfo)
  337. local rule = tonumber(data.specialRule)
  338. local rules = {}
  339. table.insert(rules,PdkRoomViewConfig.getPayInfo(strGameInfo))
  340. table.insert(rules,PdkRoomViewConfig.getRoundCount(strGameInfo))
  341. table.insert(rules,PdkRoomViewConfig.getGuiCount(strGameInfo))
  342. table.insert(rules,PdkRoomViewConfig.getKeCount(strGameInfo))
  343. if data.baseMulti and data.baseMulti > 0 then
  344. table.insert(rules, "积分倍数x" .. data.baseMulti)
  345. end
  346. if data.forbidProp and data.forbidProp > 0 then
  347. table.insert(rules, "屏蔽快捷语与道具")
  348. end
  349. if data.forbidVoice and data.forbidVoice > 0 then
  350. table.insert(rules, "屏蔽语音")
  351. end
  352. --table.insert(rules,PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)])
  353. if getNumBand(rule, 0x0001)>0 then
  354. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0001])
  355. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].. "、"
  356. end
  357. if getNumBand(rule, 0x0002)>0 then
  358. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0002])
  359. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].. "、"
  360. end
  361. if getNumBand(rule, 0x0004)>0 then
  362. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0004])
  363. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].. "、"
  364. end
  365. if getNumBand(rule, 0x0008)>0 then
  366. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0008])
  367. end
  368. return rules
  369. end
  370. function PdkRoomViewConfig.getClubInviteWanFa(gameId, roomInfo)
  371. local data = json.decode(roomInfo.nGameInfo or "")
  372. if data == nil then
  373. return ""
  374. end
  375. local gamerule = data.gamerule -- 玩法
  376. local roundCount = roomInfo.nTotalGameNum -- 局数
  377. local gameConfig = getSubGameConfig(gameId)
  378. local gameType = gameConfig.GameType or {}
  379. local content = string.format("%s局 %s", roundCount, gameType[gamerule] or gameConfig.gameName)
  380. return content
  381. end
  382. return PdkRoomViewConfig