Jump to content

Recommended Posts

Hermes-AS10.png

by

Rydygier & Gunter Severloh

 

Download

Armaholic - Hermes Airlift Services Script v1.7

Mega - Hermes Airlift Services Script v1.7

Mod version - Hermes Airlift Services Mod v1.7

Manual PDF - Hermes Airlift Services PDF Manual

 

 

 

 

1. Description

Hermes Airlift Services is an easy to set up yet versatile and customizable script that enables heli airlift in a scenario.  The mission creator defines

the "base" game logic, heli(s) to serve as an aerial taxi for units to be transported on demand.

HAS also provides an accompanying background chat for communications specific to typical situations, that could break procedure.

  

2. Features

  • Airlifting for units to a chosen destination or back to base.
  • Task initialized by radio call or by entering a helicopter at base.
  • CAS support with custom attack behavior, used may be appointed for HAS helicopters that are armed with any missiles or rockets.
  • Map click to choose a destination.
  • Helicopter will wait until all units are aboard and give the action to go to a new destination or RTB.
  • Variety of customization options through the userconfig.
  • Ability to cancel pending airlift.
  • The ability to point to an alternative LZ if landing is not possible at the chosen coordinates.
  • Daylight smoke, and night signals (flares) to mark the chosen extraction LZ.
  • Text radio chat communications or audio & text from the vanilla airlift support module.
  • Customizable call limits - set to -1 and have unlimited calls, set it to 4 and have only 4 call heli missions.
  • Possibility of adding new units and helis on the fly.
  • Logic handles special situations (not enough cargo space, heli destroyed/unable to fly etc.).
  • Optional auto embark*/disembark,  *except for player controlled units and player lead groups.
  • On teamswitch all playable units defined in the userconfig will get the "call helicopter" action provided one being switched to is the player.
  • Fastroping
  • AI units after fast roping will take random positions few meters around to avoid next unit landing on previous unit's head.
  • Supply Drop - (Slingload or Paradrop)
  • Option to map click to a supply drop
  • Destination choice action appears, when heli is landed at pick up pos (no waiting for all to board, radio call) or when at least one of appointed units boards any appointed heli (first one boarded will be used)

  • Four action to change flight ceiling on-the-fly

  • Option to add virtual Arsenal to supply drop

  • Eden Editor configurable module

  • Optional usage of 0-8 supports menu instead of most of mouse actions, except for destination choice actions

  • 0-8 variant includes manual choice of the heli to use for the call (always, via submenu)

  • Alternative landing (experimental, will enforce autodisembark at destination, if not RTB or fast roping, faster descent)

  • Respawn compatibility (player should get back HAS actions after respawn

  • MP Compatibility

3. Script set up

  • Paste HAS folder into mission folder
  • Paste demo's init.sqf content into mission's init.sqf

init.sqf

if (isServer) then 
	{
	call compile preprocessFile "HAS\userConfig.sqf";
	call compile preprocessFile "HAS\HAS_fnc.sqf";
	[] call RYD_HAS_Init;
	};
  • Adjust init variables located on the top of HAS_fnc.sqf
  • Into RYD_HAS_STT array put names of all units, that will be using airlift. Optimally if all of them form a single group. At least one of them has to be player-controlled.
  • In the editor, place at chosen point Game Logic named  RYD_HAS_Base
  • In the editor, place at least one helicopter to be used for airlifting (cargo space must be big enough for all transported units). Put names of all helicopters into RYD_HAS_allChoppers in the HAS_fnc.sqf

Alternative way for one vehicle:  name single helicopter as RYD_HAS_Chopper

 

4. How it works

Once the mission initiates, all units named in the HAS_fnc.sqf  RYD_HAS_STT array  will get the "Call helicopter"  and "Call Supply Drop" added to their action menu giving them the ability to call an airlift.

    It is visible only to the player-controlled character (making a call require player action). The action represents a radio call for airlift.

 

When used, if all is OK, the number of calls left will be decreased by 1 and after a short background radio chat,  the closest heli able to perform

the task will start and fly towards the caller's position. When approaching, the pilot will search for presence of any proper signal

putting the extraction LZ around caller's position (of any origin, not only placed by the player!). 

 

The signal is typically a smoke grenade or flare.  If there was no signal given before the helicopter arrives, the pilot will request a signal

based on if its day or night and start to loiter over the area for set amount of time waiting for signal to be given.

If the signal is not given in that time, the heli will RTB.

 

If the signal is seen then the pilot will scan the area for a safe LZ spot.

    If not found, the player will be informed and asked to point to an alternate extraction coordinate via map click.

This will be repeated until a suitable spot is found.  When the LZ is found, the heli will land allowing units to embark. At this point the caller

may cancel the airlift via another mouse action. When all units are aboard, the caller will get two actions:  transport to another location (pointed via map click) or RTB.

        After the destination is chosen, the heli will fly there, land allowing disembark, wait until all units are out, then RTB.

After the heli lands back at base a new call can be made. 

 

If units are closer than 100 meters to the closest of appointed helis, radio call is not available.

In this case, or if player chooses,  the airlift may be initialized simply by all units embarking in the appointed helicopter.

      Once inside the actions for choosing a destination will become available,  returning back to base will not.

 

The task will immediately end if:

  • There's no more appointed helicopters alive for airlifting units.
  • Chosen heli is destroyed or deleted.
  • Pilot of the chosen heli is killed or deleted.
  • Chosen heli is unable to fly due to damage or lack of fuel.
  • Airlift is cancelled by the player.

 

5. User Customization Variables - (located in HAS > userConfig.sqf )

Spoiler

//Hermes Airlift Services by Rydygier

 

//RYD_HAS_Chopper - fixed name for an helicopter vehicle to be used.
//RYD_HAS_Base - fixed name of HQ Game Logic object
//to add new helicopter run this code when no airlift is pending, after assigning the crew for new helicopter: myNewHeliWithCrewName call RYD_HAS_NewChopper;
//to add new units to the RYD_HAS_STT pool run this code when no airlift is pending: [newUnit1,newUnit2,newUnit3] call RYD_HAS_NewUnits;

 

//User Config///////////////////////////////////////////////////////////////
RYD_HAS_STT = //names of the units to be transported
    [
    unit1,
    unit2,
    unit3,
    unit4,
    unit5,
    unit6
    ];
    
RYD_HAS_Limit = 4;//uses limit of airlift support. Set negative value for unlimited uses
RYD_HAS_RadioReq = true;//if units need to have radio item equipped or any backpack to have call helicopter action
RYD_HAS_VoiceChat = true;//if there should be played kbTell sentences (if available). If false - sidechat text sentences will be used instead (no voice, but better coverage). Ignored for supply drop - text chat only
RYD_HAS_whenInside = true;//if new airlift task should begin also when there is no airlift pending and all RYD_HAS_STT units get in RYD_HAS_Chopper
RYD_HAS_CallerName = "";//name of the unit calling for airlift. Leave empty string for default: actual unit's name
RYD_HAS_AddHints = true;//if additional hint messsages should be displayed
RYD_HAS_SignalSearchRadius = 150;//how far around call position heli should search for proper signal to land. Avoid too big values (CPU heavy)
RYD_HAS_signalTimeLimit = 600;//how long (seconds) helicopter should loiter waiting for the signal before task fail/RTB (set 0 for unlimited)
RYD_HAS_AutoInOut = true;//if all RYD_HAS_STT units should be sent to embark/disembark RYD_HAS_Chopper automatically. Doesn't affect fast roping, which is always automatic
RYD_HAS_RemoveAtLimit = true;//if ability to call airlift should be permanently removed from RYD_HAS_STT units after limit of call is reached. If false - this action will be only hidden and will show up, if calls limit raised
RYD_HAS_ForceDescent = false;//should additional code enforce heli descent at last landing stage at destination until all disembark. May be useful, if heli's AI tend to go up too early. Use only, if necessary.

RYD_HAS_allChoppers = //contains heli vehicle names. Helis put there will be used to perform airlift (always the closest able). If left empty, used will be heli present on the map named RYD_HAS_Chopper
    [
    heli1,
    heli2
    ];

RYD_HAS_SignalClassesDay = //parent classes of ammo shot, that will be considered as proper position marker for pick up spot. Leave empty if no signal should be required - day
    [
    "SmokeShell",//any color
    //"SmokeShellBlue",
    //"SmokeShellGreen",
    //"SmokeShellRed",
    //"SmokeShellOrange",
    //"SmokeShellPurple",
    //"SmokeShellYellow",
    //"F_Signal_Green",
    //"F_Signal_Red",
    "FlareBase"
    ];
    
RYD_HAS_SignalClassesNight = //parent classes of ammo shot, that will be considered as proper position marker for pick up spot. Leave empty if no signal should be required - night
    [
    "FlareBase",
    "SmokeShellGreen"
    //"F_Signal_Green",
    //"F_Signal_Red"
    ];
    
RYD_HAS_SignReqDst = 1000;//2D distance in meters from the position of the calling unit, at which inbound helicopter will ask for LZ mark signal

RYD_HAS_ChopperLvl = 30;//optimal chopper's flight ceiling
    
RYD_HAS_FastRoping = true;//if fast rope should be used for disembarking instead of landing at destination. Does not apply to the disembarking at base (RTB option)
RYD_HAS_FastRopingLvl = 15;//optimal height for fast roping. Final level may be higher, if too tall obstacles present at destination
RYD_HAS_FastRopingOSrad = 0;//"obstacles search radius". How wide area at final fast roping spot has to be free from building class obstacles to be accepted. For rooftop fast roping etc. set to 0 for most precise on-click delivery, but use with caution, on the own risk. Note - the search counts distance from the center of the building, not from it's edges!
    
RYD_HAS_DoorsToOpen = //optional setting of animation sources, that should be animated before deploying fast ropes - intended for doors. Leave empty for no animations
    [
    //[heli1,["Door_Back_R","Door_Back_L"]]//Mohawk
    [heli1,["door_l","door_r"]],//Ghosthawk
    [heli2,["door_l","door_r"]]//Ghosthawk
    //[heli1,["Door_rear_source"]]//Huron
    ];

RYD_HAS_RopeAttachPoints = ////optional setting of rope attachement points in model space coordinates ([x,y,z], [0,0,0] means the center of the vehicle, values in meters). Leave empty for automatic choice (how reasonable results will be - depends on the heli class).
    [
    //[-1,0,0],
    //[1,0,0]
    ];
    
RYD_HAS_SupplyDrop_SlingLoad = true;//should the supply call be performed using slingload. If not - parachute drop will be used instead.
RYD_HAS_SupplyDrop_onMapClick = true;//set to true to mark drop position with map click. If false - by default usual smoke/flare etc. signal required by the pilot, unless no signal is defined - in that case supply will be dropped at caller's initial position
RYD_HAS_SupplyDrop_attachFlareAndSmoke = true;//if landed supply container should be marked with light and smoke

RYD_HAS_SupplyCall_ContainerClass = "B_supplyCrate_F";//in fact, can be also any vehicle, but heli must be able to lift its weight.
RYD_HAS_SupplyCall_ContainerPositions = //where, in relation to appointed heli ([x-axis (meters),y-axis (metes),z-axis (will be reduced to ground level)]), supply box should be spawned (area should be optimally free of obstacles and, for slingload mode: ahead of the heli, not closer, than 50 meters from it, reasonably flat and accessible from above). Leave empty for default - somewhere safe ahead of each of appointed helis.
    [
    [heli1,[0,50,0]],
    [heli2,[0,50,0]]
    ];

RYD_HAS_SupplyCall_MagCount = -12;//amount of each compatible magazine per each piece of weaponry used by chosen units. Use negative number to randomize amount of each from 0 to positive opposition of this number.

RYD_HAS_SupplyCall_AddBackPack =
    [
    //[class,amount,randomize from 0 to amount]
    ];

RYD_HAS_SupplyCall_AddWeapon =
    [
    //[class,amount,randomize from 0 to amount]
    ];
    
RYD_HAS_SupplyCall_AddItem =
    [
    //[class,amount,randomize from 0 to amount]
    ];
    
RYD_HAS_SupplyCall_AddMagazine =
    [
    //[class,amount,randomize from 0 to amount]
    ];
    
RYD_HAS_SupplyCall_MagBlacklist = //magazine class names, that should be not added, all lower-case! Doesn't affect the content of RYD_HAS_SupplyCall_AddMagazine
    [
    "handgrenade_stone"
    //"i_ir_grenade",
    //"o_ir_grenade"
    ];

//sentences for "no voice chat" option (will be chosen random line from each array):
RYD_HAS_sent_Request = //at airlift request, by the caller, %1 refers to caller's name (RYD_HAS_CallerName)
    [
    "HQ, this is %1. We need heli transport, how copy?",
    "HQ, this is %1. Airlift requested, over."
    ];
    
RYD_HAS_sent_Request_sc = //at supply drop request, by the caller, %1 refers to caller's name (RYD_HAS_CallerName)
    [
    "HQ, this is %1. We need the supplies, how copy?",
    "HQ, this is %1. Supplies airlift requested, over."
    ];
    
RYD_HAS_sent_Confirmation = //transport assignment confirmation, by HQ
    [
    "This is HQ, heli en route, over.",
    "This is HQ, airlift inbound, sit tight, over."
    ];
    
RYD_HAS_sent_Confirmation_sc = //supply drop assignment confirmation, by HQ
    [
    "This is HQ, heli en route, over.",
    "This is HQ, airlift inbound, sit tight, over."
    ];
    
RYD_HAS_sent_SignalReq = //when heli is close enough to request a signal, by pilot
    [
    "We're closing. Mark your position!",
    "We're inbound. Signal your position!"
    ];
    
RYD_HAS_sent_SignalReq_sc = //when heli is close enough to request a signal, by pilot (supply drop)
    [
    "We're closing. Mark your position!",
    "We're inbound. Signal your position!"
    ];
    
RYD_HAS_sent_noLZ = //when heli fail to find suitable LZ at pick up position
    [
    "We don't see suitable LZ here. Transmit alternative map coords.",
    "There's nowhere to land. Requesting new LZ map coords."
    ];
        
RYD_HAS_sent_SignalSpot = //when heli spotted the signal, by pilot
    [
    "We see you, we're landing.",
    "I see your signal. We're approaching."
    ];
    
RYD_HAS_sent_SignalSpot_sc = //when heli spotted the signal, by pilot (supply drop)
    [
    "We see you, wait for delivery.",
    "I see your signal. We're approaching."
    ];
    
RYD_HAS_sent_AltCoordsConfirmed = //when heli pilot accepts pointed alternate LZ coords
    [
    "The coords looks good, we're landing.",
    "I see your coords. We're heading there."
    ];
    
RYD_HAS_sent_AirliftCancelled = //by caller to pilot, at airlift cancelling
    [
    "This is %1. Abort the airlift."
    ];
    
RYD_HAS_sent_AirliftCancelled_sc = //by caller to pilot, at supply drop cancelling
    [
    "This is %1. Abort the supply drop."
    ];
    
RYD_HAS_sent_AirliftCancelledConf = //by pilot to caller, after airlift cancelling
    [
    "Roger that. Airlift cancelled. We are RTB."
    ];
    
RYD_HAS_sent_AirliftCancelledConf_sc = //by pilot to caller, after supply drop cancelling
    [
    "Roger that. Supply drop cancelled. We are RTB."
    ];
        
RYD_HAS_sent_Welcome = //when all units in the heli, question about destination, by pilot
    [
    "All on board? Where to drop?",
    "All boarded? What's the destination?"
    ];
    
RYD_HAS_sent_LZSelected = //at destination chosen, by pilot
    [
    "All right, let's get out of here.",
    "Hang on, we're flying."
    ];
    
RYD_HAS_sent_Accomplished = //at destination/disembark, by pilot
    [
    "Good luck out there!",
    "All out? OK."
    ];
    
RYD_HAS_sent_Accomplished_sc = //after supply drop, by pilot
    [
    "Supplies delivered, enjoy!",
    "Supplies dropped, you're welcome."
    ];
    
RYD_HAS_sent_Destroyed = //at heli destroyed or unable to fly due to damage
    [
    "This is HQ, heli is gone, I repeat, heli is gone.",
    "This is HQ, we lost helicopter."
    ];
    
RYD_HAS_sent_Destroyed_sc = //at heli destroyed or unable to fly due to damage (supply drop)
    [
    "This is HQ, heli is gone, I repeat, heli is gone.",
    "This is HQ, we lost helicopter."
    ];

 

Changelog:

Spoiler

12-10-18

Release v1.0

 

12 -26 -18

Update v1.1

  •  added Fast-roping
  • added Supply drop
  • changed Destination choice action now appears, when heli is landed at pick up pos (no waiting for all to board, radio call)
  • added Four new action to change flight ceiling on-the-fly
  • Rearranged the code (subfolder, all user config in the separate file for better clarity).

1-1-19

Update v1.2

  • Added Eden editor Module version
  • Added Arsenal option to supply drop

1-13-19

update v1.3

  • Improved MP compatibility (client side players/dedicated server)

  • Optional usage of 0-8 supports menu instead of most of mouse actions, except for destination choice actions

  • 0-8 variant includes manual choice of the heli to use for the call (always, via submenu);

  • Task prioritization for the helis in the mouse actions variant. Two variables: "RYD_HAS_TransportPriority" and "RYD_HAS_SupplyPriority". To determine, which heli should be used for given task in the first place, regardless of the distance, and also which heli shouldn't be used for given task at all. The higher value, the higher priority of usage, negative value excluded from the task completely. Application for example via heli's init field: this setVariable ["RYD_HAS_TransportPriority",1];//the heli gets priority 1 for troops transport (will be used before any heli of 0 priority)

  • Predefined boxes to be delivered before spawned boxes. Script version - boxes/objects added into: RYD_HAS_SupplyDrop_Prepared = [box1,box2];//holds optional prepared boxes as supply to be dropped, that will be used before default, spawned boxes. Module version - same method or synced with module objects of "ReammoBox_F" kind or any synced with module object tagged for example via init field: this setVariable ["RYD_HAS_ThisIsBox",true];

  • Alternative landing (experimental, will enforce autodisembark at destination, if not RTB or fast roping, faster descent). Variable: RYD_HAS_AlternativeLanding = true;//scripted solution instead of vanilla getin/getout landings at pickup and disembark spots;

  • Respawn compatibility (player should get back HAS actions after respawn)

  • RYD_HAS_IgnoreAbilityCheck = true;//if true, in mouse actions variant there will be no check, if heli is able to lift given container before accepting the task.

  • Workaround for not unreliable slingload unhook issue on dedi

  • Several code fixes.

  • New Video added to the OP ---> https://www.youtube.com/watch?v=VlUE1hWYBbs&t=1s

  • New PDF Manual created and added to the OP ----> https://www.dropbox.com/s/txetwb5t6xug5ud/HAS_Manual.pdf?dl=0

1-19-19

Update v1.4

  • Defining units, helis and prepared boxes (if any) in the script version by default similar way, as in module: via syncing them with RYD_HAS_Base Game Logic (old way still possible too if proper variables defined by the user);

  • If set on server: unit1 setVariable ["RYD_HAS_canCall",false]; unit1 losts access to HAS calls. Use: unit1 setVariable ["RYD_HAS_canCall",true]; To give actions back. Can be switched back and forth any time;

  • From now on custom rope attachment points defined per each heli separately (helis have to be named in EDEN for that, see the manual or userConfig.sqf for details);

  • At destination choice two variants for choosing target location: touchdown, for traditional landing, and fast rope. Fast rope switch in userConfig removed;

  • Added RYD_HAS_SafetyMargin = 10; user config variable. Value set here is added to the heli size when calculated radius for flat and empty area search at landing zone (where fast rope or RTB not used). 10 is reasonable minimum. The higher - the safer LZ as for collisions with map objects. The lesser - bigger collision risk, but also bigger landing accuracy (closer to the spot chosen by user). If 0 - only heli diagonal model radius will be used as search radius. If set with negative number like -100, final search radius is 0, thus collision checks ignored, but landing most accurate;

  • Fixed a bug with no destination choice actions appearing, if task was triggered by the unit entering the chopper at base, while player unit wasn't the first in the array (with current, syncing method order in the array AFAIK is same, as order of unit placement in EDEN - first placed unit will be the first etc.);

  • Caller can now redirect the chopper during the transport if initially was't chosen "RTB" option via re-using destination choice actions;

  • Minor code improvements;

  • Manual updated accordingly.

2-24-19

Update v1.5

  • CAS support with custom attack behavior, used may be appointed for HAS helicopters that are armed with any missiles or rockets;
  • units from FFV positions should be fast roped properly on dedi;
  • units with "canCall" false will no longer trigger transport task by entering the heli (such unit entering heli will be ignored);
  • AI units after fast roping will now take some random positions few meters around to avoid next unit landing on previous unit's head etc.; 
  • also on dedi AIs should now after several seconds properly follow player TL's lead again; 
  • improved fast roping looks in sinfgleplayer (fast roped units should now go down rather along the ropes, than vertically to the main heli axis).

3-17-19

Update v1.6

  • Added ability to customize flight path via shift+LMB and alt+LMB at chosen moments;

  • added user config variable RYD_HAS_CruisingSpeed;

  • added adaptative targeting for not guided weaponry during CAS to improve fire accuracy;

  • fixed code error visible on screen at entering transport helicopter along with all further issues caused by this one;

  • various fixes around CAS and other.  

4-17-19

Update v1.7

  • code reviewed and improved in regard of updating 0-8 helicopter lists and adding new helicopters and units mid game (details in the manual, p. 11, "Additional advanced settings").
  • added systemChat message at init displaying in SP/on server running HAS version.  

Credits & Thanks

Thanks to the following BIS forum Community
members for their ideas and feedback:

  • ayoung           -  (Fastrope idea)
  • johnnyboy      -  (Fastrope animation, elevation)
  • lordfrith          -   (Slingloading idea/code)
  • Jnr4817         -   (Heli Elevation idea)

 

  • Like 6
  • Thanks 6

Share this post


Link to post
Share on other sites

this looks very cool, i like how you have to throw smoke/light for heli to land. i look forward to being flown around by this later ;)

  • Like 1

