X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_client.qc;h=fe73c873434ff83504247f1aef55abeca06aa82e;hb=0fc6cb599751b5d3cb932ffcea0431d35ebd26c6;hp=cc3a6028ec2ceeded767a7232a6dafe7689a7ae0;hpb=92c61bba87835a1bfd152c4cbb40764647a83656;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index cc3a6028e..fe73c8734 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -383,7 +383,7 @@ void FixPlayermodel(entity player) defaultskin = autocvar_sv_defaultplayerskin; } - MUTATOR_CALLHOOK(FixPlayermodel, defaultmodel, defaultskin); + MUTATOR_CALLHOOK(FixPlayermodel, defaultmodel, defaultskin, player); defaultmodel = M_ARGV(0, string); defaultskin = M_ARGV(1, int); @@ -1304,7 +1304,7 @@ void respawn(entity this) CopyBody(this, 1); this.effects |= EF_NODRAW; // prevent another CopyBody - PutClientInServer(); + WITHSELF(this, PutClientInServer()); } void play_countdown(entity this, float finished, Sound samp) @@ -1483,18 +1483,28 @@ void player_regen(entity this) { float max_mod, regen_mod, rot_mod, limit_mod; max_mod = regen_mod = rot_mod = limit_mod = 1; - regen_mod_max = max_mod; - regen_mod_regen = regen_mod; - regen_mod_rot = rot_mod; - regen_mod_limit = limit_mod; - - regen_health = autocvar_g_balance_health_regen; - regen_health_linear = autocvar_g_balance_health_regenlinear; - regen_health_rot = autocvar_g_balance_health_rot; - regen_health_rotlinear = autocvar_g_balance_health_rotlinear; - regen_health_stable = autocvar_g_balance_health_regenstable; - regen_health_rotstable = autocvar_g_balance_health_rotstable; - if(!MUTATOR_CALLHOOK(PlayerRegen)) + + float regen_health = autocvar_g_balance_health_regen; + float regen_health_linear = autocvar_g_balance_health_regenlinear; + float regen_health_rot = autocvar_g_balance_health_rot; + float regen_health_rotlinear = autocvar_g_balance_health_rotlinear; + float regen_health_stable = autocvar_g_balance_health_regenstable; + float regen_health_rotstable = autocvar_g_balance_health_rotstable; + bool mutator_returnvalue = MUTATOR_CALLHOOK(PlayerRegen, this, max_mod, regen_mod, rot_mod, limit_mod, regen_health, regen_health_linear, regen_health_rot, + regen_health_rotlinear, regen_health_stable, regen_health_rotstable); + max_mod = M_ARGV(1, float); + regen_mod = M_ARGV(2, float); + rot_mod = M_ARGV(3, float); + limit_mod = M_ARGV(4, float); + regen_health = M_ARGV(5, float); + regen_health_linear = M_ARGV(6, float); + regen_health_rot = M_ARGV(7, float); + regen_health_rotlinear = M_ARGV(8, float); + regen_health_stable = M_ARGV(9, float); + regen_health_rotstable = M_ARGV(10, float); + + + if(!mutator_returnvalue) if(!STAT(FROZEN, this)) { float mina, maxa, limith, limita; @@ -1503,11 +1513,6 @@ void player_regen(entity this) limith = autocvar_g_balance_health_limit; limita = autocvar_g_balance_armor_limit; - max_mod = regen_mod_max; - regen_mod = regen_mod_regen; - rot_mod = regen_mod_rot; - limit_mod = regen_mod_limit; - regen_health_rotstable = regen_health_rotstable * max_mod; regen_health_stable = regen_health_stable * max_mod; limith = limith * limit_mod; @@ -2145,7 +2150,8 @@ void PlayerPreThink () { if (this.vehicle) vehicles_exit(this.vehicle, VHEF_RELEASE); - this.event_damage(this, this, this.frozen_by, 1, DEATH_NADE_ICE_FREEZE.m_id, this.origin, '0 0 0'); + if(this.event_damage) + this.event_damage(this, this, this.frozen_by, 1, DEATH_NADE_ICE_FREEZE.m_id, this.origin, '0 0 0'); } else if (this.revive_progress <= 0) Unfreeze(this); @@ -2236,7 +2242,7 @@ void PlayerPreThink () if (time > this.respawn_time) { this.respawn_time = time + 1; // only retry once a second this.respawn_time_max = this.respawn_time; - respawn(); + respawn(this); } }