Download this, place it in your HCE folder (backup your original strings.dll)in your vehicle tag, make sure you can drive the pelican (either add p-driver to the player, or change the seat label to w-driver). Place the vehicle wherever you plan to start. Load the map as SP in devmode, keep the dev console open to keep time frozen. After the map is fully loaded, vehicle_load_magic peli_object_name "" (players)
close devmode, hit the button you hooked recorded animations to, and begin driving immediatly. When you reach your destination, click the recorded animation button twice (once to stop the first one, once to start the next one from the same location), now fly away to somewhere hidden, and hit it again.
Open your scenario file in the program it comes with, inject all the RA's you've created. Now, when scripting a drop off, you have to decide whether its forcing the player out of the pelican or not when it lands, or, simply waits until the player has exited before leaving.
(script dormant pelican_dropoff
;;Implies pelican has already been loaded and freshly created. use object_create_anew, and vehicle_load_magic if it hasnt.
(unit_set_enterable_by_player peli_object_name false) ;;Don't want them hoping in of their own free will, only scripts.
(recording_play_and_hover peli_object_name insertion_recorded_animation_name)
(sleep (recording_time peli_object_name))
(begin_random
(begin (unit_exit_vehicle (unit (list_get (ai_actors encounter\squad_1) 0))) (sleep 30))
(begin (unit_exit_vehicle (unit (list_get (ai_actors encounter\squad_2) 0))) (sleep 30))
(begin (unit_exit_vehicle (unit (list_get (ai_actors encounter\squad_3) 0))) (sleep 30))
(begin (unit_exit_vehicle (unit (list_get (ai_actors encounter\squad_4) 0))) (sleep 30))
(begin (unit_exit_vehicle (unit (list_get (ai_actors encounter\squad_5) 0))) (sleep 30))
(begin (unit_exit_vehicle (unit (list_get (ai_actors encounter\squad_6) 0))) (sleep 30))
)
(sleep_until (not (vehicle_test_seat_list peli_object_name "p-riderlf" (players))) 15)
(vehicle_hover peli_object_name false)
(recording_play_and_delete peli_object_name insertion_exit_recorded_animation_name)
)
Picking up would basically be the same, except its waiting until the player is in, and the unit_set_enterable wouldnt be there (since you want them to be able to hop in)
If you just want to kick everyone out at once, (vehicle_unload peli_object_name "") you can also use this with seat names to kick people out of exact seats.