Jump to content
Sign in to follow this  
norrin

Chopper/aerial taxi script

Recommended Posts

Guys I 'm currently on holiday and well and truly AFK. Be back on the 10th October so can't do anything until then.

@ sowens in the heli taxi test mission there should be a readme. There's a variable that you can set in the init.sqf that re-adds the extraction action when you respawn (can't remember what it is off the top of my head, sorry).

@ supergrunt - The scripts should work no matter what name you give the choppers if set up correctly. However I may have stuffed up something in the scripts with all the changes made in the new version but can't check until I'm back.

Thanks, for the report on the naughty gunships shouldn't take long to fix. Just make sure if the gun ship lands near the extraction/ dropoff point that it's not damaged in some way.

Sent from my Android.

Share this post


Link to post
Share on other sites

After re - reading, if it is player setVariable ["NORRN_taxiHeli", slick1, true]; I may be using it wrong.

Edit: I just went ahead and added the line below to the player I wanted to use to overcome my issue.

this setVariable ["NORRN_taxiHeli", slick1, true];

Another thing I am seeing is the slick is taking off if bad guys are near it. I use an automated spawn system for ai, vehicles, static emplacements and weapons so that might be causing some of that.

Edited by sowens

Share this post


Link to post
Share on other sites

ok so another idea is to have a attack chopper on its own and have it so u can call it in like the A10 i have no idea how to edit the script to do this but i would think it would be simple to do

i love the idea of having the support of a evac chopper with escort + a cas + attack chopper on its own for extra help when u need it

Share this post


Link to post
Share on other sites
Guys I 'm currently on holiday and well and truly AFK. Be back on the 10th October so can't do anything until then.

).

Sent from my Android.

enjoy your holiday :) (for as long as it lasts)

Share this post


Link to post
Share on other sites

Get it here: http://norrin.org/downloads/OA/HeliTaxi/NORRN_aerialTaxi061.utes.rar

Fixes

Version 0.6

* Improved/fixed escort behaviour (escort will now disengage, return to base and land)

* Further code optimisations to whole script suite

* Added two new global variables:

NORRN_FR_keepOldCrew = true;

NORRN_FR_keepOldHeli = true;

Set these vars to true in the init.sqf if you do not want the downed chopper or chopper crew deleted when a new slick/escort respawns

* Camera code improved:

(1) Will now get the camera action regardless of whether you're in a vehicle or on foot.

(2) If you specify a unit in the code that calls the camera eg.

[s1]execVM "NORRN_cam\start_cam.sqf";

Only this unit will get the option to use the camera in game, otherwise all players get camera option

* The camera code has been improved/optimised

PS: Thanks for the bug reports guys :)

Edited by norrin

Share this post


Link to post
Share on other sites

Hi Norrin

I've been a long time user of these fantastic scripts. Today I thought I'd upgrade to v0.6 and it seems that the scripts apparently no longer work properly. All of my previous missions which use your script as a taxi at the start of the mission no longer give me the option to jump in the chopper and specify a destination.

If I load up your demo Utes mission the option to call an extraction (with escort) works just fine. If I modify the init.sqf thusly:

// For extraction action at start-up
//player setVariable ["NORRN_taxiHeli", slick1, true];

this should enable me to hop in slick1 and specify a destination. Upon entering slick1, the option is however unavailable.

Am I doing something wrong here or is there perhaps something which needs to be fixed with the scripts? Thanks for your advice in either case.

Share this post


Link to post
Share on other sites
Hi Norrin

I've been a long time user of these fantastic scripts. Today I thought I'd upgrade to v0.6 and it seems that the scripts apparently no longer work properly. All of my previous missions which use your script as a taxi at the start of the mission no longer give me the option to jump in the chopper and specify a destination.

If I load up your demo Utes mission the option to call an extraction (with escort) works just fine. If I modify the init.sqf thusly:

// For extraction action at start-up
//player setVariable ["NORRN_taxiHeli", slick1, true];

this should enable me to hop in slick1 and specify a destination. Upon entering slick1, the option is however unavailable.

Am I doing something wrong here or is there perhaps something which needs to be fixed with the scripts? Thanks for your advice in either case.

