Jump to content

Recommended Posts

Greetings all! Long time lurker first time poster. I am currently working on an MP mission in Prairie Fire and I am trying to accomplish having each of my 3 groups (All BLUFOR) have separate tasks that they have to accomplish throughout the mission. I tried at first to do it with the modules but as you can imagine the triggers where not firing correctly (Probably my fault) and the insane amount of sync lines in the mission made me want to move to a script based solution. Which is where I am currently stuck and would love to have some guidance. Here is my current setup.

 

3 groups (All BLUFOR) Group names = RT, CV, and SR (Have not even bothered with SR because I can't get the first two to work correctly)

 

initServer.sqf

if (isServer) then {
[RT, "RTbrief", ["Chief SOG has mission brief for RT Alabama.", "Go to the OPS brief", ""], chief, "ASSIGNED", 99, true, "whiteboard", true] call BIS_fnc_taskCreate;
[CV, "CvyBrief", ["Chief SOG needs you at the OPS brief with RT Alabama.", "Go to the OPS brief", ""], chief, "ASSIGNED", 99, true, "whiteboard", true] call BIS_fnc_taskCreate;
};		

RT1 trigger

"RtTasks\RT1-brief.sqf" remoteExec ["BIS_fnc_execVM","RT",true];  

RT1-brief.sqf

["RTbrief", "succeeded"] call BIS_fnc_taskSetState,
sleep 3;
[RT, "S4", ["Go see the Quatermaster at S4 to draw weapons and gear for your mission.", "Draw weapons and gear", ""], [9418.15,6592.3,2.84225], "ASSIGNED", 98, true, "RIFLE", true] call BIS_fnc_taskCreate;

 

CVY1 Trigger

"CvyTasks\CVY1-brief.sqf" remoteExec ["BIS_fnc_execVM","cv",true];

CVY1-brief.sqf

["Cvybrief", "succeeded"] call BIS_fnc_taskSetState,
sleep 3;
[CV, "GetInAC", ["Head to the airfield and get in the AC-119K", "Get in AC-119K", ""], [9629.8,6631.44,6.89819], "ASSIGNED", 98, true, "GETIN", true] call BIS_fnc_taskCreate;

 

I originally had this setup in the triggers but thought the problem had something to do with the use of "execvm" and tried the code in the blocks above.

if (isServer) then {
[[], "CvyTasks\CVY1-brief.sqf"] remoteExec ["execvm", 2];           
};

 

Okay so as you can tell I have been calling an SQF file for each of the tasks so they fired in sequence instead of being able to see all the tasks from the start of the mission (There is probably a much better way to do this😅). Task(initServer)>Trigger call>run SQF. One for each task (RT has 9 tasks, CV has 5 tasks, and SR has 6). I'm sure there is a much more eloquent/efficient/better way to write this script and would love to see it. This solution worked fine in the editor but once I put the mission on my dedicated server the first person to hit their groups respective trigger would disable the other groups trigger (If RT hit their trigger and then CV tried to hit theirs it would not fire or vice versa). There was a time period where it would just assign the group who hit their trigger first task to the other group but that seems to have stopped happening. As you can tell I am super new to scripting and failing to grasp using these functions properly let alone how this needs to be done to support MP play. Let me know if you need more details. I am very grateful for any advice/help you can provide me and I am eager to learn. Thanks in advance!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Try using the following syntax

[[], "CvyTasks\CVY1-brief.sqf"] remoteExec ["execVM", "cv", true];
[[], "RtTasks\RT1-brief.sqf"] remoteExec ["execVM", "RT", true];

 

Share this post


Link to post
Share on other sites

No need to remoteExec anything, BI Task Framework already handles all this for you.

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

×