Share this post


Link to post
Share on other sites

Thanks, ya it is a cool idea, adds some realism to the whole transport aspect.

You got to give Rydygier most of the credit tho, as without his ability to write scripts like he does, and put ideas into code, this wouldn't have been possible.

            The idea for the throw smoke to call a helicopter started back in 2014, i presented the idea to Rydygier so he put together a small demo mission on my

ideas to mess with,  was very primitive at the time but worked.

      Few weeks ago i was working on a mission i've spent about a month on, was implementing the module for helicopter transport, and it sparked an idea, i ended up going back to the

demo mission, i started playing with it, next thing you know i was getting all sorts of ideas, so i pm'd Rydygier and told him about the script he wrote, from there it took off, so this

Hermes Airlift Services was a 2 week project.

 

Known issues

Just to let you guys know there were 2 "bugs" we were dealing with:

1. When the helicopter was looking for a spot to land, which we seem to have sorted but still needs further testing.

 

2. When the disembark when the heli lands you have 2 options you can set in the userconfig, either true or false, but true will force all occupants out of the chopper,

set to false and you'll have to get out manually,  this includes telling your squad mates to get out too if you have any under your command.

   Once in a while when the chopper lands and you get forced out, 1-2 other AI squad mates will be forced out too, but then the rest will remain on the chopper, so just tell them

