From bc3a76796d63e7b9ca15f9919e525ec2ca1f4f57 Mon Sep 17 00:00:00 2001 From: AdamTadeusz <44210793+AdamTadeusz@users.noreply.github.com> Date: Sat, 12 Oct 2024 16:48:23 +0100 Subject: [PATCH] Fix to weapon stealing on snowfall elevator (#671) * raise initial weapon spawn position * change absorigin to localorigin * actually we don't care about parent of either object, idea is to place weapon on player regardless of the weapons or players parents so absolute position makes more sense --------- Co-authored-by: brysondev --- mp/src/game/server/neo/neo_player.cpp | 4 ++-- mp/src/game/server/player.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/mp/src/game/server/neo/neo_player.cpp b/mp/src/game/server/neo/neo_player.cpp index f0c2bc61f..deb6b88ad 100644 --- a/mp/src/game/server/neo/neo_player.cpp +++ b/mp/src/game/server/neo/neo_player.cpp @@ -2339,7 +2339,7 @@ void GiveDet(CNEO_Player* pPlayer) } else { - pent->SetLocalOrigin(pPlayer->GetLocalOrigin()); + pent->SetAbsOrigin(pPlayer->EyePosition()); pent->AddSpawnFlags(SF_NORESPAWN); auto pWeapon = dynamic_cast((CBaseEntity*)pent); @@ -2434,7 +2434,7 @@ void CNEO_Player::GiveLoadoutWeapon(void) return; } - pEnt->SetLocalOrigin(GetLocalOrigin()); + pEnt->SetAbsOrigin(EyePosition()); pEnt->AddSpawnFlags(SF_NORESPAWN); CNEOBaseCombatWeapon *pNeoWeapon = dynamic_cast((CBaseEntity*)pEnt); diff --git a/mp/src/game/server/player.cpp b/mp/src/game/server/player.cpp index 1b666f28b..8ef6765b3 100644 --- a/mp/src/game/server/player.cpp +++ b/mp/src/game/server/player.cpp @@ -5888,9 +5888,12 @@ CBaseEntity *CBasePlayer::GiveNamedItem( const char *pszName, int iSubType ) Msg( "NULL Ent in GiveNamedItem!\n" ); return NULL; } - +#ifdef NEO + pent->SetAbsOrigin(EyePosition()); +#else pent->SetLocalOrigin( GetLocalOrigin() ); - pent->AddSpawnFlags(SF_NORESPAWN); +#endif + pent->AddSpawnFlags( SF_NORESPAWN ); CBaseCombatWeapon *pWeapon = dynamic_cast( (CBaseEntity*)pent ); if ( pWeapon )