Init.sqs – Talk

From Bohemia Interactive Community
Jump to navigation Jump to search
Line 37: Line 37:
};
};
</code>
</code>
Apologies for everyone who posted replies to my orignal and factually incorrect post.
Apologies for everyone who posted replies to my orignal and factually incorrect post.
init.sqf is run even for JIP clients, the following code currently correctly detects SP,MPClient,MPServer and JIP-Clients.[[User:BarmyArmy|BarmyArmy]]
init.sqf is run even for JIP clients, the above code currently correctly detects SP,MPClient,MPServer and JIP-Clients.
[[User:BarmyArmy|BarmyArmy]]
 


:If I recall correctly, the init.sqs is never run on any other machine than the server. -- [[User:Manny|Manny]] 01:43, 7 May 2007 (CEST)
:If I recall correctly, the init.sqs is never run on any other machine than the server. -- [[User:Manny|Manny]] 01:43, 7 May 2007 (CEST)

Revision as of 01:05, 10 May 2007

An init.sqf file may be used instead of the init.sqs. Not sure if the article should be moved or just added to. --pyro05x 07:59, 7 February 2007 (CET)

Add it, as the init.sqs is still working. :) --raedor 15:24, 7 February 2007 (CET)

And if there're both sqs&sqf what happens ? What is executed first ? --bdfy

I don't know, test it :P --raedor 23:35, 7 February 2007 (CET)
Just tried it and it seems SQF is executed first. ++Str 15:17, 8 February 2007 (CET)
First or only? --Ceeeb
First. Executed are both of them. ++Str 16:13, 8 February 2007 (CET)
so the execution of the init.sqs is delayed until init.sqf is done? --pyro05x 01:33, 13 February 2007 (CET)

Hmm, seems to execute for each player that joins, as oppose to once at the beginning of the mission... --BarmyArmy, 09:32, 14 April 2007

Unless something has changed recently, it shouldn't. --Kronzky 17:17, 14 April 2007 (CEST)
I also noticed that the init is executed for every player that joins. Probably it is the mission start for him. --T_D 14:36, 15 April 2007 (CEST)
I believe Suma was mistaken in what he wrote there. Executing init for JIP players is much better from a mission editing POV anyway. I sent him a message about it a while ago and he said he'd investigate but heard nothing back so hopefully the current behaviour is here to stay. --Salisan 19:25, 15 April 2007 (CEST)

JIP and INIT.SQS/F

_InitState="NONE"; execVM "init_common.sqf"; if ( local server ) then { _InitState="SERVER"; if ( isnull player ) then { _InitState="MP-SERVER"; } else { _InitState="SP-SERVER+CLIENT/EDITOR"; [] execVM "init_client.sqf"; }; [] execVM "init_server.sqf"; } else { _InitState="CLIENT"; if ( isnull player ) then { // no server and no client - we must be JIP _InitState="JIP"; [] execVM "init_jip.sqf"; } else { _InitState="MP-CLIENT"; [] execVM "init_client.sqf"; }; };

Apologies for everyone who posted replies to my orignal and factually incorrect post. init.sqf is run even for JIP clients, the above code currently correctly detects SP,MPClient,MPServer and JIP-Clients. BarmyArmy


If I recall correctly, the init.sqs is never run on any other machine than the server. -- Manny 01:43, 7 May 2007 (CEST)
Init.sqf/sqs runs on all machines during mission initialization. --Ceeeb 06:18, 7 May 2007 (CEST)
My bad, sorry, I usually don't use init.sqs for client initialization :). You could however seperate the init.sqs into init.sqs (which only runs server related stuff, or stuff that should only on one machine and once, using the good old ?!local server:exit) and init_client.sqf for clients, which are run once by a trigger with condition alive player. Furthermore, push variables across the net again with publicVariable in an onPlayerConnected event handler, in case this is required.
I'll try to address issues like this in a seperate article about multiplayer locality somewhen this month. -- Manny 15:06, 7 May 2007 (CEST)
I'm getting the opposite result (running beta 5143, dedicated server). A JIP player's client executes init.sqf?! --Ceeeb 08:29, 8 May 2007 (CEST)


I normally use:

execVM "init_common.sqf"; if ( local server) { execVM "init_server.sqf"}; if ( local player) { execVM "init_client.sqf"};

However the JIP has foobar'd this and adding "if ( local player) { execVM "init_client.sqf"};" to the initbox of every player seems overkill, and error-prone. Template:UnsignedComment

runInitScript

Adding one item onto the map with if ( local player) then {runInitScript} in the initBox would force JIP clients to run the initscript.BarmyArmy