Same here. No destination action if you hop into the chopper at mission start. The code you quoted actually doesn't enable this function. Instead it enables you to call the chopper for extraction at the start of the mission from the outside without ever having been in the chopper.

Share this post


Link to post
Share on other sites
Same here. No destination action if you hop into the chopper at mission start. The code you quoted actually doesn't enable this function. Instead it enables you to call the chopper for extraction at the start of the mission from the outside without ever having been in the chopper.

That's what I was trying to do: comment out the extraction option so that the chopper functioned as a taxi.

In any case, it doesn't matter,what I do, the taxi function is broken in 0.6 as far as I can tell. I'll go back to 0.4 for the time being.

Share this post


Link to post
Share on other sites

Hi Norrin

I've put 0.61 through its paces and am happy to report that it works again! A couple of minor things I have noticed:

1 - When you give the chopper the all clear to take off after it's dropped you off, it takes off immediately, and 10 seconds later the player waves his arms around. Minor cosmetic issue!

2 - Occasionally (but not always) the chopper seems to "porpoise" up and down as it's travelling, along even quite flat terrain. It takes at leqast 3 times as long to actually get anywhere. Strangely enough, if I get impatient and hit the accelerate time button to 2x or 4x time speed, the chopper stops altogether. Back to 1x, and it starts moving (porpoising) again . I've only noticed this with the latest few betas, so it might be a BIS issue and not yours.

3 - Similarly, I've actually had the taxi crash into some trees.

Maybe 2 and 3 could be fixed by raising the flying height a few metres?

Thanks again for such outstanding and indispensable scripts.

Share this post


Link to post
Share on other sites

Hi Norrin,

this fantastic script does not work with the OA 1.60RC version as expected. The issue is, that the chopper only moves at a very low speed once in the air. It might have to do with the doMove command not working as expected. The last working version was OA 1.60 beta build 86873, tested version is 0.61.

Thanx for looking into it.

EDIT: Fixed by Suma http://dev-heaven.net/issues/26814#change-119086

Edited by Guess Who
Fixed

Share this post


Link to post
Share on other sites
Description

3. In the init line of the chopper or in the init.sqf put

null = [slick1] execVM "scripts\heloGoTo\heloGoTo_init.sqf";

where:

slick1 is the name given to the chopper in the editor

4.If you want to have the ability to call for extraction from mission start (ie. without having used the chopper to get to some location) make sure in the init.sqf file you put some code like:

player setVariable ["NORRN_taxiHeli", slick1, true];

where:

player - is player or the name given to the playable unit in the editor

slick1 - is the name given to the chopper in the editor

NB: only one chopper can be defined as the extraction chopper in the init.sqf

How can I add this later in my mission. I tryed to add the above into a trigger so I could only get the addaction later in mission but it did not apear. Any ideas?

---------- Post added at 06:34 PM ---------- Previous post was at 06:14 PM ----------

figured it out. I had to add

null = [slick1] execVM "scripts\heloGoTo\heloGoTo_init.sqf";

to trigger and

player setVariable ["NORRN_taxiHeli", slick1, true];

to init.sqf

Share this post


Link to post
Share on other sites

Hey Norrin im wanting to add Navlights (Anti-Collision Lights for Aircraft) to the choppers for night extractions and

they are only activated manually by the player, not ai! so im wondering how you can impliment it in your script so that it works on the choppers when doing

the extraction. I have tried the below code which is normal but that makes your script not work at all.

_nul = [this] execVM "NavLights\scripts\actions.sqf";

Another thing is im trying to customise the crew of the chopper with my own multicam air crew and also with davey gary's facemasks and pilot visor etc.. this works fine

until the chopper is respawned and the units are normal again with no facemask etc ... please would you mind helping? thanks

Edited by DarkXess

Share this post


Link to post
Share on other sites

Another thing is im trying to customise the crew of the chopper with my own multicam air crew and also with davey gary's facemasks and pilot visor etc.. this works fine

until the chopper is respawned and the units are normal again with no facemask etc ... please would you mind helping? thanks

DarkXess, did you try the following:

* Added two new global variables:

NORRN_FR_keepOldCrew = true;

NORRN_FR_keepOldHeli = true;

