Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

307 rader
12 KiB

  1. local MahjongConfig = require("mj_huamajiang.luaScript.Views.Configs.huamajiangMahjongConfig")
  2. local EventConfig = require("mj_huamajiang.luaScript.Views.Configs.huamajiangEventConfig")
  3. local huamajiangDefine= require("mj.luaScript.MJDefine")
  4. huamajiangDefine.GameID = 43
  5. huamajiangDefine.IS_NEW_3D = true
  6. -- 游戏事件
  7. for k, v in pairs(EventConfig or {}) do
  8. huamajiangDefine.MJEvent[k] = v;
  9. end
  10. -- 麻将牌配置
  11. for k, v in pairs(MahjongConfig or {}) do
  12. huamajiangDefine[k] = v;
  13. end
  14. --红中是否参与碰杠
  15. huamajiangDefine.isTieGui = true
  16. --发牌是否自动对齐
  17. huamajiangDefine.isAutomatic = true
  18. --发牌时有操作可以出牌,并发送过操作
  19. huamajiangDefine.outCardSendGuo = false
  20. huamajiangDefine.isReady = false
  21. huamajiangDefine.isSendGuo = false
  22. huamajiangDefine.isLanguage = true
  23. --出牌速度
  24. huamajiangDefine.MJ_TIME_OUT_CARD=0
  25. huamajiangDefine.MJ_TIME_OUT_CARD_SCALE=0
  26. huamajiangDefine.MJ_TIME_OUT_CARD_WAIT=0.3
  27. huamajiangDefine.MJ_OUT_CARD_SCALE=0.5
  28. huamajiangDefine.CHANGE_GAME_BG =
  29. {
  30. [3] = {
  31. ['2d'] = "mj/res/ui/zy_fangjian/mj_2d_bg_lan.jpg",
  32. ['3d'] = "mj_huamajiang/res/zy_fangjian/desktop_bg/huamajiang_3d_bg.jpg",
  33. },
  34. [2] = {
  35. ['2d'] = "mj_huamajiang/res/zy_fangjian/desktop_bg/huamajiang_jingdian_2d.jpg",
  36. ['3d'] = "mj_huamajiang/res/zy_fangjian/desktop_bg/huamajiang_jingdian_25d.jpg",
  37. },
  38. [1] = {
  39. ['2d'] = "mj/res/ui/zy_fangjian/mj_2d_bg_zong.jpg",
  40. ['3d'] = "mj_huamajiang/res/zy_fangjian/desktop_bg/huamajiang_shishang_25d.jpg",
  41. },
  42. }
  43. -- 游戏状态
  44. huamajiangDefine.GameStatus={
  45. GAME_STATUS_INIT = 0, --//初始状态
  46. GAME_STATUS_WAIT_BANKER_START = 1, --//等待庄家开始游戏
  47. GAME_STATUS_SHUFFLE = 2, --//洗牌中即定庄与开打之间的状态
  48. GAME_STATUS_GANG_AFTER = 3, --//杠完牌之后
  49. GAME_STATUS_WAIT_OUT_CARD = 4, --//等待玩家出牌
  50. GAME_STATUS_WAIT_OPERATE = 5, --//等待玩家操作
  51. GAME_STATUS_WAIT_QIANG_GANG_HU = 6, --//等待抢杠胡
  52. GAME_STATUS_WAIT_SWAP_CARDS = 7, --//等待玩家换牌
  53. GAME_STATUS_ROUND_OVER = 9, --//小局结束
  54. GAME_STATUS_GAME_OVER = 10,--//总结算
  55. GAME_STATUS_WAIT_BAO_PAI = 11, --//等待闲家爆牌
  56. GAME_STATUS_WAIT_PIAO = 12, --//等待玩家飘操作
  57. }
  58. huamajiangDefine.MJOperateType={
  59. OPREATE_CANCEL = 0x0000, -- 没有任何操作
  60. OPREATE_CHUPAI = 0x0001, -- 出牌
  61. OPREATE_CHI = 0x0002, -- 吃操作
  62. OPREATE_PENG = 0x0004, -- 碰操作
  63. OPREATE_ZHIGANG = 0x0008, -- 直杠操作
  64. OPREATE_BAGANG = 0x0010, -- 巴杠
  65. OPREATE_ANGANG = 0x0020, -- 暗杠
  66. OPREATE_DIANPAOHU = 0x0040, -- 点炮胡牌
  67. OPREATE_ZIMOHU = 0x0080, -- 自胡牌
  68. OPREATE_GUOSHOUGANG = 0x0100, -- 过手杠 只做标识,操作值不会有
  69. OPREATE_MINGGANG = 0x0200, -- 明杠
  70. OPREATE_QIANG_GANG_HU = 0x0400, -- 抢杠胡
  71. }
  72. huamajiangDefine.MJOperateImage={
  73. [huamajiangDefine.MJOperateType.OPREATE_CANCEL]="mj/res/ui/zy_fangjian/operate/mj_btn_guo.png",
  74. [huamajiangDefine.MJOperateType.OPREATE_CHI]="mj/res/ui/zy_fangjian/operate/mj_btn_chi.png",
  75. [huamajiangDefine.MJOperateType.OPREATE_PENG]="mj/res/ui/zy_fangjian/operate/mj_btn_peng.png",
  76. [huamajiangDefine.MJOperateType.OPREATE_ZHIGANG]="mj/res/ui/zy_fangjian/operate/mj_btn_gang.png",
  77. [huamajiangDefine.MJOperateType.OPREATE_BAGANG]="mj/res/ui/zy_fangjian/operate/mj_btn_gang.png",
  78. [huamajiangDefine.MJOperateType.OPREATE_ANGANG]="mj/res/ui/zy_fangjian/operate/mj_btn_gang.png",
  79. [huamajiangDefine.MJOperateType.OPREATE_DIANPAOHU]="mj/res/ui/zy_fangjian/operate/mj_btn_hu.png",
  80. [huamajiangDefine.MJOperateType.OPREATE_ZIMOHU]="mj/res/ui/zy_fangjian/operate/mj_btn_hu.png",
  81. [huamajiangDefine.MJOperateType.OPREATE_QIANG_GANG_HU]="mj/res/ui/zy_fangjian/operate/mj_btn_qiang_gang_hu.png",
  82. }
  83. huamajiangDefine.MJGameHuType={
  84. HU_ZIMO = 1, -- 自摸
  85. HU_DIANPAO = 2, -- 点炮胡
  86. HU_QIANGGANG = 3, -- 抢杠胡
  87. }
  88. huamajiangDefine.MJGamePaiType = {
  89. PING_HU = 0x0001, -- 平胡
  90. QING_YI_SE = 0x0002, -- 清一色
  91. DUI_DUI_HU = 0x0004, -- 大对子
  92. QI_DUI = 0x0008, -- 七对胡
  93. DI_HU = 0x0010, -- 地胡
  94. TIAN_HU = 0x0020, -- 天胡
  95. GANG_SHANG_HUA = 0x0040, -- 杠上花
  96. GANG_SHANG_PAO = 0x0080, -- 杠上炮
  97. QIANG_GANG_HU = 0x0100, -- 抢杠胡
  98. KA_ER_TIAO = 0x0200, -- 卡二条
  99. BAO_PAI = 0x0400, -- 报牌
  100. BO_ZI_MO = 0x0800, -- 博自摸
  101. JINGGOUDIAO = 0x1000, -- 金钩钓
  102. HAI_DI_HU = 0x2000, -- 双龙七对
  103. HAI_DI_PAO = 0x4000, -- 三龙七对
  104. LONG_QI_DUI_SC = 0x8000, -- 龙七对
  105. SHA_BAO = 0x10000, -- 杀报
  106. SHA_DU_ZI_MO = 0x20000, -- 杀博自摸
  107. DIAN_GANG_HUA = 0x40000, -- 点杠花
  108. }
  109. huamajiangDefine.MJGameHuStr = {
  110. [huamajiangDefine.MJGamePaiType.PING_HU] = "平胡",
  111. [huamajiangDefine.MJGamePaiType.QING_YI_SE] = "清一色",
  112. [huamajiangDefine.MJGamePaiType.DUI_DUI_HU] = "大对子",
  113. [huamajiangDefine.MJGamePaiType.QI_DUI] = "七对胡",
  114. [huamajiangDefine.MJGamePaiType.DI_HU] = "地胡",
  115. [huamajiangDefine.MJGamePaiType.TIAN_HU] = "天胡",
  116. [huamajiangDefine.MJGamePaiType.GANG_SHANG_HUA] = "杠上花",
  117. [huamajiangDefine.MJGamePaiType.GANG_SHANG_PAO] = "杠上炮",--"杠上炮"
  118. [huamajiangDefine.MJGamePaiType.QIANG_GANG_HU] = "抢杠胡",
  119. [huamajiangDefine.MJGamePaiType.KA_ER_TIAO] = "卡二条",
  120. [huamajiangDefine.MJGamePaiType.BAO_PAI] = "报牌",
  121. [huamajiangDefine.MJGamePaiType.BO_ZI_MO] = "博自摸",
  122. [huamajiangDefine.MJGamePaiType.JINGGOUDIAO] = "金钩钓",
  123. [huamajiangDefine.MJGamePaiType.HAI_DI_HU] = "双龙七对",
  124. [huamajiangDefine.MJGamePaiType.HAI_DI_PAO] = "三龙七对",
  125. [huamajiangDefine.MJGamePaiType.LONG_QI_DUI_SC] = "龙七对",
  126. [huamajiangDefine.MJGamePaiType.SHA_BAO] = "杀报",
  127. [huamajiangDefine.MJGamePaiType.SHA_DU_ZI_MO] = "杀博自摸",
  128. [huamajiangDefine.MJGamePaiType.DIAN_GANG_HUA] = "点杠花",
  129. }
  130. --合并字符
  131. huamajiangDefine.MJGameHuMargeTab = {
  132. {tab={"清一色","七对胡","1归"},name="清龙七对"},
  133. {tab={"清一色","七对胡","2归"},name="清双龙七对"},
  134. {tab={"清一色","七对胡","3归"},name="清三龙七对"},
  135. {tab={"清一色","大对子"},name="清大对"},
  136. {tab={"清一色","七对胡"},name="清七对"},
  137. {tab={"1归","七对胡"},name="龙七对"},
  138. {tab={"2归","七对胡"},name="双龙七对"},
  139. {tab={"3归","七对胡"},name="三龙七对"},
  140. }
  141. huamajiangDefine.MJGameChatTxt = {
  142. [1] = "哎呀,咋子比乌龟还慢嘛!",
  143. [2] = "今天好霉,下手不要那么重嘛!",
  144. [3] = "快点快点,不要打酱油咯!",
  145. [4] = "你弹簧手是不是,快点出!",
  146. [5] = "你是想哭都哭不出来!",
  147. [6] = "你太牛了,必须点个赞!",
  148. [7] = "菩萨菩萨,来个卡卡!",
  149. [8] = "万水千山总是情,多输一点行不行!",
  150. [9] = "我的妈呀,不要摸啊!",
  151. [10] = "我的牌打的太好了!",
  152. }
  153. -- oggFile<$>mj_huamajiang/res/sound/f_man/f_huamajiang_1_text_5.ogg<$>string
  154. huamajiangDefine.MJChatTxt = {
  155. [1] = {txt="哎呀,咋子比乌龟还慢嘛!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_1.ogg"},
  156. [2] = {txt="今天好霉,下手不要那么重嘛!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_2.ogg"},
  157. [3] = {txt="快点快点,不要打酱油咯!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_3.ogg"},
  158. [4] = {txt="你弹簧手是不是,快点出!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_4.ogg"},
  159. [5] = {txt="你是想哭都哭不出来!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_5.ogg"},
  160. [6] = {txt="你太牛了,必须点个赞!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_6.ogg"},
  161. [7] = {txt="菩萨菩萨,来个卡卡!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_7.ogg"},
  162. [8] = {txt="万水千山总是情,多输一点行不行!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_8.ogg"},
  163. [9] = {txt="我的妈呀,不要摸啊!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_9.ogg"},
  164. [10] = {txt="我的牌打的太好了!",oggStandard="mj_huamajiang/res/sound/f_%s/f_huamajiang_%s_text_10.ogg"},
  165. }
  166. huamajiangDefine.LuoBoPos = {
  167. [1] = {[1] = cc.p(getWinSize().width/2,getWinSize().height/2-40)},
  168. [2] = {[1] = cc.p(getWinSize().width/2-50,getWinSize().height/2),[2] = cc.p(getWinSize().width/2+50,getWinSize().height/2)},
  169. }
  170. huamajiangDefine.MJGroupType={
  171. Chi=1,
  172. Peng=2,
  173. Gang=3,
  174. AnGang=4,
  175. BaGang = 5,
  176. }
  177. --操作值映射到实际显示麻将组类型
  178. huamajiangDefine.MJOperateToGroupType={
  179. [huamajiangDefine.MJOperateType.OPREATE_CHI]=huamajiangDefine.MJGroupType.Chi,
  180. [huamajiangDefine.MJOperateType.OPREATE_PENG]=huamajiangDefine.MJGroupType.Peng,
  181. [huamajiangDefine.MJOperateType.OPREATE_ZHIGANG]=huamajiangDefine.MJGroupType.Gang,
  182. [huamajiangDefine.MJOperateType.OPREATE_BAGANG]=huamajiangDefine.MJGroupType.BaGang,
  183. [huamajiangDefine.MJOperateType.OPREATE_GUOSHOUGANG]=huamajiangDefine.MJGroupType.Gang,
  184. [huamajiangDefine.MJOperateType.OPREATE_ANGANG]=huamajiangDefine.MJGroupType.AnGang,
  185. }
  186. --麻将出牌换行个数
  187. huamajiangDefine.MJChangeLinCount={
  188. [huamajiangDefine.DesktopType.TwoD]={
  189. [2]={
  190. [huamajiangDefine.PlayerViewType.My]=22,
  191. [huamajiangDefine.PlayerViewType.Left]=10,
  192. [huamajiangDefine.PlayerViewType.Right]=10,
  193. [huamajiangDefine.PlayerViewType.Top]=22,
  194. },
  195. [3]={
  196. [huamajiangDefine.PlayerViewType.My]=11,
  197. [huamajiangDefine.PlayerViewType.Left]=11,
  198. [huamajiangDefine.PlayerViewType.Right]=11,
  199. [huamajiangDefine.PlayerViewType.Top]=11,
  200. },
  201. [4]={
  202. [huamajiangDefine.PlayerViewType.My]=11,
  203. [huamajiangDefine.PlayerViewType.Left]=11,
  204. [huamajiangDefine.PlayerViewType.Right]=11,
  205. [huamajiangDefine.PlayerViewType.Top]=11,
  206. },
  207. },
  208. [huamajiangDefine.DesktopType.ThreeD]={
  209. [2]={
  210. [huamajiangDefine.PlayerViewType.My]=18,
  211. [huamajiangDefine.PlayerViewType.Left]=9,
  212. [huamajiangDefine.PlayerViewType.Right]=9,
  213. [huamajiangDefine.PlayerViewType.Top]=20,
  214. },
  215. [3]={
  216. [huamajiangDefine.PlayerViewType.My]=9,
  217. [huamajiangDefine.PlayerViewType.Left]=9,
  218. [huamajiangDefine.PlayerViewType.Right]=9,
  219. [huamajiangDefine.PlayerViewType.Top]=10,
  220. },
  221. [4]={
  222. [huamajiangDefine.PlayerViewType.My]=9,
  223. [huamajiangDefine.PlayerViewType.Left]=11,
  224. [huamajiangDefine.PlayerViewType.Right]=11,
  225. [huamajiangDefine.PlayerViewType.Top]=10,
  226. },
  227. },
  228. [huamajiangDefine.DesktopType.TwoDGold]={
  229. [2]={
  230. [huamajiangDefine.PlayerViewType.My]=22,
  231. [huamajiangDefine.PlayerViewType.Left]=10,
  232. [huamajiangDefine.PlayerViewType.Right]=10,
  233. [huamajiangDefine.PlayerViewType.Top]=22,
  234. },
  235. [3]={
  236. [huamajiangDefine.PlayerViewType.My]=11,
  237. [huamajiangDefine.PlayerViewType.Left]=11,
  238. [huamajiangDefine.PlayerViewType.Right]=11,
  239. [huamajiangDefine.PlayerViewType.Top]=11,
  240. },
  241. [4]={
  242. [huamajiangDefine.PlayerViewType.My]=11,
  243. [huamajiangDefine.PlayerViewType.Left]=11,
  244. [huamajiangDefine.PlayerViewType.Right]=11,
  245. [huamajiangDefine.PlayerViewType.Top]=11,
  246. },
  247. },
  248. }
  249. huamajiangDefine.ScoreAnimationPos = {
  250. [1] = { x = getWinSize().width - 180, y = getWinSize().height / 2 + 80},
  251. [2] = { x = getWinSize().width / 2 + 200, y = getWinSize().height - 120},
  252. [3] = { x = 180, y = getWinSize().height / 2 + 80},
  253. [4] = { x = 180, y = 150},
  254. };
  255. function loadMJConfig(desktopType)
  256. local AllMJConfigs = {
  257. [huamajiangDefine.DesktopType.ThreeD] = "mj_huamajiang.luaScript.Views.3d.MJConfig_3d",
  258. [huamajiangDefine.DesktopType.TwoD] = "mj_huamajiang.luaScript.Views.2d.MJConfig_2d",
  259. [huamajiangDefine.DesktopType.TwoDGold] = "mj_huamajiang.luaScript.Views.2d.MJConfig_2d_gold",
  260. }
  261. desktopType = desktopType or app.systemSetting.info.viewType
  262. if not desktopType then
  263. desktopType = huamajiangDefine.DesktopType.TwoD
  264. end
  265. -- 修复2d金黄切墨绿时,部分配置没有重写成功的bug
  266. package.loaded['mj.luaScript.Common.2d.CommonMahjongConfig'] = nil
  267. huamajiangDefine.MJConfig_3d = require(AllMJConfigs[huamajiangDefine.DesktopType.ThreeD])
  268. if desktopType ~= huamajiangDefine.DesktopType.ThreeD then
  269. huamajiangDefine.MJConfig_2d = require(AllMJConfigs[desktopType])
  270. else
  271. huamajiangDefine.MJConfig_2d = require(AllMJConfigs[huamajiangDefine.DesktopType.TwoD])
  272. end
  273. end
  274. huamajiangDefine.loadMJConfig = loadMJConfig
  275. loadMJConfig()
  276. return huamajiangDefine