flagwait() Blockers will open when a flag is set in script. They have no cost,
hintstring, or trigger_use.
First you must create the blocker in Radiant. A flag_wait() blocker consists
of these items:
- One or more debris script_brushmodels or script_models.
-
One or more clip script_brushmodels which prevent players from walking
through the blocker before it is opened.
NOTE:
KVP is an abbreviation for "Key-Value Pair". When entering a KVP
in the Radiant Entity Window,
ensure that you have the entity selected first
. If you do not have an entity selected, Radiant will automatically add
the KVP to the "worldspawn" entity. This is BAD and will likely
cause your map to crash while loading! In these pages, KVP's are referred
to in this format: Key | Value. Note they are separated by a pipe ( | )
character. This character should be ignored when entering the Key-Value
Pair.
To properly add a KVP to an entity:
-
Select the entity by holding the Shift key on your keyboard followed by
clicking the entity(ies) that you wish to add a KVP to.
-
Enter the first value (this is the Key) into the text field labeled
"Key"
-
Enter the second value (this is the Value) into the text field labaled
"Value".
-
Press the Enter key on your keyboard to save the KVP to the entity. You
should see the KVP appear in the entity's KVP table (located above the
Key text field).
Select
one
debris script_brushmodel or script_model and give it the following KVP's:
Key |
Value |
spawnflags |
1 |
script_flag_wait |
1 |
-
script_flag_wait's value should be set to the flag which will trigger this
blocker.
If you have more than one debris script_brushmodel or script_model, select the
remaining debris and give them this KVP:
Select the clip script_brushmodel(s) and give them the following KVP:
Now that you have created all of the necessary items and given them the
correct KVP's, it is time to link the items together using targeting.
NOTE:
"targeting" is a method for linking entities together in a
group. Targeting has menu useful applications, such as controlling an
entity that has multiple pieces. For example, the Mystery Box uses
targeting to link each separate script_model part of the box to the main
trigger_use. Targeting generates automatic targetname and target KVP's on
the affected entities. When two items are properly linked together, a red
or blue line is drawn from the main entity to each of its targets/links in
Radiant.
To properly target one item to another:
-
Determine which of the affected entities is going to be the "root
entity". The root entity is the entity that will be referenced by
name in script. Root entities are found in script by using
getEnt("root_entity_targetname", "targetname");.
-
Determine which of the affected entities is going to be the target/link.
The target/link entity(ies) are the "children" of the root
entity and do not need specific targetnames. Target/link entities are
found in script by using getEnt(root_entity.target,
"targetname");
- Deselect all items by pressing ESC on your keyboard
-
Select the
root entity
first.
-
Next, select
one
of the target/link entities and press W on your keyboard. This will
create the link between the two entities. Repeat this step for all
target/link children of the root entity until all entities have red or
blue lines connecting them to the root entity.
In this case, the root entity is the debris entity that you gave the
script_flag_wait KVP.
The children of the root entity are the remaining clip(s) and debris model(s).
Link them to the root entity using the instructions above.
Optionally you can specify a point for debris to fly away towards when
triggered by the flag. For example, you could specify that the debris fly away
at a 45 degree angle into the ground.
To define a script_linkTo:
Replace <linkName> with a unique name of your choosing. *Do not use
the same linkName for more than one script_struct!
Now that you have created one working flagwait() blocker, you can copy/paste
it as many times as you want. Since we used targeting, the targetnames of the
children are dynamic and will be regernerated for every copy.
Credit: Treminaor