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 Technical / Map Design »script question????

Author Topic: script question???? (4 messages, Page 1 of 1)
Moderators: Dennis

Shadeslayer
Joined: Jan 28, 2009

I won't miss!!


Posted: Mar 22, 2009 06:08 PM    Msg. 1 of 4       
when scripting additional vehicles, how do you make the script continuous so that you dont have to continually restart the game to make the script that spawns the additional vehicals restart


Gamma927
Joined: Jun 12, 2008

Steam: gamma927


Posted: Mar 22, 2009 06:31 PM    Msg. 2 of 4       

(script startup vehicles
(object_create [vehicle name])
(object_create [vehicle name 2])
)
(script continuous vehicles
(sleep 1000)
(object_create_anew [vehicle name])
(object_create_anew [vehicle name 2])
)


Replace [vehicle name] with the name of the vehicle, and [vehicle name 2] with the name of a second vehicle. If you want more vehicles, just follow the pattern.


Me KS
Joined: Feb 2, 2008

Desire is Reality. Xfire: jetmaster23


Posted: Mar 22, 2009 07:35 PM    Msg. 3 of 4       
That script can work, but it forces a 33 second respawn on all of the scripted vehicles, even if the game type has respawn off. Not to mention that they'll respawn every 33 seconds even if they haven't moved from their spawn point, which doesn't look good. And, you'd create server-side and client-side copies of each vehicle since you're not checking to make sure the server is running these commands.

It's been a while since I've written an in-depth tutorial. So here goes.

First, make sure you actually do need the vehicle script. If you need more than 6 different types of vehicles in your maps, or if you need more than 8 of one type of vehicle, then you truly need the script. Otherwise, don't bother with the script. Just replace new vehicles in the globals and place them as usual in Sapien and they'll spawn by themselves.

If you do need a script, then to make a good vehicle script, follow these steps:

1. In your "Vehicles" list in Sapien, place a vehicle spawn point in a location where no player can go. Set the spawn point's vehicle type to "NONE" so no vehicle actually spawns there. This spawn point has to be the very first in the list of vehicles in Sapien.

The reason for this is all vehicles that the game considers "extra" are respawned to the first vehicle spawn point, no matter where their actual spawn points are. So we take advantage of that here.

2. Place a trigger volume (Game Data > Trigger Volumes) over this spawn point. Make sure the trigger volume is larger than the largest vehicle that you need a script to respawn. For example, if you have two scorpions, a hog, and a ghost, make the trigger volume at least as large as the scorpion. Name this trigger volume whatever you want.

This will be used to check to see when the vehicle has respawned to the first spawn point, then re-create it that very same moment to bring it back to its true spawn point.

3. Also, place a new vehicle of any type (hog, ghost, anything. Preferably something small) in either the same area (away from the trigger volume) or in a different location that the player can't go to. Name this vehicle "host_check", and set it to spawn BY DEFAULT in all game types. Make sure it's a vehicle that is in the globals so it'll spawn by itself, otherwise this won't work.

This is to check in the scripts to make sure the game doing all of this is the server. It works because the vehicles are server-side only, and so if you try to check for a vehicle's existence and you're not the server, it will say the vehicle doesn't exist, which lets us check and see who's the server. If we allowed the script to run without making sure only the server is making the changes, then there would be two vehicles spawned for each spawn point: one is the real server-side one, and the other is a client-side copy that doesn't exist on the server and so is just useless and annoying to players.

4. With all of the vehicles that you need scripted in, place them where you need them and set their properties as usual. Just remember to give each one a unique name for the scripts.

5. Then, you're ready to actually do the script:


(global boolean server 0)

(script startup vehicles
(if
(>= (unit_get_health host_check) 0)
(set server 1)
)
(if
(= server 1)
(begin
(object_create "first vehicle")
(object_create "second vehicle")
;; etc, repeat for each one
)
)
)

(script continuous respawn_stuff
(if
(= server 1)
(begin
(if
(volume_test_object "trigger volume name" "first vehicle")
(object_create_anew "first vehicle")
)
(if
(volume_test_object "trigger volume name" "second vehicle")
(object_create_anew "second vehicle")
)
;; repeat each of these (if)'s for each vehicle. Use copy-pasting to do it faster.
)
(sleep_until (= 0 1))
)
)


Just replace the things in "quotes" and compile, and then test.


Shadeslayer
Joined: Jan 28, 2009

I won't miss!!


Posted: Mar 25, 2009 10:59 AM    Msg. 4 of 4       
thanx Me Ks that script works awesome!!!!!!

 

 
Previous Older Thread    Next newer Thread







Time: Fri January 20, 2023 11:53 AM 140 ms.
A Halo Maps Website