Exemple #1
0
        void DestroyPlayerMsg(object sender, PlayerDestroyedEventArgs e)
        {
            if (!serverStarted)
            {
                return;
            }

            // A user has quit
            foreach (PlayerObject p in lstUsers.Items)
            {
                // If they are in the user list, remove them
                if (p.playerId == e.Message.PlayerID)
                {
                    lstUsers.Items.Remove(p);
                    numPlayers--;
                    // We should also notify everyone they've logged off.
                    if (data != null)
                    {
                        // Notify everyone that we've logged off
                        data.NotifyFriends(p.playerName, MessageType.FriendLogoff, server);
                        // Update the schema to show we've logged off
                        data.UpdateDataToReflectLogoff(e.Message.PlayerID);
                    }
                    break;
                }
            }
            //We always want to update our text
            UpdateText();
        }
Exemple #2
0
        private void onPlayerDestroyed(object sender, PlayerDestroyedEventArgs e)
        {
            if (e.Message.PlayerID == hostingPlayerId)
            {
                // stop server
                lock (uncompressJobs) {
                    uncompressJobs.AddFirst(UncompressJob.StopServer);
                    uncompressJobsPending.Set();
                }
            }
            else
            {
                int otherPlayersGroupId = ((PlayerContext)e.Message.PlayerContext).AllOtherPlayersGroupId;

                // remove this player from all existing groups of "other players"
                //foreach(int groupId in server.Groups) {
                //	if(groupId != otherPlayersGroupId)
                //		server.RemovePlayerFromGroup(groupId, e.Message.PlayerID, 0);
                //}

                // notify all other players
                using (NetworkPacket packet = new NetworkPacket(5)) {
                    packet.Write((byte)ReservedMessageType.PlayerHasLeft);
                    packet.Write(e.Message.PlayerID);
                    server.SendTo(otherPlayersGroupId, packet, 0, SendFlags.Guaranteed | SendFlags.Coalesce | SendFlags.PriorityHigh);
                }

                // remove the "other players" group owned by this player
                server.DestroyGroup(otherPlayersGroupId, 0);
            }
        }
Exemple #3
0
 private void PlayerDestroyed(object sender, PlayerDestroyedEventArgs dpMessage)
 {
     // Remove this player from our list
     // We lock the data here since it is shared across multiple threads.
     lock (this) {
         remotePlayer.Active = false;
     }
     game.RemotePlayerLeft(remotePlayer.Name);
 }
Exemple #4
0
 private void OnPlayerDestroyed(object sender, PlayerDestroyedEventArgs e)
 {
     MessageBox.Show(string.Format
                         ("Игрок {0} покинул сессию",
                         Shared.SharedCode.EnemyPlayer.Name),
                     "", MessageBoxButtons.OK, MessageBoxIcon.Information);
     connected = false;
     if (statusConnection != null)
     {
         statusConnection(connected);
     }
 }
Exemple #5
0
        public void PlayerDestroyed(object sender, PlayerDestroyedEventArgs pdea)
        {
            int PlayerID = pdea.Message.PlayerID;

            if (PlayerID != ID)
            {
                lock (otherPlayers)
                {
                    otherPlayers.Remove(PlayerID);
                }
            }
        }
Exemple #6
0
        public void PlayerDestroyed(object sender, PlayerDestroyedEventArgs pdea)
        {
            // Remove this player from our list
            // We lock the data here since it is shared across multiple threads.
            int playerID = pdea.Message.PlayerID;

            if (playerID != localPlayer.ID)
            {
                lock (otherPlayers) {
                    otherPlayers.Remove(playerID);
                }
            }
        }
 private void PlayerDestroyed(object sender, PlayerDestroyedEventArgs dpMessage)
 {
     // Remove this player from our list
     // We lock the data here since it is shared across multiple threads.
     lock (PlayerList) {
         foreach (Players player in PlayerList)
         {
             if (dpMessage.Message.PlayerID == player.dpnID)
             {
                 PlayerList.Remove(player);
                 break;
             }
         }
     }
 }
Exemple #8
0
 /// <summary>
 /// A player was destroyed
 /// </summary>
 private void PlayerDestroyed(object sender, PlayerDestroyedEventArgs e)
 {
     // Remove this player from our list
     // We lock the data here since it is shared across multiple threads.
     lock (playerList)
     {
         foreach (Players player in playerList)
         {
             if (e.Message.PlayerID == player.playerId)
             {
                 playerList.Remove(player);
                 break;
             }
         }
         // Update our number of players and our button
         lblUsers.Text = playerList.Count.ToString();
     }
 }
Exemple #9
0
        public void PlayerDestroyed(object sender, PlayerDestroyedEventArgs pdea)
        {
            int PlayerID = pdea.Message.PlayerID;

            if (PlayerID != ID)
            {
                lock (otherPlayers)
                {
                    object playerObject = otherPlayers[PlayerID];
                    if (null == playerObject)
                    {
                        return;
                    }
                    RemotePlayer player = (RemotePlayer)playerObject;
                    factory.RemoveObject(player.heli);
                    curLevel.RemoveObject(player.heli);
                    player.heli = null;
                    otherPlayers.Remove(PlayerID);
                }
            }
        }
 private void OnPlayerDestroyed(object sender, PlayerDestroyedEventArgs e)
 {
     DcdPlayerList.Add(((Server)sender).GetClientInformation(e.Message.PlayerID).Name);
 }
 private void PlayerDestroyed(object sender, PlayerDestroyedEventArgs dpMessage)
 {
     // Remove this player from our list
     // We lock the data here since it is shared across multiple threads.
     lock (this)
     {
         remotePlayer.Active = false;
     }
     game.RemotePlayerLeft(remotePlayer.Name);
 }
 private void PlayerDestroyed(object sender, PlayerDestroyedEventArgs dpMessage)
 {
     // Remove this player from our list
     // We lock the data here since it is shared across multiple threads.
     lock (PlayerList) {
         foreach (Players player in PlayerList) {
             if (dpMessage.Message.PlayerID == player.dpnID) {
                 PlayerList.Remove(player);
                 break;
             }
         }
     }
 }
 private void peer_PlayerDestroyed(object sender, PlayerDestroyedEventArgs e)
 {
     lock(playerList)
     {
         playerList.Remove(e.Message.PlayerID);
     }
     if(PlayerChanged != null)
     {
         PlayerChanged(this);
     }
 }
 public void PlayerDestroyed(object sender, PlayerDestroyedEventArgs pdea)
 {
     // Remove this player from our list
     // We lock the data here since it is shared across multiple threads.
     int playerID = pdea.Message.PlayerID;
     if (playerID != localPlayer.ID) {
         lock (otherPlayers) {
             otherPlayers.Remove(playerID);
         }
     }
 }
 private void OnPlayerDestroyed(object sender, PlayerDestroyedEventArgs e)
 {
     DcdPlayerList.Add(((Microsoft.DirectX.DirectPlay.Server)sender).GetClientInformation(e.Message.PlayerID).Name);
     NextStep(2);
 }