示例#1
0
    public override void execute()
    {
        JOIN_ROOM_RESULT result = (JOIN_ROOM_RESULT)(mResult.mValue);

        if (result == JOIN_ROOM_RESULT.JRR_SUCC)
        {
            UnityUtility.logInfo("加入房间成功, 房间ID:" + mRoomID);
            // 设置房间号和服务器中的位置
            CharacterMyself myself = mCharacterManager.getMyself();
            CharacterData   data   = myself.getCharacterData();
            data.mRoomID         = mRoomID.mValue;
            data.mServerPosition = (PLAYER_POSITION)mServerPosition.mValue;
            data.mBanker         = mBanker.mValue;

            // 进入麻将场景
            CommandGameSceneManagerEnter cmd = newCmd(out cmd);
            cmd.mSceneType = GAME_SCENE_TYPE.GST_MAHJONG;
            pushCommand(cmd, mGameSceneManager);

            // 进入麻将场景后,创建房间
            MahjongScene mahjongScene = mGameSceneManager.getCurScene() as MahjongScene;
            Room         room         = mahjongScene.createRoom(myself.getCharacterData().mRoomID);
            // 将自己加入房间
            CommandRoomJoin cmdJoin = newCmd(out cmdJoin);
            cmdJoin.mCharacter = myself;
            pushCommand(cmdJoin, room);
        }
        else
        {
            UnityUtility.logInfo("加入房间失败, 原因:" + result);
        }
    }
示例#2
0
文件: SCPlayerHu.cs 项目: microxw/MaQ
    public override void execute()
    {
        // 通知房间保存胡牌结果
        GameScene gameScene = mGameSceneManager.getCurScene();

        if (gameScene.getType() != GAME_SCENE_TYPE.GST_MAHJONG)
        {
            return;
        }
        MahjongScene mahjongScene = gameScene as MahjongScene;
        Room         room         = mahjongScene.getRoom();

        for (int i = 0; i < CommonDefine.MAX_PLAYER_COUNT - 1; ++i)
        {
            List <HU_TYPE> huList = new List <HU_TYPE>();
            for (int j = 0; j < CommonDefine.MAX_HU_COUNT; ++i)
            {
                HU_TYPE huType = (HU_TYPE)mHuList.mValue[i * CommonDefine.MAX_HU_COUNT + j];
                if (huType == HU_TYPE.HT_MAX)
                {
                    break;
                }
                huList.Add(huType);
            }
            if (huList.Count > 0)
            {
                CommandRoomPlayerHu cmdHu = mCommandSystem.newCmd <CommandRoomPlayerHu>();
                cmdHu.mHuList = huList;
                cmdHu.mPlayer = mCharacterManager.getCharacterByGUID(mHuPlayerGUID.mValue[i]);
                mCommandSystem.pushCommand(cmdHu, room);
            }
        }
    }
示例#3
0
    public override void execute()
    {
        GameScene gameScene = mGameSceneManager.getCurScene();

        if (gameScene.getSceneType() != GAME_SCENE_TYPE.GST_MAHJONG)
        {
            return;
        }
        MahjongScene mahjongScene = gameScene as MahjongScene;

        // 跳转到等待流程
        CommandGameSceneChangeProcedure cmdProcedure = newCmd(out cmdProcedure);

        cmdProcedure.mProcedure = PROCEDURE_TYPE.PT_MAHJONG_WAITING;
        pushCommand(cmdProcedure, mahjongScene);

        // 将自己加入房间
        CharacterMyself myself  = mCharacterManager.getMyself();
        CommandRoomJoin cmdJoin = newCmd(out cmdJoin);

        cmdJoin.mCharacter = myself;
        pushCommand(cmdJoin, mahjongScene.getRoom());

        CommandCharacterNotifyBanker cmdBanker = newCmd(out cmdBanker);

        cmdBanker.mBanker = mBanker.mValue;
        pushCommand(cmdBanker, myself);
    }
示例#4
0
    protected override void onExit(SceneProcedure nextProcedure)
    {
        LT.HIDE_LAYOUT(LAYOUT_TYPE.LT_GAME_ENDING);
        // 清空房间中所有玩家的麻将数据
        MahjongScene mahjongScene = mGameScene as MahjongScene;

        mahjongScene.getRoom().clearAllPlayerMahjongData();
    }
示例#5
0
    protected override void onInit(SceneProcedure lastProcedure, string intent)
    {
        // 游戏开始时取消所有玩家的准备标记
        MahjongScene mahjongScene = mGameScene as MahjongScene;
        Room         room         = mahjongScene.getRoom();
        Dictionary <int, Character> playerList = room.getPlayerList();

        foreach (var item in playerList)
        {
            item.Value.getCharacterData().mReady = false;
        }
    }
