weaponState: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "\|x([0-9])= *<code>([^<]*)<\/code>" to "|x$1= <sqf>$2</sqf>") |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
Line 33: | Line 33: | ||
|s2= [[weaponState]] [vehicle, turretPath, weapon, muzzle, firemode] | |s2= [[weaponState]] [vehicle, turretPath, weapon, muzzle, firemode] | ||
|p21= | |p21= vehicle: [[Object]] | ||
|p22= | |p22= turretPath: [[Array]] | ||
|p23= | |p23= weapon: [[String]] - (Optional) weapon or muzzle name | ||
|p23since= arma3 1.70 | |||
|p24= | |p24= muzzle: [[String]] - (Optional) muzzle name | ||
|p24since= arma3 | |p24since= arma3 2.08 | ||
|p25= | |p25= firemode: [[String]] - (Optional) firemode name | ||
|p25since= arma3 2.08 | |p25since= arma3 2.08 | ||
|r2= [[Array]] - in format [weapon, muzzle, firemode, magazine, ammoCount, roundReloadPhase, magazineReloadPhase], where: | |r2= [[Array]] - in format [weapon, muzzle, firemode, magazine, ammoCount, roundReloadPhase, magazineReloadPhase], where: | ||
Line 75: | Line 73: | ||
|x1= <sqf>_wsPlayer = weaponState player; | |x1= <sqf>_wsPlayer = weaponState player; // ["arifle_MXC_ACO_F","arifle_MXC_ACO_F","Single","30Rnd_65x39_caseless_mag",30,0,0]</sqf> | ||
|x2= Query currently selected gunner weapon: | |x2= Query currently selected gunner weapon: | ||
< | <sqf>_wsVehicle = weaponState [_apc, [0]]; // ["autocannon_40mm_CTWS","HE","player","60Rnd_40mm_GPR_Tracer_Red_shells",60,0,0]</sqf> | ||
|x3= <sqf>_wsVehicle = weaponState [_apc, [0], "AP"]; // ["autocannon_40mm_CTWS","AP","player","40Rnd_40mm_APFSDS_Tracer_Red_shells",40,0,0]</sqf> | |x3= <sqf>_wsVehicle = weaponState [_apc, [0], "AP"]; // ["autocannon_40mm_CTWS","AP","player","40Rnd_40mm_APFSDS_Tracer_Red_shells",40,0,0]</sqf> | ||
|x4= <sqf>_wsPlayer = player weaponState "GL_3GL_F"; // ["arifle_MX_GL_ACO_F","GL_3GL_F","Single","1Rnd_HE_Grenade_shell",1,0,0]</sqf> | |||
|x4= <sqf>_wsPlayer = player weaponState "GL_3GL_F"; // ["arifle_MX_GL_ACO_F","GL_3GL_F","Single","1Rnd_HE_Grenade_shell",1,0,0]</sqf> | |||
|seealso= [[weapons]] [[selectWeaponTurret]] [[loadMagazine]] [[magazinesTurret]] [[weaponsTurret]] [[weaponReloadingTime]]. | |seealso= [[weapons]] [[selectWeaponTurret]] [[loadMagazine]] [[magazinesTurret]] [[weaponsTurret]] [[weaponReloadingTime]]. |
Revision as of 11:52, 14 May 2022
Description
- Description:
- Returns the given or currently selected weapon state for unit or vehicle. With syntax 2, if no optional arguments are present, currently selected weapon is queried.
- Groups:
- Weapons
Syntax 1
- Syntax:
- weaponState unit
- Parameters:
- unit: Object
- Return Value:
- Array - in format [weapon, muzzle, firemode, magazine, ammoCount, roundReloadPhase, magazineReloadPhase], where:
Syntax 2
- Syntax:
- weaponState [vehicle, turretPath, weapon, muzzle, firemode]
- Parameters:
- vehicle: Object
- turretPath: Array
- since 1.70
- weapon: String - (Optional) weapon or muzzle name
- since 2.08
- muzzle: String - (Optional) muzzle name
- since 2.08
- firemode: String - (Optional) firemode name
- Return Value:
- Array - in format [weapon, muzzle, firemode, magazine, ammoCount, roundReloadPhase, magazineReloadPhase], where:
Syntax 3
- Syntax:
- unit weaponState weaponOrMuzzle
- Parameters:
- unit: Object
- weaponOrMuzzle: String
- Return Value:
- Array - in format [weapon, muzzle, firemode, magazine, ammoCount, roundReloadPhase, magazineReloadPhase], where:
Examples
- Example 1:
- Example 2:
- Query currently selected gunner weapon:
_wsVehicle = weaponState [_apc, [0]]; // ["autocannon_40mm_CTWS","HE","player","60Rnd_40mm_GPR_Tracer_Red_shells",60,0,0]
- Example 3:
- _wsVehicle = weaponState [_apc, [0], "AP"]; // ["autocannon_40mm_CTWS","AP","player","40Rnd_40mm_APFSDS_Tracer_Red_shells",40,0,0]
- Example 4:
Additional Information
- See also:
- weapons selectWeaponTurret loadMagazine magazinesTurret weaponsTurret weaponReloadingTime.
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 Mar 31, 2022 - 04:08 (UTC)
-
In the case of a GL rifle, if the rifle is currently in GL mode, syntax 3 will return the same result for either muzzle:
In rifle mode, the result is different:Therefore, in order to gather all states of one multi-muzzle weapon, we have to do some masochistic stuff:fn_getWeaponStates = { params ["_unit", "_weapon"]; private _origState = weaponState _unit select [0,3]; private _muzzles = [_weapon] + (getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles") select {_x != "this"}); private _states = []; { _unit selectWeapon _x; _states pushBack weaponState _unit; } forEach _muzzles; _unit selectWeapon _origState; _states }; private _result = [player, primaryWeapon player] call fn_getWeaponStates; // _result = [ // ["arifle_MX_GL_ACO_F","arifle_MX_GL_ACO_F","Single","30Rnd_65x39_caseless_mag",30,0,0], // ["arifle_MX_GL_ACO_F","GL_3GL_F","Single","1Rnd_HE_Grenade_shell",1,0,0] // ]