in: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
m (Text replacement - "<sqf>([^↵][^<]*↵[^<]*)<\/sqf>" to "<sqf> $1 </sqf>")
 
(50 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| ofp |Game name=
|game1= ofp
|version1= 1.00


|1.00|Game version=
|game2= ofpe
|version2= 1.00


|gr1= Strings |GROUP1=
|game3= arma1
|version3= 1.00


|gr2= Arrays |GROUP2=
|game4= arma2
|version4= 1.00


|gr3= Locations |GROUP3=
|game5= arma2oa
|version5= 1.50


|gr4= Unit Control |GROUP4=
|game6= tkoh
____________________________________________________________________________________________
|version6= 1.00


| Checks whether value is in array, unit is in vehicle, position is inside location or string is part of other string.
|game7= arma3
{{Informative | [[String]] comparison is case-sensitive (see Examples '''2''' and '''6''').}}
|version7= 0.50
{{Feature arma3 | Since {{arma3}} you can test for arrays within arrays.}} |DESCRIPTION=
____________________________________________________________________________________________


| value [[in]] array |SYNTAX=
|gr1= Strings


|p1= value: [[Anything]] - any value (cannot  match [[Array]] before {{arma3}}) |PARAM1=
|gr2= Arrays


|p2= array: [[Array]] - array of values |PARAM2=
|gr3= Locations


| [[Boolean]] |RETURNVALUE=
|gr4= HashMap
____________________________________________________________________________________________


|s2= unit [[in]] vehicle |SYNTAX2=
|gr5= Unit Control


|p21 = unit: [[Object]] - entity person |PARAM21=
|descr= Checks whether value is in array, unit is in vehicle, position is inside location or ANSI string is part of other ANSI string. If Unicode support is desired, see [[forceUnicode]].
{{Feature|informative|[[String]] comparison is case-sensitive (see Examples '''2''' and '''6''').}}


|p22 = vehicle: [[Object]] - entity vehicle |PARAM22=
|s1= value [[in]] array


|r2= [[Boolean]] |RETURNVALUE2=
|p1= value: [[Anything]] - any value (cannot  match [[Array]] before {{arma3}})
____________________________________________________________________________________________


|s3= position [[in]] location {{since|arma3||y}} |SYNTAX3=
|p2= array: [[Array]] - array of values


|p41= position: [[Array]] - format [[Position2D]] or [[Position3D]]|PARAM41=
|r1= [[Boolean]]


|p42= location: [[Location]] |PARAM42=
|s2= unit [[in]] vehicle


|r3= [[Boolean]] |RETURNVALUE3=
|p21= unit: [[Object]] - entity person
____________________________________________________________________________________________


|s4= needle [[in]] haystack {{since|arma3|1.95.146032|y}} |SYNTAX4=
|p22= vehicle: [[Object]] - entity vehicle


|p61= needle: [[String]] - string to search for |PARAM61=
|r2= [[Boolean]]


|p62= haystack: [[String]] - string to search in |PARAM62=
|s3= position [[in]] location


|r4= [[Boolean]] |RETURNVALUE4=
|s3since= arma3 0.50
____________________________________________________________________________________________


|x1= <code>1 [[in]] [0, 1, 2]; {{cc|true}}</code> |Example 1=
|p41= position: [[Array]] - format [[Position#Introduction|Position2D]] or [[Position#Introduction|Position3D]]


|x2= <code>[[private]] _myArray = ["Aaa", "AAa", "AAA"];
|p42= location: [[Location]]


"aaa" [[in]] _myArray; {{cc|false}}
|r3= [[Boolean]]
"AAa" [[in]] _myArray; {{cc|true}}


{{cc|case-insensitive alternatives}}
|s4= needle [[in]] haystack
_myArray [[findIf]] { _x == "aaa"; } != -1; {{cc|true}}
 
|s4since= arma3 1.96
 
|p61= needle: [[String]] - string to search '''for'''
 
|p62= haystack: [[String]] - string to search '''in'''
 
|r4= [[Boolean]]
 
|s5= key [[in]] hashMap
 
|s5since= arma3 2.02
 
|p81= key: [[HashMapKey]]
 
|p82= hashMap : [[HashMap]]
 
|r5= [[Boolean]]
 
|x1= <sqf>1 in [0, 1, 2]; // true</sqf>
 
|x2= <sqf>
private _myArray = ["Aaa", "AAa", "AAA"];
 
"aaa" in _myArray; // false
"AAa" in _myArray; // true
 
// Case-insensitive alternatives:
_myArray findIf { _x == "aaa"; } != -1; // true


({
({
[[if]] ([[_x]] == "aaa") [[exitWith]] { [[_forEachIndex]] };
if (_x == "aaa") exitWith { _forEachIndex };
-1
-1
} [[forEach]] _myArray) != -1; {{cc|true, less performant but valid before [[findIf]]}}
} forEach _myArray) != -1; // true, less performant but valid before the introduction of the findIf command


{ [[if]] ([[_x]] == "aaa") [[exitWith]] {1} } [[count]] _myArray > 0; {{cc|true}}
{ if (_x == "aaa") exitWith { 1 } } count _myArray > 0; // true


{ [[_x]] == "aaa"; } [[count]] _myArray > 0; {{cc|true, worst performance}}
{ _x == "aaa"; } count _myArray > 0; // true, worst performance, only option available in OFP
{{cc|only option available in OFP}}</code> |Example2=
</sqf>


|x3= Arma 3:<code>[1,2,3] [[in]] [<nowiki/>[1,2,3], [4,5,6]]; {{cc|true}}</code> |Example3=
|x3= <sqf>[1,2,3] in [[1,2,3], [4,5,6]]; // true - Arma 3 only</sqf>


|x4= <code>_isInCar = [[player]] [[in]] car;</code> |Example4=
|x4= <sqf>private _isInCar = player in Car;</sqf>


|x5= <code>_isInside = [1000,2000,0] [[in]] myLocation;</code>|Example5=
|x5= <sqf>private _isInside = [1000,2000,0] in MyLocation;</sqf>


|x6= <code>_isInString = "foo" [[in]] "foobar"; {{cc|true}}
|x6= <sqf>
_isInString = "Foo" [[in]] "foobar"; {{cc|false}}</code>|Example6=
private _isInString = "foo" in "foobar"; // true
_isInString = "Foo" in "foobar"; // false
</sqf>


|x7= <code>[[private]] _boarded = [[player]] [[in]] _groupVehicle;</code> |Example7=
|x7= <sqf>private _onFoot = _unit in _unit;</sqf>
Other options:
<sqf>private _onFoot = vehicle _unit == _unit;</sqf>
<sqf>private _onFoot = isNull objectParent _unit;</sqf>


|x8= <code>[[private]] _onFoot = _unit [[in]] _unit;
|seealso= [[inPolygon]] [[inArea]] [[find]] [[findIf]] [[toArray]] [[forceUnicode]]
{{cc|[[vehicle]] _unit {{=}}{{=}} _unit works}}
{{cc|[[isNull]] [[objectParent]] _unit is even faster}}</code> |Example8=
 
|[[inPolygon]], [[inArea]], [[set]], [[resize]], [[reverse]], [[pushBack]], [[pushBackUnique]], [[apply]], [[select]], [[find]], [[toArray]], [[toString]], [[forEach]], [[count]], [[deleteAt]], [[deleteRange]], [[append]], [[sort]], [[param]], [[params]], [[arrayIntersect]], [[splitString]], [[joinString]]|SEEALSO=
}}
}}


