Beispiel #1
0
        public bool PlayerEnterScene(LBPlayerEnterSceneInfo[] playerInfos)
        {
            for (int i = 0; i < playerInfos.Length; ++i)
            {
                if (IsPlayerInScene(playerInfos[i].playerId))
                {
                    LBLogger.Error(LogTag, "玩家已经在场景中了 " + playerInfos[i].playerId + " " + playerInfos[i].playerName);
                    return(false);
                }
            }
            int emptyDataCount = GetEmptyDataCount();

            if (emptyDataCount < playerInfos.Length)
            {
                LBLogger.Error(LogTag, "当前场景空余人数为:" + emptyDataCount + "  加入场景人数:" + playerInfos.Length);
                return(false);
            }
            for (int i = 0; i < playerInfos.Length; ++i)
            {
                LBPlayerEnterSceneInfo enterSceneInfo = playerInfos[i];
                LBScenePlayerInfo      playerInfo     = GetEmptyData();
                playerInfo.playerId     = enterSceneInfo.playerId;
                playerInfo.playerName   = enterSceneInfo.playerName;
                playerInfo.connectionId = enterSceneInfo.connectionId;
            }
            BroadcastEvent(RpId.AllMemberReady, null);
            return(true);
        }
Beispiel #2
0
 public LBScene()
 {
     mPlayerInfoArray = new LBScenePlayerInfo[ServerCommonDefine.RoomMaxAccountCount];
     for (int i = 0; i < mPlayerInfoArray.Length; ++i)
     {
         mPlayerInfoArray[i] = new LBScenePlayerInfo();
         mPlayerInfoArray[i].ClearInfo();
     }
     mPlayerBattleInstructionList = new List <BattleInstructionBase>(ServerCommonDefine.SceneBattleInstructionCapacity);
     IsPlaying = false;
 }
Beispiel #3
0
        LBScenePlayerInfo GetEmptyData()
        {
            LBScenePlayerInfo ret = null;

            for (int i = 0; i < mPlayerInfoArray.Length; ++i)
            {
                if (!mPlayerInfoArray[i].IsValidInfo)
                {
                    ret = mPlayerInfoArray[i];
                    break;
                }
            }
            return(ret);
        }