Sphere
Triggers
You define sphere triggers (see
Figure 17.1) by a set of coordinates and a radius.
Sphere triggers have two unique benefits:
■ Spheres are perfect for
defining large areas of a map as a trigger, only using
the center coordinates and a radius to define the location of the sphere.
■ The sphere trigger is one of
the fastest ways to check for character-to-trigger
collisions in the map trigger engine.
Box Triggers
A box trigger uses bounding
boxes to work its magic. Box triggers are the fastest triggers
to process when looking for character-to-trigger collisions, but on the
downside,
box triggers can exist only parallel to the world’s axis (the boxes can’t be
rotated to
fit your needs). You define box triggers by the coordinates of its opposing
corners, as
illustrated in Figure 17.2.
Cylinder
Triggers
Cylinder triggers are much like
sphere triggers, except that with a cylinder trigger,
you can limit the height of the covered area (unlike a sphere trigger, which
extends
higher as the radius increases). Cylinder triggers are most effective when used
for circular
areas in which you want to keep the height of the trigger from extending into
higher or lower levels. Check out an illustration of cylinder triggers in Figure
17.3.
Triangle
Triggers
A triangle trigger is similar
to a polygon in that both are defined by three points; however,
a triangle trigger’s three points are defined only by their X- and
Z-coordinates.
This makes the triangle two-dimensional. To make the triangle work in a 3-D
world,
you must assign a single Y-coordinate at which all three points of the triangle
are
placed, as well as the height in which the triangular area extends upward. It
helps to
think of a triangle trigger as a three-sided box, as shown in Figure 17.4.
Triggering a Trigger
After you place the trigger shapes on the map, it’s a simple matter to determine
which trigger is touched by a character. Each trigger has its special way of
determining
these character-to-trigger collisions. A sphere uses distance checks, a box
uses bounding box calculations, and a cylinder uses bounding and distance
checks—although the triangle trigger uses bounding checks and also makes sure
that the point in question is contained within the triangle.
When you determine that a
trigger has sprung, what do you do? Because each trigger
is assigned an identification number, you can use that number to determine
which action to perform. You can execute a matching script or perform
another hard-coded function. In fact, in the later section “Using Triggers,” you
find out how useful it is to use triggers.