From 627a11545a8ef50f942470b0caed848d8595a0ba Mon Sep 17 00:00:00 2001 From: jonpas <jonpas33@gmail.com> Date: Tue, 11 Oct 2016 14:18:58 +0200 Subject: [PATCH 01/10] Fix documentation README commands --- docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index 9c20ecb281..e5cd08ac19 100644 --- a/docs/README.md +++ b/docs/README.md @@ -32,10 +32,10 @@ - Install `make` and `gcc` ``` - sudo apt-get make gcc + sudo apt-get install make gcc ``` -- Install `ruby 2.0`, `rbuy2.0-dev` and `ruby-switch` +- Install `ruby2.0`, `rbuy2.0-dev` and `ruby-switch` ``` sudo apt-add-repository ppa:brightbox/ruby-ng sudo apt update From cbbdd6f9392aa0a0a33416a9a4f6a04c503f9a0b Mon Sep 17 00:00:00 2001 From: jonpas <jonpas33@gmail.com> Date: Tue, 11 Oct 2016 14:21:54 +0200 Subject: [PATCH 02/10] Use apt-get consitently instead of new apt only --- docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index e5cd08ac19..d3bd41e20e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -38,8 +38,8 @@ - Install `ruby2.0`, `rbuy2.0-dev` and `ruby-switch` ``` sudo apt-add-repository ppa:brightbox/ruby-ng - sudo apt update - sudo apt install ruby2.0 ruby2.0-dev ruby-switch + sudo apt-get update + sudo apt-get install ruby2.0 ruby2.0-dev ruby-switch ``` - Set Ruby version From 4fb5d230acab62f75a5fd11b9ca5c6a820f9da66 Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Tue, 11 Oct 2016 18:44:27 +0200 Subject: [PATCH 03/10] remove civilian rank icons from nametags (#4538) --- addons/nametags/XEH_postInit.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/nametags/XEH_postInit.sqf b/addons/nametags/XEH_postInit.sqf index bebe840b47..594fe595ff 100644 --- a/addons/nametags/XEH_postInit.sqf +++ b/addons/nametags/XEH_postInit.sqf @@ -35,3 +35,6 @@ GVAR(showNamesTime) = -10; call FUNC(updateSettings); }; }] call CBA_fnc_addEventHandler; + +// civilians don't use military ranks +["CIV_F", ["","","","","","",""]] call FUNC(setFactionRankIcons); From c390b6c1fca866cc6ca98b9ded7b36367628279e Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Tue, 11 Oct 2016 05:06:37 +0200 Subject: [PATCH 04/10] increase red laser alpha, close #4535 --- addons/laserpointer/functions/fnc_drawLaserpoint.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf index 3ea9ed158b..f5320d2c63 100644 --- a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf +++ b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf @@ -85,7 +85,7 @@ private _size = 2 * sqrt (1 / _distance) * (call EFUNC(common,getZoom)); drawIcon3D [ format ["\a3\weapons_f\acc\data\collimdot_%1_ca.paa", ["red", "green"] select _isGreen], - [[1,0.25,0.25,0.5*_brightness], [0.25,1,0.25,0.5*_brightness]] select _isGreen, + [[1,0.25,0.25,0.6*_brightness], [0.25,1,0.25,0.5*_brightness]] select _isGreen, _pL, _size, _size, From 2ba0137a1e181e9cc9a93bee53b9a57c73c8b392 Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut <BaerMitUmlaut@users.noreply.github.com> Date: Tue, 11 Oct 2016 18:48:20 +0200 Subject: [PATCH 05/10] Fix going unconscious while fastroping (#4531) --- addons/fastroping/functions/fnc_fastRopeServerPFH.sqf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf index 2ebffe680e..0011e0ecf9 100644 --- a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf +++ b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf @@ -53,7 +53,12 @@ if (_hasBeenAttached && {isNull attachedTo _unit}) exitWith { _dummy setVelocity [0,0,-6]; //Check if fast rope is finished -if (((getPos _unit select 2) < 0.2) || {ropeLength _ropeTop == 34.5} || {vectorMagnitude (velocity _vehicle) > 5} || {!(alive _unit)} || {captive _unit}) exitWith { +if ( + ((getPos _unit select 2) < 0.2) + || {ropeLength _ropeTop == 34.5} + || {vectorMagnitude (velocity _vehicle) > 5} + || {!([_unit] call EFUNC(common,isAwake))} +) exitWith { detach _unit; //Reset rope From cd79ebe3ceaa45d27b9bec14c1a191a109fa9aca Mon Sep 17 00:00:00 2001 From: PabstMirror <pabstmirror@gmail.com> Date: Sat, 8 Oct 2016 10:41:25 -0500 Subject: [PATCH 06/10] Bump REQUIRED_VERSION to 1.64 --- addons/main/script_mod.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 6f9d0e5a6b..9e687174ab 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -12,7 +12,7 @@ #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.62 +#define REQUIRED_VERSION 1.64 #define REQUIRED_CBA_VERSION {3,1,0} #ifdef COMPONENT_BEAUTIFIED From 130265fd9fef594cbbe891fe580daf41458e83da Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Mon, 10 Oct 2016 19:35:34 +0200 Subject: [PATCH 07/10] add function to disable dogtags for factions, and disable for civilians --- addons/dogtags/XEH_PREP.hpp | 2 ++ addons/dogtags/XEH_postInit.sqf | 3 +++ .../dogtags/functions/fnc_canCheckDogtag.sqf | 3 +++ .../dogtags/functions/fnc_canTakeDogtag.sqf | 3 +++ .../functions/fnc_disableFactionDogtags.sqf | 24 +++++++++++++++++++ 5 files changed, 35 insertions(+) create mode 100644 addons/dogtags/functions/fnc_disableFactionDogtags.sqf diff --git a/addons/dogtags/XEH_PREP.hpp b/addons/dogtags/XEH_PREP.hpp index 33e42ba191..5917600139 100644 --- a/addons/dogtags/XEH_PREP.hpp +++ b/addons/dogtags/XEH_PREP.hpp @@ -1,3 +1,4 @@ + PREP(addDogtagActions); PREP(addDogtagItem); PREP(bloodType); @@ -11,3 +12,4 @@ PREP(sendDogtagData); PREP(showDogtag); PREP(ssn); PREP(takeDogtag); +PREP(disableFactionDogtags); diff --git a/addons/dogtags/XEH_postInit.sqf b/addons/dogtags/XEH_postInit.sqf index b0352c39ef..6a50ce61cf 100644 --- a/addons/dogtags/XEH_postInit.sqf +++ b/addons/dogtags/XEH_postInit.sqf @@ -45,3 +45,6 @@ if (["ACE_Medical"] call EFUNC(common,isModLoaded)) then { }] call CBA_fnc_addEventHandler; }; }; + +// disable dogtags for civilians +"CIV_F" call FUNC(disableFactionDogtags); diff --git a/addons/dogtags/functions/fnc_canCheckDogtag.sqf b/addons/dogtags/functions/fnc_canCheckDogtag.sqf index 66a25c94b0..b31911a0c6 100644 --- a/addons/dogtags/functions/fnc_canCheckDogtag.sqf +++ b/addons/dogtags/functions/fnc_canCheckDogtag.sqf @@ -20,4 +20,7 @@ params ["_player", "_target"]; if (isNull _target) exitWith {false}; +// check if disabled for faction +if ([GVAR(disabledFactions) getVariable faction _target] param [0, false]) exitWith {false}; + (!alive _target) || {_target getVariable ["ACE_isUnconscious", false]} diff --git a/addons/dogtags/functions/fnc_canTakeDogtag.sqf b/addons/dogtags/functions/fnc_canTakeDogtag.sqf index 33a3ef055f..37163f68c7 100644 --- a/addons/dogtags/functions/fnc_canTakeDogtag.sqf +++ b/addons/dogtags/functions/fnc_canTakeDogtag.sqf @@ -20,4 +20,7 @@ params ["_player", "_target"]; if (isNull _target) exitWith {false}; +// check if disabled for faction +if ([GVAR(disabledFactions) getVariable faction _target] param [0, false]) exitWith {false}; + (!alive _target) || {_target getVariable ["ACE_isUnconscious", false]} diff --git a/addons/dogtags/functions/fnc_disableFactionDogtags.sqf b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf new file mode 100644 index 0000000000..3100ffb269 --- /dev/null +++ b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf @@ -0,0 +1,24 @@ +/* + * Author: commy2 + * Disable this faction from using dogtags. + * + * Arguments: + * 0: Faction <STRING> + * + * Return Value: + * None + * + * Example: + * "CIV_F" call ace_dogtags_fnc_disableFactionDogtags + * + * Public: Yes + */ +#include "script_component.hpp" + +params [["_faction", "", [""]]]; + +if (isNil QGVAR(disabledFactions)) then { + GVAR(disabledFactions) = [] call CBA_fnc_createNamespace; +}; + +GVAR(disabledFactions) setVariable [_faction, true]; From 5d610cf14854078886976177a3d3c38d2b67a8e0 Mon Sep 17 00:00:00 2001 From: PabstMirror <pabstmirror@gmail.com> Date: Tue, 11 Oct 2016 11:54:25 -0500 Subject: [PATCH 08/10] Always create namespace at preInit --- addons/dogtags/XEH_preInit.sqf | 2 ++ addons/dogtags/functions/fnc_disableFactionDogtags.sqf | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/dogtags/XEH_preInit.sqf b/addons/dogtags/XEH_preInit.sqf index a7feade1c3..434496058f 100644 --- a/addons/dogtags/XEH_preInit.sqf +++ b/addons/dogtags/XEH_preInit.sqf @@ -4,4 +4,6 @@ ADDON = false; #include "XEH_PREP.hpp" +GVAR(disabledFactions) = [] call CBA_fnc_createNamespace; + ADDON = true; diff --git a/addons/dogtags/functions/fnc_disableFactionDogtags.sqf b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf index 3100ffb269..2418b31f4e 100644 --- a/addons/dogtags/functions/fnc_disableFactionDogtags.sqf +++ b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf @@ -17,8 +17,4 @@ params [["_faction", "", [""]]]; -if (isNil QGVAR(disabledFactions)) then { - GVAR(disabledFactions) = [] call CBA_fnc_createNamespace; -}; - GVAR(disabledFactions) setVariable [_faction, true]; From b8cc10fecbdd8b09c1a019c543fb68bd303118be Mon Sep 17 00:00:00 2001 From: jonpas <jonpas33@gmail.com> Date: Sat, 8 Oct 2016 15:31:39 +0200 Subject: [PATCH 09/10] Fix #4523 - fuel nozzle disconnect at maximum hose distance --- addons/refuel/XEH_PREP.hpp | 1 + .../functions/fnc_maxDistanceDropNozzle.sqf | 54 +++++++++++++++++++ addons/refuel/functions/fnc_takeNozzle.sqf | 41 +++----------- 3 files changed, 63 insertions(+), 33 deletions(-) create mode 100644 addons/refuel/functions/fnc_maxDistanceDropNozzle.sqf diff --git a/addons/refuel/XEH_PREP.hpp b/addons/refuel/XEH_PREP.hpp index dac451da17..806d861a69 100644 --- a/addons/refuel/XEH_PREP.hpp +++ b/addons/refuel/XEH_PREP.hpp @@ -16,6 +16,7 @@ PREP(handleDisconnect); PREP(handleKilled); PREP(handleUnconscious); PREP(makeJerryCan); +PREP(maxDistanceDropNozzle); PREP(moduleRefuelSettings); PREP(readFuelCounter); PREP(refuel); diff --git a/addons/refuel/functions/fnc_maxDistanceDropNozzle.sqf b/addons/refuel/functions/fnc_maxDistanceDropNozzle.sqf new file mode 100644 index 0000000000..90231a30f2 --- /dev/null +++ b/addons/refuel/functions/fnc_maxDistanceDropNozzle.sqf @@ -0,0 +1,54 @@ +/* + * Author: GitHawk, Jonpas + * Drops the nozzle at maximum hose distance. + * + * Arguments: + * 0: Unit <OBJECT> + * 1: Fuel Truck <OBJECT> + * 2: End Pos Offset <ARRAY> + * 3: Nozzle <OBJECT> (optional) + * + * Return Value: + * None + * + * Example: + * [player, fuelTruck, [0, 0, 0], nozzle] call ace_refuel_fnc_maxDistanceDropNozzle + * + * Public: No + */ +#include "script_component.hpp" + +params ["_unit", "_source", "_endPosOffset", "_nozzle"]; + +// Exit if jerry can (no maximum distance there as it's not connected to anything) +if (_nozzle getVariable [QGVAR(jerryCan), false]) exitWith {}; + +// Check distance periodically to drop it at maximum hose length +[{ + params ["_args", "_pfID"]; + _args params [ + ["_unit", player, [objNull]], + ["_source", objNull, [objNull]], + ["_endPosOffset", [0, 0, 0], [[]], 3], + ["_nozzle", (_args select 0) getVariable [QGVAR(nozzle), objNull], [objNull]] + ]; + + if (isNull _source || {_unit distance (_source modelToWorld _endPosOffset) > (REFUEL_HOSE_LENGTH - 2)} || {!alive _source}) exitWith { + if !(isNull _nozzle) then { + [_unit, _nozzle] call FUNC(dropNozzle); + REFUEL_UNHOLSTER_WEAPON + + [_unit, "forceWalk", "ACE_refuel", false] call EFUNC(common,statusEffect_set); + if (isNull _source || {!alive _source}) then { + private _rope = _nozzle getVariable [QGVAR(rope), objNull]; + if !(isNull _rope) then { + ropeDestroy _rope; + }; + deleteVehicle _nozzle; + } else { + [LSTRING(Hint_TooFar), 2, _unit] call EFUNC(common,displayTextStructured); + }; + }; + [_pfID] call CBA_fnc_removePerFrameHandler; + }; +}, 0, [_unit, _target, _endPosOffset, _nozzle]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/refuel/functions/fnc_takeNozzle.sqf b/addons/refuel/functions/fnc_takeNozzle.sqf index 9548b2ed2f..006c5e0942 100644 --- a/addons/refuel/functions/fnc_takeNozzle.sqf +++ b/addons/refuel/functions/fnc_takeNozzle.sqf @@ -82,6 +82,9 @@ if (isNull _nozzle) then { // func is called on fuel truck '!isNull (_target getVariable [QGVAR(nozzle), objNull])' ]; _unit setVariable [QGVAR(ReleaseActionID), _actionID]; + + // Drop nozzle at maximum hose distance + [_unit, _target, _endPosOffset, _nozzle] call FUNC(maxDistanceDropNozzle); }, "", localize LSTRING(TakeNozzleAction), @@ -123,43 +126,15 @@ if (isNull _nozzle) then { // func is called on fuel truck '!isNull (_target getVariable [QGVAR(nozzle), objNull])' ]; _unit setVariable [QGVAR(ReleaseActionID), _actionID]; + + // Drop nozzle at maximum hose distance + private _target = _nozzle getVariable QGVAR(source); + private _endPosOffset = _nozzle getVariable QGVAR(attachPos); + [_unit, _target, _endPosOffset, _nozzle] call FUNC(maxDistanceDropNozzle); }, "", localize LSTRING(TakeNozzleAction), {true}, ["isnotinside"] ] call EFUNC(common,progressBar); - - _target = _nozzle getVariable QGVAR(source); - _endPosOffset = _nozzle getVariable QGVAR(attachPos); -}; -if !(_nozzle getVariable [QGVAR(jerryCan), false]) then { - [{ - params ["_args", "_pfID"]; - _args params [ - ["_unit", player, [objNull]], - ["_source", objNull, [objNull]], - ["_endPosOffset", [0, 0, 0], [[]], 3], - ["_nozzle", _unit getVariable [QGVAR(nozzle), objNull], [objNull]] - ]; - - if (isNull _source || {_unit distance (_source modelToWorld _endPosOffset) > (REFUEL_HOSE_LENGTH - 2)} || {!alive _source}) exitWith { - if !(isNull _nozzle) then { - [_unit, _nozzle] call FUNC(dropNozzle); - REFUEL_UNHOLSTER_WEAPON - - [_unit, "forceWalk", "ACE_refuel", false] call EFUNC(common,statusEffect_set); - if (isNull _source || {!alive _source}) then { - private _rope = _nozzle getVariable [QGVAR(rope), objNull]; - if !(isNull _rope) then { - ropeDestroy _rope; - }; - deleteVehicle _nozzle; - } else { - [LSTRING(Hint_TooFar), 2, _unit] call EFUNC(common,displayTextStructured); - }; - }; - [_pfID] call cba_fnc_removePerFrameHandler; - }; - }, 0, [_unit, _target, _endPosOffset]] call cba_fnc_addPerFrameHandler; }; From 8822cb1b907a48f80550a5a59e9b801f09b55f63 Mon Sep 17 00:00:00 2001 From: commy2 <commy-2@gmx.de> Date: Tue, 11 Oct 2016 19:04:08 +0200 Subject: [PATCH 10/10] emulate frag grenade ai behaviour for incendiaries (#4534) --- addons/grenades/functions/fnc_incendiary.sqf | 21 ++++++++++++++++++- .../grenades/functions/fnc_throwGrenade.sqf | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/addons/grenades/functions/fnc_incendiary.sqf b/addons/grenades/functions/fnc_incendiary.sqf index 098e2d5e20..6081daa8af 100644 --- a/addons/grenades/functions/fnc_incendiary.sqf +++ b/addons/grenades/functions/fnc_incendiary.sqf @@ -16,6 +16,8 @@ */ #include "script_component.hpp" +#define ALERT_NEAR_ENEMY_RANGE 60 + #define PARTICLE_LIFE_TIME 2 #define PARTICLE_DENSITY 20 #define PARTICLE_SIZE 1 @@ -32,12 +34,29 @@ #define ORIENTATION 5.4 #define EXPANSION 1 -params ["_projectile", "_timeToLive"]; +params ["_projectile", "_timeToLive", "_center"]; if (isNull _projectile) exitWith {TRACE_1("null",_projectile);}; private _position = position _projectile; +// --- AI +private _nearLocalEnemies = []; + +{ + { + if (local _x && {[_center, side _x] call BIS_fnc_sideIsEnemy}) then { // WE WANT THE OBJECTS SIDE HERE! + _nearLocalEnemies pushBackUnique _x; + }; + } forEach crew _x; +} forEach (_position nearObjects ALERT_NEAR_ENEMY_RANGE); + +{ + if (behaviour _x in ["SAFE", "AWARE"]) then { + _x setBehaviour "COMBAT"; + }; +} forEach _nearLocalEnemies; + // --- fire private _fire = "#particlesource" createVehicleLocal _position; diff --git a/addons/grenades/functions/fnc_throwGrenade.sqf b/addons/grenades/functions/fnc_throwGrenade.sqf index 8db3cf3829..92c2639826 100644 --- a/addons/grenades/functions/fnc_throwGrenade.sqf +++ b/addons/grenades/functions/fnc_throwGrenade.sqf @@ -56,7 +56,7 @@ if (getNumber (_config >> QGVAR(incendiary)) == 1) then { private _fuzeTime = getNumber (_config >> "explosionTime"); private _timeToLive = getNumber (_config >> "timeToLive"); - [FUNC(incendiary), [_projectile, _timeToLive], _fuzeTime] call CBA_fnc_waitAndExecute; + [FUNC(incendiary), [_projectile, _timeToLive, side _unit], _fuzeTime] call CBA_fnc_waitAndExecute; // WE WANT THE OBJECTS SIDE HERE! }; // handle throw modes