Set these vars to true in the init.sqf if you do not want the downed chopper or chopper crew deleted when a new slick/escort respawns

I have not tested, but looks like Norrin has this built in if it works...

Share this post


Link to post
Share on other sites
DarkXess, did you try the following:

* Added two new global variables:

NORRN_FR_keepOldCrew = true;

NORRN_FR_keepOldHeli = true;

Set these vars to true in the init.sqf if you do not want the downed chopper or chopper crew deleted when a new slick/escort respawns

I have not tested, but looks like Norrin has this built in if it works...

You my friend deserve a cookie, hehe... I didnt notice that, thanks alot. Though it worked, it didnt work 100%. I spawned the custom chopper, and my multi cam crew

but it didnt spawn the crew with the mask I had given them :( that could be down to the crew are scripted alone from the chopper?!?!?

thanks anyways,

Share this post


Link to post
Share on other sites

This is a great thing. Amazing job. I NEED to know one thing though, please teach me, how did you make the helicopter land under fire so consistently? Please, please, PLEASE tell me.

Share this post


Link to post
Share on other sites

I realize this is old, however my question pertains to the CAS Script!!

I cannot get the CAS Target marker to delete..

Marker is named :

// Add target marker
[b]_tn = format ["%1_marker",_plane];[/b]
_targetMarker = createMarker [[b]_tn[/b], _targetPos];
_targetMarker setMarkerShape "ICON";
_tn setMarkerType "Destroy";
_tn setMarkerColor "ColorRed";
_tn setMarkerText " CAS Target";

in the script when the CAS returns to the airfield after all Enemy contacts are eliminated there is:

deleteMarker _tn;

//Disable attack
_group enableAttack false; 
_group setBehaviour "CARELESS";
_group setFormation "COLUMN";
sleep 5;
//Send attack run complete message
if (!alive _plane) then {call NORRN_CAS_FLCheck};
Nor_CAS_PV = [0,_unit, Nor_CAS_TT3];
publicVariable "Nor_CAS_PV";
if (local _unit) then {titleText [Nor_CAS_TT3, "Plain Down", 0.3]};
deleteMarker "_tn";

however, there is nothing to remove the marker when the planes are shot down...???

so, where the If statement asks if there are any planes left and if non. Silenthint"blah blah blah"; I add a deleteMarker _tn;

while {true} do 
{
while {player != _commander && _plane == (player getVariable "NORRN_CAS_plane") && alive _plane} do {sleep 5};
if (count units (group _plane) < 1) then 
	{
		deleteMarker _tn;
		hintSilent "All CAS aircraft are down";
	};
_plane = player getVariable "NORRN_CAS_plane";
if (_c == 0 && !(_plane getVariable "NORRN_CAS_launch") && alive player && alive _plane) then
{	
	hintSilent "CAS action added";
	NORRN_call_CAS_Action = player addAction ["Call CAS", "scripts\CAS\Actions\call_CAS_action.sqf",[_plane, player], 0, false, true];
	_c = 1;
};
if (_c == 1 && (_plane getVariable "NORRN_CAS_launch") || !alive player || !alive _plane) then
{
	player removeAction NORRN_call_CAS_Action;
	_c = 0;
};
sleep 1;
_plane 		= _unit  getVariable "NORRN_CAS_plane";
_commander 	= _plane getVariable "NORRN_CAS_commander";
};

this does not work.

I have tried several variations.

deleteMarker "_tn";

as well as, renaming the marker completely (FAILURE)!!

I would like to use this it is working very well I just cant get the lingering markers to delete...

Can someone that has delt with this issue help me?

Share this post


Link to post
Share on other sites

Hi Norrin et al

Call me a picky @#%^ but one of the few niggles with this magnificent and indispensable aerial taxi script is the fact that the smoke from the deployed smoke grenade ignores the prop wash from the landing chopper. I know it's an engine limitation, but I thought I'd have a go at a workaround using setwind to blow the smoke away from the chopper. The below script monitors the distance and angle between the grenade and the chopper, and sets the global wind accordingly. Once the chopper lifts off, the wind returns to normal (at least it does for me using Rube's weather module).

Save the below script into your editor mission directory as eg tpw_choppersmoke.sqf and call it from your player's init with 0 = [] execvm "tpw_choppersmoke.sqf".

You'll see the green smoke from the deployed grenade gradually blow away as the chopper comes in to land.

I hope someone finds this tiny extra bit of increased immersion useful.

// Script to simulate extraction chopper blowing smoke away from deployed smoke grenade
// Assumes your extraction chopper is called "slick1" as per Norrin's instructions

_chopland = [0,0,0]; //dummy extraction point

while {true} do  {
_chopland = getpos nearestObject [player, "SmokeShellGreen"]; //assumes nearest green smoke shell will be the one deployed by slick1
_chdist = slick1 distance _chopland;
if (_chdist < 100) then {
_wsp = (100 - _chdist) / 10; //windspeed based on how close chopper is to smoke
_pos = position slick1;
_ang = ((((_chopland select 0) - (_pos select 0)) atan2 ((_chopland select 1) - (_pos select 1))) + 360) % 360;
_ang = _ang + 191.25; // angle between chopper and smoke
if (_ang > 360) then {_ang = _ang - 360};
_wind = [[0,(-1 * _wsp), true],[(-1 * _wsp),(-1 * _wsp),true],[(-1 * _wsp),0,true],  [(-1 * _wsp),_wsp,true], [0,_wsp,true], [_wsp,_wsp,true], [_wsp,0,true],  [_wsp,(-1 * _wsp),true]]; //array of setwind values for compass points
_num = floor (_ang / 45); // convert angle to one of 8 numbers corresponding to the 8 setwind values
_compass = _wind select _num; // select value
setwind _compass; // start blowing!
};
sleep 5;
};

//Thanks to Norrin for a great Taxi script!

Edited by tpw

Share this post


Link to post
Share on other sites

I've been messing with a test mission using the escort chopper and slick1, and of course I'm a big fan of all of norrin's work.

But unless I'm doing something wrong, the escort chopper seems a bit 'timid'.

To be more specific,

I have a trigger activated enemy reinforcement squad (using UPSMON), that is coming in by chopper, right about the same time I'm calling in my chopper/escort evac. But my escort chopper is only taking a couple shots at the enemy chopper at most, and then kinda just hovers there as he gets nailed repeatedly by the enemy chopper.

Is anyone else seeing a timid-ish escort chopper, or have I done something wrong?

:confused:

Most grateful for any tips.

Share this post


Link to post
Share on other sites

this script plays a big role in my mission and everything goes pretty well.

except when we die a few times and then we lose the action to call for extraction. im thinking that we use radio triggers since they stay around throughout unless theres another trigger disabling it. but i cant really understand the scripts and i cant do a simple execVM on the radio trigger so that i can gain control of the chopper again. do i have to do something with the variables?

Share this post


Link to post
Share on other sites
Hi Norrin et al

Call me a picky @#%^ but one of the few niggles with this magnificent and indispensable aerial taxi script is the fact that the smoke from the deployed smoke grenade ignores the prop wash from the landing chopper. I know it's an engine limitation, but I thought I'd have a go at a workaround using setwind to blow the smoke away from the chopper. The below script monitors the distance and angle between the grenade and the chopper, and sets the global wind accordingly. Once the chopper lifts off, the wind returns to normal (at least it does for me using Rube's weather module).

Save the below script into your editor mission directory as eg tpw_choppersmoke.sqf and call it from your player's init with 0 = [] execvm "tpw_choppersmoke.sqf".

You'll see the green smoke from the deployed grenade gradually blow away as the chopper comes in to land.

I hope someone finds this tiny extra bit of increased immersion useful.

// Script to simulate extraction chopper blowing smoke away from deployed smoke grenade
// Assumes your extraction chopper is called "slick1" as per Norrin's instructions

_chopland = [0,0,0]; //dummy extraction point

while {true} do  {
_chopland = getpos nearestObject [player, "SmokeShellGreen"]; //assumes nearest green smoke shell will be the one deployed by slick1
_chdist = slick1 distance _chopland;
if (_chdist < 100) then {
_wsp = (100 - _chdist) / 10; //windspeed based on how close chopper is to smoke
_pos = position slick1;
_ang = ((((_chopland select 0) - (_pos select 0)) atan2 ((_chopland select 1) - (_pos select 1))) + 360) % 360;
_ang = _ang + 191.25; // angle between chopper and smoke
if (_ang > 360) then {_ang = _ang - 360};
_wind = [[0,(-1 * _wsp), true],[(-1 * _wsp),(-1 * _wsp),true],[(-1 * _wsp),0,true],  [(-1 * _wsp),_wsp,true], [0,_wsp,true], [_wsp,_wsp,true], [_wsp,0,true],  [_wsp,(-1 * _wsp),true]]; //array of setwind values for compass points
_num = floor (_ang / 45); // convert angle to one of 8 numbers corresponding to the 8 setwind values
_compass = _wind select _num; // select value
setwind _compass; // start blowing!
};
sleep 5;
};

//Thanks to Norrin for a great Taxi script!

I would like to use this with any chopper, and any smoke color.. I imagine for the smoke color all you would have to do, is defigne an array of smoke shells and then replace "smokeshellgreen" with the "[arrayname]"...

ie:

_chopland = [0,0,0]; //dummy extraction point

_smokeclr = ["smokeshellgreen","smokeshellred".....etc];

while {true} do {

_chopland = getpos nearestObject [player, "[smokeclr]"]; //assumes nearest green smoke shell will be the one deployed by slick1

_________________________________________

How would I be able to use this with the medevac module(module that spawns chopper with crew at game start) i imagine i would have to somehow edit the module so it names the chopper and then use that name in the script (slick1)??

edit again: I just searched for the script call that can name a unit .. and i cant find it ... how do i insert "slick1" into the "name" of a unit in a script call.. I have found "SetIdenity" (but that is for the description of the unit, that shows up InGame as the units name), but I cannot find the call for just the "name" of the unit..

this script plays a big role in my mission and everything goes pretty well.

except when we die a few times and then we lose the action to call for extraction. im thinking that we use radio triggers since they stay around throughout unless theres another trigger disabling it. but i cant really understand the scripts and i cant do a simple execVM on the radio trigger so that i can gain control of the chopper again. do i have to do something with the variables?

this might help might not.. but with an totally unrealted Fog script I had a similar issue that upon death and respawn the fog would dissipear... i found a thread with a similar issue stating the use of a trigger with a Condition of : alive player ... and then in the on activation : player setvehicleinit [ script call here ]; processInitCommands;...

Edited by Lordprimate

Share this post


Link to post
Share on other sites

Might be simpler if you make the script just work for the nearest chopper.

_nearchop = nearestObject [player, "helicopter"];

Substitute _nearchop for slick1 and see how you go. I'm not in front of my Arma box so can't verify.

PS Glad someone other than me likes the script.

I would like to use this with any chopper, and any smoke color.. I imagine for the smoke color all you would have to do, is defigne an array of smoke shells and then replace "smokeshellgreen" with the "[arrayname]"...

ie:

_chopland = [0,0,0]; //dummy extraction point

_smokeclr = ["smokeshellgreen","smokeshellred".....etc];

while {true} do {

_chopland = getpos nearestObject [player, "[smokeclr]"]; //assumes nearest green smoke shell will be the one deployed by slick1

_________________________________________

How would I be able to use this with the medevac module(module that spawns chopper with crew at game start) i imagine i would have to somehow edit the module so it names the chopper and then use that name in the script (slick1)??

edit again: I just searched for the script call that can name a unit .. and i cant find it ... how do i insert "slick1" into the "name" of a unit in a script call.. I have found "SetIdenity" (but that is for the description of the unit, that shows up InGame as the units name), but I cannot find the call for just the "name" of the unit..

this might help might not.. but with an totally unrealted Fog script I had a similar issue that upon death and respawn the fog would dissipear... i found a thread with a similar issue stating the use of a trigger with a Condition of : alive player ... and then in the on activation : player setvehicleinit [ script call here ]; processInitCommands;...

Share this post


Link to post
Share on other sites

Hi guys im a HUGE fan of this script although I do have a question. You mentioned the script could function as a medevac script although when I have one of my men enter the helo to be medevaced it will only let me leave if im in the helo, an suggestions??

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×