to disembark and the chopper will reland and let them off, and then RTB.

This happens on rare occasions, so out of 5 tests it might happen once, or not at all, just remember if it happens tell your guys to get out, and all is good.

 

Download

In the download comes 2 demo missions, one on Altis, the other Stratis which you see in the video, also included is a readme in the zip.

The demo missions are not pbo'd so they need to be placed in C:\Users\username\Documents\Arma 3\missions

 

Tested in MP lan works ok, but best in sp.

  • Like 2

Share this post


Link to post
Share on other sites

This is a very nice addition and it definitely is a must have , especially for SP missions !

Congratulations !

 

PS : Nice name !

  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks, ya its alot of fun to use, the name and pic was Rydygier's idea, pretty fitting i must say.

       For the video, i actually had a video ready on the 2nd but, the way Rydgier works lol he kept fixing and updating the script, adding more user friendly options to it.

I ended up rerecording the video this past Sunday morning, took me a number of takes to get it right because i wanted to say certain things at a certain time and also not miss anything important.

So a couple hrs to record, and almost 4 to edit, turned out pretty decent and presents the script well.

 

  • Like 2

Share this post


Link to post
Share on other sites

Great script, and great instructional video.  Thanks for making it easy for mission makers to use!

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks for this Gunter. Will be trying it out. The old helo script I have been using as gotten very hit or miss with it working. 

