X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fclient.qc;h=f71afe7f3bde07892f28e0de9e8fa3b17f536aee;hb=d4d4690536e821468e7643e6ecf95b162f7faad1;hp=06254c42a0648b877aef9adf36e4a9ca62c30aea;hpb=c039d054a46888048d214000273ccfc63e4611b6;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/client.qc b/qcsrc/server/client.qc index 06254c42a..f71afe7f3 100644 --- a/qcsrc/server/client.qc +++ b/qcsrc/server/client.qc @@ -27,6 +27,7 @@ #include +#include "../common/triggers/func/conveyor.qh" #include "../common/triggers/teleporters.qh" #include "../common/vehicles/all.qh" @@ -295,6 +296,8 @@ void PutObserverInServer(entity this) accuracy_resend(this); this.spectatortime = time; + if(this.bot_attack) + IL_REMOVE(g_bot_targets, this); this.bot_attack = false; this.hud = HUD_NORMAL; TRANSMUTE(Observer, this); @@ -631,11 +634,15 @@ void PutClientInServer(entity this) this.oldorigin = this.origin; this.prevorigin = this.origin; this.lastteleporttime = time; // prevent insane speeds due to changing origin + if(this.conveyor) + IL_REMOVE(g_conveyed, this); this.conveyor = NULL; // prevent conveyors at the previous location from moving a freshly spawned player this.hud = HUD_NORMAL; this.event_damage = PlayerDamage; + if(!this.bot_attack) + IL_PUSH(g_bot_targets, this); this.bot_attack = true; this.monster_attack = true; @@ -733,7 +740,7 @@ void ClientInit_misc(entity this) else WriteString(channel, ""); WriteByte(channel, this.count * 255.0); // g_balance_armor_blockpercent - WriteByte(channel, serverflags); // client has to know if it should zoom or not + WriteByte(channel, serverflags); WriteCoord(channel, autocvar_g_trueaim_minrange); } @@ -938,10 +945,8 @@ void ClientKill_TeamChange (entity this, float targetteam) // 0 = don't change, this.killindicator.count = bound(0, ceil(killtime), 10); //sprint(this, strcat("^1You'll be dead in ", ftos(this.killindicator.cnt), " seconds\n")); - FOREACH_ENTITY_ENT(enemy, this, + IL_EACH(g_clones, it.enemy == this && !(it.effects & CSQCMODEL_EF_RESPAWNGHOST), { - if(it.classname != "body") - continue; it.killindicator = spawn(); it.killindicator.owner = it; it.killindicator.scale = 0.5; @@ -1200,7 +1205,7 @@ void ClientConnect(entity this) if (IS_REAL_CLIENT(this)) sv_notice_join(this); - FOREACH_ENTITY_FLOAT(init_for_player_needed, true, { + IL_EACH(g_initforplayer, it.init_for_player, { it.init_for_player(it, this); }); @@ -2502,20 +2507,11 @@ void DrownPlayer(entity this) void Player_Physics(entity this) { - set_movetype(this, ((this.move_qcphysics) ? MOVETYPE_NONE : this.move_movetype)); + set_movetype(this, this.move_movetype); if(!this.move_qcphysics) return; - int mt = this.move_movetype; - - if(mt == MOVETYPE_PUSH || mt == MOVETYPE_FAKEPUSH || mt == MOVETYPE_PHYSICS) - { - this.move_qcphysics = false; - set_movetype(this, mt); - return; - } - if(!frametime && !this.pm_frametime) return;