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()){
std::cout << data << std::endl;
std::cout << "Ping : " << peer->ping << std::endl;
}
}

View File

@ -7,7 +7,7 @@
#include <string>
#include <cstdio>
#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;

View File

@ -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;

View File

@ -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;
}

View File

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

View File

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