I do have a question. When using the helo to do an insertion can it be set to kick  players and AI (everyone not part of the crew) out on landing and automatically RTB, 

 

Edit:

Nevermind I just tried it out. Works beautifully. Nicely done

  • Haha 1

Share this post


Link to post
Share on other sites

As usual in case of my scripts, also this one was written mainly with SP in mind. If anyone will try it in MP though, precise feedback about any issues encountered may help in case, it's something fixable. In such case of use (as given init.sqf code enforces) it should be run server side only. If there will be something wrong, probably may be related with player units locality. Like it or not, in scripting, MP makes all more difficult, complex, voodoo-like and less reliable. 

 

In any case - enjoy the ride. :)

  • Thanks 1

Share this post


Link to post
Share on other sites

Update

Script now on Armaholic!

Thanks to Foxhound for hosting!

http://www.armaholic.com/page.php?id=34661

 

15 hours ago, nomadd said:

Thanks for this Gunter. Will be trying it out. The old helo script I have been using as gotten very hit or miss with it working. 

I do have a question. When using the helo to do an insertion can it be set to kick  players and AI (everyone not part of the crew) out on landing and automatically RTB, 

 

Edit:

Nevermind I just tried it out. Works beautifully. Nicely done

Open the HAS_fnc.sqf  and you can adjust all those parameters to your liking.

