A Community discussion forum for Halo Custom Edition, Halo 2 Vista, Portal and Halo Machinima

Home  Search Register  Login Member ListRecent Posts
  
 
»Forums Index »Halo Custom Edition (Bungie/Gearbox) »Halo CE General Discussion »Soft Barriers / Guard Barriers?

Author Topic: Soft Barriers / Guard Barriers? (10 messages, Page 1 of 1)
Moderators: Dennis

Banshee64
Joined: Dec 4, 2012

oify


Posted: Dec 7, 2013 10:07 PM    Msg. 1 of 10       
Has anyone figured out how to make soft barriers in ce? Soft barriers are the ones that say 'return to the battlefield'.

Is there currently a way to make Guard Barriers? eg: the towers on Sandbox that fire at you when you leave the playable area.


Jesse
Joined: Jan 18, 2009

Discord: Holy Crust#4500


Posted: Dec 8, 2013 06:24 AM    Msg. 2 of 10       
Can't be too hard, I'm sure you can use trigger zones to activate the message, but how to display it, I don't know.


SOI_7
Joined: Mar 23, 2012

Welcome to the true man's world


Posted: Dec 8, 2013 06:45 AM    Msg. 3 of 10       
Use chapter titles via script for displaying the message. As for the turrets, do what Jesse said.
Edited by SOI_7 on Dec 8, 2013 at 06:45 AM


Higuy
Joined: Mar 6, 2007

@lucasgovatos


Posted: Dec 8, 2013 09:44 AM    Msg. 4 of 10       
It's all possible.

The guard turrets.... you can't get them to sync, but you can still kill the player and make it look like they did.


altis94
Joined: Oct 5, 2012

Join my Discord https://discord.gg/GDVEaRD


Posted: Dec 8, 2013 09:56 AM    Msg. 5 of 10       
http://zhtw.xfire.com/video/61773f/ Works perfectly online.
Edited by altis94 on Dec 8, 2013 at 09:57 AM


Banshee64
Joined: Dec 4, 2012

oify


Posted: Dec 8, 2013 12:22 PM    Msg. 6 of 10       
Quote: --- Original message by: altis94

http://zhtw.xfire.com/video/61773f/ Works perfectly online.
Edited by altis94 on Dec 8, 2013 at 09:57 AM


Yeah, but that's just a message. I want a countdown that leads to a 'killed by the guardians' thing.

As for the Guard Barriers, if it's too elaborate to get something non-AI to shoot and kill the player under the conditions, then I'm just not going to bother with it.


Higuy
Joined: Mar 6, 2007

@lucasgovatos


Posted: Dec 8, 2013 12:26 PM    Msg. 7 of 10       
It's actually a lot easier than the shooting AI thing, actually.

You could have the flashing message, and like, for example, a fade in type thing to red, and when it fades in all the way you can fade out in a split second and use the comamnd to kill the player (i forget all the commands right now).

It's nothing too complicated, although, you'll have to do it for every player i think? (16)


altis94
Joined: Oct 5, 2012

Join my Discord https://discord.gg/GDVEaRD


Posted: Dec 8, 2013 01:18 PM    Msg. 8 of 10       
You could use my way to do countdown... but for 16 players it would be pretty hard to set up.


kirby_422
Joined: Jan 22, 2006

Apparently public enemy number 1?


Posted: Dec 8, 2013 01:45 PM    Msg. 9 of 10       
(global short p0_time 0)
(global short p1_time 0)
(global short p2_time 0)
(global short p3_time 0)
(global short p4_time 0)
(global short p5_time 0)
(global short p6_time 0)
(global short p7_time 0)
(global short p8_time 0)
(global short p9_time 0)
(global short p10_time 0)
(global short p11_time 0)
(global short p12_time 0)
(global short p13_time 0)
(global short p14_time 0)
(global short p15_time 0)

(global unit p0 none)
(global unit p1 none)
(global unit p2 none)
(global unit p3 none)
(global unit p4 none)
(global unit p5 none)
(global unit p6 none)
(global unit p7 none)
(global unit p8 none)
(global unit p9 none)
(global unit p10 none)
(global unit p11 none)
(global unit p12 none)
(global unit p13 none)
(global unit p14 none)
(global unit p15 none)

(global short num 0)
(script static unit player (unit (list_get (players) num)))

