From f1754883ee8613c30880fd5fff8995293451a2b0 Mon Sep 17 00:00:00 2001 From: cypress Date: Tue, 12 Dec 2023 18:05:14 -0500 Subject: [PATCH] SERVER: Add trigger_hurt from Quake --- source/server/defs/custom.qc | 2 ++ source/server/dummies.qc | 1 - source/server/entities/doors.qc | 1 - source/server/entities/func.qc | 2 -- source/server/entities/triggers.qc | 34 ++++++++++++++++++++++++++++++ 5 files changed, 36 insertions(+), 4 deletions(-) diff --git a/source/server/defs/custom.qc b/source/server/defs/custom.qc index b94816b..aaf1227 100644 --- a/source/server/defs/custom.qc +++ b/source/server/defs/custom.qc @@ -258,6 +258,8 @@ void() SUB_Null2 = {}; .string name; vector trace_plane_normal; +.float dmg; + // // AI definitions // Used for global one-zombie-at-a-time type ai diff --git a/source/server/dummies.qc b/source/server/dummies.qc index 870b347..9a43914 100644 --- a/source/server/dummies.qc +++ b/source/server/dummies.qc @@ -34,7 +34,6 @@ void() trigger_setskill = {remove(self);}; void() trigger_monsterjump = {remove(self);}; void() trigger_onlyregistered = {remove(self);}; void() trigger_push = {remove(self);}; -void() trigger_hurt = {remove(self);}; // Player Starts void() info_player_start = {}; void() info_player_start2 = {}; diff --git a/source/server/entities/doors.qc b/source/server/entities/doors.qc index b9b2060..2ecad53 100644 --- a/source/server/entities/doors.qc +++ b/source/server/entities/doors.qc @@ -47,7 +47,6 @@ float DOOR_POWER = 64; .float delay; .void() think1; .vector finaldest; -.float dmg; .entity trigger_field; .float wait; .float speed; diff --git a/source/server/entities/func.qc b/source/server/entities/func.qc index 5464ac9..62f168d 100644 --- a/source/server/entities/func.qc +++ b/source/server/entities/func.qc @@ -149,8 +149,6 @@ void () func_rotating = // func_train // ================================= -.float dmg; - void() train_next; void() func_train_find; diff --git a/source/server/entities/triggers.qc b/source/server/entities/triggers.qc index 4084a16..8d09119 100644 --- a/source/server/entities/triggers.qc +++ b/source/server/entities/triggers.qc @@ -355,3 +355,37 @@ void() trigger_once = trigger_multiple(); } + +// +// Quake Triggers +// + +void() hurt_on = +{ + self.solid = SOLID_TRIGGER; + self.nextthink = -1; +}; + +void() hurt_touch = +{ + //if (other.takedamage) + { + self.solid = SOLID_NOT; + DamageHandler(other, self, self.dmg, S_ZOMBIE); + self.think = hurt_on; + self.nextthink = time + 1; + + if (self.message) + centerprint(other, strcat(self.message, "\n")); + } + + return; +}; + +void() trigger_hurt = +{ + InitTrigger (); + self.touch = hurt_touch; + if (!self.dmg) + self.dmg = 5; +}; \ No newline at end of file