local MahjongConfig = require("mj_yibinmajiang.luaScript.Views.Configs.yibinmajiangMahjongConfig") local EventConfig = require("mj_yibinmajiang.luaScript.Views.Configs.yibinmajiangEventConfig") local yibinmajiangDefine= require("mj.luaScript.MJDefine") yibinmajiangDefine.GameID = 43 yibinmajiangDefine.IS_NEW_3D = true -- 游戏事件 for k, v in pairs(EventConfig or {}) do yibinmajiangDefine.MJEvent[k] = v; end -- 麻将牌配置 for k, v in pairs(MahjongConfig or {}) do yibinmajiangDefine[k] = v; end --发牌是否自动对齐 yibinmajiangDefine.isAutomatic = true --发牌时有操作可以出牌,并发送过操作 yibinmajiangDefine.outCardSendGuo = false yibinmajiangDefine.isReady = false yibinmajiangDefine.isLanguage = true --触摸按钮的偏移量 yibinmajiangDefine.MJ_OPERATE_PADDING = 155 -- 麻将总牌数 yibinmajiangDefine.totalCard = 108 --出牌速度 yibinmajiangDefine.MJ_TIME_OUT_CARD=0 yibinmajiangDefine.MJ_TIME_OUT_CARD_SCALE=0 yibinmajiangDefine.MJ_TIME_OUT_CARD_WAIT=0.3 yibinmajiangDefine.MJ_OUT_CARD_SCALE=0.5 --抢断操作操作 yibinmajiangDefine.MJEvent.QiangDuanOperates = "MJEvent_QiangDuanOperates" yibinmajiangDefine.CHANGE_GAME_BG = { [3] = { ['2d'] = "mj/res/ui/zy_fangjian/mj_2d_bg_lan.jpg", ['3d'] = "mj/res/ui/zy_fangjian/room/room_bg/mj_room_bg_3d_jingdian.jpg", }, [2] = { ['2d'] = "mj_yibinmajiang/res/zy_fangjian/desktop_bg/yibinmajiang_jingdian_2d.jpg", ['3d'] = "mj/res/ui/zy_fangjian/room/room_bg/mj_room_bg_3d_molv.jpg", }, [1] = { ['2d'] = "mj/res/ui/zy_fangjian/mj_2d_bg_zong.jpg", ['3d'] = "mj_yibinmajiang/res/zy_fangjian/desktop_bg/yibinmajiang_shishang_25d.jpg", }, } -- 游戏状态 -- yibinmajiangDefine.GameStatus={ -- GAME_STATUS_INIT = 0, --//初始状态 -- GAME_STATUS_WAIT_BANKER_START = 1, --//等待庄家开始游戏 -- GAME_STATUS_SHUFFLE = 2, --//洗牌中即定庄与开打之间的状态 -- GAME_STATUS_GANG_AFTER = 3, --//杠完牌之后 -- GAME_STATUS_WAIT_OUT_CARD = 4, --//等待玩家出牌 -- GAME_STATUS_WAIT_OPERATE = 5, --//等待玩家操作 -- GAME_STATUS_WAIT_QIANG_GANG_HU = 6, --//等待抢杠胡 -- GAME_STATUS_ROUND_OVER = 9, --//小局结束 -- GAME_STATUS_GAME_OVER = 10,--//总结算 -- GAME_STATUS_WAIT_BAO_PAI = 11, --//等待闲家爆牌 -- GAME_STATUS_WAIT_PIAO = 12, --//等待玩家飘操作 -- } -- 游戏状态 yibinmajiangDefine.GameStatus={ GAME_STATUS_INIT = 0, --//初始状态 GAME_STATUS_WAIT_BANKER_START = 1, --//等待庄家开始游戏 GAME_STATUS_SHUFFLE = 2, --//洗牌中即定庄与开打之间的状态 GAME_STATUS_GANG_AFTER = 3, --//杠完牌之后 GAME_STATUS_WAIT_OUT_CARD = 4, --//等待玩家出牌 GAME_STATUS_WAIT_OPERATE = 5, --//等待玩家操作 GAME_STATUS_WAIT_QIANG_GANG_HU = 6, --//等待抢杠胡 GAME_STATUS_WAIT_SWAP_CARDS = 7, --//等待换牌 GAME_STATUS_WAIT_SELECT_QUE = 8, --//等待选缺 GAME_STATUS_ROUND_OVER = 9, --//小局结束 GAME_STATUS_GAME_OVER = 10,--//总结算 GAME_STATUS_WAIT_BAO_PAI = 11,--//等待闲家暴牌 GAME_STATUS_WAIT_PIAO = 12,--//等待玩家飘操作 } yibinmajiangDefine.MJOperateType={ OPREATE_CANCEL = 0x0000, -- 没有任何操作 OPREATE_CHUPAI = 0x0001, -- 出牌 OPREATE_CHI = 0x0002, -- 吃操作 OPREATE_FEI = 0x0004, -- 飞操作 OPREATE_PENG = 0x0008, -- 碰操作 OPREATE_TI = 0x0010, -- 提操作 OPREATE_ZHIGANG = 0x0020, -- 直杠操作 OPREATE_BAGANG = 0x0040, -- 巴杠 OPREATE_ANGANG = 0x0080, -- 暗杠 OPREATE_DIANPAOHU = 0x0100, -- 点炮胡牌 OPREATE_ZIMOHU = 0x0200, -- 自胡牌 OPREATE_GUOSHOUGANG = 0x0400, -- 过手杠 只做标识,操作值不会有 OPREATE_MINGGANG = 0x0800, -- 明杠 OPREATE_QIANG_GANG_HU = 0x1000, -- 抢杠胡 } yibinmajiangDefine.MJOperateNeedRemoveCard={ OPREATE_CHI = 0x0002, -- 吃操作 OPREATE_PENG = 0x0008, -- 碰操作 OPREATE_ZHIGANG = 0x0020, -- 直杠操作 OPREATE_FEI = 0x0004, -- 飞操作 -- OPREATE_BAGANG = 0x0010, -- 巴杠 --OPREATE_ANGANG = 0x0020, -- 暗杠 } yibinmajiangDefine.MJOperateImage={ [yibinmajiangDefine.MJOperateType.OPREATE_CANCEL]="mj/res/ui/zy_fangjian/operate/mj_btn_guo.png", [yibinmajiangDefine.MJOperateType.OPREATE_CHI]="mj/res/ui/zy_fangjian/operate/mj_btn_chi.png", [yibinmajiangDefine.MJOperateType.OPREATE_PENG]="mj/res/ui/zy_fangjian/operate/mj_btn_peng.png", [yibinmajiangDefine.MJOperateType.OPREATE_ZHIGANG]="mj/res/ui/zy_fangjian/operate/mj_btn_gang.png", [yibinmajiangDefine.MJOperateType.OPREATE_BAGANG]="mj/res/ui/zy_fangjian/operate/mj_btn_gang.png", [yibinmajiangDefine.MJOperateType.OPREATE_ANGANG]="mj/res/ui/zy_fangjian/operate/mj_btn_gang.png", [yibinmajiangDefine.MJOperateType.OPREATE_DIANPAOHU]="mj/res/ui/zy_fangjian/operate/mj_btn_hu.png", [yibinmajiangDefine.MJOperateType.OPREATE_ZIMOHU]="mj/res/ui/zy_fangjian/operate/mj_btn_hu.png", [yibinmajiangDefine.MJOperateType.OPREATE_QIANG_GANG_HU]="mj/res/ui/zy_fangjian/operate/mj_btn_qiang_gang_hu.png", [yibinmajiangDefine.MJOperateType.OPREATE_FEI]="mj_yibinmajiang/res/zy_fangjian/operate/yibinmajiang_operate_fei.png", [yibinmajiangDefine.MJOperateType.OPREATE_TI]="mj_yibinmajiang/res/zy_fangjian/operate/yibinmajiang_operate_ti.png", } yibinmajiangDefine.MJGameHuType={ HU_ZIMO = 1, -- 自摸 HU_DIANPAO = 2, -- 点炮胡 HU_QIANGGANG = 3, -- 抢杠胡 } yibinmajiangDefine.MJGamePaiType = { PING_HU = 0x0001, -- 平胡 QING_YI_SE = 0x0002, -- 清一色 DUI_DUI_HU = 0x0004, -- 对对胡 QI_DUI = 0x0008, -- 七对胡 DI_HU = 0x0010, -- 地胡 TIAN_HU = 0x0020, -- 天胡 GANG_SHANG_HUA = 0x0040, -- 杠上花 GANG_SHANG_PAO = 0x0080, -- 杠上炮 QIANG_GANG_HU = 0x0100, -- 抢杠胡 NO_LAIZI = 0x0200, -- 无听用胡牌 -- KA_ER_TIAO = 0x0200, -- 卡二条 -- BAO_PAI = 0x0400, -- 报牌 -- BO_ZI_MO = 0x0800, -- 博自摸 JINGGOUDIAO = 0x0400, -- 金钩钓 JINGGOUPAO = 0x0800, -- 金钩炮 QING_DUI = 0x1000, -- 清对 QING_QI_DUI = 0x2000, -- 清七对 LONG_QI_DUI = 0x4000, -- 龙七对 QING_LONG_QI_DUI = 0x8000, -- 清龙七对 -- HAI_DI_HU = 0x2000, -- 双龙七对(龙七对) -- HAI_DI_PAO = 0x4000, -- 三龙七对 -- LONG_QI_DUI_SC = 0x8000, -- 龙七对 -- SHA_BAO = 0x10000, -- 杀报 -- SHA_DU_ZI_MO = 0x20000, -- 杀博自摸 -- DIAN_GANG_HUA = 0x40000, -- 点杠花 } yibinmajiangDefine.MJGameHuStr = { [yibinmajiangDefine.MJGamePaiType.PING_HU] = "平胡", [yibinmajiangDefine.MJGamePaiType.QING_YI_SE] = "清一色", [yibinmajiangDefine.MJGamePaiType.DUI_DUI_HU] = "对对胡", [yibinmajiangDefine.MJGamePaiType.QI_DUI] = "七对", [yibinmajiangDefine.MJGamePaiType.DI_HU] = "地胡", [yibinmajiangDefine.MJGamePaiType.TIAN_HU] = "天胡", [yibinmajiangDefine.MJGamePaiType.GANG_SHANG_HUA] = "杠上花", [yibinmajiangDefine.MJGamePaiType.GANG_SHANG_PAO] = "杠上炮",--"杠上炮" [yibinmajiangDefine.MJGamePaiType.QIANG_GANG_HU] = "抢杠胡", [yibinmajiangDefine.MJGamePaiType.NO_LAIZI] = "无听用", -- [yibinmajiangDefine.MJGamePaiType.KA_ER_TIAO] = "卡二条", -- [yibinmajiangDefine.MJGamePaiType.BAO_PAI] = "报牌", -- [yibinmajiangDefine.MJGamePaiType.BO_ZI_MO] = "博自摸", [yibinmajiangDefine.MJGamePaiType.JINGGOUDIAO] = "金钩钓", [yibinmajiangDefine.MJGamePaiType.JINGGOUPAO] = "金钩炮", [yibinmajiangDefine.MJGamePaiType.QING_DUI] = "清对", [yibinmajiangDefine.MJGamePaiType.QING_QI_DUI] = "清七对", [yibinmajiangDefine.MJGamePaiType.LONG_QI_DUI] = "龙七对", [yibinmajiangDefine.MJGamePaiType.QING_LONG_QI_DUI] = "清龙七对", -- [yibinmajiangDefine.MJGamePaiType.HAI_DI_HU] = "双龙七对", -- [yibinmajiangDefine.MJGamePaiType.HAI_DI_PAO] = "三龙七对", -- [yibinmajiangDefine.MJGamePaiType.LONG_QI_DUI_SC] = "龙七对", -- [yibinmajiangDefine.MJGamePaiType.SHA_BAO] = "杀报", -- [yibinmajiangDefine.MJGamePaiType.SHA_DU_ZI_MO] = "杀博自摸", -- [yibinmajiangDefine.MJGamePaiType.DIAN_GANG_HUA] = "点杠花", } -- 胡牌子类型 yibinmajiangDefine.MJGameSubPaiType = { BEN_JIN_HU = 0x0001, -- 本金胡 JIE_BEN_JIN_HU = 0x0002, -- 接本金胡 } -- 胡牌子类型字段 yibinmajiangDefine.MJGameSubHuStr = { [yibinmajiangDefine.MJGameSubPaiType.BEN_JIN_HU] = "本金", [yibinmajiangDefine.MJGameSubPaiType.JIE_BEN_JIN_HU] = "接本金", } --合并字符(没用到。) yibinmajiangDefine.MJGameHuMargeTab = { {tab={"清一色","七对胡","1归"},name="清龙七对"}, {tab={"清一色","七对胡","2归"},name="清双龙七对"}, {tab={"清一色","七对胡","3归"},name="清三龙七对"}, {tab={"清一色","对对胡"},name="清大对"}, {tab={"清一色","七对胡"},name="清七对"}, {tab={"1归","七对胡"},name="龙七对"}, {tab={"2归","七对胡"},name="双龙七对"}, {tab={"3归","七对胡"},name="三龙七对"}, } yibinmajiangDefine.MJGameChatTxt = { [1] = "哎呀,咋子比乌龟还慢嘛!", [2] = "今天好霉,下手不要那么重嘛!", [3] = "快点快点,不要打酱油咯!", [4] = "你弹簧手是不是,快点出!", [5] = "你是想哭都哭不出来!", [6] = "你太牛了,必须点个赞!", [7] = "菩萨菩萨,来个卡卡!", [8] = "万水千山总是情,多输一点行不行!", [9] = "我的妈呀,不要摸啊!", [10] = "我的牌打的太好了!", } -- oggFile<$>mj_yibinmajiang/res/sound/f_man/f_yibinmajiang_1_text_5.ogg<$>string yibinmajiangDefine.MJChatTxt = { [1] = {txt="哎呀,咋子比乌龟还慢嘛!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_1.ogg"}, [2] = {txt="今天好霉,下手不要那么重嘛!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_2.ogg"}, [3] = {txt="快点快点,不要打酱油咯!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_3.ogg"}, [4] = {txt="你弹簧手是不是,快点出!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_4.ogg"}, [5] = {txt="你是想哭都哭不出来!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_5.ogg"}, [6] = {txt="你太牛了,必须点个赞!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_6.ogg"}, [7] = {txt="菩萨菩萨,来个卡卡!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_7.ogg"}, [8] = {txt="万水千山总是情,多输一点行不行!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_8.ogg"}, [9] = {txt="我的妈呀,不要摸啊!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_9.ogg"}, [10] = {txt="我的牌打的太好了!",oggStandard="mj_yibinmajiang/res/sound/f_%s/f_yibinmajiang_%s_text_10.ogg"}, } yibinmajiangDefine.MJGroupType={ Chi=1, Peng=2, Gang=3, AnGang=4, BaGang = 5, Fei = 6, -- 飞 Ti = 7, -- 提 } --操作值映射到实际显示麻将组类型 yibinmajiangDefine.MJOperateToGroupType={ [yibinmajiangDefine.MJOperateType.OPREATE_CHI]=yibinmajiangDefine.MJGroupType.Chi, [yibinmajiangDefine.MJOperateType.OPREATE_PENG]=yibinmajiangDefine.MJGroupType.Peng, [yibinmajiangDefine.MJOperateType.OPREATE_ZHIGANG]=yibinmajiangDefine.MJGroupType.Gang, [yibinmajiangDefine.MJOperateType.OPREATE_BAGANG]=yibinmajiangDefine.MJGroupType.BaGang, [yibinmajiangDefine.MJOperateType.OPREATE_GUOSHOUGANG]=yibinmajiangDefine.MJGroupType.Gang, [yibinmajiangDefine.MJOperateType.OPREATE_ANGANG]=yibinmajiangDefine.MJGroupType.AnGang, [yibinmajiangDefine.MJOperateType.OPREATE_FEI]=yibinmajiangDefine.MJGroupType.Fei, [yibinmajiangDefine.MJOperateType.OPREATE_TI]=yibinmajiangDefine.MJGroupType.Ti, } --麻将出牌换行个数 yibinmajiangDefine.MJChangeLinCount={ [yibinmajiangDefine.DesktopType.TwoD]={ [2]={ [yibinmajiangDefine.PlayerViewType.My]=22, [yibinmajiangDefine.PlayerViewType.Left]=10, [yibinmajiangDefine.PlayerViewType.Right]=10, [yibinmajiangDefine.PlayerViewType.Top]=22, }, [3]={ [yibinmajiangDefine.PlayerViewType.My]=11, [yibinmajiangDefine.PlayerViewType.Left]=11, [yibinmajiangDefine.PlayerViewType.Right]=11, [yibinmajiangDefine.PlayerViewType.Top]=11, }, [4]={ [yibinmajiangDefine.PlayerViewType.My]=11, [yibinmajiangDefine.PlayerViewType.Left]=11, [yibinmajiangDefine.PlayerViewType.Right]=11, [yibinmajiangDefine.PlayerViewType.Top]=11, }, }, [yibinmajiangDefine.DesktopType.ThreeD]={ [2]={ [yibinmajiangDefine.PlayerViewType.My]=18, [yibinmajiangDefine.PlayerViewType.Left]=9, [yibinmajiangDefine.PlayerViewType.Right]=9, [yibinmajiangDefine.PlayerViewType.Top]=20, }, [3]={ [yibinmajiangDefine.PlayerViewType.My]=9, [yibinmajiangDefine.PlayerViewType.Left]=9, [yibinmajiangDefine.PlayerViewType.Right]=9, [yibinmajiangDefine.PlayerViewType.Top]=10, }, [4]={ [yibinmajiangDefine.PlayerViewType.My]=9, [yibinmajiangDefine.PlayerViewType.Left]=11, [yibinmajiangDefine.PlayerViewType.Right]=11, [yibinmajiangDefine.PlayerViewType.Top]=10, }, }, [yibinmajiangDefine.DesktopType.TwoDGold]={ [2]={ [yibinmajiangDefine.PlayerViewType.My]=22, [yibinmajiangDefine.PlayerViewType.Left]=10, [yibinmajiangDefine.PlayerViewType.Right]=10, [yibinmajiangDefine.PlayerViewType.Top]=22, }, [3]={ [yibinmajiangDefine.PlayerViewType.My]=11, [yibinmajiangDefine.PlayerViewType.Left]=11, [yibinmajiangDefine.PlayerViewType.Right]=11, [yibinmajiangDefine.PlayerViewType.Top]=11, }, [4]={ [yibinmajiangDefine.PlayerViewType.My]=11, [yibinmajiangDefine.PlayerViewType.Left]=11, [yibinmajiangDefine.PlayerViewType.Right]=11, [yibinmajiangDefine.PlayerViewType.Top]=11, }, }, } yibinmajiangDefine.ScoreAnimationPos = { [1] = { x = getWinSize().width - 180, y = getWinSize().height / 2 + 80}, [2] = { x = getWinSize().width / 2 + 200, y = getWinSize().height - 120}, [3] = { x = 180, y = getWinSize().height / 2 + 80}, [4] = { x = 180, y = 150}, }; function loadMJConfig(desktopType) local AllMJConfigs = { [yibinmajiangDefine.DesktopType.ThreeD] = "mj_yibinmajiang.luaScript.Views.3d.MJConfig_3d", [yibinmajiangDefine.DesktopType.TwoD] = "mj_yibinmajiang.luaScript.Views.2d.MJConfig_2d", [yibinmajiangDefine.DesktopType.TwoDGold] = "mj_yibinmajiang.luaScript.Views.2d.MJConfig_2d_gold", } -- 需要清理一下2D package.loaded['mj.luaScript.Common.2d.CommonMahjongConfig'] = nil desktopType = desktopType or app.systemSetting.info.viewType if not desktopType then desktopType = yibinmajiangDefine.DesktopType.TwoD end yibinmajiangDefine.MJConfig_3d = require(AllMJConfigs[yibinmajiangDefine.DesktopType.ThreeD]) if desktopType ~= yibinmajiangDefine.DesktopType.ThreeD then yibinmajiangDefine.MJConfig_2d = require(AllMJConfigs[desktopType]) else yibinmajiangDefine.MJConfig_2d = require(AllMJConfigs[yibinmajiangDefine.DesktopType.TwoD]) end end yibinmajiangDefine.loadMJConfig = loadMJConfig -- 获得麻将的上下值 function yibinmajiangDefine.getPrevAndNextValue(cardValue) if not cardValue then return end local prevValue, nextValue = nil, nil local p = cardValue -1 local n = cardValue +1 -- 如果要求1筒的上值不是9筒,是9万,那么需要把注释全部打开 -- local function checkColor(colorValue) -- if colorValue > 2 then -- return 0 -- elseif colorValue < 0 then -- return 2 -- end -- return colorValue -- end -- 求上值 local color = math.floor(p / 0x10) local value = math.floor(p % 0x10) if value < 1 then value = 9 -- color = color - 1 -- color = checkColor(color) end prevValue = color * 16 + value -- 求下值 local color = math.floor(n / 0x10) local value = math.floor(n % 0x10) if value > 9 then value = 1 -- color = color + 1 -- color = checkColor(color) end nextValue = color * 16 + value return prevValue, nextValue end loadMJConfig() return yibinmajiangDefine