From e2cae1da59764a5ea2c4c4ba269652f28b934063 Mon Sep 17 00:00:00 2001 From: Anonymous275 Date: Thu, 6 Feb 2020 23:20:09 +0200 Subject: [PATCH] fixed Crash issue added serverVehicleID and gameVehicleID --- src/Network/ClientHandler.cpp | 4 +++- src/Network/DataParser.cpp | 7 +++++-- src/Network/Server.cpp | 12 +++++++----- src/Network/enet.h | 12 +++++++----- src/main.cpp | 2 ++ 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/Network/ClientHandler.cpp b/src/Network/ClientHandler.cpp index c3e7c9d..c602f63 100644 --- a/src/Network/ClientHandler.cpp +++ b/src/Network/ClientHandler.cpp @@ -9,14 +9,16 @@ void NameRequest(ENetPeer*peer){ strlen ("NameRequest") + 1, ENET_PACKET_FLAG_RELIABLE); //Create A reliable packet using the data enet_peer_send(peer, 0, packet); + } void SendToAll(ENetHost *server,ENetEvent event){ ENetPacket* packet; for (int i = 0; i < server->connectedPeers; i++) { //if (&server->peers[i] != event.peer) { if you don't want to send it to the person ho just connected - char Data[30]; + char Data[500]; sprintf(Data,"There is %d Players Connected!",server->connectedPeers); + printf("test %d\n",server->peers[i].serverVehicleID); packet = enet_packet_create(Data, strlen(Data)+1, 0); enet_peer_send(&server->peers[i], 0, packet); enet_host_flush(server); diff --git a/src/Network/DataParser.cpp b/src/Network/DataParser.cpp index 6f57747..c262ed3 100644 --- a/src/Network/DataParser.cpp +++ b/src/Network/DataParser.cpp @@ -8,11 +8,14 @@ using namespace std; char Name[20] = ""; void ParseData(ENetPacket*packet,ENetPeer*peer){ //here we will parse the data enet_uint8* Data = packet->data; - if(strcmp((char*)peer->data,"Client information")==0){ //Checks if the Client has no name + if(strcmp((char*)peer->Name,"Client information")==0){ //Checks if the Client has no name sprintf(Name,"%s",Data); - peer->data = (void *)Name; + peer->Name = (void *)Name; char Info[100]; sprintf(Info,"Client Name is %s ID : %u\n",Name,peer->connectID); //ID System info(Info); //Logs the data + peer->serverVehicleID = (int)peer->connectID; //test to see if it works + sprintf(Info,"%s ServerVehicleID : %d GameVehicleID : %d",Name,peer->serverVehicleID,peer->gameVehicleID[0]); + info(Info); } } \ No newline at end of file diff --git a/src/Network/Server.cpp b/src/Network/Server.cpp index b25012e..5b6e13c 100644 --- a/src/Network/Server.cpp +++ b/src/Network/Server.cpp @@ -21,7 +21,9 @@ void host_server(ENetHost *server) { printf("A new client connected from %x:%u.\n", event.peer->address.host, event.peer->address.port); //Help xD //the data should be the client info could be name for now it's Client information NameRequest(event.peer); - event.peer->data = (void *)"Client information"; + event.peer->Name = (void *)"Client information"; + event.peer->gameVehicleID[0] = 15; + event.peer->serverVehicleID = 17; SendToAll(server,event); @@ -33,14 +35,14 @@ void host_server(ENetHost *server) { break; case ENET_EVENT_TYPE_DISCONNECT: - printf ("%s disconnected.\n", (char *)event.peer->data); + printf ("%s disconnected.\n", (char *)event.peer->Name); // Reset the peer's client information. - event.peer->data = NULL; + event.peer->Name = NULL; break; case ENET_EVENT_TYPE_DISCONNECT_TIMEOUT: - printf ("%s timed out.\n", (char *)event.peer->data); - event.peer->data = NULL; + printf ("%s timed out.\n", (char *)event.peer->Name); + event.peer->Name = NULL; break; case ENET_EVENT_TYPE_NONE: break; diff --git a/src/Network/enet.h b/src/Network/enet.h index 2952bd8..0877808 100644 --- a/src/Network/enet.h +++ b/src/Network/enet.h @@ -637,7 +637,9 @@ extern "C" { enet_uint8 outgoingSessionID; enet_uint8 incomingSessionID; ENetAddress address; /**< Internet address of the peer */ - void * data; /**< Application private data, may be freely modified */ + void * Name; /**< Application private data, may be freely modified */ + int gameVehicleID[50]; //added By Anonymous275 + int serverVehicleID; //added By Anonymous275 ENetPeerState state; ENetChannel * channels; size_t channelCount; /**< Number of channels allocated for communication with peer */ @@ -3438,11 +3440,11 @@ extern "C" { } void * enet_peer_get_data(ENetPeer *peer) { - return (void *) peer->data; + return (void *) peer->Name; } - void enet_peer_set_data(ENetPeer *peer, const void *data) { - peer->data = (enet_uint32 *) data; + void enet_peer_set_data(ENetPeer *peer, const void *Name) { + peer->Name = (enet_uint32 *) Name; } void * enet_packet_get_data(ENetPacket *packet) { @@ -4417,7 +4419,7 @@ extern "C" { currentPeer->host = host; currentPeer->incomingPeerID = currentPeer - host->peers; currentPeer->outgoingSessionID = currentPeer->incomingSessionID = 0xFF; - currentPeer->data = NULL; + currentPeer->Name = NULL; enet_list_clear(¤tPeer->acknowledgements); enet_list_clear(¤tPeer->sentReliableCommands); diff --git a/src/main.cpp b/src/main.cpp index f082bcb..9ca8a95 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -32,6 +32,8 @@ int main() { DebugData(); //Prints Debug Data } setLoggerLevel("ALL"); + + ServerMain(Port, MaxPlayers); }