コード例 #1
0
ファイル: GServer.cs プロジェクト: Noortvel/MyRpg
        public void RemoveClient(GTcpClientOnServer client)
        {
            clients.Remove(client);
            var message = new NetworkCryptor.PlayerDestroyInfo(client.idNet);

            SendMessageToClients(message.toBytes());
            DLogger.WriteLineToScreen("GServer: Removed client: " + client.idNet);
            //client.CloseConnection();
        }
コード例 #2
0
ファイル: GServer.cs プロジェクト: Noortvel/MyRpg
 public void SendMessageToClientNotOne(byte[] message, GTcpClientOnServer client)
 {
     foreach (var x in clients)
     {
         if (x != client)
         {
             x.SendAsync(message);
         }
     }
 }
コード例 #3
0
ファイル: GServer.cs プロジェクト: Noortvel/MyRpg
        private void OnConnect(IAsyncResult ar)
        {
            TcpClient client = listener.EndAcceptTcpClient(ar);

            DLogger.WriteLineToScreen("Client Connected, id: " + playerCount);
            DLogger.WriteLineToScreen("Connected clients: " + clients.Count);

            var gclient = new GTcpClientOnServer(client, this, playerCount);

            playerCount++;

            ReplicateCharacterToClients(gclient);



            clients.Add(gclient);
            listener.BeginAcceptTcpClient(OnConnect, null);
        }
コード例 #4
0
ファイル: GServer.cs プロジェクト: Noortvel/MyRpg
 private void ReplicateCharacterToClients(GTcpClientOnServer gclient)
 {
     DLogger.WriteLineToScreen("Replicate client start");
     byte[] cur = (new NetworkCryptor.PlayerInstanceInfo(gclient.idNet, gameAdmin.SpawnPoint.position)).toBytes();
     gclient.SendAsync(cur);
     //Отсылка всем существующим клиентам player instance
     for (int i = 0; i < clients.Count; i++)
     {
         DLogger.WriteLineToScreen("new to clients: " + gclient.idNet);
         clients[i].SendAsync(cur);
     }
     //Отсылка новому клиенту информации о всех подключенных клиентах
     for (int i = 0; i < clients.Count; i++)
     {
         byte[] mes = new NetworkCryptor.PlayerInstanceInfo(
             clients[i].idNet, gameAdmin.SpawnPoint.position).toBytes();
         DLogger.WriteLineToScreen("clients to new: " + clients[i].idNet);
         gclient.SendAsync(mes);
     }
     DLogger.WriteLineToScreen("Replicate client end");
 }