cleanup and ping fix

This commit is contained in:
Anonymous275 2020-04-16 00:00:10 +03:00
parent 8d56873335
commit 5cb43950eb
6 changed files with 29 additions and 6 deletions

View File

@ -22,6 +22,7 @@ void ParseData(ENetPacket*packet,ENetPeer*peer){ //here we will parse the data
} }
if(!data.empty()){ if(!data.empty()){
std::cout << data << std::endl; std::cout << data << std::endl;
std::cout << "Ping : " << peer->ping << std::endl;
} }
} }

View File

@ -7,7 +7,7 @@
#include <string> #include <string>
#include <cstdio> #include <cstdio>
#include "../logger.h" #include "../logger.h"
#include "../Settings.hpp"
void ParseData(ENetPacket*packet,ENetPeer*peer); //Data Parser void ParseData(ENetPacket*packet,ENetPeer*peer); //Data Parser
void OnConnect(ENetPeer*peer); void OnConnect(ENetPeer*peer);
@ -15,6 +15,25 @@ void OnConnect(ENetPeer*peer);
ENetPacket* packet; ENetPacket* packet;
int PlayerCount = 0; 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) { void host_server(ENetHost *server) {
ENetEvent event; ENetEvent event;
PlayerCount = server->connectedPeers; 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); 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 //the data should be the client info could be name for now it's Client information
event.peer->Name = (void *)"Client information"; event.peer->Name = (void *)"Client information";
event.peer->gameVehicleID[0] = 15; event.peer->gameVehicleID[0] = 0;
event.peer->serverVehicleID = 17; event.peer->serverVehicleID = FindID(server, event.peer);
OnConnect(event.peer); OnConnect(event.peer);
break; break;
@ -54,6 +73,7 @@ void host_server(ENetHost *server) {
} }
void ServerMain(int Port, int MaxClients) { void ServerMain(int Port, int MaxClients) {
if (enet_initialize() != 0) { if (enet_initialize() != 0) {
printf("An error occurred while initializing.\n"); printf("An error occurred while initializing.\n");
return; return;

View File

@ -678,6 +678,7 @@ typedef struct _ENetPeer {
enet_uint32 lastRoundTripTimeVariance; enet_uint32 lastRoundTripTimeVariance;
enet_uint32 highestRoundTripTimeVariance; enet_uint32 highestRoundTripTimeVariance;
enet_uint32 roundTripTime; /**< mean round trip time (RTT), in milliseconds, between sending a reliable packet and receiving its acknowledgement */ 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 roundTripTimeVariance;
enet_uint32 mtu; enet_uint32 mtu;
enet_uint32 windowSize; enet_uint32 windowSize;
@ -2258,7 +2259,7 @@ extern "C" {
enet_peer_throttle(peer, roundTripTime); enet_peer_throttle(peer, roundTripTime);
peer->roundTripTimeVariance -= peer->roundTripTimeVariance / 4; peer->roundTripTimeVariance -= peer->roundTripTimeVariance / 4;
peer->ping = roundTripTime;
if (roundTripTime >= peer->roundTripTime) { if (roundTripTime >= peer->roundTripTime) {
peer->roundTripTime += (roundTripTime - peer->roundTripTime) / 8; peer->roundTripTime += (roundTripTime - peer->roundTripTime) / 8;
peer->roundTripTimeVariance += (roundTripTime - peer->roundTripTime) / 4; peer->roundTripTimeVariance += (roundTripTime - peer->roundTripTime) / 4;
@ -3747,6 +3748,7 @@ extern "C" {
peer->lastRoundTripTimeVariance = 0; peer->lastRoundTripTimeVariance = 0;
peer->highestRoundTripTimeVariance = 0; peer->highestRoundTripTimeVariance = 0;
peer->roundTripTime = ENET_PEER_DEFAULT_ROUND_TRIP_TIME; peer->roundTripTime = ENET_PEER_DEFAULT_ROUND_TRIP_TIME;
peer->ping = 0;
peer->roundTripTimeVariance = 0; peer->roundTripTimeVariance = 0;
peer->mtu = peer->host->mtu; peer->mtu = peer->host->mtu;
peer->reliableDataInTransit = 0; peer->reliableDataInTransit = 0;

View File

@ -23,4 +23,5 @@ void OnConnect(ENetPeer*peer){
strlen ("NameRequest") + 1, strlen ("NameRequest") + 1,
ENET_PACKET_FLAG_RELIABLE); //Create A reliable packet using the data ENET_PACKET_FLAG_RELIABLE); //Create A reliable packet using the data
enet_peer_send(peer, 0, packet); enet_peer_send(peer, 0, packet);
std::cout << "ID : " << peer->serverVehicleID << std::endl;
} }

View File

@ -2,8 +2,6 @@
/// Created by Anonymous275 on 4/11/2020 /// Created by Anonymous275 on 4/11/2020
/// ///
#include <fstream>
#include <iostream>
#include <algorithm> #include <algorithm>
#include <filesystem> #include <filesystem>

View File

@ -1,6 +1,7 @@
/// ///
/// Created by Anonymous275 on 4/10/2020 /// Created by Anonymous275 on 4/10/2020
/// ///
extern bool Private; extern bool Private;
extern int MaxPlayers; extern int MaxPlayers;
extern int UDPPort; extern int UDPPort;