コード例 #1
0
        internal void RemovePlayer(IMessageBase messageBase)
        {
            Deregistration deregistration = (Deregistration)messageBase;
            int            playerID       = deregistration.UserId;

            Logger.Debug($"{playerID} wants to deregister");

            bool success = PlayerData.Instance.RemovePlayer(playerID);

            if (success)
            {
                Logger.Info("Removing player " + playerID + " with sessionid " + _sessionIds[playerID]);
                SendReliable(new DeregistrationSuccess
                {
                    UserId = playerID
                });
                lock (_sessionIds)
                    _sessionIds[playerID] = -1;
                PlayerIDManager.FreeID(playerID);
            }
            else
            {
                Logger.Warn("Could not remove player " + playerID);
            }

            StrategyManager.Instance.UpdatePlayerList();
        }
コード例 #2
0
        private void _addPlayer(int playerID, int sessionId, string userName)
        {
            bool success = PlayerData.Instance.AddPlayer(playerID, userName);

            if (success)
            {
                lock (_sessionIds)
                    _sessionIds[playerID] = sessionId;
                SendReliable(new RegistrationSuccess
                {
                    UserId         = playerID,
                    Reregistration = false
                });
                Logger.Info("New player registered with session id " + _sessionIds[playerID] + ". Giving Player id " + playerID);
            }
            else
            {
                PlayerIDManager.FreeID(playerID);
                Logger.Warn("Could not add PlayerData.Instance for player " + playerID);
            }
        }