mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #5828 from xrufix/AimCoef
Add ability to set aiming coefficient for mission scripting.
This commit is contained in:
commit
d6a88ac34a
@ -90,12 +90,12 @@ if (_overexhausted) then {
|
||||
|
||||
switch (stance _unit) do {
|
||||
case ("CROUCH"): {
|
||||
_unit setCustomAimCoef (1.0 + _fatigue ^ 2 * 0.1);
|
||||
[_unit, QUOTE(ADDON), (1.0 + _fatigue ^ 2 * 0.1) * GVAR(swayFactor)] call EFUNC(common,setAimCoef);
|
||||
};
|
||||
case ("PRONE"): {
|
||||
_unit setCustomAimCoef (1.0 + _fatigue ^ 2 * 2.0);
|
||||
[_unit, QUOTE(ADDON), (1.0 + _fatigue ^ 2 * 2.0) * GVAR(swayFactor)] call EFUNC(common,setAimCoef);
|
||||
};
|
||||
default {
|
||||
_unit setCustomAimCoef (1.5 + _fatigue ^ 2 * 3.0);
|
||||
[_unit, QUOTE(ADDON), (1.5 + _fatigue ^ 2 * 3.0) * GVAR(swayFactor)] call EFUNC(common,setAimCoef);
|
||||
};
|
||||
};
|
||||
|
@ -145,6 +145,7 @@ PREP(runTests);
|
||||
PREP(sanitizeString);
|
||||
PREP(sendRequest);
|
||||
PREP(serverLog);
|
||||
PREP(setAimCoef);
|
||||
PREP(setApproximateVariablePublic);
|
||||
PREP(setDefinedVariable);
|
||||
PREP(setDisableUserInputStatus);
|
||||
|
51
addons/common/functions/fnc_setAimCoef.sqf
Normal file
51
addons/common/functions/fnc_setAimCoef.sqf
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Author: xrufix, Glowbal
|
||||
* Handle set AimCoef calls. Will use the highest available setting.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Unique ID <STRING>
|
||||
* 2: Aim coefficient (a higher value causes more shaking) <NUMBER>
|
||||
* 3: Add (true) or remove (false) <BOOL> (default: true)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, "ace_advanced_fatigue", 1, true] call ace_common_fnc_setAimCoef
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_unit", "_id", "_setting", ["_add", true]];
|
||||
|
||||
private _exists = false;
|
||||
private _highestCoef = 1;
|
||||
private _map = _unit getVariable [QGVAR(setAimCoefMap), []];
|
||||
|
||||
_map = _map select {
|
||||
_x params ["_xID", "_xSetting"];
|
||||
if (_id == _xID) then {
|
||||
_exists = true;
|
||||
if (_add) then {
|
||||
_x set [1, _setting];
|
||||
_highestCoef = _highestCoef max _setting;
|
||||
true
|
||||
} else {
|
||||
false
|
||||
};
|
||||
} else {
|
||||
_highestCoef = _highestCoef max _xSetting;
|
||||
true
|
||||
};
|
||||
};
|
||||
|
||||
if (!_exists && _add) then {
|
||||
_highestCoef = _highestCoef max _setting;
|
||||
_map pushBack [_id, _setting];
|
||||
};
|
||||
|
||||
// Update the value
|
||||
_unit setVariable [QGVAR(setAimCoefMap), _map];
|
||||
_unit setCustomAimCoef _highestCoef;
|
@ -3,9 +3,9 @@
|
||||
* Handle set volume calls. Will use the lowest available volume setting.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: id <STRING>
|
||||
* 1: settings <NUMBER>
|
||||
* 2: add [true] OR remove [false] (default: true) <BOOL>
|
||||
* 0: ID <STRING>
|
||||
* 1: Settings <NUMBER>
|
||||
* 2: Add (true) or remove (false) <BOOL> (default: true)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
|
Loading…
Reference in New Issue
Block a user