#include "clientkill.qh"
#include "cheats.qh"
#include "g_world.qh"
+#include <server/gamelog.qh>
#include "race.qh"
#include "antilag.qh"
#include "campaign.qh"
#include <common/effects/qc/globalsound.qh>
#include "../common/mapobjects/func/conveyor.qh"
+#include <common/mapobjects/func/ladder.qh>
#include "../common/mapobjects/teleporters.qh"
#include "../common/mapobjects/target/spawnpoint.qh"
#include <common/mapobjects/trigger/counter.qh>
IL_REMOVE(g_swamped, this);
this.swampslug = NULL;
this.swamp_interval = 0;
+ if(this.ladder_entity)
+ IL_REMOVE(g_ladderents, this);
+ this.ladder_entity = NULL;
IL_EACH(g_counters, it.realowner == this,
{
delete(it);
int player_limit = GetPlayerLimit();
- float free_slots = 0;
+ int free_slots = 0;
if (!player_limit)
free_slots = maxclients - totalClients;
- else if(currentlyPlaying < player_limit)
+ else if(player_limit > 0 && currentlyPlaying < player_limit)
free_slots = min(maxclients - totalClients, player_limit - currentlyPlaying);
static float msg_time = 0;
this.flags &= ~FL_JUMPRELEASED;
this.flags |= FL_SPAWNING;
} else if((is_spec && (PHYS_INPUT_BUTTON_ATCK(this) || CS(this).impulse == 10 || CS(this).impulse == 15 || CS(this).impulse == 18 || (CS(this).impulse >= 200 && CS(this).impulse <= 209)))
- || (!is_spec && (PHYS_INPUT_BUTTON_ATCK(this) && !CS(this).version_mismatch || this.would_spectate))) {
+ || (!is_spec && ((PHYS_INPUT_BUTTON_ATCK(this) && !CS(this).version_mismatch) || this.would_spectate))) {
this.flags &= ~FL_JUMPRELEASED;
if(SpectateNext(this)) {
TRANSMUTE(Spectator, this);
{
STAT(REVIVE_PROGRESS, this) = bound(0, STAT(REVIVE_PROGRESS, this) + frametime * this.revive_speed, 1);
SetResourceExplicit(this, RES_HEALTH, max(1, STAT(REVIVE_PROGRESS, this) * start_health));
- this.iceblock.alpha = bound(0.2, 1 - STAT(REVIVE_PROGRESS, this), 1);
+ if (this.iceblock)
+ this.iceblock.alpha = bound(0.2, 1 - STAT(REVIVE_PROGRESS, this), 1);
if (STAT(REVIVE_PROGRESS, this) >= 1)
Unfreeze(this, false);
this.solid = SOLID_NOT;
this.takedamage = DAMAGE_NO;
set_movetype(this, MOVETYPE_NONE);
+ CS(this).teamkill_complain = 0;
+ CS(this).teamkill_soundtime = 0;
+ CS(this).teamkill_soundsource = NULL;
}
if (IS_PLAYER(this)) {