Also seen in number 5 in the OP.

In the video i have set in the userconfig:

RYD_HAS_VoiceChat = false;//if there should be played kbTell sentences. If false - sidechat text sentences will be used instead

Set to true so you will hear the player, and the pilot of the helicopter.

RYD_HAS_AddHints = false;//if additional hint messsages should be displayed

Set to true, so you will see the chopper enroute, throw daytime signal, signal spotted, ect,. these are the hints you see at the top right of the screen.

RYD_HAS_AutoInOut = true;//if all RYD_HAS_STT units should be sent to embark/disembark RYD_HAS_Chopper automatically

nomadd this is the code that does the autokick of the player and any AI, if you make this false then you'll have to manually get out, but fair warning the chopper

might have the bug where he will land, and then take off while your still in it, so if you command any AI like in the demo, then just tell them to disembark

before the chopper lands and the chopper will stay on the ground til all are out, and then RTB.

On 12/10/2018 at 1:36 AM, Gunter Severloh said:

RYD_HAS_RadioReq = true;//if units need to have radio item equipped or any backpack to have call helicopter action

This code from the userconfig you can have a radio required to be able to call the heli, or a backpack, or something else, in the demo

on both maps as i have demo for Altis and Stratis, there is a table there in front of where the players start for stratis the table is at the base, but look in the editor at the code

