From 7718b34c0ffd57ce3e969f8413b3d2e15ec118e0 Mon Sep 17 00:00:00 2001 From: Till Schreiber Date: Tue, 14 Jan 2025 12:29:18 +0100 Subject: [PATCH] fix nullpointer crash --- server/src/CSharpResourceImpl.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/server/src/CSharpResourceImpl.cpp b/server/src/CSharpResourceImpl.cpp index eee53f5..c27b7de 100644 --- a/server/src/CSharpResourceImpl.cpp +++ b/server/src/CSharpResourceImpl.cpp @@ -332,9 +332,19 @@ case alt::CEvent::Type::SYNCED_META_CHANGE: { auto weaponDamageEvent = dynamic_cast(ev); auto targetEntity = weaponDamageEvent->GetTarget(); + if (targetEntity == nullptr) return; + + auto sourceEntityType = alt::IBaseObject::Type::PLAYER; + void* sourceEntityPtr = nullptr; + auto sourceEntity = weaponDamageEvent->GetSourceEntity(); - if (targetEntity == nullptr) return; + if (sourceEntity != nullptr) + { + sourceEntityPtr = GetEntityPointer(sourceEntity); + sourceEntityType = sourceEntity->GetType(); + } + auto eventShotOffset = weaponDamageEvent->GetShotOffset(); position_t shotOffset = {eventShotOffset[0], eventShotOffset[1], eventShotOffset[2]}; @@ -347,8 +357,8 @@ case alt::CEvent::Type::SYNCED_META_CHANGE: weaponDamageEvent->GetDamageValue(), shotOffset, weaponDamageEvent->GetBodyPart(), - GetEntityPointer(sourceEntity), - sourceEntity->GetType()); + sourceEntityPtr, + sourceEntityType); break; }