Fixed crash in Client::parsePlayerDamage.

This commit is contained in:
Jocke
2016-02-17 10:21:50 +01:00
parent a006db9e63
commit 4432891437
2 changed files with 3 additions and 3 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)