From e47137c53e14d6bc1683668580ca31244146e9ce Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Wed, 8 Jun 2011 10:51:38 +0200 Subject: [PATCH] new parameter target_random to ALL entities; when set to 1, only one instead of all entities matched by target/target2/target3/target4 are triggered --- qcsrc/server/defs.qh | 1 + qcsrc/server/g_triggers.qc | 27 ++++++++++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index f3c754151..e0a362ebe 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -545,6 +545,7 @@ void target_voicescript_clear(entity pl); .string target2; .string target3; .string target4; +.float target_random; .float trigger_reverse; // Nexball diff --git a/qcsrc/server/g_triggers.qc b/qcsrc/server/g_triggers.qc index 6c0921ba9..3ad43b0c3 100644 --- a/qcsrc/server/g_triggers.qc +++ b/qcsrc/server/g_triggers.qc @@ -88,6 +88,9 @@ void SUB_UseTargets() stemp = self; otemp = other; + if(stemp.target_random) + RandomSelection_Init(); + for(i = 0; i < 4; ++i) { switch(i) @@ -103,15 +106,29 @@ void SUB_UseTargets() for(t = world; (t = find(t, targetname, s)); ) if(t.use) { - //print(stemp.classname, " ", stemp.targetname, " -> ", t.classname, " ", t.targetname, "\n"); - self = t; - other = stemp; - activator = act; - self.use(); + if(stemp.target_random) + { + RandomSelection_Add(t, 0, string_null, 1, 0); + } + else + { + self = t; + other = stemp; + activator = act; + self.use(); + } } } } + if(stemp.target_random && RandomSelection_chosen_ent) + { + self = RandomSelection_chosen_ent; + other = stemp; + activator = act; + self.use(); + } + activator = act; self = stemp; other = otemp; -- 2.39.2