sound (this, CH_INFO, samp, VOL_BASE, ATTEN_NORM);
}
+void player_powerups_remove_all(entity this)
+{
+ if (this.items & (ITEM_Strength.m_itemid | ITEM_Shield.m_itemid | IT_SUPERWEAPON))
+ {
+ if (time > game_starttime + 1)
+ sound(this, CH_INFO, SND_POWEROFF, VOL_BASE, ATTEN_NORM);
+ stopsound(this, CH_TRIGGER_SINGLE); // get rid of the pickup sound
+ this.items &= ~ITEM_Strength.m_itemid;
+ this.items &= ~ITEM_Shield.m_itemid;
+ this.items -= (this.items & IT_SUPERWEAPON);
+ }
+}
+
void player_powerups(entity this)
{
if((this.items & IT_USING_JETPACK) && !IS_DEAD(this) && !game_stopped)
this.effects &= ~(EF_RED | EF_BLUE | EF_ADDITIVE | EF_FULLBRIGHT | EF_FLAME | EF_NODEPTHTEST);
if (IS_DEAD(this))
- {
- if (this.items & (ITEM_Strength.m_itemid | ITEM_Shield.m_itemid | IT_SUPERWEAPON))
- {
- sound(this, CH_INFO, SND_POWEROFF, VOL_BASE, ATTEN_NORM);
- stopsound(this, CH_TRIGGER_SINGLE); // get rid of the pickup sound
- this.items &= ~ITEM_Strength.m_itemid;
- this.items &= ~ITEM_Shield.m_itemid;
- this.items -= (this.items & IT_SUPERWEAPON);
- }
- }
+ player_powerups_remove_all(this);
if((this.alpha < 0 || IS_DEAD(this)) && !this.vehicle) // don't apply the flags if the player is gibbed
return;
FOREACH_CLIENT(IS_PLAYER(it),
{
+ if (STAT(FROZEN, it))
+ Unfreeze(it, false);
+ player_powerups_remove_all(it);
entity store = PS(it);
if (store)
{
if (it.reset2) it.reset2(it);
});
- FOREACH_CLIENT(IS_PLAYER(it) && STAT(FROZEN, it), { Unfreeze(it, false); });
-
// Moving the player reset code here since the player-reset depends
// on spawnpoint entities which have to be reset first --blub
if (dorespawn)
restart_mapalreadyrestarted to 1 after the countdown ended or when
sv_ready_restart_after_countdown is not used and countdown is still running
*/
- // NEW: changed behaviour so that it prevents that previous spectators/observers suddenly spawn as players
// PlayerScore_Clear(it);
CS(it).killcount = 0;
// stop the player from moving so that he stands still once he gets respawned