您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

450 行
14 KiB

  1. local PdkRoomViewConfig = {}
  2. local gameConfig = getSubGameConfig(GAME_IDS.hejiangPaoDeKuai)
  3. local PDKDefine = require("luaScript.SubGameDefine.Poker.hejiangPdkWanFa")
  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. THREE_AND_ONE = 80, --//三带一
  156. SPRING_HUA = 99, -- 春天花
  157. NONE = 100, --不适用类型
  158. }
  159. -- 游戏桌子状态
  160. PdkRoomViewConfig.GameStatus = {
  161. GAME_STATE_INIT =0, --//游戏准备状态
  162. GAME_STATE_SEND_HAND_CARD =1, --//发牌
  163. GAME_STATE_OUT_CARD =2, --//打牌
  164. GAME_STATE_ROUND_OVER =3, --//游戏一局结束
  165. GAME_STATE_GAME_OVER =4, --//游戏结束
  166. }
  167. -- 创建房间参数
  168. PdkRoomViewConfig.CreateParams = {
  169. 0x0001, --记牌器
  170. 0x0002, --有大必打
  171. }
  172. PdkRoomViewConfig.CreateParamsMean = PDKDefine.CreateParamsMean
  173. PdkRoomViewConfig.RoonInfoConfig = {
  174. play = PDKDefine.GameTypesStr,
  175. num = PDKDefine.GamePlayerCount,
  176. wanfa = PDKDefine.GameWanfa,
  177. gui = PDKDefine.GameGui,
  178. keshu = PDKDefine.GameKeShu,
  179. tieyixian = PDKDefine.GameTieYiXian,
  180. sandaiyi = PDKDefine.GameSanDaiYi,
  181. }
  182. PdkRoomViewConfig.InviteConfig = {
  183. [2] = {
  184. [0] = "零缺二",
  185. [1] = "一缺一",
  186. [2] = "",
  187. },
  188. [3] = {
  189. [0] = "零缺三",
  190. [1] = "一缺二",
  191. [2] = "二缺一",
  192. [3] = "",
  193. },
  194. [4] = {
  195. [0] = "零缺四",
  196. [1] = "一缺三",
  197. [2] = "二缺二",
  198. [3] = "三缺一",
  199. [4] = "",
  200. }
  201. }
  202. --[[
  203. print("------------rule--------", getNumBand(rule, 0x0001))
  204. print("------------rule--------", getNumBand(rule, 0x0002))
  205. print("------------rule--------", getNumBand(rule, 0x0004))
  206. print("------------rule--------", getNumBand(rule, 0x0008))
  207. print("------------rule--------", getNumBand(rule, 0x0010))
  208. print("------------rule--------", getNumBand(rule, 0x0020))
  209. print("------------rule--------", getNumBand(rule, 0x0040))
  210. ]]
  211. PdkRoomViewConfig.PayConfig = {
  212. [0] = "房主付费",
  213. [1] = "AA支付"
  214. }
  215. function PdkRoomViewConfig.getPayInfo( gameInfo )
  216. local data = json.decode(gameInfo)
  217. if data == nil then
  218. return ""
  219. end
  220. return PdkRoomViewConfig.PayConfig[tonumber(data.deductRule)]
  221. end
  222. function PdkRoomViewConfig.getRoundCount( gameInfo )
  223. local data = json.decode(gameInfo)
  224. if data == nil then
  225. return ""
  226. end
  227. return PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playnum)]
  228. end
  229. --带鬼数量
  230. function PdkRoomViewConfig.getGuiCount( gameInfo )
  231. local data = json.decode(gameInfo)
  232. if data == nil then
  233. return ""
  234. end
  235. return PdkRoomViewConfig.RoonInfoConfig.gui[tonumber(data.jokerCount)]
  236. end
  237. --颗数
  238. function PdkRoomViewConfig.getKeCount( gameInfo )
  239. local data = json.decode(gameInfo)
  240. if data == nil then
  241. return ""
  242. end
  243. return PdkRoomViewConfig.RoonInfoConfig.keshu[tonumber(data.keCount)]
  244. end
  245. --末手三带一
  246. function PdkRoomViewConfig.getSanDaiYi( gameInfo )
  247. local data = json.decode(gameInfo)
  248. if data == nil then
  249. return ""
  250. end
  251. return PdkRoomViewConfig.RoonInfoConfig.sandaiyi[tonumber(data.endsandaiyi)]
  252. end
  253. --铁一线
  254. function PdkRoomViewConfig.getTieYiXian( gameInfo )
  255. local data = json.decode(gameInfo)
  256. if data == nil or data.tieyixian == 0 then
  257. return nil
  258. end
  259. return PdkRoomViewConfig.RoonInfoConfig.tieyixian[tonumber(data.tieyixian)]
  260. end
  261. function PdkRoomViewConfig.getWanfa( gameInfo )
  262. local data = json.decode(gameInfo)
  263. if data == nil then
  264. return ""
  265. end
  266. return PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)]
  267. end
  268. --[[获取房间详情字符串--]]
  269. function PdkRoomViewConfig.getRuleString(gameInfo)
  270. -- local gameInfo = app.room:getRoomInfo().nGameInfo
  271. local data = json.decode(gameInfo)
  272. if data == nil then
  273. return ""
  274. end
  275. local rule = tonumber(data.specialRule)
  276. local ruleStr = ""
  277. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.play[tonumber(data.gamerule)].." "
  278. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playnum)].." "
  279. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.gui[tonumber(data.jokerCount)].." "
  280. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.keshu[tonumber(data.keCount)].." "
  281. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.sandaiyi[tonumber(data.endsandaiyi)].." "
  282. if data.tieyixian > 0 then
  283. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.tieyixian[tonumber(data.tieyixian)].." "
  284. end
  285. if data.baseMulti and data.baseMulti > 0 then
  286. ruleStr = ruleStr .. "积分倍数x" .. data.baseMulti .. " "
  287. end
  288. -- if data.forbidProp and data.forbidProp > 0 then
  289. -- ruleStr = ruleStr .. "屏蔽聊天与互动道具 "
  290. -- end
  291. if data.forbidProp and data.forbidProp > 0 then
  292. ruleStr = ruleStr .. "屏蔽快捷语与道具" .. " "
  293. end
  294. if data.forbidVoice and data.forbidVoice > 0 then
  295. ruleStr = ruleStr .. "屏蔽语音" .. " "
  296. end
  297. --[[if data.allowPass and data.allowPass >= 0 then
  298. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)]..","
  299. end--]]
  300. if getNumBand(rule, 0x0001)>0 then
  301. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].." "
  302. end
  303. if getNumBand(rule, 0x0002)>0 then
  304. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].." "
  305. end
  306. if getNumBand(rule, 0x0004)>0 then
  307. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].." "
  308. end
  309. -- if getNumBand(rule, 0x0008)>0 then
  310. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0008]..","
  311. -- end
  312. if getNumBand(rule, 0x0010)>0 then
  313. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0010].." "
  314. end
  315. if getNumBand(rule, 0x0020)>0 then
  316. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0020].." "
  317. end
  318. if getNumBand(rule, 0x0040)>0 then
  319. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0040].." "
  320. end
  321. if getNumBand(rule, 0x0080)>0 then
  322. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0080].." "
  323. end
  324. if string.len(ruleStr) > 0 then
  325. ruleStr = string.sub(ruleStr, 1, string.len(ruleStr)-1)
  326. end
  327. return ruleStr
  328. end
  329. function PdkRoomViewConfig.getRuleString2(gameInfo)
  330. -- local gameInfo = app.room:getRoomInfo().nGameInfo
  331. local data = json.decode(gameInfo)
  332. if data == nil then
  333. return ""
  334. end
  335. local rule = tonumber(data.specialRule)
  336. local ruleStr = ""
  337. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.play[tonumber(data.gamerule)].."、"
  338. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playnum)].."、"
  339. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.gui[tonumber(data.jokerCount)].."、"
  340. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.keshu[tonumber(data.keCount)].."、"
  341. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.sandaiyi[tonumber(data.endsandaiyi)].."、"
  342. if data.tieyixian > 0 then
  343. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.tieyixian[tonumber(data.tieyixian)].."、"
  344. end
  345. if data.baseMulti and data.baseMulti > 0 then
  346. ruleStr = ruleStr .. "积分倍数x" .. data.baseMulti .. " "
  347. end
  348. -- if data.forbidProp and data.forbidProp > 0 then
  349. -- ruleStr = ruleStr .. "屏蔽聊天与互动道具" .. " "
  350. -- end
  351. if data.forbidProp and data.forbidProp > 0 then
  352. ruleStr = ruleStr .. "屏蔽快捷语与道具" .. " "
  353. end
  354. if data.forbidVoice and data.forbidVoice > 0 then
  355. ruleStr = ruleStr .. "屏蔽语音" .. " "
  356. end
  357. if getNumBand(rule, 0x0001)>0 then
  358. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].. "、"
  359. end
  360. if getNumBand(rule, 0x0002)>0 then
  361. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002]
  362. end
  363. --if getNumBand(rule, 0x0004)>0 then
  364. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].. "、"
  365. --end
  366. return ruleStr
  367. end
  368. function PdkRoomViewConfig.getWanfaTab(strGameInfo)
  369. local data = json.decode(strGameInfo)
  370. local rule = tonumber(data.specialRule)
  371. local rules = {}
  372. table.insert(rules,PdkRoomViewConfig.getPayInfo(strGameInfo))
  373. table.insert(rules,PdkRoomViewConfig.getRoundCount(strGameInfo))
  374. table.insert(rules,PdkRoomViewConfig.getGuiCount(strGameInfo))
  375. table.insert(rules,PdkRoomViewConfig.getKeCount(strGameInfo))
  376. table.insert(rules,PdkRoomViewConfig.getSanDaiYi(strGameInfo))
  377. table.insert(rules,PdkRoomViewConfig.getTieYiXian(strGameInfo))
  378. if data.baseMulti and data.baseMulti > 0 then
  379. table.insert(rules, "积分倍数x" .. data.baseMulti)
  380. end
  381. -- if data.forbidProp and data.forbidProp > 0 then
  382. -- table.insert(rules, "屏蔽聊天与互动道具")
  383. -- end
  384. if data.forbidProp and data.forbidProp > 0 then
  385. table.insert(rules, "屏蔽快捷语与道具")
  386. end
  387. if data.forbidVoice and data.forbidVoice > 0 then
  388. table.insert(rules, "屏蔽语音")
  389. end
  390. --table.insert(rules,PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)])
  391. if getNumBand(rule, 0x0001)>0 then
  392. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0001])
  393. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].. "、"
  394. end
  395. if getNumBand(rule, 0x0002)>0 then
  396. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0002])
  397. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].. "、"
  398. end
  399. --[[if getNumBand(rule, 0x0004)>0 then
  400. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0004])
  401. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].. "、"
  402. end--]]
  403. return rules
  404. end
  405. function PdkRoomViewConfig.getClubInviteWanFa(gameId, roomInfo)
  406. local data = json.decode(roomInfo.nGameInfo or "")
  407. if data == nil then
  408. return ""
  409. end
  410. local gamerule = data.gamerule -- 玩法
  411. local roundCount = roomInfo.nTotalGameNum -- 局数
  412. local gameConfig = getSubGameConfig(gameId)
  413. local gameType = gameConfig.GameType or {}
  414. local content = string.format("%s局 %s", roundCount, gameType[gamerule] or gameConfig.gameName)
  415. return content
  416. end
  417. return PdkRoomViewConfig