Merge pull request #124 from teamfisk/FixNetworkBugs

Test text here. Good work Jocke.
This commit is contained in:
William Moberg
2016-02-19 16:47:34 +01:00
3 changed files with 4 additions and 4 deletions
+3 -2
View File
@@ -437,11 +437,12 @@ void Client::parsePlayerDamage(Packet& packet)
{ {
Events::PlayerDamage e; Events::PlayerDamage e;
PlayerID victimID = packet.ReadPrimitive<EntityID>(); PlayerID victimID = packet.ReadPrimitive<EntityID>();
if(serverClientMapsHasEntity(victimID)){ PlayerID inflictorID = packet.ReadPrimitive<EntityID>();
if(!serverClientMapsHasEntity(victimID) || !serverClientMapsHasEntity(inflictorID)){
return; return;
} }
e.Inflictor = EntityWrapper(m_World, m_ServerIDToClientID.at(victimID)); e.Inflictor = EntityWrapper(m_World, m_ServerIDToClientID.at(victimID));
e.Victim = EntityWrapper(m_World, m_ServerIDToClientID.at(packet.ReadPrimitive<EntityID>())); e.Victim = EntityWrapper(m_World, m_ServerIDToClientID.at(inflictorID));
e.Damage = packet.ReadPrimitive<double>(); e.Damage = packet.ReadPrimitive<double>();
// Don't rebroadcast our own player damage events or we'll have an infinite loop! // Don't rebroadcast our own player damage events or we'll have an infinite loop!
if (e.Inflictor != m_LocalPlayer) { if (e.Inflictor != m_LocalPlayer) {
-1
View File
@@ -84,7 +84,6 @@ void Server::Update()
if (isReadingData) { if (isReadingData) {
Network::Update(); Network::Update();
} }
} }
void Server::parseMessageType(Packet& packet) void Server::parseMessageType(Packet& packet)
+1 -1
View File
@@ -24,7 +24,7 @@ void HealthSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cHea
bool HealthSystem::OnPlayerDamaged(Events::PlayerDamage& e) bool HealthSystem::OnPlayerDamaged(Events::PlayerDamage& e)
{ {
if (!IsServer && m_NetworkEnabled) { if (!IsServer && m_NetworkEnabled || !e.Victim.Valid()) {
return false; return false;
} }