<h3 style="display:none">Notes</h3>
<dl class="command_description">
<dl class="command_description">
<!-- Note Section BEGIN -->


<dd class="notedate">Posted on October 8, 2019 - 21:08 (UTC)</dd>
<dt></dt>
<dd class="notedate">Posted on 2019-10-08 - 21:08 (UTC)</dd>
<dt class="note">[[User:Lou Montana|Lou Montana]]</dt>
<dt class="note">[[User:Lou Montana|Lou Montana]]</dt>
<dd class="note">''From a description note:''<br>
<dd class="note">''From a description note:''<br>
''<unit>'' [[in]] ''<vehicle>'' literally does this: <tt>[[vehicle]] <unit> <nowiki>==</nowiki> <vehicle></tt>. If ''<vehicle>'' is the same as ''<unit>'' the expression will return [[true]] for when the ''<unit>'' is on foot and [[false]] for when ''<unit>'' is in vehicle (see example '''7''' &amp; '''8''').
''<unit>'' [[in]] ''<vehicle>'' literally does this: {{hl|c= [[vehicle]] <unit> {{=}}{{=}} <vehicle>}}. If ''<vehicle>'' is the same as ''<unit>'' the expression will return [[true]] for when the ''<unit>'' is on foot and [[false]] for when ''<unit>'' is in vehicle (see example '''7''' &amp; '''8''').
</dd>
</dd>


