publicVariable: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 33: | Line 33: | ||
Variables broadcast with [[publicVariable]] during a mission will be available to [[Multiplayer Scripting#Join In Progress|JIP]] clients with the value they held at the time.<br> | Variables broadcast with [[publicVariable]] during a mission will be available to [[Multiplayer Scripting#Join In Progress|JIP]] clients with the value they held at the time.<br> | ||
Such variables are persistent and sent to the JIP client before the first batch of client-side [[Event Scripts]] (such as [[init.sqf]]) is run. | Such variables are persistent and sent to the JIP client before the first batch of client-side [[Event Scripts]] (such as [[init.sqf]]) is run. | ||
{{Feature | important | Using [[publicVariable]] too frequently and/or with a lot of data can cause other aspects of the game to experience bandwidth problems.}} | {{Feature|important|Using [[publicVariable]] too frequently and/or with a lot of data can cause other aspects of the game to experience bandwidth problems.}} | ||
<br> | <br> | ||
The following [[:Category: Data Types| Data Types]] are supported: | The following [[:Category: Data Types| Data Types]] are supported: | ||
{{{!}} class | {{{!}} class="wikitable align-center" | ||
! Type | ! Type | ||
{{!}} [[Number]] | {{!}} [[Number]] | ||
Line 43: | Line 43: | ||
{{!}} [[Group]] | {{!}} [[Group]] | ||
{{!}} [[String]] | {{!}} [[String]] | ||
{{!}} [[Text]] | {{!}} [[Structured Text|Text]] | ||
{{!}} [[Array]] | {{!}} [[Array]] | ||
{{!}} [[Code]] | {{!}} [[Code]] | ||
Line 50: | Line 50: | ||
{{!}}- | {{!}}- | ||
! Since | ! Since | ||
{{!}} | {{!}} colspan="4" {{!}} {{GVI|ofp|1.34}} | ||
{{!}} {{GVI|ofp|1.34}} | {{!}} colspan="2" {{!}} {{GVI|arma1|1.00}} | ||
{{!}} | {{!}} colspan="2" {{!}} {{GVI|arma1|1.09}} | ||
{{!}} {{GVI|arma1|1.00}} | |||
{{!}} | |||
{{!}} {{GVI|arma1|1.09}} | |||
{{!}} {{GVI|arma3|1.26}} | {{!}} {{GVI|arma3|1.26}} | ||
{{!}} {{GVI|arma3|2.02}} | {{!}} {{GVI|arma3|2.02}} | ||
{{!}}} | {{!}}} | ||
{{Feature|important| It is not possible (and illogical) to transfer a local entity reference, such as [[Script|scripts]], [[Display|displays]] or [[createVehicleLocal|local objects]].<br> | {{Feature|important| | ||
Also, note that [[Team Member]] is not supported.}} | It is not possible (and illogical) to transfer a local entity reference, such as [[Script Handle|scripts]], [[Display|displays]] or [[createVehicleLocal|local objects]].<br> | ||
Also, note that [[Team Member]] is not supported. | |||
}} | |||
|s1= [[publicVariable]] varName | |s1= [[publicVariable]] varName | ||
Line 71: | Line 68: | ||
|r1= [[Nothing]] | |r1= [[Nothing]] | ||
|x1= < | |x1= <sqf> | ||
TAG_MyPublicVariable = 0; | |||
TAG_MyPublicVariable = 1; | TAG_MyPublicVariable = 1; | ||
publicVariable "TAG_MyPublicVariable"; // other clients will receive the "TAG_MyPublicVariable" variable with a 1 value | |||
TAG_MyPublicVariable = 2; | TAG_MyPublicVariable = 2; // needs to be broadcast again - synchronisation is not automatic | ||
</sqf> | |||
|x2= JIP example: | |x2= JIP example: | ||
< | <sqf> | ||
if (isNil "TAG_CurrentTarget") then // has the variable already been set and broadcast? | |||
{ | { | ||
TAG_CurrentTarget = | TAG_CurrentTarget = objNull; // if not, set it on the local machine | ||
}; | }; | ||
player doTarget TAG_CurrentTarget; | |||
</sqf> | |||
|x3= < | |x3= <sqf> | ||
TAG_BossName = "EvilBigBoss"; | |||
publicVariable TAG_BossName; // wrong - will try to publicVariable "EvilBigBoss" variable, that does not exist | |||
publicVariable "TAG_BossName"; // correct - important, do not forget the QUOTES | |||
</sqf> | |||
|seealso= [[Multiplayer Scripting]] [[ | |seealso= [[Multiplayer Scripting]] [[Initialisation Order]] [[addPublicVariableEventHandler]] [[publicVariableClient]] [[publicVariableServer]] [[Variables#Global Scope|Global Variable]] [[Event Scripts]] [[Multiplayer Scripting#Join In Progress|Join In Progress]] | ||
}} | }} |
Latest revision as of 15:57, 26 July 2023
Description
- Description:
- Reliably broadcasts missionNamespace variable and its current value to all computers (server/client).
Variables broadcast with publicVariable during a mission will be available to JIP clients with the value they held at the time.
Such variables are persistent and sent to the JIP client before the first batch of client-side Event Scripts (such as init.sqf) is run.
The following Data Types are supported:Type Number Boolean Object Group String Text Array Code Nothing (nil) HashMap Since 1.34 1.00 1.09 1.26 2.02 - Groups:
- MultiplayerVariables
Syntax
- Syntax:
- publicVariable varName
- Parameters:
- varName: String - the global variable's Identifier
- Return Value:
- Nothing
Examples
- Example 1:
- Example 2:
- JIP example:
- Example 3:
- TAG_BossName = "EvilBigBoss"; publicVariable TAG_BossName; // wrong - will try to publicVariable "EvilBigBoss" variable, that does not exist publicVariable "TAG_BossName"; // correct - important, do not forget the QUOTES
Additional Information
- See also:
- Multiplayer Scripting Initialisation Order addPublicVariableEventHandler publicVariableClient publicVariableServer Global Variable Event Scripts Join In Progress
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
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.34
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Operation Flashpoint: Elite: Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: Multiplayer
- Command Group: Variables
- Scripting Commands: Global Effect