From d368b154c29b2a03768fed06bd434d73617441c8 Mon Sep 17 00:00:00 2001 From: Anonymous275 Date: Fri, 17 Apr 2020 00:47:13 +0300 Subject: [PATCH] Auto name request + parser --- src/Network/ClientHandler.cpp | 4 +--- src/Network/DataParser.cpp | 12 +++++++++++- src/Network/Server.cpp | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Network/ClientHandler.cpp b/src/Network/ClientHandler.cpp index f237f2b..f5ba4c9 100644 --- a/src/Network/ClientHandler.cpp +++ b/src/Network/ClientHandler.cpp @@ -34,9 +34,7 @@ void SendToAll(ENetHost *server,ENetEvent event){ } void OnConnect(ENetPeer*peer){ - ENetPacket* packet = enet_packet_create ("NameRequest", //Send A Name Request to the Client - strlen ("NameRequest") + 1, - ENET_PACKET_FLAG_RELIABLE); //Create A reliable packet using the data + ENetPacket* packet = enet_packet_create ("NR", 3,ENET_PACKET_FLAG_RELIABLE); //Create A reliable packet using the data enet_peer_send(peer, 0, packet); std::cout << "ID : " << peer->serverVehicleID << std::endl; } diff --git a/src/Network/DataParser.cpp b/src/Network/DataParser.cpp index 12bee7e..f861e35 100644 --- a/src/Network/DataParser.cpp +++ b/src/Network/DataParser.cpp @@ -11,6 +11,16 @@ void Respond(const std::string& MSG, ENetPeer*peer); void ParseData(ENetPacket*packet, ENetPeer*peer){ std::string Packet = (char*)packet->data; - if(Packet == "p"){Respond("p",peer);return;} + char Code = Packet.at(0),SubCode = 0; + if(Packet.length() > 1)SubCode = Packet.at(1); + switch (Code) { + case 'p': + Respond("p",peer); + return; + case 'N': + if(SubCode == 'R')peer->Name = (void *)Packet.substr(2).c_str(); + std::cout << "Name : " << (char *)peer->Name << std::endl; + return; + } std::cout << "Data : " << Packet << std::endl; } diff --git a/src/Network/Server.cpp b/src/Network/Server.cpp index db0905f..010537b 100644 --- a/src/Network/Server.cpp +++ b/src/Network/Server.cpp @@ -17,7 +17,7 @@ int PlayerCount = 0; int FindID(ENetHost *server,ENetPeer*peer){ int OpenID = 1; - bool Found = false; + bool Found; do { Found = true; for (int i = 0; i < server->connectedPeers; i++) {