Using the Osprey needs some extra entities to work properly. Here is how it is done:
-
Create a large outdoor map. The osprey needs lots of space to function properly.
-
Put in the npc_osprey.
Name: osprey
Name of template NPC 1: osprey_grunt1
Name of template NPC 2: osprey_grunt2
Name of template NPC 3: osprey_grunt3
Name of template NPC 4: osprey_grunt4
The osprey can reinforce up to 8 grunts. For this tutorial we’ll limit it to 4 grunts.
- Create 9 path_tracks. Name them “osprey_m1” up to “osprey_m9”. Do not use “Next Stop Target” in this case. We’re going to connect the paths together with the Output. Go to “osprey_m1” and enter the Output:
OnPass > osprey > FlyToSpecificTrackViaPath > osprey_m2
Using that output, connect m1 to m2, m2 to m3, etc. m9 should connect back to m1. Set up the paths in a circle like so:
- Now pick 1 path to serve as your entry point and one path to be the drop-off point, where the grunts rappel down. In my example the [COLOR=‘SeaGreen’]green circle (osprey_m5) is the [COLOR=‘SeaGreen’]entry point. Ideally this point should be out of the player’s view. The [COLOR=‘Red’]red circle (osprey_m1) the [COLOR=‘Red’]drop-off point. Make sure this point is a bit lower than the other points, so the osprey makes a small descent when approaching.
You’ll need to tell the osprey which points is the [COLOR=‘SeaGreen’]entry point and which is the [COLOR=‘Red’]drop-off point. Go into the npc_osprey and enter this into it’s output:
OnReadyToMoveDeployZone > osprey_m5 > FireUser1
OnReadyToRetreat > osprey_m1 > FireUser1
Go to your [COLOR=‘SeaGreen’]entry path (osprey_m5) and change the “OnPass” output to “OnUser1”. Also add:
OnPass > osprey > WaitHereTillReady
Go to your [COLOR=‘red’]drop-off path (osprey_m1) and change “OnPass” output to “OnUser1”. Also add:
OnPass > osprey> BeginRappellingGrunts
- Time to set up the grunts. Create a npc_human_grunt:
name: osprey_grunt1
squad name: grunt_squad
Tag Flags: Fall to the Ground, Template NPC.
In the same fashion create osprey_grunt2, osprey_grunt3 and osprey_grunt4. You can use npc_human_commander and npc_human_medic for some variation.
-
Compile the map and wait for the osprey to drop the grunts. When you kill 2 out of 4 grunts, the osprey will return and reinforce the squad. The sequence works, but after rappelling the grunts just stand around. We want them take up tactical positions after insertion. Here is how that is done:
-
At the drop-off point, create an assault_rallypoint.
Name: osprey_grunt1_rally
Assault point: osprey_grunt1_assault
Urgent: Yes
Also create an assault_assaultpoint.
Name: osprey_grunt1_assault
Allow Diversion: Yes
Diversion Proximity: 512
Attack Tolerance: Medium (6).
Find “osprey_grunt1” and enter this in his Output field:
OnRappelTouchdown > !self > Assault > osprey_grunt1_rally
(Note that !self is displayed red. Ignore that error)
Do the same for the other 3 grunts. Each grunt should have his own !self output, rallypoint and assaultpoint. So osprey_grunt2 goes to osprey_grunt2_rally and osprey_grunt2_assault, etc.
Now set up some static objects and drag the assaultpoints there. You can set the grunts to Force Crouch behind the objects if you want. Make sure their line of movement is clear so grunts don’t bump into eachother. Also add some info_nodes or info_hints for AI navigation. It could look like this:
- All done! Compile and watch the action!
UPDATE
The osprey will keep dropping grunts untill it is destroyed. If you want it to retreat after dropping a certain number of grunts, you can set up the following sequence (this is not included in the example VMF):
- Create a new path_track called “osprey_retreat”. Put it somewhere where you want the osprey to retreat to. Preferably there where players can no longer see it. In the Output enter:
OnPass > osprey > Kill.
This will make the osprey disappear once it hits this path_track.
- Add a math_counter:
Name: osprey_grunt_counter
Maximum Legal Value: 10
This will trigger once 10 grunts have spawned. In it’s Output add:
OnHitMax > osprey > FlyToSpecificTrackViaPath > osprey_retreat
- In all grunt templates (osprey_grunt1 to 4) add the following output:
OnRappelTouchdown > osprey_grunt_counter > Add > 1
And you’re done. Every time a grunt rappels down, it add 1 point to the math_counter. Once it hits 10 points, it will trigger the Ospreys retreat.
Example VMF can be downloaded here.