mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-07-04 00:36:14 +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()){
|
if(!data.empty()){
|
||||||
std::cout << data << std::endl;
|
std::cout << data << std::endl;
|
||||||
|
std::cout << "Ping : " << peer->ping << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user