X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fclient.qc;h=9214900f36af170cce29422d8735673e91ff5779;hb=dde75a49c8c781947c6d5ef5968bb78f24171e25;hp=d0e2074856e55dbeac63782faaf9811f0ac16cd8;hpb=f8fe0e4aa8dad544f243ae997dfeb9cdccd55ee2;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/client.qc b/qcsrc/server/client.qc index d0e207485..9214900f3 100644 --- a/qcsrc/server/client.qc +++ b/qcsrc/server/client.qc @@ -10,7 +10,6 @@ #include "miscfunctions.qh" #include "portals.qh" #include "teamplay.qh" -#include "playerdemo.qh" #include "spawnpoints.qh" #include "resources.qh" #include "g_damage.qh" @@ -380,6 +379,7 @@ void PutObserverInServer(entity this) this.oldvelocity = this.velocity; this.fire_endtime = -1; this.event_damage = func_null; + this.event_heal = func_null; for(int slot = 0; slot < MAX_AXH; ++slot) { @@ -674,6 +674,7 @@ void PutPlayerInServer(entity this) STAT(HUD, this) = HUD_NORMAL; this.event_damage = PlayerDamage; + this.event_heal = PlayerHeal; if(!this.bot_attack) IL_PUSH(g_bot_targets, this); @@ -753,6 +754,14 @@ void PutPlayerInServer(entity this) MUTATOR_CALLHOOK(PlayerWeaponSelect, this); + if (CS(this).impulse) ImpulseCommands(this); + + for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot) + { + .entity weaponentity = weaponentities[slot]; + W_WeaponFrame(this, weaponentity); + } + if (!warmup_stage && !this.alivetime) this.alivetime = time; @@ -1082,6 +1091,8 @@ void ClientKill_TeamChange (entity this, float targetteam) // 0 = don't change, void ClientKill (entity this) { + // TODO: once .health is removed, will need to check it here for the "already dead" message! + if(game_stopped) return; if(this.player_blocked) return; if(STAT(FROZEN, this)) return; @@ -1723,10 +1734,10 @@ void player_regen(entity this) limith = limith * limit_mod; limita = limita * limit_mod; - SetResourceAmountExplicit(this, RESOURCE_ARMOR, CalcRotRegen(GetResourceAmount(this, RESOURCE_ARMOR), mina, autocvar_g_balance_armor_regen, autocvar_g_balance_armor_regenlinear, + SetResourceAmount(this, RESOURCE_ARMOR, CalcRotRegen(GetResourceAmount(this, RESOURCE_ARMOR), mina, autocvar_g_balance_armor_regen, autocvar_g_balance_armor_regenlinear, regen_mod * frametime * (time > this.pauseregen_finished), maxa, autocvar_g_balance_armor_rot, autocvar_g_balance_armor_rotlinear, rot_mod * frametime * (time > this.pauserotarmor_finished), limita)); - SetResourceAmountExplicit(this, RESOURCE_HEALTH, CalcRotRegen(GetResourceAmount(this, RESOURCE_HEALTH), regen_health_stable, regen_health, regen_health_linear, + SetResourceAmount(this, RESOURCE_HEALTH, CalcRotRegen(GetResourceAmount(this, RESOURCE_HEALTH), regen_health_stable, regen_health, regen_health_linear, regen_mod * frametime * (time > this.pauseregen_finished), regen_health_rotstable, regen_health_rot, regen_health_rotlinear, rot_mod * frametime * (time > this.pauserothealth_finished), limith)); } @@ -1753,18 +1764,6 @@ void player_regen(entity this) frametime * (time > this.pauseregen_finished) * ((this.items & ITEM_JetpackRegen.m_itemid) != 0), maxf, autocvar_g_balance_fuel_rot, autocvar_g_balance_fuel_rotlinear, frametime * (time > this.pauserotfuel_finished), limitf)); } - // Ugly hack to make sure the health and armor don't go beyond hard limit. - // TODO: Remove this hack when all code uses GivePlayerHealth and - // GivePlayerArmor. - if (GetResourceAmount(this, RESOURCE_HEALTH) > RESOURCE_AMOUNT_HARD_LIMIT) - { - SetResourceAmountExplicit(this, RESOURCE_HEALTH, RESOURCE_AMOUNT_HARD_LIMIT); - } - if (GetResourceAmount(this, RESOURCE_ARMOR) > RESOURCE_AMOUNT_HARD_LIMIT) - { - SetResourceAmountExplicit(this, RESOURCE_ARMOR, RESOURCE_AMOUNT_HARD_LIMIT); - } - // End hack. } bool zoomstate_set; @@ -2827,8 +2826,6 @@ void PlayerPostThink (entity this) WaypointSprite_UpdateHealth(this.waypointsprite_attachedforcarrier, '1 0 0' * v); } - playerdemo_write(this); - CSQCMODEL_AUTOUPDATE(this); }