local: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
m (Text replacement - "// since Arma 3" to "// since {{arma3}}")
 
(88 intermediate revisions by 18 users not shown)
Line 1: Line 1:
[[Category:Scripting Commands|LOCAL]]
{{RV|type=command
[[Category:Scripting Commands OFP 1.96|LOCAL]]
[[Category:Scripting Commands OFP 1.46|LOCAL]]
[[Category:Scripting Commands ArmA|LOCAL]]


|game1= ofp
|version1= 1.00


<h2 style="color:#000066"> '''local ''obj'''''</h2>
|game2= ofpe
|version2= 1.00


|game3= arma1
|version3= 1.00


'''Operand types:'''
|game4= arma2
|version4= 1.00


'''obj:''' [[Object]]
|game5= arma2oa
|version5= 1.50


'''Type of returned value:'''
|game6= tkoh
|version6= 1.00


[[Boolean]]
|game7= arma3
|version7= 0.50


'''Description:'''
|gr1= Multiplayer


'''MP:''' Check if given unit is '''local''' on the computer.
|arg= global


This can be used when some activation fields or scripts need to be performed only on one computer.
|descr= Check if given unit is local on the computer in multiplayer games - see {{Link|Multiplayer Scripting#Locality}}.<br>
This can be used to determine on which computer some code must be run. In single player all objects are local.


In '''SP''' all objects are '''local'''.
|mp= A few things to note [[Multiplayer Scripting#General information about locality|amongst others]]:
* A game logic / module is always local to the server
* Terrain objects are local to every machine


'''Note:''' All static objects are '''local''' everywhere.
|s1= [[local]] object


|p1= object: [[Object]] or [[Group]] (since {{GVI|arma3|1.32|size= 0.75}})


'''Example:'''
|r1= [[Boolean]]


'''local''' unitName
|s2= [[local]] variable = value <span style="margin-left: 7em">'''{{Color|red|From {{arma2}} v1.00 until {{arma3}} v1.54}}''' - see '''[[private]]''' for later versions</span>


|s2since= arma2 1.00


'''Comments:'''
|r2= [[Nothing]]


In multiplayer, a game logic will always be '''local''' to the host computer.
|x1= <sqf>
if (not local _unit) then
{
hint format ["%1 is remote", name _unit];
};
</sqf>


This works on both dedicated and player-hosted servers.
|x2= <sqf>_isLocalGroup = local group _unit;</sqf>
 
|x3= Sets variable's [[Variables#Scopes|scope]]:
<sqf>
// from Arma 2 v1.00 until Arma 3v1.54
local _myVariable = 42;
 
// since {{arma3}} v1.54
private _myVariable = 42;
</sqf>
 
|seealso= [[Arma 3: Event Handlers#Local|"Local" Event Handler]] [[owner]] [[setOwner]]
}}

Latest revision as of 19:02, 18 November 2023

Hover & click on the images for description

Description

Description:
Check if given unit is local on the computer in multiplayer games - see Multiplayer Scripting - Locality.
This can be used to determine on which computer some code must be run. In single player all objects are local.
Multiplayer:
A few things to note amongst others:
  • A game logic / module is always local to the server
  • Terrain objects are local to every machine
Groups:
Multiplayer

Syntax

Syntax:
local object
Parameters:
object: Object or Group (since Arma 3 logo black.png1.32)
Return Value:
Boolean

Alternative Syntax

Syntax:
local variable = value From Arma 2 v1.00 until Arma 3 v1.54 - see private for later versions
Return Value:
Nothing

Examples

Example 1:
if (not local _unit) then { hint format ["%1 is remote", name _unit]; };
Example 2:
_isLocalGroup = local group _unit;
Example 3:
Sets variable's scope:
// from Arma 2 v1.00 until Arma 3v1.54 local _myVariable = 42; // since Arma 3 v1.54 private _myVariable = 42;

Additional Information

See also:
"Local" Event Handler owner setOwner

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