mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2026-04-10 09:46:20 +00:00
lots of work
This commit is contained in:
@@ -34,7 +34,7 @@ void UpdatePlayers(ENetHost *server, ENetPeer*peer){
|
||||
}
|
||||
|
||||
void OnDisconnect(ENetHost *server,ENetPeer*peer,bool Timed){
|
||||
std::string Packet = "Od:" + std::to_string(peer->serverVehicleID[0]);
|
||||
std::string Packet = "Od:" + std::to_string(peer->PlayerID);
|
||||
SendToAll(server,peer, Packet,false,true);
|
||||
if(Timed)Packet = "L"+peer->Name+" Timed out!";
|
||||
else Packet = "L"+peer->Name+" Left the server!";
|
||||
@@ -47,8 +47,8 @@ void OnDisconnect(ENetHost *server,ENetPeer*peer,bool Timed){
|
||||
|
||||
void OnConnect(ENetHost *server,ENetPeer*peer){
|
||||
Respond("NR",peer);
|
||||
peer->serverVehicleID[0] = FindID(server,peer); ///TODO: WHAT IF IT IS THE SECOND VEHICLE?
|
||||
std::string ID = "P" + std::to_string(peer->serverVehicleID[0]);
|
||||
peer->PlayerID = FindID(server,peer); ///TODO: WHAT IF IT IS THE SECOND VEHICLE?
|
||||
std::string ID = "P" + std::to_string(peer->PlayerID);
|
||||
Respond(ID,peer);
|
||||
if(Debug)debug(peer->Name + " ID : " + std::to_string(peer->serverVehicleID[0]));
|
||||
if(Debug)debug(peer->Name + " ID : " + std::to_string(peer->PlayerID));
|
||||
}
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
///
|
||||
/// Created by Anonymous275 on 4/2/2020
|
||||
///
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include "enet.hpp"
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include <thread>
|
||||
#include <iostream>
|
||||
#include "enet.hpp"
|
||||
#include "../logger.h"
|
||||
#include "../Settings.hpp"
|
||||
|
||||
@@ -20,7 +19,7 @@ void FindAndSync(ENetPeer*peer,ENetHost*server,int VehID){
|
||||
for (int i = 0; i < server->connectedPeers; i++) {
|
||||
ENetClient = &server->peers[i];
|
||||
if (ENetClient != peer){
|
||||
if(ENetClient->serverVehicleID[0] == VehID){
|
||||
if(ENetClient->PlayerID == VehID){ /////mark
|
||||
Respond(ENetClient->VehicleData,peer);
|
||||
}
|
||||
}
|
||||
@@ -34,7 +33,7 @@ void VehicleParser(std::string Packet,ENetPeer*peer,ENetHost*server){
|
||||
switch(Code){ //Spawned Destroyed Switched/Moved NotFound Reset
|
||||
case 's':
|
||||
if(Data.at(0) == '0'){
|
||||
Packet = "Os:"+peer->Role+":"+peer->Name+":"+std::to_string(peer->serverVehicleID[0])+Packet.substr(4);
|
||||
Packet = "Os:"+peer->Role+":"+peer->Name+":"+std::to_string(peer->PlayerID)+Packet.substr(4);
|
||||
peer->VehicleData = Packet;
|
||||
}
|
||||
SendToAll(server,peer,Packet,true,true);
|
||||
@@ -44,7 +43,7 @@ void VehicleParser(std::string Packet,ENetPeer*peer,ENetHost*server){
|
||||
ID = stoi(Packet.substr(3));
|
||||
}
|
||||
peer->VehicleData.clear();
|
||||
if(ID != -1 && ID == peer->serverVehicleID[0]){
|
||||
if(ID != -1 && ID == peer->PlayerID){
|
||||
SendToAll(server,peer,Packet,true,true);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -9,25 +9,23 @@
|
||||
#include "../logger.h"
|
||||
#include "../Settings.hpp"
|
||||
|
||||
void ParseData(ENetPacket*packet,ENetPeer*peer,ENetHost *server); //Data Parser
|
||||
void ParseData(ENetPacket*packet,ENetPeer*peer,ENetHost *server);
|
||||
void OnDisconnect(ENetHost *server,ENetPeer*peer,bool Timed);
|
||||
void OnConnect(ENetHost *server,ENetPeer*peer);
|
||||
ENetPacket* packet;
|
||||
int PlayerCount = 0;
|
||||
|
||||
int FindID(ENetHost *server,ENetPeer*peer){
|
||||
int OpenID = 1, *p;
|
||||
int OpenID = 1;
|
||||
bool Found;
|
||||
do {
|
||||
Found = true;
|
||||
for (int i = 0; i < server->connectedPeers; i++) {
|
||||
if (&server->peers[i] != peer) {
|
||||
for(p=server->peers[i].serverVehicleID; p<(&server->peers[i].serverVehicleID)[1]; p++){
|
||||
if(*p == OpenID) {
|
||||
Found = false;
|
||||
OpenID++;
|
||||
break;
|
||||
}
|
||||
if(server->peers[i].PlayerID == OpenID) {
|
||||
Found = false;
|
||||
OpenID++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -39,7 +37,7 @@ int FindID(ENetHost *server,ENetPeer*peer){
|
||||
void host_server(ENetHost *server) {
|
||||
ENetEvent event;
|
||||
PlayerCount = server->connectedPeers;
|
||||
while (enet_host_service(server, &event, 2) > 0) {
|
||||
while (enet_host_service(server, &event, 1) > 0) {
|
||||
switch (event.type) {
|
||||
case ENET_EVENT_TYPE_CONNECT:
|
||||
printf("A new client connected from %x:%u.\n", event.peer->address.host, event.peer->address.port);
|
||||
|
||||
@@ -35,10 +35,9 @@
|
||||
#ifndef ENET_INCLUDE_H
|
||||
#define ENET_INCLUDE_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <time.h>
|
||||
#include <cstdlib>
|
||||
#include <cstdint>
|
||||
#include <ctime>
|
||||
|
||||
#define ENET_VERSION_MAJOR 2
|
||||
#define ENET_VERSION_MINOR 2
|
||||
@@ -640,7 +639,7 @@ typedef struct _ENetPeer {
|
||||
std::string DID;
|
||||
std::string Role = "USER";
|
||||
std::string VehicleData;
|
||||
int gameVehicleID[10] = {0}; //added By Anonymous275
|
||||
int PlayerID;
|
||||
int serverVehicleID[10] = {0}; //added By Anonymous275
|
||||
ENetPeerState state;
|
||||
ENetChannel * channels;
|
||||
|
||||
@@ -14,4 +14,4 @@ std::vector<std::string> Split(const std::string& String,const std::string& deli
|
||||
}
|
||||
Val.push_back(s);
|
||||
return Val;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user