示例#6
0
    public override void execute()
    {
        GameScene gameScene = mGameSceneManager.getCurScene();

        if (gameScene.getSceneType() != GAME_SCENE_TYPE.GST_MAHJONG)
        {
            return;
        }
        MahjongScene mahjongScene      = gameScene as MahjongScene;
        Room         room              = mahjongScene.getRoom();
        CommandRoomMahjongPoolSize cmd = newCmd(out cmd);

        cmd.mCount = mCount.mValue;
        pushCommand(cmd, room);
    }
示例#7
0
    public override void execute()
    {
        Character player    = mCharacterManager.getCharacterByGUID(mPlayerGUID.mValue);
        GameScene gameScene = mGameSceneManager.getCurScene();

        if (gameScene.getType() != GAME_SCENE_TYPE.GST_MAHJONG)
        {
            return;
        }
        MahjongScene     mahjongScene = gameScene as MahjongScene;
        CommandRoomLeave cmdLeave     = mCommandSystem.newCmd <CommandRoomLeave>();

        cmdLeave.mCharacter = player;
        mCommandSystem.pushCommand(cmdLeave, mahjongScene.getRoom());
    }
示例#8
0
    public override void execute()
    {
        GameScene gameScene = mGameSceneManager.getCurScene();

        if (!gameScene.atProcedure(PROCEDURE_TYPE.PT_MAHJONG_WAITING))
        {
            return;
        }

        MahjongScene     mahjongScene = gameScene as MahjongScene;
        Room             room         = mahjongScene.getRoom();
        CommandRoomLeave cmdLeave     = newCmd(out cmdLeave);

        cmdLeave.mCharacter = mCharacterManager.getCharacter(mOtherPlayerGUID.mValue);
        pushCommand(cmdLeave, room);
    }
    protected override void onInit(SceneProcedure lastProcedure, string intent)
    {
        // 显示布局
        LayoutTools.SHOW_LAYOUT(LAYOUT_TYPE.LT_ALL_CHARACTER_INFO);
        LayoutTools.SHOW_LAYOUT(LAYOUT_TYPE.LT_MAHJONG_BACK_FRAME);
        LayoutTools.SHOW_LAYOUT(LAYOUT_TYPE.LT_MAHJONG_FRAME);

        // 通知房间开始等待玩家加入
        MahjongScene mahjongScene = mGameScene as MahjongScene;

        mahjongScene.getRoom().notifyStartWait();

        // 设置显示房间号
        CharacterMyself myself = mCharacterManager.getMyself();

        mScriptMahjongFrame.setRoomID(myself.getCharacterData().mRoomID);
        mScriptMahjongFrame.notifyInfo("正在等待其他玩家准备");
    }
示例#10
0
    public override void execute()
    {
        GameScene gameScene = mGameSceneManager.getCurScene();

        if (gameScene.getSceneType() != GAME_SCENE_TYPE.GST_MAHJONG)
        {
            return;
        }
        MahjongScene mahjongScene = gameScene as MahjongScene;

        // 销毁房间中的所有其他玩家和房间
        Room room = mahjongScene.getRoom();

        room.leaveAllRoomPlayer();
        // 进入到上一个场景
        CommandGameSceneManagerEnter cmdEnter = newCmd(out cmdEnter);

        cmdEnter.mSceneType = GAME_SCENE_TYPE.GST_MAIN;
        pushCommand(cmdEnter, mGameSceneManager);
    }
示例#11
0
    public override void execute()
    {
        GameScene gameScene = mGameSceneManager.getCurScene();

        if (!gameScene.atProcedure(PROCEDURE_TYPE.PT_MAHJONG_WAITING))
        {
            return;
        }
        MahjongScene    mahjongScene = gameScene as MahjongScene;
        Room            room         = mahjongScene.getRoom();
        Character       player       = mCharacterManager.getCharacter(mOtherPlayerGUID.mValue);
        CommandRoomJoin cmdJoin      = mCommandSystem.newCmd <CommandRoomJoin>();

        cmdJoin.mCharacter = player;
        mCommandSystem.pushCommand(cmdJoin, room);

        CommandCharacterNotifyBanker cmdBanker = mCommandSystem.newCmd <CommandCharacterNotifyBanker>();

        cmdBanker.mBanker = mBanker.mValue;
        mCommandSystem.pushCommand(cmdBanker, player);
    }
示例#12
0
    public override void execute()
    {
        GameScene gameScene = mGameSceneManager.getCurScene();

        if (gameScene.getSceneType() != GAME_SCENE_TYPE.GST_MAHJONG)
        {
            return;
        }
        MahjongScene mahjongScene = gameScene as MahjongScene;
        Room         room         = mahjongScene.getRoom();
        Dictionary <Character, int> moneyDeltaList = new Dictionary <Character, int>();

        for (int i = 0; i < GameDefine.MAX_PLAYER_COUNT; ++i)
        {
            moneyDeltaList.Add(mCharacterManager.getCharacter(mCharacterGUIDList.mValue[i]), mMoneyDeltaList.mValue[i]);
        }
        CommandRoomEnd cmdEnd = newCmd(out cmdEnd);

        cmdEnd.mMoneyDeltaList = moneyDeltaList;
        pushCommand(cmdEnd, room);
    }