Exemplo n.º 1
0
        public void OnLeavePlayer(LeavePlayer packet)
        {
            if (Player == null)
            {
                return;
            }

            lock (Sessions)
            {
                Sessions.Remove(this);

                if (Sessions.Count > 0)
                {
                    Sessions.Broadcast(new LeavePlayer()
                    {
                        RootPlayerId = Sessions.First().Player.PlayerId,

                        Player = Player
                    });
                }

                Console.Title = $"GSF.Ez,  {Sessions.Count} user(s) online";
            }

            var json = JsonConvert.SerializeObject(Player);

            File.WriteAllText("players\\" + Player.PlayerId, json);
            Player = null;
        }
Exemplo n.º 2
0
    private void ProcessLeavePlayer(LeavePlayer packet)
    {
        rootPlayerId = packet.RootPlayerId;
        isRootPlayer = packet.RootPlayerId == player.PlayerId;

        lock (players)
            players.Remove(packet.Player);

        if (onLeavePlayer != null)
        {
            AddTask(() => onLeavePlayer.Invoke(packet));
        }
        if (onDesignatedRootPlayer != null &&
            alreadyDesignated == false && player.PlayerId == rootPlayerId)
        {
            onDesignatedRootPlayer();
            alreadyDesignated = true;
        }
    }