used in the radio and you can apply that to any object and it will be required to call the heli.

 

  • Like 1

Share this post


Link to post
Share on other sites

Very much like NORRIN's arial taxi script for A2, which initially worked for A3, I will give this one a go.

Is it limited to the core game helo's? or can you add this to make say RHS helo's be the "taxi" ??

Share this post


Link to post
Share on other sites

Any properly made vehicle behaving like a helicopter (also AI-wise/script-wise) should work. The code doesn't refer to the heli's class nor any its config values directly. That being said, so far it was tested on vanilla blufor Ghost Hawk only. 

  • Like 1

Share this post


Link to post
Share on other sites
On 12/11/2018 at 10:20 PM, road runner said:

Very much like NORRIN's arial taxi script for A2, which initially worked for A3

Yup for the A3 version i posted a thread on it a not to long ago, still a good script, for overall air support, but tbh i think in terms of the helicopter transport aspect,

what we have here imo is a bit more realistic in terms of what you have to do, that was the whole idea initially back in 2014 to signal the chopper with smoke or flare.

 

    Other aspects in the script have some ideas that stemmed from Draper's script and i thought they were pretty useful in terms of providing feedback,

you got to hand it to Rydygier tho, adding all the customizable options seriously makes the script more versatile and alot more fun to play with.

