예제 #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
    public override void execute()
    {
        string name = BinaryUtility.bytesToString(mName.mValue, Encoding.UTF8);

        UnityUtility.logInfo("获得玩家数据 : " + mPlayerGUID + ", 名字 : " + name);
        // 创建该玩家的实例
        CommandCharacterManagerCreateCharacter cmdCreate = newCmd(out cmdCreate);

        cmdCreate.mName          = name;
        cmdCreate.mID            = mPlayerGUID.mValue;
        cmdCreate.mCharacterType = CHARACTER_TYPE.CT_OTHER;
        pushCommand(cmdCreate, mCharacterManager);
        CharacterOther other = mCharacterManager.getCharacter(mPlayerGUID.mValue) as CharacterOther;
        CharacterData  data  = other.getCharacterData();

        data.mMoney          = mMoney.mValue;
        data.mHead           = mHead.mValue;
        data.mServerPosition = (PLAYER_POSITION)mPosition.mValue;
        data.mBanker         = mBanker.mValue;
        data.mReady          = mReady.mValue;
        // 将该玩家加入房间
        GameScene       gameScene = mGameSceneManager.getCurScene();
        CommandRoomJoin cmd       = newCmd(out cmd);

        cmd.mCharacter = other;
        pushCommand(cmd, (gameScene as MahjongScene).getRoom());
    }
예제 #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
    // 通知房间开始等待玩家加入
    public void notifyStartWait()
    {
        mCanJoin = true;
        // 将未加入的玩家加入到房间中
        int count = mNoneJoinPlayerList.Count;

        for (int i = 0; i < count; ++i)
        {
            CommandRoomJoin cmd = newCmd(out cmd);
            cmd.mCharacter = mNoneJoinPlayerList[i];
            pushCommand(cmd, this);
        }
        mNoneJoinPlayerList.Clear();
    }
예제 #5
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);
    }