Jump to content

Recommended Posts

Hi,
i'm working on a mission and i have my init.sqf that seems to crash/stop on the client side if i use waituntil {scriptdone _a} at line 17 (just after the execVM). Single player and host don't have this issue. I'm stuck using the sleep command for it to work but i dont like it since the script that's running before is for a conversations which I haven't quite finished yet so I don't know the exact length. I'm attaching the init and the other sqf i've referenced. I know scripting for multiplayer can be finicky cause of desync and packet loss but this is really quite enraging to be fair 😄 

Does anyone have a suggestion to how i could use waituntil and still have it work in multiplayer ?

Thanks !

 

Init.Sqf

BriefingDone = false;

cutText ["", "BLACK FADED", 1];

[0,0,false] spawn BIS_fnc_cinemaBorder;

titleText ["ONI HOSTAGE SITUATION", "plain", 1];

a1 playMove "Acts_B_M03_briefing";

sleep 3;

cutText ["", "BLACK in", 1];

_A = execVM "conversation1.sqf";

sleep 28;

[1,1,false] spawn BIS_fnc_cinemaBorder;

titleCut ["", "BLACK out", 1];

sleep 8;

BriefingDone = true;

a1 switchMove "amovpercmstpslowwrfldnon";

sleep 8;

titleCut ["", "BLACK IN", 1];

conversation1 :

player KbAddTopic ["briefing","texts.bikb","",""];
a1 KbAddTopic ["briefing","texts.bikb","",""];		
a2 KbAddTopic ["briefing","texts.bikb","",""];


a1 KbTell [player,"briefing","ONI1brief"];

waitUntil {
a1 KbWasSaid [player,"briefing","ONI1brief",3];	/
};

a2 KbTell [player,"briefing","ONI2brief"];

waitUntil {
a2 KbWasSaid [player,"briefing","ONI2brief",3];
};

a1 KbTell [player,"briefing","ONI1brief1"];

sleep 2;

 

Edited by Jumpinforfred
Forgot to actually ask a question...

Share this post


Link to post
Share on other sites

Don't use init.sqf. Avoid it if at all possible. We have "new" event scripts in A3 that handle most situations.

 

You should probably put your code into another script ("briefing.sqf" or whatever you want to call it) and then call that from initPlayerLocal.sqf.

 

There should probably also be checks in there somewhere for hasInterface (to filter out any headless clients) and maybe a < player == player > or < !(isNull player) > or whatever.

  • Like 1

Share this post


Link to post
Share on other sites

Okidoky, thank you very much I'll give a go during the week. Just had a look around all the "new" event scripts and I wasn't aware of all the stuff that existed, thanks for showing me ! 
 

Share this post


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

Unfortunately it didn't work. The script still got stuck at a waituntil command client side.

You should rewrite your codes here, and where you run them, because, at least, these is an extra / at conversation1

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

×