From 6568c3eac4e6f6bb0e475f732988c90f06d0b000 Mon Sep 17 00:00:00 2001 From: Tyler Young Date: Sun, 26 Nov 2023 19:10:22 -0500 Subject: [PATCH] SERVER: Kill zombies during teleportation --- source/server/entities/teleporter.qc | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/source/server/entities/teleporter.qc b/source/server/entities/teleporter.qc index bcfb336..222a0bb 100644 --- a/source/server/entities/teleporter.qc +++ b/source/server/entities/teleporter.qc @@ -250,13 +250,15 @@ void() teleporter_link_touch = void() teleport_touch = { + entity tempe; + if (self.cooldown) { useprint(other, 16, 0, 0); return; } if (other.classname != "player" || self.activated) - return; + return; if (!isPowerOn) { useprint(other, 8, 0, 0); @@ -295,8 +297,27 @@ void() teleport_touch = people.tele_target = find(world, targetname, self.target); people.movetype = MOVETYPE_NONE; } - people = people.chain; + people = people.chain; } + + entity zod = findradius(self.origin, self.stance); + while (zod != world) + { + if (zod.classname == "ai_zombie_head" || zod.classname == "ai_zombie_rarm" + || zod.classname == "ai_zombie_larm") + { + // If we're a limb, grab our body. + zod = zod.owner; + } + if (zod.classname == "ai_zombie" && !zod.electro_targeted) + { + tempe = self; + self = zod; + Z_ElectroShock(); + self = tempe; + } + zod = zod.chain; + } if (!other.tele_target) objerror("Couldn't find target!");