|
Complex
Entities |
!
If an entity has something entered in the name field, such as a door,
it must have a corresponding entity targeting it, or
it will not work.
|
Triggers
and Targets
Okay, so now you can make brushes behave in various strange and exciting
ways rather than just sitting there. But, how do you start or stop them
from working? And how about the more complex ones - like lifts, and teleporters?
Triggers are entities that make other entities react. Walking over a certain
spot might trigger a door to open, lights to turn on , print a message,
activate a trap. It might do one or all of those.
A number of entities have two important fields: name
and target. Any entity with something in the target field will
activate all the entities with the same text in the name field.
For instance
: If a button has a target of nasty_trap then when a player
activates the button every entity in the level with a name of nasty_trap
will activate. If you make a func_door and a trap_shooter with the name
nasty_trap then the door will open and
the trap will start shooting the moment the button with the target nasty_trap
is activated.
|
!
The target and trigger names are case sensitive, and do not allow spaces.
|
Making
a Button to Open a Door
Lets got back to the door we made just while ago. Select the door, and
open it's properties and then make the "name" attributes field "my_door".
(You could, of course, make the name anything else you like.) Then create
a new brush on the wall and tie it to the func_button entity.
The func_button
works by moving in its direction until it's moved its entire length.
Once it does that it activates its triggers and returns to the starting
position. You might need to fiddle with it a bit until it looks good.
Set the targeted object field to my_door. Now when you compile your
map and touch the button, it should move in the direction you set it
and once it's traveled its entire length it will activate its targets
and the door should open.
|
|
Elevators
- Func_Plats
Elevators are fairly simple devices. Make the brush you want to use as
a the elevator so it's in the 'up' position (at the TOP of it's intended
travel range). Tie it to the func_plat entity and set the height to the
number of units to the bottom and the speed you want it to travel. When
the game starts the lift will automatically be in the down position (
at the BOTTOM of it's intended travel range) waiting for it to be activated.
The problem is: What do you do when you want the lift to start at the
top? Well, you can't do it with a func_plat then. Use a func_door, just
set the direction for the door to "down". If you need the lift to be a
platform and not a column then set the doors lip to
the distance it needs to travel down.
|
 |
Teleporters
Another commonly troublesome type entity is the teleporter. Teleporters
come in two pieces: the trigger_teleport brush which teleports you and
the info_teleport_destination entity which is where you go.
Set up a brush that will teleport the player once they
touch it. Make it an entity "trigger_teleport". Give it a "target" in
the properties of this trigger_teleport. For example, "tele1". Now,
use the entity tool, and place an info_teleport_destination entity (just
a regular entity) and give it the same "name" that you gave the trigger_teleport's
"target" (tele1).
|
!
Remember: When you tie a brush to a trigger entity the brush cannot be
seen in the game. If you want to be able to 'see' the teleporters, you'll
have to make another brush to represent the teleporter that you see in
the map. Now stick the actual trigger_teleport brush around (or in) it
so it's triggered once the player gets near or touches it.
|
!
It is not possible to start and stop and then restart trains in Quake.
Unless they are tied to a trigger such as a button, they are moving
when your level starts, and can only be stopped at a pre-chosen "path_corner". |
Trains
Trains are platforms that move by following a particular path - usually
back and forth. They have two different parts : the brush (func_train),
which is the actually platform, and entities (path_corner) which are the
stops or corners the train makes on its path.
It doesn't actually matter where you place a func_train.
When the level starts it will always begin at the path_corner specified
by its first stop field. Then it will go to the next stop specified
in the path_corner. Every path_corner must have a "next stop target"
otherwise you will get an error when Quake loads. If you want the train
to pause for a preset amount of time at a path_corner and not continue
immediately then set the wait to whatever you want. Do this by turning
off "smart edit" in the properties of the path_corner you want, and
click [add], you can now add: Key: wait Value: x , where "x" is the
number of the amount of time you want the train to pause. You could
also use this to stop the train, set the wait at 999999.
The actual centre of the path_corner dictates the train's
position.
The bottom of your train will line up with the centre of your path_corner's.
In Worldcraft's "xy" view, the bottom left corner of your train will
align with the centre of the path_corner.
|
|
- Other
Entities
Quake has many more entities to offer, however working with
most of them is no different than the ones we've discussed here.
|
|
|