From 7bfb669c5fcd295aab20c44ba114decd73a93464 Mon Sep 17 00:00:00 2001 From: Till Schreiber Date: Mon, 13 Jan 2025 22:03:08 +0100 Subject: [PATCH] ALTV-610 - send sourceEntity to WeaponDamage --- server/include/CSharpResourceImpl.h | 3 ++- server/src/CSharpResourceImpl.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/server/include/CSharpResourceImpl.h b/server/include/CSharpResourceImpl.h index 31f3d67..bb89c2d 100644 --- a/server/include/CSharpResourceImpl.h +++ b/server/include/CSharpResourceImpl.h @@ -88,7 +88,8 @@ typedef void (* ColShapeDelegate_t)(void* colShape, void* entity, alt::IBaseObje typedef void (* WeaponDamageDelegate_t)(const alt::CEvent* event, alt::IPlayer* source, void* target, alt::IBaseObject::Type targetBaseObjectType, uint32_t weaponHash, uint32_t damageValue, position_t shotOffset, - alt::CWeaponDamageEvent::BodyPart bodyPart); + alt::CWeaponDamageEvent::BodyPart bodyPart, void* sourceEntity, + alt::IBaseObject::Type sourceEntityType); typedef void (* ExplosionDelegate_t)(const alt::CEvent* event, alt::IPlayer* source, alt::CExplosionEvent::ExplosionType explosionType, diff --git a/server/src/CSharpResourceImpl.cpp b/server/src/CSharpResourceImpl.cpp index 8332153..eee53f5 100644 --- a/server/src/CSharpResourceImpl.cpp +++ b/server/src/CSharpResourceImpl.cpp @@ -25,7 +25,7 @@ void CSharpResourceImpl::ResetDelegates() OnPlayerDeathDelegate = [](auto var, auto var2, auto var3, auto var4) {}; OnExplosionDelegate = [](auto var, auto var2, auto var3, auto var4, auto var5, auto var6, auto var7) {}; OnWeaponDamageDelegate = [](auto var, auto var2, auto var3, auto var4, auto var5, auto var6, auto var7, - auto var8) {}; + auto var8, auto var9, auto var10) {}; OnPlayerDisconnectDelegate = [](auto var, auto var2) {}; OnServerEventDelegate = [](auto var, auto var2, auto var3) {}; OnPlayerChangeVehicleSeatDelegate = [](auto var, auto var2, auto var3, auto var4) {}; @@ -332,6 +332,7 @@ case alt::CEvent::Type::SYNCED_META_CHANGE: { auto weaponDamageEvent = dynamic_cast(ev); auto targetEntity = weaponDamageEvent->GetTarget(); + auto sourceEntity = weaponDamageEvent->GetSourceEntity(); if (targetEntity == nullptr) return; @@ -345,7 +346,9 @@ case alt::CEvent::Type::SYNCED_META_CHANGE: weaponDamageEvent->GetWeaponHash(), weaponDamageEvent->GetDamageValue(), shotOffset, - weaponDamageEvent->GetBodyPart()); + weaponDamageEvent->GetBodyPart(), + GetEntityPointer(sourceEntity), + sourceEntity->GetType()); break; }