<!-- Note Section END -->
</dl>
</dl>
<h3 style="display:none">Bottom Section</h3>
[[Category:Scripting Commands OFP 1.46|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.96|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Armed Assault|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]

Latest revision as of 19:42, 3 September 2024

Hover & click on the images for description

Description

Description:
Checks whether value is in array, unit is in vehicle, position is inside location or ANSI string is part of other ANSI string. If Unicode support is desired, see forceUnicode.
String comparison is case-sensitive (see Examples 2 and 6).
Groups:
StringsArraysLocationsHashMapUnit Control

Syntax 1

Syntax:
value in array
Parameters:
value: Anything - any value (cannot match Array before Arma 3)
array: Array - array of values
Return Value:
Boolean

Syntax 2

Syntax:
unit in vehicle
Parameters:
unit: Object - entity person
vehicle: Object - entity vehicle
Return Value:
Boolean

Syntax 3

Syntax:
position in location
Parameters:
position: Array - format Position2D or Position3D
location: Location
Return Value:
Boolean

Syntax 4

Syntax:
needle in haystack
Parameters:
needle: String - string to search for
haystack: String - string to search in
Return Value:
Boolean

Syntax 5

Syntax:
key in hashMap
Parameters:
key: HashMapKey
hashMap : HashMap
Return Value:
Boolean

Examples

Example 1:
1 in [0, 1, 2]; // true
Example 2:
private _myArray = ["Aaa", "AAa", "AAA"]; "aaa" in _myArray; // false "AAa" in _myArray; // true // Case-insensitive alternatives: _myArray findIf { _x == "aaa"; } != -1; // true ({ if (_x == "aaa") exitWith { _forEachIndex }; -1 } forEach _myArray) != -1; // true, less performant but valid before the introduction of the findIf command { if (_x == "aaa") exitWith { 1 } } count _myArray > 0; // true { _x == "aaa"; } count _myArray > 0; // true, worst performance, only option available in OFP
Example 3:
[1,2,3] in [[1,2,3], [4,5,6]]; // true - Arma 3 only
Example 4:
private _isInCar = player in Car;
Example 5:
private _isInside = [1000,2000,0] in MyLocation;
Example 6:
private _isInString = "foo" in "foobar"; // true _isInString = "Foo" in "foobar"; // false
Example 7:
private _onFoot = _unit in _unit;
Other options:
private _onFoot = vehicle _unit == _unit;
private _onFoot = isNull objectParent _unit;

Additional Information

See also:
inPolygon inArea find findIf toArray forceUnicode

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
Posted on 2019-10-08 - 21:08 (UTC)
Lou Montana
From a description note:
<unit> in <vehicle> literally does this: vehicle <unit> == <vehicle>. If <vehicle> is the same as <unit> the expression will return true for when the <unit> is on foot and false for when <unit> is in vehicle (see example 7 & 8).