mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-07-03 08:15:35 +00:00
cleanup and ping fix
This commit is contained in:
parent
8d56873335
commit
5cb43950eb
@ -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;
|
||||
}
|
||||
|
||||
}
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -2,8 +2,6 @@
|
||||
/// Created by Anonymous275 on 4/11/2020
|
||||
///
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#include <filesystem>
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
///
|
||||
/// Created by Anonymous275 on 4/10/2020
|
||||
///
|
||||
|
||||
extern bool Private;
|
||||
extern int MaxPlayers;
|
||||
extern int UDPPort;
|
||||
|
Loading…
x
Reference in New Issue
Block a user