This map was designed by Ken Birdwell of Valve.  The only thing I have done, is change the map to RMF format; and set the WorldSpawn "max viewable distance" to a higher number... this is so that the player can see the entire map at once; the map is so big that default values would make the osprey seem to "disappear" into the sky every once in a while.
 
  This brief write-up is designed to show you how complex it is to set up the Osprey; and do so by explaining Ken Birdwell's map.  I will start with an overview of the map; then describe (in detail) the path_corner entities that the Osprey follows.  NOTE: The Osprey is _NOT_ something that beginners should try to use!!  It is COMPLEX to setup and to get to "work right".  ALSO, the Osprey constantly re-fills your map with Human grunts; so make sure to plan in your game for this effect.  LASTLY, the Osprey is big... Ken tells me it was done to perfect scale in the game; and in Real Life, the Osprey is 58 feet long.  That's BIG!  Therefore, to get it to look and turn realistically; you will need a large outdoor area to work with... don't expect this baby to make any tight turns and look good doing it.
  
  Okay, the map itself is basically a "floor" brush, and a HUUUUGE open area with the sky above, and on all sides.  This area is SO big that it may not display properly in the 3d view in WorldCraft.  The sky areas may show up as black areas with white "blocks", until you get close to the edges of the map.  The floor and entities should all display properly when they're within about 5,000 units of the camera.  The map itself contains 4 groups of objects:  
  
1) The player start point.  Simple enough, right?
2) The Enemy Grunts.  These are important, in that the game remembers HOW MANY THERE ARE at the start of the game.  If you don't KILL any, the Osprey won't stop and DROP any more of them!
3) The "info_node" objects that allow the grunts to move around.
4) The Osprey itself, and its related "path_corner" objects.
  
  I think everything except the fourth group is pretty self-explanatory... so on with the Osprey details:
  
  First off, realize that the Osprey itself has (as Ken puts it) NO "Flight Model" - what this means, is that as it moves around, it is NOT programmed to turn, bank, raise up, lower down, speed up, slow down, or do ANYTHING that a normal flying object would do (like the Apache does).  The Osprey is almost an animated "func_train" object; with some exceptions (most notably that you can kill it).  This means that ALL controlling of how the Osprey "flies" must be done through the "path_corner" entities.  More on that in a minute.
  
  Second, as mentioned before, the Osprey takes note of how many grunts are in the area when it starts.  It ONLY "re-fills" the map to that number; and WILL NOT add any more, if no grunts are killed.  There doesn't seem to be any limit to the number of "re-fills" you can have (until you kill it, of course).  
  
  Third, the Osprey "knows" when it should re-fill the map, and tracks this.  If it DOESN'T need to spawn grunts ("re-fill"), it SKIPS any path_corner entities that have a "Speed" key of less than 300.  This means that the Osprey will NOT work in your map unless you set it up to travel faster than "300" in at least SOME areas.  You should make your main "path" around the level at or above this speed, and then have a section of path_corners that are SLOWER that you can use for a "re-filling" sequence.  As a tip, you should try to keep all that mostly in a straight line; because if you DON'T, the Osprey will seem to "slip" or "skid" to the "new" path_corner during the times it is NOT re-filling the map.
  
  Fourth, each path_corner's attributes control the Osprey "coming into" that corner.  So if you want the Osprey to turn between points 1 and 2, you put the "turning" information into point 2.
  
  Fifth, the Pitch, Yaw, and Bank (or "roll") of the Osprey is controlled with the "Angle" key.  Since you normally can't edit this key, you must turn OFF "SmartEdit" mode and manually enter the proper values into the key yourself.  The key works as a set of three numbers, each separated by a space.  The order is: Pitch, Yaw, Bank ("roll").  So to make the Osprey turn to head north (which in Half-Life/Worldcraft's "compass" system is "90"), bank to the right 10 degrees, and tilt back (point the nose up) 20 degrees, you would enter:  "20 90 10" in the angle key.  NOTE: Pitching the Osprey up DOES NOT make it gain or lose altitude!  You control height and actual movement sideways by your placement of the path_corners!! You could have the Osprey spin 180 degrees if you want, all while travelling in a straight line.
  
  Lastly, as I just mentioned:  The Osprey's actual movement through 3d space is ALL controlled with the path_corner placement; so it takes adjusting these as WELL as the angles, to get a realistic looking flight pattern.  I suggest watching a few video clips of helicopter flight, to give you ideas; as well as studying how Valve has done their Osprey movements.
  
  Next, I want to describe the individual path_corner entities that are used in this map:
  
os1 - This is where the Osprey starts in the beginning.  In the future, it will be coming from os6.  The keys (with SmartEdit off) show that the speed is set to 500.  Since its above 300, this means that they Osprey will ALWAYS pass through this point.  Coming TO this point (from os6), the angles are set so that the Osprey will bank 10 degrees to the left, fly level, and rotate to face due south.
  
os2 - The speed is again 500 here.  According to the angles, the Osprey is supposed to level off its bank between os1 and this point; and is also supposed to continue rotating, from due south to due west (again, between os1 and this point).
  
os3a - The speed here is 200.  This means that This point will be SKIPPED if the Osprey doesn't need to drop grunts.  The Osprey will go directly from os2 to the next point with a speed above 300.  The angles are set so the Osprey continues to face west between os2 and here, and pitches up 30 degrees (between os2 and this point).  Note that also the path_corner is a little lower here.  This is to simulate the 'copter slowing itself down and settling lower in preparation for the drop.
  
os3b - The speed here is 0 (clueing the Osprey that this is the drop point).  This means that This point will be SKIPPED if the Osprey doesn't need to drop grunts.  The Osprey will go directly from os2 to the next point with a speed above 300.  The Osprey will slow to a stop, and drop its grunts.  Once this is done, it will proceed to the next point.
  
os3c - The speed here is 200.  This means that This point will be SKIPPED if the Osprey doesn't need to drop grunts.  The Osprey will go directly from os2 to the next point with a speed above 300.  The angles are set so the Osprey continues to face west between os3b and here, and pitches down (forward) 10 degrees (between os3b and this point).  Note that also the path_corner is a little higher here.  This is to simulate the 'copter raising itself up and speeding up away from the drop.
  
os4 - The speed here is 500.  This is where the Osprey will head towards either AFTER the drop; OR from os2 if no drop is to be made.  The angles are set so the Osprey continues to face west between os3c / os2 and here, levels off as it approaches this point, and banks to the right 1 degrees as it approaches... this is to simulate the Osprey "rolling into" the next turn.
  
os5 - The speed is again 500 here.  According to the angles, the Osprey is supposed to bank between os4 and this point even more, to 20 degrees (to the right); and is also supposed to begin rotating as it approaches this point, from due west to due north.
  
os6 - The speed is again 500 here.  According to the angles, the Osprey is supposed to continue its bank between os5 and this point; and is also supposed to continue rotating, from due north to due east (again, between os5 and this point).  This completes the path, as the Osprey heads towards os1 after this point.
  

  Finally, here are a couple of console commands that will help you test the map out (must be in developer mode "-dev" to use these):
  
impulse 101 - gives the player all weapons and some ammo.
notarget - prevents the monsters from targetting you / seeing you.
god - prevents you from being hurt or killed.

  Whew, I hope that explains things; and enlightens you all... Good luck with this entity!
  
--HellBringer
Levels Dept. Head, Wavelength Editing Site
(www.planethalflife.com/wavelength)

