BIS fnc MP: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 20: Line 20:
: [[Array]] - array of objects
: [[Array]] - array of objects
: [[Boolean]] - [[true]] to execute on every client, false to execute it on server only
: [[Boolean]] - [[true]] to execute on every client, false to execute it on server only
: [[Number]] - function will be executed only on client with the given ID
: [[Number]] - function will be executed only on client with the given [[owner]] ID
: [[Side]] - function will be executed only on clients with the listed side
: [[Side]] - function will be executed only on clients with the listed side
|=
|=

Revision as of 23:07, 6 October 2013

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


Hover & click on the images for description

Description

Description:
Send function for remote execution (and executes locally if conditions are met) .
Execution:
call
Groups:
Uncategorised

Syntax

Syntax:
[params, functionName, target, isPersistent] spawn BIS_fnc_MP;
Parameters:
params: Anything - function arguments
functionName: String - function name
target:
Object - function will be executed only where unit is local [default: everyone]
Array - array of objects
Boolean - true to execute on every client, false to execute it on server only
Number - function will be executed only on client with the given owner ID
Side - function will be executed only on clients with the listed side
isPersistent: Boolean - true for persistent call (will be called now and for every JIP client) [default: false]
Return Value:
Array - sent packet

Examples

Example 1:
["Imma spamming your log!","BIS_fnc_log"] spawn BIS_fnc_MP; Logs a message for every player who's currently joined.
Example 2:
[["Hello World"],"BIS_fnc_guiMessage",nil,true] spawn BIS_fnc_MP; Send a message containing "Hello World" to every player, including the ones who joins later using JIP.
Example 3:
[[[],"playerConnected.sqf"],"BIS_fnc_execVM",false,true] spawn BIS_fnc_MP; Executes playerConnected.sqf script on server every time a player joins the game.

Additional Information

See also:
See also needed

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note

Notes

Posted on 2 April, 2013
Fireball
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
kylania
"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

Bottom Section