Difference between revisions of "BIS fnc MP"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (1 revision)
Line 100: Line 100:
<h3 style="display:none">Bottom Section</h3>
<h3 style="display:none">Bottom Section</h3>
[[Category:Function Group: MP|{{uc:MP}}]]
[[Category:Arma 3:_Functions|mp]]
[[Category:Function Group: Debug|mp]]
[[Category:{{Name|tkoh}}: Functions|{{uc:MP}}]]
[[Category:{{Name|arma3}}: Functions|{{uc:MP}}]]

Revision as of 12:12, 28 July 2014

Function syntax in Take On Helicopters differs, see BIS_fnc_MP (Take On Helicopters) for details.



Posted on 2 April, 2013
Note that the function you provide as argument is *not* transferred to the remote client or server. You will have to use either
  1. functions defined in global namespace
  2. functions defined depending on where you want to execute them; in server or/and client code if you separate it using conditions on isServer or local player
  3. pre-defined BIS functions
You can also execute scripts remotely like this: ["myScript.sqf","BIS_fnc_execVM",true,true] spawn BIS_fnc_MP; Or transfer code as parameter (not recommended) like that: ["{hint "Hello World!";}","BIS_fnc_spawn",true,true] spawn BIS_fnc_MP;
Posted on 5 July, 2013
"One key note when designing a mission/script is to limit the amount of use you make of the isPersistent parameter. It is not recommended to use it often for vehicle creation, object creation, etc. Each time you use the isPersistent parameter it adds to a BIS Logic which is used to sync all clients and new clients that join, excessive use of the command will make the logic build up and eventually you will cause the server to desync out because of the massive amount of data it has to send to all clients and JIP clients to try to keep them in sync. It is highly recommended to make as little use as possible of the isPersistent option unless you have to for network performance sake." -Tonic
Posted on 10 December, 2013
If you need to achieve a single global execution of an existing function on all PCs including your own, the syntax could not be any more simple than: [arguments, functionname] call BIS_fnc_MP; This is particularly useful with commands such as switchMove where the command effect is local. For example to make sure animation is played on every PC, first define a global function on every PC (maybe inside init.sqf): switchMoveEverywhere = compileFinal " _this select 0 switchMove (_this select 1); "; Then execute BIS_fnc_MP on only one PC which will in return execute switchMoveEverywhere function everywhere: [ [ player, "AmovPercMstpSrasWrflDnon_AadjPpneMstpSrasWrflDleft" ], "switchMoveEverywhere" ] call BIS_fnc_MP;

Bottom Section