I'd use the setPos method. Put a game logic where you want the chopper to teleport to (somewhere between the base and the destination, naturally) and name it something like telelogic. When you want the teleport to occur (you could have a trigger detecting the chopper has left base, or whatever), execute a script that looks like this:
;; teleport.sqs
;; fades out, teleports the chopper, fades in
?(vehicle player != heliname AND !local heliname): exit
titleText ["","BLACK OUT",2]
~2
?(local heliname): heliname setPos [(getPos telelogic select 0),(getPos telelogic select 1),(getPos heliname select 2)]
titleText ["","BLACK IN",2]
exit
- Only players in the chopper see the fade out.
- Setpos is only run by the person the chopper is local to.
- Relative altitude does not change, only 2d position.
- Make sure your chopper has enough time to gain speed before executing this for a smooth transition.
- Can easily be rewritten to work for multiple choppers by passing heliname or name of logic to the script.