Jump to content
4K.Scar

[SOLVED] Squad hold until helicopter land

Recommended Posts

Hello, Im extremely new to the trigger side of the editor, hope I can still post here..

 

I want a squad to hold until a helicopter arrives, at which point they load into it, after thats done the helicopter proceeds to a waypoint.

How do I do that?

Please keep it as simple as possible... no scripts....

 

PS. any simple tutorials you recommend?

Edited by 4K.Scar
Solved

Share this post


Link to post
Share on other sites

No triggers needed.

Give the squad a get in waypoint,

give the chopper a load waypoint.

Click the get in waypoint with RMB -> Connect ->Set waypoint activation or whatever it's called

connect it to the load waypoint.

 

Might need to connect the get in waypoint with the chopper but all in all that should do it.

 

Cheers

  • Like 1

Share this post


Link to post
Share on other sites
Just now, Grumpy Old Man said:

No triggers needed.

Give the squad a get in waypoint,

give the chopper a load waypoint.

Click the get in waypoint with RMB -> Connect ->Set waypoint activation or whatever it's called

connect it to the load waypoint.

 

Might need to connect the get in waypoint with the chopper but all in all that should do it.

 

Cheers

Helicopter wont land, even with a heli pad.

Share this post


Link to post
Share on other sites

Okay do the following steps in the editor:

  1. HELICOPTER:
    1. Place a helipad
    2. GIve your helicopter a waypoint "LAND" near the helipad
    3. Put this in the "CONDITION" of the waypoint: 
    4. count ((crew vehicle this) -thisList) == count units (group player)

       

    5. Place the next waypoint where the helicopter has to move to

  2. INFANTRY:

    1. Place a "MOVE" waypoint

    2. Sync it to the "LAND" waypoint

      1. Right click on the "MOVE" waypoint >> Connect >> Set Waypoint Activation

      2. Click on the "LAND" waypoint (!not vice versa!)

    3. Place a "GET IN" waypoint directly on the helicopter

  3. DONE

 

Share this post


Link to post
Share on other sites

Grumpy Old Man code works in vanilla Arma. It's simple and efficient: GETIN waypoint for squad LOAD for helo, link between the 2 waypoints. That's all. No need to place an helipad on rather flat and empty terrain. If not, helo can land hundred meters away, but land. On the other hand, helo group (crew) must have no enemy insight. If some enemies, its behavior grows up for combat mode and good luck for landing! You can force the helo group (not a squad) to CARELESS. It's better for fast support.

Share this post


Link to post
Share on other sites

This would even be easier using scripts.

Since the thread starter stated he doesn't want scripts he won't get one unless he's changing his mind of course.

 

It's stuff like that that actually got me into scripting in the first place, seeing how much easier it is instead of having to place a plethora of triggers, waypoints, sync them and whatnots, a few scripted lines will suffice.

 

Cheers

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, Grumpy Old Man said:

This would even be easier using scripts.

Since the thread starter stated he doesn't want scripts he won't get one unless he's changing his mind of course.

 

It's stuff like that that actually got me into scripting in the first place, seeing how much easier it is instead of having to place a plethora of triggers, waypoints, sync them and whatnots, a few scripted lines will suffice.

 

Cheers

 

^^^^ _this

Share this post


Link to post
Share on other sites

7erra's solution works, except the helicopter doesn't wait for the squad to get in. Do I have to edit the condition he gave me?

 

I am willing to see your way of doing things, @Grumpy Old Man, using scripts, the reason I wanted to use triggers and waypoints is because it's easier to remember if I try to do it again or in a slightly different way.

 

PS. Please give me a simple tutorial/guide or where to start learning these kind of things, I would like to make my missions a little more fun

Share this post


Link to post
Share on other sites

Good collection of links,

also take a look at the stickies, lots of information there.

 

You can put this inside a trigger when the chopper should pick up the group or in a waypoints on activation field.

Waypoints for group and chopper will be locked until the boarding is complete:

