X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fclient.qc;h=0034c2dd9ee3b687a0b600eee0b850cc056dfb89;hb=629f6f3b55e891281bb265f8022d129d313c110f;hp=3afa06d1279c0df404c6174cb3b415d391ea96cb;hpb=772fb683d951a622cc8520827096ec34fdea4763;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/client.qc b/qcsrc/server/client.qc index 3afa06d12..0034c2dd9 100644 --- a/qcsrc/server/client.qc +++ b/qcsrc/server/client.qc @@ -40,6 +40,7 @@ #include "../common/mapobjects/teleporters.qh" #include "../common/mapobjects/target/spawnpoint.qh" #include +#include #include "../common/vehicles/all.qh" @@ -604,7 +605,7 @@ void PutPlayerInServer(entity this) this.pauseregen_finished += f; } - this.damageforcescale = 2; + this.damageforcescale = autocvar_g_player_damageforcescale; this.death_time = 0; this.respawn_flags = 0; this.respawn_time = 0; @@ -640,6 +641,10 @@ void PutPlayerInServer(entity this) STAT(REVIVE_PROGRESS, this) = 0; this.revival_time = 0; + // TODO: we can't set these in the PlayerSpawn hook since the target code is called before it! + STAT(BUFFS, this) = 0; + STAT(BUFF_TIME, this) = 0; + this.air_finished = time + 12; this.waterlevel = WATERLEVEL_NONE; this.watertype = CONTENT_EMPTY; @@ -678,6 +683,9 @@ void PutPlayerInServer(entity this) if(this.conveyor) IL_REMOVE(g_conveyed, this); this.conveyor = NULL; // prevent conveyors at the previous location from moving a freshly spawned player + if(this.swampslug) + delete(this.swampslug); + this.in_swamp = false; STAT(HUD, this) = HUD_NORMAL; this.event_damage = PlayerDamage; @@ -1675,6 +1683,7 @@ void SpectateCopy(entity this, entity spectatee) this.effects = spectatee.effects & EFMASK_CHEAP; // eat performance SetResourceExplicit(this, RES_HEALTH, GetResource(spectatee, RES_HEALTH)); CS(this).impulse = 0; + this.disableclientprediction = 1; // no need to run prediction on a spectator this.items = spectatee.items; STAT(LAST_PICKUP, this) = STAT(LAST_PICKUP, spectatee); STAT(HIT_TIME, this) = STAT(HIT_TIME, spectatee); @@ -2186,6 +2195,8 @@ bool PlayerThink(entity this) for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot) { .entity weaponentity = weaponentities[slot]; + if(WEP_CVAR(vortex, charge_always)) + W_Vortex_Charge(this, weaponentity, frametime); W_WeaponFrame(this, weaponentity); }