On 12/11/2018 at 10:20 PM, road runner said:

Is it limited to the core game helo's? or can you add this to make say RHS helo's be the "taxi" ??

Like Rydygier said it was mainly tested with just the Ghost Hawk, but i did try it out with a blackhawk from RHS and it worked the same, the only issue

i ran into which i still cant put a thumb on it, it being a random bug.

 

         Apon the disembarking part, when the player got out, he was stuck prone on the ground, and you couldn't get out of it even a 2-3 AI of your squad did the same, it was a hit or miss,

sometimes it happened sometimes it didn't but only with the RHS Blackhawk, haven't tested with any other heli's, that was with an earlier build of the script, not the current, latest version,

I've yet to test with anything else yet.

    But please do test with other helicopters and let us know if you run into anything, maybe with your guy's feedback we can create a compatibility list, and also possibly figure

out what what causes whatever bugs you may run into if any, hopefully none.

Share this post


Link to post
Share on other sites

WOW   I have been playing around with this for a few hours and I haven't had any problems. I was using the cup ch-53 and the ch-47. I didn't have any problems they worked as advertised. Any chance to get a fastrope option for transport to a destination?    Thank you for the Taxi script. Keep up the good work.

Share this post


Link to post
Share on other sites

Good to hear. I'm glad. As for fastroping, not sure when or with what result, but would be interesting to investigate possibilities, so to speak. 

Share this post


Link to post
Share on other sites

So, about fastroping, after some investigation, the analyze:

 

It's possible. After all, there are already fastroping scripts. Logic could look like this: when looking for destination LZ, there's no check for flat and empty space on the ground (not required), but only, if there's no too high objects near, that could collide with the heli at the fastroping height. Heli reaches destination at set height (say, 20-30 meters), then opening doors animation is run. After that, rope reaching the ground is attached to the heli (I would use slingload commands to create and attach it). Then, one by one, transported troops are setPosed outside, attached to that rope with some enforced animation-that-resembles-proper-stance-at-fastroping, then dropped down roughly along the line via looped re-attaching. When at the ground level, troops are detached, animation unfreezed. When all the troops are fastroped, rope is unwound (in my tests detaching, so rope could fall on the ground, doesn't work for some reason), doors are closed, heli is RTB. 

 

But there are problems, not critical, but still:

 

1. To animate door, animation source is needed. One can find it for given heli, but the script need to stay universal, that is, have to work well with any helicopter, vanilla and custom alike. And I know no way to obtain reliably proper animation source, when it can be of any name. One can search for "door" string, but it's not 100% reliable and theoretically can point also some not desired animation sources, so doors may be not opened or wrong animation applied. 

 

2. To attach the rope, proper attaching point is required. For every type of heli it may be different. And same, as above - one for given heli can obtain certain selection position or memory point, or just model space coords but code need to work with all helis. 

 

