in: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Some wiki formatting) |
Lou Montana (talk | contribs) m (Text replacement - "<sqf>([^↵][^<]*↵[^<]*)<\/sqf>" to "<sqf> $1 </sqf>") |
||
(19 intermediate revisions by 3 users not shown) | |||
Line 33: | Line 33: | ||
|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]]. | |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 | | {{Feature|informative|[[String]] comparison is case-sensitive (see Examples '''2''' and '''6''').}} | ||
|s1= value [[in]] array | |s1= value [[in]] array | ||
|p1= value: [[Anything]] - | |p1= value: [[Anything]] - any value (cannot match [[Array]] before {{arma3}}) | ||
|p2= array: [[Array]] - | |p2= array: [[Array]] - array of values | ||
|r1= [[Boolean]] | |r1= [[Boolean]] | ||
Line 45: | Line 45: | ||
|s2= unit [[in]] vehicle | |s2= unit [[in]] vehicle | ||
|p21= unit: [[Object]] - | |p21= unit: [[Object]] - entity person | ||
|p22= vehicle: [[Object]] - | |p22= vehicle: [[Object]] - entity vehicle | ||
|r2= [[Boolean]] | |r2= [[Boolean]] | ||
Line 55: | Line 55: | ||
|s3since= arma3 0.50 | |s3since= arma3 0.50 | ||
|p41= position: [[Array]] - | |p41= position: [[Array]] - format [[Position#Introduction|Position2D]] or [[Position#Introduction|Position3D]] | ||
|p42= location: [[Location]] | |p42= location: [[Location]] | ||
Line 65: | Line 65: | ||
|s4since= arma3 1.96 | |s4since= arma3 1.96 | ||
|p61= needle: [[String]] - | |p61= needle: [[String]] - string to search '''for''' | ||
|p62= haystack: [[String]] - | |p62= haystack: [[String]] - string to search '''in''' | ||
|r4= [[Boolean]] | |r4= [[Boolean]] | ||
Line 81: | Line 81: | ||
|r5= [[Boolean]] | |r5= [[Boolean]] | ||
|x1= < | |x1= <sqf>1 in [0, 1, 2]; // true</sqf> | ||
|x2= < | |x2= <sqf> | ||
private _myArray = ["Aaa", "AAa", "AAA"]; | |||
"aaa" | "aaa" in _myArray; // false | ||
"AAa" | "AAa" in _myArray; // true | ||
// Case-insensitive alternatives: | |||
_myArray | _myArray findIf { _x == "aaa"; } != -1; // true | ||
({ | ({ | ||
if (_x == "aaa") exitWith { _forEachIndex }; | |||
-1 | -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 | ||
</sqf> | |||
|x3= < | |x3= <sqf>[1,2,3] in [[1,2,3], [4,5,6]]; // true - Arma 3 only</sqf> | ||
|x4= < | |x4= <sqf>private _isInCar = player in Car;</sqf> | ||
|x5= < | |x5= <sqf>private _isInside = [1000,2000,0] in MyLocation;</sqf> | ||
|x6= < | |x6= <sqf> | ||
_isInString = "Foo" | private _isInString = "foo" in "foobar"; // true | ||
_isInString = "Foo" in "foobar"; // false | |||
</sqf> | |||
|x7= < | |x7= <sqf>private _onFoot = _unit in _unit;</sqf> | ||
Other options: | |||
<sqf>private _onFoot = vehicle _unit == _unit;</sqf> | |||
<sqf>private _onFoot = isNull objectParent _unit;</sqf> | |||
|seealso= [[inPolygon]] | |seealso= [[inPolygon]] [[inArea]] [[find]] [[findIf]] [[toArray]] [[forceUnicode]] | ||
}} | }} | ||
Line 120: | Line 124: | ||
<dt></dt> | <dt></dt> | ||
<dd class="notedate">Posted on | <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: | ''<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''' & '''8'''). | ||
</dd> | </dd> | ||
</dl> | </dl> |
Latest revision as of 19:42, 3 September 2024
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.
- 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:
- Example 5:
- Example 6:
- Example 7:
-
Other options:
Additional Information
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).
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.00
- 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: Strings
- Command Group: Arrays
- Command Group: Locations
- Command Group: HashMap
- Command Group: Unit Control