diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index 17357d5fd..02c39a982 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -1096,6 +1096,7 @@ bool CCharacter::UnFreeze() { m_aWeapons[i].m_Ammo = -1; } + if(!m_aWeapons[m_ActiveWeapon].m_Got) m_ActiveWeapon=WEAPON_GUN; m_FreezeTime=0; return true; } diff --git a/src/game/server/entities/pickup.cpp b/src/game/server/entities/pickup.cpp index 1cd4de871..c748cb50c 100644 --- a/src/game/server/entities/pickup.cpp +++ b/src/game/server/entities/pickup.cpp @@ -80,6 +80,9 @@ void CPickup::Tick() } } } + pChr->m_Ninja.m_ActivationDir=vec2(0,0); + pChr->m_Ninja.m_ActivationTick=-500; + pChr->m_Ninja.m_CurrentMoveTime=0; if (sound) { pChr->m_LastWeapon = WEAPON_GUN; @@ -90,7 +93,7 @@ void CPickup::Tick() case POWERUP_WEAPON: - if(m_Subtype >= 0 && m_Subtype < NUM_WEAPONS && (!pChr->m_aWeapons[m_Subtype].m_Got || pChr->m_aWeapons[m_Subtype].m_Ammo != -1)) + if(m_Subtype >= 0 && m_Subtype < NUM_WEAPONS && (!pChr->m_aWeapons[m_Subtype].m_Got || (pChr->m_aWeapons[m_Subtype].m_Ammo != -1 && !pChr->m_FreezeTime))) { if(pChr->GiveWeapon(m_Subtype, -1)) {