RemoveClient

    /// <summary>
    /// 从客户端字典中移除客户端
    /// </summary>
    /// <param name="client"></param>
    public virtual void RemoveClient(Player client)
    {
        if (client.isDispose)
            return;
        if (client.Login & onlineNumber > 0) Interlocked.Decrement(ref onlineNumber);
        else if (!client.Login & ignoranceNumber > 0) Interlocked.Decrement(ref ignoranceNumber);
        Players.TryRemove(client.PlayerID, out _);
        UIDClients.TryRemove(client.UserID, out _);
        AllClients.TryRemove(client.RemotePoint, out _);
        OnRemoveClientHandle(client);
        client.OnRemoveClient();
        ExitScene(client, false);
        client.Dispose();
        UserIDStack.Push(client.UserID);
    }

最后更新于

这有帮助吗?