Source: geocities.com/stslabs/orogogus

               ( geocities.com/stslabs)    
Start by opening the mission editor putting down a large flat ground piece on the map, low enough so that a HERC can walk onto it.  Put down a few posts or drones or something to shoot at, to use for controls.

Quit the editor, and open the mission script.  The fundamental idea here is to script several setPosition() functions in to the structure::OnAttacked() for each control item, so that shooting one control might look something like this:

function yRod1::structure::OnAttacked(%target, %attacker)
{
  moveThingYPlus($magicCarpet);
}


function moveThingYPlus(%object)
{
  %posX = getPosition(%object, x);
  %posY = getPosition(%object, y);
  %posZ = getPosition(%object, z);

  %newZ = %posZ + 10;

  setPosition(%object, %posX, %posY, %newZ);
}

That would move the $magicCarpet object, but not the control rods or any of the riders.  Useful for the initial coding and debugging (r/c racing for HERCs, I suppose), but it would be more fun to be able to make the carpet an actual vehicle, able to ferry around its rider.  In that case, you (well, I) would probably want to create additional variables, and put them in an array.

$magicCarpetOne[0] = $yRod1;
$magicCarpetOne[1] = $yRod2;
$magicCarpetOne[2] = $xRod1;

...and so on, until you get to the riders.

function magicCarpetOneZone::trigger: :onEnter(%this, %vehicleId)
{
  $magicCarpetOneRiders++;
  %rider = $numOfControls + $magicCarpetOneRiders;
  $magicCarpetOne[%rider) = %vehicleId;
}


With that done, you would go back to the yRod1 function, and create a for loop to iterate through the $magicCarpetOneRiders[] array and run moveThingYPlus() on the contents every time the control rod is attacked.  In theory, this would move the carpet as well as all its controls and riders 5 units upwards every time.  With some refinement, you could have a poor man's transport, to have air-to-air duels, Tribes-style.

In practice, I don't know what would happen.  In this script, there is a span of a few nano- or milli-seconds during the teleports when the riders are suspended in mid-air without a carpet, and the accumulated drift over time might sink them right into the carpet.  Shooting at the rider or any of the other objects might be problematic, since they'd be teleporting all the time, and projectile and rider might end up overlapping each other without an actual collision.  And lag is, as always, an evil hell-beast.  If I knew how to pass functions with arguments into new keyboard bindings, the entire runaround with control rods and such could be neatly avoided.