Works for me just fine...
You need to make sure that you are on a relatively flat, treeless ground (bushes don't matter so much) when the chopper starts to get close on you (when it get's your coords)...
I also took a liberty of modifying your code to work a bit faster and so on...
_chopper = _this select 0
_chopper move getPos marker2
@unitready _chopper
#loop
_chopper move getPos marker3
? (playerhasrequestedairlift) : goto "Evac"
@marker3 distance _chopper < 90
_chopper move getPos marker4
? (playerhasrequestedairlift) : goto "Evac"
@marker4 distance _chopper < 90
_chopper move getPos paradrop
? (playerhasrequestedairlift) : goto "Evac"
@paradrop distance _chopper < 90
_chopper move getPos marker2
? (playerhasrequestedairlift) : goto "Evac"
@marker2 distance _chopper < 90
goto "loop"
#Evac
player sideChat "HOTEL ONE, DOURDAN IS CLEAR. REQUESTING AIRLIFT, OVER."
~3
_chopper sideChat "ROGER THAT ALPHA. HOTEL INBOUND. ETA 10 SECONDS"
~3
_chopper move getPos setmove
@setmove distance _chopper < 90
_chopper setSpeedMode "LIMITED"
_chopper move getpos player
@unitready _chopper
_chopper land "GET IN"
@player in _chopper
_chopper setSpeedMode "FULL"
_chopper move getPos marker
exit
There's no need to use the helicopters name
chopper as you execute the script by passing the
chopper (global variable) in it as _chopper (local variable).
The
_chopper land "GET IN" makes the same as you did by flyInHeights, but works more smoothly and faster... (you don't wanna hang around too long in hostile areas
)
No guarantees on any syntaxes, I easily make mistakes ;D