Exemple #1
0
        private void SendHitResponsePacket(int shooter)
        {
            Logger.Log("S: Sending las processed = " + _clients[shooter].ClientInput.LastShootProcessed, false, "lime");
            var packet = Packet.Obtain();
            var buffer = packet.Buffer;

            EventSerializer.SerializeIntoBuffer(buffer, Event.Hit);
            buffer.PutInt(_clients[shooter].ClientInput.LastShootProcessed);
            buffer.Flush();
            _channel.Send(packet, _clients[shooter].EndPoint);
            packet.Free();
        }
Exemple #2
0
        private void BroadcastNewJoin(int joinedClientId)
        {
            var packet = Packet.Obtain();
            var buffer = packet.Buffer;

            EventSerializer.SerializeIntoBuffer(buffer, Event.JoinBroadcast);
            _clients[joinedClientId].SerializeIntoBuffer(buffer);
            buffer.Flush();
            foreach (var client in _clients.Where(client => client.Id != joinedClientId))
            {
                _channel.Send(packet, client.EndPoint);
            }
            packet.Free();
        }
Exemple #3
0
        private Packet GenerateSnapshotPacket()
        {
            var packet             = Packet.Obtain();
            var buffer             = packet.Buffer;
            var clientsThatChanged = _clients; //_clients.Where(client => client.Entity.transform.hasChanged).ToList();

            EventSerializer.SerializeIntoBuffer(buffer, Event.Snapshot);
            buffer.PutInt(clientsThatChanged.Count);
            foreach (var client in clientsThatChanged)
            {
                client.SerializeIntoBuffer(buffer);
                //client.Entity.transform.hasChanged = false;
            }
            buffer.Flush();
            return(packet);
        }
Exemple #4
0
        private Packet GenerateJoinedPacket(int id)
        {
            var packet = Packet.Obtain();
            var buffer = packet.Buffer;

            EventSerializer.SerializeIntoBuffer(buffer, Event.Join);
            _clients[id].SerializeIntoBuffer(buffer);
            buffer.PutInt(_clients.Count - 1);
            foreach (var clientInfo in _clients.Where(clientInfo => clientInfo.Id != id))
            {
                clientInfo.SerializeIntoBuffer(buffer);
            }

            buffer.Flush();
            return(packet);
        }