From 5cb43950ebdda7259943f8604fd63a4d83ab7509 Mon Sep 17 00:00:00 2001 From: Anonymous275 Date: Thu, 16 Apr 2020 00:00:10 +0300 Subject: [PATCH] cleanup and ping fix --- src/Network/DataParser.cpp | 1 + src/Network/Server.cpp | 26 +++++++++++++++++++++++--- src/Network/enet.h | 4 +++- src/Network/functions.cpp | 1 + src/Resources.cpp | 2 -- src/Settings.hpp | 1 + 6 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/Network/DataParser.cpp b/src/Network/DataParser.cpp index 02e5b32..4a68ef1 100644 --- a/src/Network/DataParser.cpp +++ b/src/Network/DataParser.cpp @@ -22,6 +22,7 @@ void ParseData(ENetPacket*packet,ENetPeer*peer){ //here we will parse the data } if(!data.empty()){ std::cout << data << std::endl; + std::cout << "Ping : " << peer->ping << std::endl; } } \ No newline at end of file diff --git a/src/Network/Server.cpp b/src/Network/Server.cpp index be1d382..db0905f 100644 --- a/src/Network/Server.cpp +++ b/src/Network/Server.cpp @@ -7,7 +7,7 @@ #include #include #include "../logger.h" - +#include "../Settings.hpp" void ParseData(ENetPacket*packet,ENetPeer*peer); //Data Parser void OnConnect(ENetPeer*peer); @@ -15,6 +15,25 @@ void OnConnect(ENetPeer*peer); ENetPacket* packet; int PlayerCount = 0; +int FindID(ENetHost *server,ENetPeer*peer){ + int OpenID = 1; + bool Found = false; + do { + Found = true; + for (int i = 0; i < server->connectedPeers; i++) { + if (&server->peers[i] != peer) { + if(server->peers[i].serverVehicleID == OpenID){ + Found = false; + OpenID++; + break; + } + } + } + }while (!Found); + return OpenID; +} + + void host_server(ENetHost *server) { ENetEvent event; PlayerCount = server->connectedPeers; @@ -24,8 +43,8 @@ void host_server(ENetHost *server) { printf("A new client connected from %x:%u.\n", event.peer->address.host, event.peer->address.port); //the data should be the client info could be name for now it's Client information event.peer->Name = (void *)"Client information"; - event.peer->gameVehicleID[0] = 15; - event.peer->serverVehicleID = 17; + event.peer->gameVehicleID[0] = 0; + event.peer->serverVehicleID = FindID(server, event.peer); OnConnect(event.peer); break; @@ -54,6 +73,7 @@ void host_server(ENetHost *server) { } void ServerMain(int Port, int MaxClients) { + if (enet_initialize() != 0) { printf("An error occurred while initializing.\n"); return; diff --git a/src/Network/enet.h b/src/Network/enet.h index 7adbde1..452146d 100644 --- a/src/Network/enet.h +++ b/src/Network/enet.h @@ -678,6 +678,7 @@ typedef struct _ENetPeer { enet_uint32 lastRoundTripTimeVariance; enet_uint32 highestRoundTripTimeVariance; enet_uint32 roundTripTime; /**< mean round trip time (RTT), in milliseconds, between sending a reliable packet and receiving its acknowledgement */ + enet_uint32 ping; enet_uint32 roundTripTimeVariance; enet_uint32 mtu; enet_uint32 windowSize; @@ -2258,7 +2259,7 @@ extern "C" { enet_peer_throttle(peer, roundTripTime); peer->roundTripTimeVariance -= peer->roundTripTimeVariance / 4; - + peer->ping = roundTripTime; if (roundTripTime >= peer->roundTripTime) { peer->roundTripTime += (roundTripTime - peer->roundTripTime) / 8; peer->roundTripTimeVariance += (roundTripTime - peer->roundTripTime) / 4; @@ -3747,6 +3748,7 @@ extern "C" { peer->lastRoundTripTimeVariance = 0; peer->highestRoundTripTimeVariance = 0; peer->roundTripTime = ENET_PEER_DEFAULT_ROUND_TRIP_TIME; + peer->ping = 0; peer->roundTripTimeVariance = 0; peer->mtu = peer->host->mtu; peer->reliableDataInTransit = 0; diff --git a/src/Network/functions.cpp b/src/Network/functions.cpp index 39f3c56..541f2b3 100644 --- a/src/Network/functions.cpp +++ b/src/Network/functions.cpp @@ -23,4 +23,5 @@ void OnConnect(ENetPeer*peer){ strlen ("NameRequest") + 1, 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/Resources.cpp b/src/Resources.cpp index fa85de7..63cacce 100644 --- a/src/Resources.cpp +++ b/src/Resources.cpp @@ -2,8 +2,6 @@ /// Created by Anonymous275 on 4/11/2020 /// -#include -#include #include #include diff --git a/src/Settings.hpp b/src/Settings.hpp index ad2b0a0..783f028 100644 --- a/src/Settings.hpp +++ b/src/Settings.hpp @@ -1,6 +1,7 @@ /// /// Created by Anonymous275 on 4/10/2020 /// + extern bool Private; extern int MaxPlayers; extern int UDPPort;