As for these two, manual creating a list of animations and attachement points per heli class may sound as the only solution, but I simply don't like such approach, and it's also not 100% reliable, requiring updates as new mods appear and old one change. I need to figure out reliable, universal code for that or accept, that for part of the helis there will be no proper door animations and/or rope attachement will be weird. 

 

3. I need to find optimal fastroping unit animation. 

 

4. In cases, the rope will not hang exactly vertically, dropped down troops may be presented not really at the rope, but aside. 

 

As you can see, while possible, fastroping as a whole and particularly in some aspects will give more or less a makeshift feeling, rather unavoidable, since there's no built-in fastroping in Arma 3. I still can do it within described limitations, will be optional after all. I'll think, how to do it best,  but meanwhile any advices in these regards are welcome. 

  • Like 2

Share this post


Link to post
Share on other sites
4 hours ago, Rydygier said:

I need to find optimal fastroping unit animation. 

Couldn't you review those scripts that already do it and see what they use?

Like this one for example:

https://steamcommunity.com/sharedfiles/filedetails/?id=713709341

 

Another idea i was thinking that could be fairly simple to do is have an option to be able to call for an ammo drop,

have an option to be able to call for transport or an ammo drop.

 

Share this post


Link to post
Share on other sites
Quote

Couldn't you review those scripts that already do it and see what they use?

 

Sure. Easier, than blindly searching through every single animation in the viewer. 

 

Quote

 call for an ammo drop,

 

Should be doable. I made something like that in HAL (heli drops a box with a parachute (or using slingload? Have to check...), some smoke or flare may be added). Actual kind of dropped ammo may be based on magazines used by the caller's group weaponry. 

  • Like 1

Share this post


Link to post
Share on other sites
37 minutes ago, Rydygier said:

Sure. Easier, than blindly searching through every single animation in the viewer. 

Here's the animation I'm using:

[_dude, "AcinPercMstpSrasWrflDnon"] remoteExec ["switchMove", 0];

Looks pretty good:

fastrope.jpg

  • Like 5

Share this post


Link to post
Share on other sites
On 12/11/2018 at 2:33 AM, Rydygier said:

If anyone will try it in MP though, precise feedback about any issues encountered may help in case, it's something fixable.

Heres a scenario situation i been messing with that semi works.

  • 4 player coop, however only one player and other 3 playable units are used to just switch too apon death of main unit player.
  • Playable AI units are not grouped to player 1, and all playable units are by themselves not grouped with each other.
  • All playable units are named and added to the script.
  • Base marker, and heli's placed, everything is setup as is in the demo.

Problem encountered

Option to call helicopter works outside heli, and no matter location of player, but once inside, heli is waiting for remaining players

(playable units AI's) to board chopper to get action to choose new location or RTB.

       So in a hosted MP lan mission nothing can be done unless all AIs are players or the AI's are getting in the chopper along with player which is the only way to get the heli action.

 

Overview

Heli action doesn't show when player only boards chopper at base (only because heli is waiting for other units named in script to board).

Same situation when heli is called by player when he is not at base.

 

Solution?

   So the only solution i can think to not have to change the script for mp as it does work in hosted MP lan is to maybe set it up in

the script where it can be made an option where you can define a player unit, and then a group of units that will get the call heli action, group of units is already setup

how can the same function be used for a group but then at same time be setup for 1 player who has no AI's under his command or grouped to him, and vice versa?

Share this post


Link to post
Share on other sites

OK, obviously, if some of chosen units aren't controllable by the player, nor subordinate to the player, there's no way for the player to make them all get in. And the chopper awaits, till all pointed units are in. I see such solution:

 

The heli will wait not for all chosen units, but for all player-controlled units (+potentially switchable/playable? Or not?) and their subordinates amongst chosen units. Rest, as anyway un-embarkable, will be left behind, effectively auto-excluded from chosen units. 

Share this post


Link to post
Share on other sites
1 hour ago, Rydygier said:

Rest, as anyway un-embarkable, will be left behind, effectively auto-excluded from chosen units. 

So your saying here to wait until all chosen units other then the current player and all will be excluded and the heli action will return?

Or i'm misunderstanding what your saying?

Share this post


Link to post
Share on other sites

The heli will wait with showing destination action only for those units amongst the chosen, that either are controlled by the player either subordinate to any player. Heli will ignore rest of the chosen units, so the destination choosing action will show up regardless of the rest of the chosen units whereabouts. That way I can make it working. 

 

Example:

 

You have chosen four units for airlifting: u1, u2, u3 and u4. 

 

u1 is the player, u2 is another player, u3 is AI subordinate to the player, u4 is not the player nor subordinate to the player. 

 

"Choose destination" action will show up, when u1, u2 and u3 will be inside the heli. u4 status will be ignored. 

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

×