X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Ft_teleporters.qc;h=65131f84672f6bfde0dd0d9868d6f3dbe1deeac6;hp=788edeabf00b0fec0e4b83a96827835c4fab6647;hb=04bbc270623d9f75f19d00c93b6f5b2c51734bf4;hpb=d8e541e5cabb4e7981c0ab2e86f859440f0138f1 diff --git a/qcsrc/server/t_teleporters.qc b/qcsrc/server/t_teleporters.qc index 788edeabf..65131f846 100644 --- a/qcsrc/server/t_teleporters.qc +++ b/qcsrc/server/t_teleporters.qc @@ -29,12 +29,12 @@ void trigger_teleport_use() float check_tdeath(entity player, vector org, vector telefragmin, vector telefragmax) { - if (player.classname == "player" && player.health >= 1) + if (IS_PLAYER(player) && player.health >= 1) { TDEATHLOOP(org) { if not(teamplay && autocvar_g_telefrags_teamplay && head.team == player.team) - if(head.classname == "player") + if(IS_PLAYER(head)) if(head.health >= 1) return 1; } @@ -46,11 +46,11 @@ void tdeath(entity player, entity teleporter, entity telefragger, vector telefra { TDEATHLOOP(player.origin) { - if (player.classname == "player" && player.health >= 1) + if (IS_PLAYER(player) && player.health >= 1) { if not(teamplay && autocvar_g_telefrags_teamplay && head.team == player.team) { - if(head.classname == "player") + if(IS_PLAYER(head)) if(head.health >= 1) ++tdeath_hit; Damage (head, teleporter, telefragger, 10000, DEATH_TELEFRAG, head.origin, '0 0 0'); @@ -97,7 +97,7 @@ void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angle if(self.pushltime < time) // only show one teleport effect per teleporter per 0.2 seconds, for better fps { if(tflags & TELEPORT_FLAG_SOUND) - sound (player, CH_TRIGGER, "misc/teleport.wav", VOL_BASE, ATTN_NORM); + sound (player, CH_TRIGGER, "misc/teleport.wav", VOL_BASE, ATTEN_NORM); if(tflags & TELEPORT_FLAG_PARTICLES) { pointparticles(particleeffectnum("teleport"), player.origin, '0 0 0', 1); @@ -119,14 +119,14 @@ void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angle UpdateCSQCProjectileAfterTeleport(player); - if(player.classname == "player") + if(IS_PLAYER(player)) { if(tflags & TELEPORT_FLAG_TDEATH) if(player.takedamage && player.deadflag == DEAD_NO && !g_race && !g_cts && (autocvar_g_telefrags || (tflags & TELEPORT_FLAG_FORCE_TDEATH))) tdeath(player, teleporter, telefragger, telefragmin, telefragmax); // player no longer is on ground - player.flags &~= FL_ONGROUND; + player.flags &= ~FL_ONGROUND; // reset tracking of oldvelocity for impact damage (sudden velocity changes) player.oldvelocity = player.velocity; @@ -136,10 +136,12 @@ void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angle { player.pusher = teleporter.owner; player.pushltime = time + autocvar_g_maxpushtime; + player.istypefrag = player.BUTTON_CHAT; } else { player.pushltime = 0; + player.istypefrag = 0; } player.lastteleporttime = time; @@ -207,19 +209,19 @@ void Teleport_Touch (void) if(!other.vehicle.teleportable) return; - if(other.turrcaps_flags & TFL_TURRCAPS_ISTURRET) + if(other.turret_flags & TUR_FLAG_ISTURRET) return; if(other.deadflag != DEAD_NO) return; if(self.team) - if((self.spawnflags & 4 == 0) == (self.team != other.team)) + if(((self.spawnflags & 4) == 0) == (self.team != other.team)) return; EXACTTRIGGER_TOUCH; - if(other.classname == "player") + if(IS_PLAYER(other)) RemoveGrapplingHook(other); entity e; @@ -323,7 +325,7 @@ void spawnfunc_trigger_teleport (void) // this must be called to spawn the teleport waypoints for bots InitializeEntity(self, teleport_findtarget, INITPRIO_FINDTARGET); - if (!self.target) + if (self.target == "") { objerror ("Teleporter with no target"); return; @@ -344,7 +346,7 @@ void WarpZone_PostTeleportPlayer_Callback(entity pl) print("A non-projectile got through a warpzone and its owner cleared. It's a ", pl.classname, ".\n"); pl.owner = world; } - if(pl.classname == "player") + if(IS_PLAYER(pl)) { // reset tracking of oldvelocity for impact damage (sudden velocity changes) pl.oldvelocity = pl.velocity;