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); }
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; }
LBScenePlayerInfo GetEmptyData() { LBScenePlayerInfo ret = null; for (int i = 0; i < mPlayerInfoArray.Length; ++i) { if (!mPlayerInfoArray[i].IsValidInfo) { ret = mPlayerInfoArray[i]; break; } } return(ret); }