Jump to content
Sign in to follow this  
kiory

Group Tasks succeeds for only one unit.

Recommended Posts

Hello again!

I've been getting along swimmingly on my own for a couple of days, however I have run into a rather annoying snag.

Here's my briefing.

tskFindAid = Team_1 createSimpleTask ["FindAid"];

tskFindAid setTaskState "Assigned";

tskFindAid setSimpleTaskDestination (getMarkerPos "FindAid");

tskFindAid setSimpleTaskDescription ["Search the area for First Aid.", "Find First Aid", "Search this area."];

tskHeal = Team_1 createSimpleTask ["Heal"];

tskHeal setSimpleTaskDestination (getMarkerPos "Heal");

tskHeal setSimpleTaskDescription ["Apply the First Aid Kit you found on Rourke", "Apply First Aid", "Heal Rourke"];

{tskRadio = _x createSimpleTask ["Find Radio"];

tskRadio setSimpleTaskDestination (getMarkerPos "FindRadio");

tskRadio setSimpleTaskDescription ["Grab the radio from the Ifrit", "Find radio.", "Grab the radio"];

_x }foreach units group (leader Hostages);

Everything works as it should, Team_1 refers to the unit that does some running around at the beginning, looking for a first aid kit, then apply to a unit in his group. I grouped the two units using this: [Team_2] join Team_1; Hostages = group this. When I used the normal grouping through the editor, it would spawn Team_2 in a location I did not want, so I used this method instead.

Here's the issue I'm getting, when the third task (tskRadio) is called, it works for both units, the waypoint shows up for both units etc, however when the task is set up to succeed, it only seems to do it for one unit, Team_2, but not Team_1 which is the group leader, it's extremely odd.

This is what is in the trigger that sets off the task succeeding.

{ tskRadio setTaskState "Succeeded" } foreach units group (leader hostages); [tskRadio] call mk_fTaskHint;

Anyone know anything about tasks regarding this? I played around with taskmaster for a few hours before reverting back to this, and it was just too finicky to get working right, and this method required less effort, until now that is.

Thanks in advance!

Edited by Kiory

Share this post


Link to post
Share on other sites

Just guessing here, have you tried.

{tskRadio = _x createSimpleTask ["Find Radio"];
tskRadio setSimpleTaskDestination (getMarkerPos "FindRadio");
tskRadio setSimpleTaskDescription ["Grab the radio from the Ifrit", "Find radio.", "Grab the radio"];
_x }foreach units (group Hostages); 

{ tskRadio setTaskState "Succeeded" } foreach units (group hostages); [tskRadio] call mk_fTaskHint; 

Share this post


Link to post
Share on other sites

Yea I tried that, doesn't even come up with the task.

Share this post


Link to post
Share on other sites

I recommend switching to taskmaster and learning how to use that instead if it works for Arma 3, it looks a bit complicated at first but it's actually really easy to use and all of your task problems will go away.

Share this post


Link to post
Share on other sites

Yeah I have been playing around with this for a little while, your method adds it to both units but when completed the leader cannot see it. Like clydefrog said the taskmaster might be the best method. Check out this thread.

http://forums.bistudio.com/showthread.php?111724-2nd-player-can-t-see-tasks-in-COOP

Here is the taskmaster thread: http://forums.bistudio.com/showthread.php?100731-Taskmaster-2

Edited by cobra4v320

Share this post


Link to post
Share on other sites

I've tried it, I really didn't get on with it, things like the destination etc just wouldn't work, waypoints not showing up etc, just frustrated me.

Actually... come to think of it, making tasks was fairly easy with taskmaster, if you could show me how to get waypoints working, I'd consider switching over.

I know it's something to do with this: Destination object/position/marker Place to create task destination (game's built-in waypoint/marker). If an object is given, setSimpleTaskTarget command is used, attaching the destination to it., and that it has to be in a certain order, but I just couldn't get it to work...

---------- Post added at 22:57 ---------- Previous post was at 22:27 ----------

So I've given it a look, and I found this, which it say's I need to be using. http://community.bistudio.com/wiki/setSimpleTaskTarget

["tskFindAid", "Find Aid", "Find a First Aid Kit for Rourke", Team_1, ["mkrFindAid",getpos FindAid], "Assigned", FindAid]; tskFindAid setSimpleTaskTarget [FindAid, true]; call SHK_Taskmaster_add;

For some reason it's returning with an error, "Type Array, expected nothing", this is precisely why task master really does my head in, it's just no where near as simple as the basic way.

I should note that this is a task created on the fly without the Init file, and that the "tskFindAid setSimpleTaskTarget [FindAid, true];" was added after everything else, and it worked before I did that.

:Edit:

Never mind It was just in the wrong place, but it still doesn't do anything.

Edited by Kiory

Share this post


Link to post
Share on other sites

Finally nailed it, and it works with groups too, the only slight thing that bugs me is that the waypoint is basically an arrow, in the old method I could put text under it, doesn't seem I can do that with Taskmaster.

Share this post


Link to post
Share on other sites

The task modules apparently don't work too well at the moment though, and also the task list doesn't show for anybody who doesn't join right at the start, in some cases even then they don't show up for some people from what I've heard. I've been trying using the text method instead of placing modules that haven't tested it yet, I'm guessing it works the same way though (same problems, no JIP support).

Share this post


Link to post
Share on other sites

Placed into your init.sqf, by the way I couldnt get taskmaster to work in ARMA 3, ARMA 2 no problems though.

[
player, 
"Task1",   //task name
["Go to the airfield and blow shit up.",  //description
"Destroy Air Assets",     //task title
"Destroy Air Assets"],    //Gui title
getMarkerPOS "OBJ1",   //can be marker or object
true     //set as current task?
] call BIS_fnc_taskCreate; 

[] spawn 
{
sleep 5;
waitUntil {!(alive AIR1)};
[
	"Task1",       //name of the task
	"SUCCEEDED",     //task state succeeded, assigned, cancelled, failed
	true     //show task hint?
] call BIS_fnc_taskSetState;
};

I can also make it so the task follows a moving target.

Edited by cobra4v320

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  

×