TAG_fnc_groupBoardChopper = {

params [["_chopper",objNull],["_group",objNull],["_debug",true]];

group driver _chopper lockWP true;
_group lockWP true;
_chopper move getposatl leader _group;
if (_debug) then {systemchat "Chopper moving to group"};
waituntil {sleep 1;_chopper distance2d leader _group <= 300 OR (!alive _chopper OR {alive _x} count units _group isequalto 0)};

if ((!alive _chopper OR {alive _x} count units _group isequalto 0)) exitWith {if (_debug) then {systemChat "Chopper or group dead, aborting function"}};

dostop _chopper;
_chopper land "Get In";
if (_debug) then {systemchat "Chopper landing"};

waituntil {sleep 1;((getposatl _chopper) select 2) < 2 AND speed _chopper < 3 OR (!alive _chopper OR {alive _x} count units _group isequalto 0)};
if ((!alive _chopper OR {alive _x} count units _group isequalto 0)) exitWith {if (_debug) then {systemChat "Chopper or group dead, aborting function"}};
sleep random [1,2,3];
{_x assignAsCargo _chopper;} foreach units _group;
units _group orderGetIn true;
units _group allowGetIn true;
waituntil {sleep 1;{_x in crew _chopper} count units _group isequalTo count units _group OR (!alive _chopper OR {alive _x} count units _group isequalto 0)};
sleep random [1,2,3];
if ((!alive _chopper OR {alive _x} count units _group isequalto 0)) exitWith {systemChat "Chopper or group dead, aborting function"};
if (_debug) then {systemchat format ["Chopper boarded, continuing to next waypoint"]};
_chopper land "NONE";
_chopper move getposatl _chopper;
group driver _chopper lockWP false;
_group lockWP false;

};

_test = [chopper,mygroup] spawn TAG_fnc_groupBoardChopper;

To deactivate the debug messages simply turn the last parameter in the first line to false.

 

Cheers

Share this post


Link to post
Share on other sites

Hello, thanks for the reply, here is the situation

 

I did EVERYTHING exactly like 7erra said, but instead used your code on step 3. (I didnt change anything in your code)

 

When the helicopter lands, in chat it says "Chopper or Group dead, aborting function", and just proceeds to the next waypoint.

Share this post


Link to post
Share on other sites
Just now, Grumpy Old Man said:

Then either the chopper is dead or no one in the group is alive.

 

Cheers

 

I think I would notice that :P

 

I now also saw that the chopper doesnt go to the next waypoint, it instead starts flying towards it, but the "Get In" symbol that was on top of it changed to "Stop", at which point it comes back, lands, waits for us to get in, and proceeds to the next waypoint.

 

Note that Im in a group of 3 soldiers, and I'm not the leader, and no enemies nearby.

Also the driver of the chopper has the following lines.


this setBehaviour "CARELESS";
this disableAI "AUTOCOMBAT"; 
this disableAI "CHECKVISIBLE";

 

 

Share this post


Link to post
Share on other sites

You don't need any special waypoint set. Just place a few move waypoints and put my code into one of them, upon reaching that waypoint the code will start.

No need for Get In waypoints or whatever.

Make sure you named the group and chopper accordingly.

The script exits when the vehicle chopper is dead or no more alive units inside the group.

Either that or you didn't name the groups properly.

 

Cheers

Share this post


Link to post
Share on other sites
Just now, Grumpy Old Man said:

You don't need any special waypoint set. Just place a few move waypoints and put my code into one of them, upon reaching that waypoint the code will start.

No need for Get In waypoints or whatever.

Make sure you named the group and chopper accordingly.

The script exits when the vehicle chopper is dead or no more alive units inside the group.

Either that or you didn't name the groups properly.

 

Cheers

 

Removed the get in waypoint, and named my group "_group" and the chopper "_chopper" didnt work, or do I have to name them something like group1 and then replace every "_group" in your code with group1?

Share this post


Link to post
Share on other sites

That's why it's always good to post an example how you tried to make it work.

Variables with an underscore are local variables and don't exist outside the scope they have been defined in.

To make it a bit more clear:

Put this inside init.sqf:

TAG_fnc_groupBoardChopper = {

params [["_chopper",objNull],["_group",objNull],["_debug",true]];

group driver _chopper lockWP true;
_group lockWP true;
_chopper move getposatl leader _group;
if (_debug) then {systemchat "Chopper moving to group"};
waituntil {sleep 1;_chopper distance2d leader _group <= 300 OR (!alive _chopper OR {alive _x} count units _group isequalto 0)};

if ((!alive _chopper OR {alive _x} count units _group isequalto 0)) exitWith {if (_debug) then {systemChat "Chopper or group dead, aborting function"}};

dostop _chopper;
_chopper land "Get In";
if (_debug) then {systemchat "Chopper landing"};

waituntil {sleep 1;((getposatl _chopper) select 2) < 2 AND speed _chopper < 3 OR (!alive _chopper OR {alive _x} count units _group isequalto 0)};
if ((!alive _chopper OR {alive _x} count units _group isequalto 0)) exitWith {if (_debug) then {systemChat "Chopper or group dead, aborting function"}};
sleep random [1,2,3];
{_x assignAsCargo _chopper;} foreach units _group;
units _group orderGetIn true;
units _group allowGetIn true;
waituntil {sleep 1;{_x in crew _chopper} count units _group isequalTo count units _group OR (!alive _chopper OR {alive _x} count units _group isequalto 0)};
sleep random [1,2,3];
if ((!alive _chopper OR {alive _x} count units _group isequalto 0)) exitWith {systemChat "Chopper or group dead, aborting function"};
if (_debug) then {systemchat format ["Chopper boarded, continuing to next waypoint"]};
_chopper land "NONE";
_chopper move getposatl _chopper;
group driver _chopper lockWP false;
_group lockWP false;

};

 

Then name the chopper MyChopperName.

In the squad group leaders initfield:

MyGroupName = group this;

 

Then wherever you want to spawn the code, may it be waypoint or trigger:

_test = [MyChopperName,MyGroupName] spawn TAG_fnc_groupBoardChopper;

 

Cheers

Share this post


Link to post
Share on other sites

Alright so nothing worked, Im sure Im doing something wrong, but regardless, I made myself a workaround/solution.

 

The helicopter: Has 2 waypoints, a land, and a move after that.

 

The squad: Has a move, that's synced with a trigger that activates once the helicopter is inside the trigger area, after it triggers the squad is told to get in the heli, before it lands, which gives them time to tell the heli to stop and wait for them to get in.

 

Basically the squad gave orders to the helicopter which makes this all work. I dont know if it would work if I was the leader.

(The heli and the squad are 2 different groups so I dont even know how they can give orders)

 

PS. It seems the group doesnt give the stop order to the heli if they are "Careless" or with enemies in sight

 

Scratch all that, it's inconsistent as hell, I found another solution, sync the land waypoint to the get in waypoint.

 

Thanks for your effort guys

  

 

Share this post


Link to post
Share on other sites

If this is only squad on server and a coop mission and you don't want to work with GetIn waypoint you can sync(SetWaypointActivation not normal sync) land waypoint with a trigger. Trigger 0,0,-1 and no activation, but in condition line:

{(alive _x) && (_x in heli1)} count (playableUnits + switchableUnits) == {alive _x} count (playableUnits + switchableUnits)

 

This will count all alive players + playable KI chars in Helicopter and compare it with all alive players + playable KI chars

Land waypoint will be not completed before this is true, Helicopter will not start before all units in helicopter.

Share this post


Link to post
Share on other sites
On 5/8/2017 at 9:29 AM, 4K.Scar said:

sync the land waypoint to the get in waypoint

Do you mean sync or set waypoint activation?  I've been suffering from the same problem, but I have no 'sync' option available under connect.

Share this post


Link to post
Share on other sites
2 hours ago, Savage_Donkey said:

Do you mean sync or set waypoint activation?  I've been suffering from the same problem, but I have no 'sync' option available under connect.

In editor, between 2 waypoints, there is just one solution: "set waypoint activation". Difficult to test something else.

Share this post


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

In editor, between 2 waypoints, there is just one solution: "set waypoint activation". Difficult to test something else.

I know there are only two options currently, but I could've sworn you used to be able to sync waypoints... 

 

EDIT:  Oops, one option, don't know what I was thinking.

Share this post


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

I know there are only two options currently, but I could've sworn you used to be able to sync waypoints... 

:dozingoff:  2 options? My Eden is broken. If you script use  synchronizeWaypoint  (a bit confusing).

Share this post


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

I know there are only two options currently, but I could've sworn you used to be able to sync waypoints... 

 

Yes I meant set waypoint activation, sorry.

 

 

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

×