(script continuous assign_variablez
;;;;
;; Clients have no need for this info; we don't want them attempting to kill people that they cannot kill.
(if (not <INSERT FAVORITE METHOD OF HOST TESTING>) (sleep -1))
;;;;
;; Clear unused variables.
(if (<= (unit_get_health p0) 0) (set p0 none))
(if (<= (unit_get_health p1) 0) (set p1 none))
(if (<= (unit_get_health p2) 0) (set p2 none))
(if (<= (unit_get_health p3) 0) (set p3 none))
(if (<= (unit_get_health p4) 0) (set p4 none))
(if (<= (unit_get_health p5) 0) (set p5 none))
(if (<= (unit_get_health p6) 0) (set p6 none))
(if (<= (unit_get_health p7) 0) (set p7 none))
(if (<= (unit_get_health p8) 0) (set p8 none))
(if (<= (unit_get_health p9) 0) (set p9 none))
(if (<= (unit_get_health p10) 0) (set p10 none))
(if (<= (unit_get_health p11) 0) (set p11 none))
(if (<= (unit_get_health p12) 0) (set p12 none))
(if (<= (unit_get_health p13) 0) (set p13 none))
(if (<= (unit_get_health p14) 0) (set p14 none))
(if (<= (unit_get_health p15) 0) (set p15 none))
(if
(and
;;;;
;; Check if the current player, is stored in any variable.
(!= p0 (player)) (!= p1 (player)) (!= p2 (player)) (!= p3 (player))
(!= p4 (player)) (!= p5 (player)) (!= p6 (player)) (!= p7 (player))
(!= p8 (player)) (!= p9 (player)) (!= p10 (player)) (!= p11 (player))
(!= p12 (player)) (!= p13 (player)) (!= p14 (player)) (!= p15 (player))
(!= none (player))
)
;;;;
;; If they aren't assigned yet, find the first free var, and toss them in.
(cond
((= p0 none) (set p0 (player)))
((= p1 none) (set p1 (player)))
((= p2 none) (set p2 (player)))
((= p3 none) (set p3 (player)))
((= p4 none) (set p4 (player)))
((= p5 none) (set p5 (player)))
((= p6 none) (set p6 (player)))
((= p7 none) (set p7 (player)))
((= p8 none) (set p8 (player)))
((= p9 none) (set p9 (player)))
((= p10 none) (set p10 (player)))
((= p11 none) (set p11 (player)))
((= p12 none) (set p12 (player)))
((= p13 none) (set p13 (player)))
((= p14 none) (set p14 (player)))
((= p15 none) (set p15 (player)))
)
)
;;;;
;; Scroll through all players in the server.
(if (< num (list_count (players))) (set num (+ num 1)) (set num 0))
)
(script continuous barrierz
(sleep_until (volume_test_objects ZOA_trigg (players)) 10)
(sleep_until
(begin
;;;;
;; If not using OS, announce the state of affairs to everyone, via host.
(if <INSERT FAVORITE METHOD OF HOST TESTING> (sv_say "player outside of area!"))
;;;;
;; Check whose outside, and track how long
(if (volume_test_object ZOA_trigg p0) (set p0_time (+ p0_time 1)) (set p0_time 0))
(if (volume_test_object ZOA_trigg p1) (set p1_time (+ p1_time 1)) (set p1_time 0))
(if (volume_test_object ZOA_trigg p2) (set p2_time (+ p2_time 1)) (set p2_time 0))
(if (volume_test_object ZOA_trigg p3) (set p3_time (+ p3_time 1)) (set p3_time 0))
(if (volume_test_object ZOA_trigg p4) (set p4_time (+ p4_time 1)) (set p4_time 0))
(if (volume_test_object ZOA_trigg p5) (set p5_time (+ p5_time 1)) (set p5_time 0))
(if (volume_test_object ZOA_trigg p6) (set p6_time (+ p6_time 1)) (set p6_time 0))
(if (volume_test_object ZOA_trigg p7) (set p7_time (+ p7_time 1)) (set p7_time 0))
(if (volume_test_object ZOA_trigg p8) (set p8_time (+ p8_time 1)) (set p8_time 0))
(if (volume_test_object ZOA_trigg p9) (set p9_time (+ p9_time 1)) (set p9_time 0))
(if (volume_test_object ZOA_trigg p10) (set p10_time (+ p10_time 1)) (set p10_time 0))
(if (volume_test_object ZOA_trigg p11) (set p11_time (+ p11_time 1)) (set p11_time 0))
(if (volume_test_object ZOA_trigg p12) (set p12_time (+ p12_time 1)) (set p12_time 0))
(if (volume_test_object ZOA_trigg p13) (set p13_time (+ p13_time 1)) (set p13_time 0))
(if (volume_test_object ZOA_trigg p14) (set p14_time (+ p14_time 1)) (set p14_time 0))
(if (volume_test_object ZOA_trigg p15) (set p15_time (+ p15_time 1)) (set p15_time 0))
;;;;
;; See if they've been out too long, and are still alive to kill, and kill them if so.
(if (and (> p0_time <INSERT DEATH TIME>) (> (unit_get_health p0) 0)) (unit_kill p0))
(if (and (> p1_time <INSERT DEATH TIME>) (> (unit_get_health p1) 0)) (unit_kill p1))
(if (and (> p2_time <INSERT DEATH TIME>) (> (unit_get_health p2) 0)) (unit_kill p2))
(if (and (> p3_time <INSERT DEATH TIME>) (> (unit_get_health p3) 0)) (unit_kill p3))
(if (and (> p4_time <INSERT DEATH TIME>) (> (unit_get_health p4) 0)) (unit_kill p4))
(if (and (> p5_time <INSERT DEATH TIME>) (> (unit_get_health p5) 0)) (unit_kill p5))
(if (and (> p6_time <INSERT DEATH TIME>) (> (unit_get_health p6) 0)) (unit_kill p6))
(if (and (> p7_time <INSERT DEATH TIME>) (> (unit_get_health p7) 0)) (unit_kill p7))
(if (and (> p8_time <INSERT DEATH TIME>) (> (unit_get_health p8) 0)) (unit_kill p8))
(if (and (> p9_time <INSERT DEATH TIME>) (> (unit_get_health p9) 0)) (unit_kill p9))
(if (and (> p10_time <INSERT DEATH TIME>) (> (unit_get_health p10) 0)) (unit_kill p10))
(if (and (> p11_time <INSERT DEATH TIME>) (> (unit_get_health p11) 0)) (unit_kill p11))
(if (and (> p12_time <INSERT DEATH TIME>) (> (unit_get_health p12) 0)) (unit_kill p12))
(if (and (> p13_time <INSERT DEATH TIME>) (> (unit_get_health p13) 0)) (unit_kill p13))
(if (and (> p14_time <INSERT DEATH TIME>) (> (unit_get_health p14) 0)) (unit_kill p14))
(if (and (> p15_time <INSERT DEATH TIME>) (> (unit_get_health p15) 0)) (unit_kill p15))
;;;;
;; Ending condition for the sleep_until [Makeshift whileloop]
(not (volume_test_objects ZOA_trigg (players)))
)
0)
;;;;
;; Clear the timers if nobodies out there.
(set p0_time 0)
(set p1_time 0)
(set p2_time 0)
(set p3_time 0)
(set p4_time 0)
(set p5_time 0)
(set p6_time 0)
(set p7_time 0)
(set p8_time 0)
(set p9_time 0)
(set p10_time 0)
(set p11_time 0)
(set p12_time 0)
(set p13_time 0)
(set p14_time 0)
(set p15_time 0)
)

Probably should of used a cinematic title without host testing instead of a SV say, but whatever, you get the idea. If you want the message to only be on the user whose outside, you need to find out who the local player is (ie, use OS)

The reason the players are stored in global variables rather than just grabbed from the object list, is because the object list shifts every time someone is killed. If your outside the area, and someone dies or respawns, your time will restart if you just use the object list; this way it is correctly tracked to your physical biped.


Banshee64
Joined: Dec 4, 2012

oify


Posted: Dec 8, 2013 03:49 PM    Msg. 10 of 10       
Quote: --- Original message by: kirby_422
Probably should of used a cinematic title without host testing instead of a SV say, but whatever, you get the idea. If you want the message to only be on the user whose outside, you need to find out who the local player is (ie, use OS)

The reason the players are stored in global variables rather than just grabbed from the object list, is because the object list shifts every time someone is killed. If your outside the area, and someone dies or respawns, your time will restart if you just use the object list; this way it is correctly tracked to your physical biped.


Beautiful. Thanks.

 

 
Previous Older Thread    Next newer Thread







Time: Thu January 19, 2023 10:28 AM 188 ms.
A Halo Maps Website