From 847fd3eff226ca1537794d3e03e8bf24f7cda7b1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 26 Sep 2020 12:55:56 +0200 Subject: [PATCH 001/354] Use isNotEqualTo --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 2 +- .../core/fnc/chem/damage.sqf | 2 +- .../core/fnc/chem/handleShower.sqf | 2 +- .../core/fnc/city/activate.sqf | 6 +++--- .../core/fnc/city/findPos.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf | 8 ++++---- .../core/fnc/common/deleteEntities.sqf | 2 +- .../core/fnc/common/find_veh_with_turret.sqf | 2 +- .../core/fnc/common/findposoutsiderock.sqf | 2 +- .../core/fnc/common/getHouses.sqf | 2 +- .../core/fnc/common/get_class.sqf | 2 +- .../core/fnc/common/setVehProperties.sqf | 8 ++++---- .../core/fnc/data/get_group.sqf | 6 +++--- .../core/fnc/data/spawn_group.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 2 +- .../core/fnc/db/loadObjectStatus.sqf | 2 +- .../core/fnc/db/load_old.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 2 +- .../core/fnc/debug/marker.sqf | 2 +- .../core/fnc/eh/removePersistOnLocalityChange.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 4 ++-- .../core/fnc/eh/veh_add_respawn.sqf | 4 ++-- .../core/fnc/eh/veh_respawn.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf | 2 +- .../core/fnc/ied/checkLoop.sqf | 2 +- .../core/fnc/ied/suiciderLoop.sqf | 2 +- .../core/fnc/ied/suicider_activeLoop.sqf | 2 +- .../core/fnc/info/troops.sqf | 2 +- .../core/fnc/int/add_actions.sqf | 8 ++++---- .../core/fnc/lift/deployRopes.sqf | 2 +- .../core/fnc/lift/destroyRopes.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf | 2 +- .../core/fnc/log/createVehicle.sqf | 4 ++-- .../core/fnc/log/getRearmMagazines.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf | 2 +- .../core/fnc/mil/ammoUsage.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf | 8 ++++---- .../core/fnc/mil/getStructures.sqf | 2 +- .../core/fnc/mil/unit_killed.sqf | 2 +- .../core/fnc/patrol/usefulCity.sqf | 2 +- .../core/fnc/rep/call_militia.sqf | 4 ++-- .../core/fnc/rep/firednear.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf | 2 +- .../core/fnc/side/capture_officer.sqf | 2 +- .../core/fnc/side/checkpoint.sqf | 2 +- .../core/fnc/side/chemicalLeak.sqf | 4 ++-- .../core/fnc/side/civtreatment.sqf | 2 +- .../core/fnc/side/civtreatment_boat.sqf | 2 +- .../core/fnc/side/convoy.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf | 4 ++-- .../core/fnc/side/removeRubbish.sqf | 4 ++-- .../core/fnc/side/supply.sqf | 4 ++-- .../core/fnc/side/underwater_generator.sqf | 6 +++++- .../core/fnc/side/vehicle.sqf | 2 +- .../core/fnc/spect/updateDevice.sqf | 2 +- .../core/fnc/tag/initArea.sqf | 2 +- .../core/fnc/task/setState.sqf | 2 +- .../core/fnc/tow/ropeCreate.sqf | 2 +- 64 files changed, 95 insertions(+), 91 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 05a4cc6f4..0fdf41226 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -186,7 +186,7 @@ if (isServer) then { ]; private _weapons_usefull = "true" configClasses (configFile >> "CfgWeapons") select { getNumber (_x >> 'type') isEqualTo 1 || - {!(getArray (_x >> 'magazines') isEqualTo [])} || + {getArray (_x >> 'magazines') isNotEqualTo []} || {getNumber (_x >> 'scope') isEqualTo 2} }; btc_cache_weapons_type = _weapons_usefull apply {configName _x}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index d01c2398c..14e140b43 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -399,6 +399,6 @@ class Params { title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_DEBUG"]); values[]={0,1,2}; texts[]={$STR_DISABLED,$STR_ENABLED, $STR_BTC_HAM_PARAM_OTHER_DEBUG_LOGONLY}; // texts[]={"Off","On","Log only"}; - default = 0; + default = 1; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf index c740667ab..803eaded9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf @@ -66,7 +66,7 @@ if ( ) then { _protection = _protection + 0.1; }; -if !(_uniform isEqualTo "") then { +if (_uniform isNotEqualTo "") then { _protection = _protection + 0.5; if ( [ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/handleShower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/handleShower.sqf index 8fd10fb53..51cf1983f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/handleShower.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/handleShower.sqf @@ -34,7 +34,7 @@ params [ _needActivate = _shower select { _x animationSourcePhase "valve_source" isEqualTo 0 && - {!((nearestObjects [_x, ["Car_F", "Man", "Strategic", "Constructions_base_F", "Cargo_base_F"], _minDistance]) isEqualTo [])} + {(nearestObjects [_x, ["Car_F", "Man", "Strategic", "Constructions_base_F", "Cargo_base_F"], _minDistance]) isNotEqualTo []} }; _needDesactivate = _shower select { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 48016b5a8..97deba321 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -91,12 +91,12 @@ if (!_is_init) then { _city setVariable ["active", true]; -if !(_ieds isEqualTo []) then { +if (_ieds isNotEqualTo []) then { [[_city, _ieds], btc_fnc_ied_check] call btc_fnc_delay_exec; }; private _delay = 0; -if !(_data_units isEqualTo []) then { +if (_data_units isNotEqualTo []) then { { _delay = _delay + ([_x, _id] call btc_fnc_data_spawn_group); } forEach _data_units; @@ -133,7 +133,7 @@ if !(_data_units isEqualTo []) then { }; }; if (btc_p_animals_group_ratio > 0) then { - if !(_data_animals isEqualTo []) then { + if (_data_animals isNotEqualTo []) then { { _x call btc_fnc_delay_createAgent; } forEach _data_animals; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf index e7da4750c..3917ac4ca 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf @@ -39,7 +39,7 @@ private _rpos = [_city, _area, _p_sea] call btc_fnc_randomize_pos; private _pos_iswater = surfaceIsWater _rpos; if !(_pos_iswater) then { private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; - if !(_newpos isEqualTo []) then { + if (_newpos isNotEqualTo []) then { _rpos = _newpos; }; _rpos = [_rpos] call btc_fnc_findPosOutsideRock; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf index e7b99e155..35adab979 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf @@ -39,7 +39,7 @@ for "_id" from 0 to (count _locations - 1) do { if (_type in _cities) then { private _position = getArray (_current >> "position"); if (surfaceIsWater _position) then { - if !(_type isEqualTo "NameMarine") then { + if (_type isNotEqualTo "NameMarine") then { private _church = nearestTerrainObjects [_position, ["CHURCH"], 470]; if (_church isEqualTo []) then { private _area = 50; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf index 89b432da3..572970975 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf @@ -32,7 +32,7 @@ params [ [_group, _pos, -1, "MOVE", "SAFE", "NO CHANGE", "LIMITED"] call CBA_fnc_addWaypoint; private _houses = [_pos, _radius] call btc_fnc_getHouses; -if !(_houses isEqualTo []) then { +if (_houses isNotEqualTo []) then { private _house = selectRandom _houses; [_group, _house] call btc_fnc_house_addWP_loop; _houses = _houses - [_house]; @@ -43,7 +43,7 @@ for "_i" from 1 to 4 do { [_group, _wp_pos, -1, "MOVE"] call CBA_fnc_addWaypoint; }; -if !(_houses isEqualTo []) then { +if (_houses isNotEqualTo []) then { private _house = selectRandom _houses; [_group, _house] call btc_fnc_house_addWP_loop; _houses = _houses - [_house]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf index 5688ee295..de6a9d285 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf @@ -70,10 +70,10 @@ _factions = _factions apply { //Final filter unwanted units type _type_units = _type_units select { - !(getText (_cfgVehicles >> _x >> "role") isEqualTo "Crewman") && - ((_x find "_unarmed_") isEqualTo -1) && - !(getText (_cfgVehicles >> _x >> "vehicleClass") isEqualTo "MenVR") + getText (_cfgVehicles >> _x >> "role") isNotEqualTo "Crewman" && + (_x find "_unarmed_") isEqualTo -1 && + getText (_cfgVehicles >> _x >> "vehicleClass") isNotEqualTo "MenVR" }; -_type_veh = _type_veh select {!(getNumber (_cfgVehicles >> _x >> "isUav") isEqualTo 1) && !(_x isKindOf "Kart_01_Base_F")}; +_type_veh = _type_veh select {(getNumber (_cfgVehicles >> _x >> "isUav") isNotEqualTo 1) && !(_x isKindOf "Kart_01_Base_F")}; [_type_units, _type_boats, _type_veh] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteEntities.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteEntities.sqf index 272d090ec..b94880413 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteEntities.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteEntities.sqf @@ -40,7 +40,7 @@ Author: _entities pushBack _entity; }; - if !(_entities isEqualTo []) exitWith { + if (_entities isNotEqualTo []) exitWith { _this call btc_fnc_deleteEntities; }; }, _this, 1] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf index c9e7b8258..68e2275e9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf @@ -43,7 +43,7 @@ private _magazines = _typeOf_vehicles apply { ] }; -private _magazines_clean = _magazines select {!((_x select 1) isEqualTo [[]])}; +private _magazines_clean = _magazines select {(_x select 1) isNotEqualTo [[]]}; private _vehicles_with_turrets = _magazines_clean apply {_x select 0}; _magazines_clean = _magazines_clean apply {_x select 1}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf index 9e94cd565..48ab30abe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf @@ -42,7 +42,7 @@ if (_object in nearestTerrainObjects [_object, ["HIDE", "ROCK", "ROCKS"], 1]) th if (btc_debug_log) then { _objects = lineIntersectsObjs [[_x, _y, (getTerrainHeightASL _rpos) + 1], [_x, _y, (getTerrainHeightASL _rpos) + 100], objNull, objNull, false, 16]; - if !(_objects isEqualTo []) then { + if (_objects isNotEqualTo []) then { _object = _objects select 0; if (_object in nearestTerrainObjects [_object, ["HIDE", "ROCK", "ROCKS"], 1]) then { [format ["POS %1 Still inside rock", _rpos], __FILE__, [false]] call btc_fnc_debug_message; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf index 794641e22..0a0d6ea1e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf @@ -28,6 +28,6 @@ params [ ]; private _buildings = nearestObjects [_pos, ["Building"], _radius]; -private _useful = _buildings select {!((_x buildingPos -1) isEqualTo []) && {damage _x isEqualTo 0}}; +private _useful = _buildings select {(_x buildingPos -1) isNotEqualTo [] && {damage _x isEqualTo 0}}; _useful diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf index 8af7cda63..b03e95b71 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf @@ -52,7 +52,7 @@ private _alldlc = []; //If is BI check if it is really BI, some mod don't change the author private _mod_folder = getText(_cfgFactionClasses >> _allfaction select _index >> "icon") select [if ((getText(_cfgFactionClasses >> _allfaction select _index >> "icon") select [0, 1]) isEqualTo "\") then {1} else {0}]; private _mod = _mod_folder select [0, _mod_folder find "\"]; - if !(_mod isEqualTo "a3") then { + if (_mod isNotEqualTo "a3") then { _dlc = (_allfaction select _index) select [0, (_allfaction select _index) find "_"]; }; } else { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf index 552490a38..b5533ff30 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf @@ -46,12 +46,12 @@ if (_isMedicalVehicle && {!([_vehicle] call ace_medical_treatment_fnc_isMedicalV if (_isRepairVehicle && {!([_vehicle] call ace_repair_fnc_isRepairVehicle)}) then { _vehicle setVariable ["ACE_isRepairVehicle", _isRepairVehicle, true]; }; -if !(_fuelSource isEqualTo []) then { +if (_fuelSource isNotEqualTo []) then { _fuelSource params [ ["_fuelCargo", 0, [0]], ["_hooks", nil, [[]]] ]; - if ((!isNil "_hooks") && {!(_hooks isEqualTo (_vehicle getVariable ["ace_refuel_hooks", []]))}) then { + if ((!isNil "_hooks") && {_hooks isNotEqualTo (_vehicle getVariable ["ace_refuel_hooks", []])}) then { [_vehicle, _fuelCargo, _hooks] call ace_refuel_fnc_makeSource; } else { if (_fuelCargo != [_vehicle] call ace_refuel_fnc_getFuel) then { @@ -59,7 +59,7 @@ if !(_fuelSource isEqualTo []) then { }; }; }; -if !(_pylons isEqualTo []) then { +if (_pylons isNotEqualTo []) then { private _pylonPaths = (configProperties [configFile >> "CfgVehicles" >> typeOf _vehicle >> "Components" >> "TransportPylonsComponent" >> "Pylons", "isClass _x"]) apply {getArray (_x >> "turret")}; { _vehicle removeWeaponGlobal getText (configFile >> "CfgMagazines" >> _x >> "pylonWeapon") @@ -73,7 +73,7 @@ if (_isContaminated) then { publicVariable "btc_chem_contaminated"; }; }; -if !(_supplyVehicle isEqualTo []) then { +if (_supplyVehicle isNotEqualTo []) then { _supplyVehicle params [ ["_isSupplyVehicle", false, [false]], ["_currentSupply", -1, [0]] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/get_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/get_group.sqf index 6ec16733c..a8e072d7f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/get_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/get_group.sqf @@ -60,20 +60,20 @@ private _array_wp = (waypoints _group) apply {[ _array_dam pushBack getDammage _x; } forEach _units; -if !(_group getVariable ["btc_inHouse", ""] isEqualTo "") then { +if (_group getVariable ["btc_inHouse", ""] isNotEqualTo "") then { _type_db = 3; _array_veh = _group getVariable ["btc_inHouse", ""]; }; if (_group getVariable ["getWeapons", false]) then {_type_db = 4;}; if (_group getVariable ["suicider", false]) then {_type_db = 5;}; -if !(_group getVariable ["btc_data_inhouse", []] isEqualTo []) then { +if (_group getVariable ["btc_data_inhouse", []] isNotEqualTo []) then { _type_db = 6; _array_veh = _group getVariable ["btc_data_inhouse", []]; }; if (_group getVariable ["btc_ied_drone", false]) then {_type_db = 7;}; if ( _vehicle != _leader && - {!(_type_db isEqualTo 7)} + {_type_db isNotEqualTo 7} ) then { _type_db = 1; _array_veh = [typeOf _vehicle, getPosATL _vehicle, getDir _vehicle, fuel _vehicle]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf index 361c00546..f5e978575 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf @@ -93,7 +93,7 @@ if (_type isEqualTo 1) then { ]; [_group, _position, -1, _type, _behaviour, _combat, _speed, _formation, "", _timeout, _compRadius] call CBA_fnc_addWaypoint; } forEach (_array_wp select 1); - if !(_array_wp select 1 isEqualTo []) then { + if (_array_wp select 1 isNotEqualTo []) then { _group setCurrentWaypoint [_group, _array_wp select 0]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index aeef99174..36964312f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -32,11 +32,11 @@ btc_vehicles pushBackUnique _veh; _veh addMPEventHandler ["MPKilled", { if (isServer) then {_this call btc_fnc_eh_veh_killed}; }]; -if ((isNumber (configfile >> "CfgVehicles" >> typeOf _veh >> "ace_fastroping_enabled")) && !(typeOf _veh isEqualTo "RHS_UH1Y_d")) then { +if ((isNumber (configfile >> "CfgVehicles" >> typeOf _veh >> "ace_fastroping_enabled")) && (typeOf _veh isNotEqualTo "RHS_UH1Y_d")) then { [_veh] call ace_fastroping_fnc_equipFRIES }; if (btc_p_respawn_location > 1) then { - if !(fullCrew [_veh, "cargo", true] isEqualTo []) then { + if (fullCrew [_veh, "cargo", true] isNotEqualTo []) then { if ( (btc_p_respawn_location isEqualTo 2) && (_veh isKindOf "Air") || btc_p_respawn_location > 2 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 470e352ef..1df55d70c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -174,7 +174,7 @@ private _id = ["ace_tagCreated", { { _x params ["_tagPosASL", "_vectorDirAndUp", "_texture", "_typeObject", "_tagModel"]; private _object = objNull; - if !(_typeObject isEqualTo "") then { + if (_typeObject isNotEqualTo "") then { _object = nearestObject [ASLToATL _tagPosASL, _typeObject]; }; [_tagPosASL, _vectorDirAndUp, _texture, _object, objNull, "",_tagModel] call ace_tagging_fnc_createTag; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index a4fb42f72..91cf0490a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -45,7 +45,7 @@ if (_isContaminated) then { publicVariable "btc_chem_contaminated"; }; }; -if !(_magClass isEqualTo "") then {_obj setVariable ["ace_rearm_magazineClass", _magClass, true]}; +if (_magClass isNotEqualTo "") then {_obj setVariable ["ace_rearm_magazineClass", _magClass, true]}; if (getNumber(configFile >> "CfgVehicles" >> _type >> "isUav") isEqualTo 1) then { createVehicleCrew _obj; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 94fd21d78..188175772 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -174,7 +174,7 @@ private _id = ["ace_tagCreated", { { _x params ["_tagPosASL", "_vectorDirAndUp", "_texture", "_typeObject", "_tagModel"]; private _object = objNull; - if !(_typeObject isEqualTo "") then { + if (_typeObject isNotEqualTo "") then { _object = nearestObject [ASLToATL _tagPosASL, _typeObject]; }; [_tagPosASL, _vectorDirAndUp, _texture, _object, objNull, "",_tagModel] call ace_tagging_fnc_createTag; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index f7117b3c3..79b66b02d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -161,7 +161,7 @@ profileNamespace setVariable [format ["btc_hm_%1_vehs", _name], _array_veh]; private _array_obj = []; { private _data = [_x] call btc_fnc_db_saveObjectStatus; - if !(_data isEqualTo []) then { + if (_data isNotEqualTo []) then { _array_obj pushBack _data; }; } forEach (btc_log_obj_created select { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf index 2c5a1bd7f..f793dd94f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf @@ -32,7 +32,7 @@ private _cfgVehicles = configFile >> "CfgVehicles"; private _typeof = typeOf _x; private _alpha = 1; - if !((_owners select _forEachindex) isEqualTo 2) then { + if ((_owners select _forEachindex) isNotEqualTo 2) then { _alpha = 0.3; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/removePersistOnLocalityChange.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/removePersistOnLocalityChange.sqf index 92785ef14..a0ad3a88a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/removePersistOnLocalityChange.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/removePersistOnLocalityChange.sqf @@ -37,7 +37,7 @@ if (btc_debug_log) then { [format ["%1: EH = %2, fnc = %3, isR = %4, IDs %5", _object, _EH_name, _EH_fnc, isRemoteExecuted, _EH_IDs], __FILE__, [false]] call btc_fnc_debug_message; }; -if !(_EH_IDs isEqualTo []) then { +if (_EH_IDs isNotEqualTo []) then { _object removeEventHandler [_EH_name, _EH_IDs select 0]; if (count _EH_IDs > 1) then { _object removeEventHandler ["Local", _EH_IDs select 1]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 48aa8b277..3199aad09 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -60,9 +60,9 @@ if (btc_p_set_skill) then { ["btc_delay_vehicleInit", btc_fnc_patrol_addEH] call CBA_fnc_addEventHandler; ["ace_killed", { params ["_unit"]; - if (!(side group _unit isEqualTo civilian)) exitWith {}; + if (side group _unit isNotEqualTo civilian) exitWith {}; private _vehicle = assignedVehicle _unit; - if !(_vehicle isEqualTo objNull) then { + if (_vehicle isNotEqualTo objNull) then { [[], [_vehicle]] call btc_fnc_delete; }; }] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_add_respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_add_respawn.sqf index 1119ccd3b..396d789f6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_add_respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_add_respawn.sqf @@ -40,10 +40,10 @@ _vehProperties set [5, false]; _vehicle setVariable ["data_respawn", [_type, _pos, _dir, _time, _vector] + _vehProperties]; -if ((isNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "ace_fastroping_enabled")) && !(typeOf _vehicle isEqualTo "RHS_UH1Y_d")) then {[_vehicle] call ace_fastroping_fnc_equipFRIES}; +if ((isNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "ace_fastroping_enabled")) && (typeOf _vehicle isNotEqualTo "RHS_UH1Y_d")) then {[_vehicle] call ace_fastroping_fnc_equipFRIES}; _vehicle addMPEventHandler ["MPKilled", {if (isServer) then {[_this select 0] call btc_fnc_eh_veh_respawn};}]; if (btc_p_respawn_location > 0) then { - if !(fullCrew [_vehicle, "cargo", true] isEqualTo []) then { + if (fullCrew [_vehicle, "cargo", true] isNotEqualTo []) then { [btc_player_side, _vehicle] call BIS_fnc_addRespawnPosition; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_respawn.sqf index 8a7aa144f..1914f42a9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_respawn.sqf @@ -58,13 +58,13 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); _vehicle setDir _dir; _vehicle setPosASL _pos; _vehicle setVectorDirAndUp _vectorPos; - + if (getNumber(configFile >> "CfgVehicles" >> _type >> "isUav") isEqualTo 1) then { createVehicleCrew _vehicle; }; [_vehicle, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; - if !(_EDENinventory isEqualTo []) then { + if (_EDENinventory isNotEqualTo []) then { _vehicle setVariable ["btc_EDENinventory", _EDENinventory]; [_vehicle, _EDENinventory] call btc_fnc_log_setCargo; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf index 49fd388c6..27641c788 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf @@ -35,6 +35,6 @@ if (btc_debug_log) then { [format ["START CITY ID %1", _city getVariable "id"], __FILE__, [false]] call btc_fnc_debug_message; }; -private _ieds_check = _ieds select {!((_x select 2) isEqualTo objNull)}; +private _ieds_check = _ieds select {(_x select 2) isNotEqualTo objNull}; [_city, _ieds, _ieds_check] call btc_fnc_ied_checkLoop; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf index b54719a33..38d6238bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf @@ -59,7 +59,7 @@ Author: _x params ["_wreck", "_type", "_ied"]; if (!isNull _wreck && {alive _wreck}) then { - _data pushBack [getPosATL _wreck, _type, getDir _wreck, !(_ied isEqualTo objNull)]; + _data pushBack [getPosATL _wreck, _type, getDir _wreck, _ied isNotEqualTo objNull]; deleteVehicle _ied; deleteVehicle _wreck; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suiciderLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suiciderLoop.sqf index 3367982f2..385440fca 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suiciderLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suiciderLoop.sqf @@ -24,7 +24,7 @@ Author: params ["_suicider"]; if (alive _suicider && !isNull _suicider) then { - if !((_suicider nearEntities ["SoldierWB", 25]) isEqualTo []) exitWith { + if ((_suicider nearEntities ["SoldierWB", 25]) isNotEqualTo []) exitWith { _suicider call btc_fnc_ied_suicider_active; }; _this call btc_fnc_ied_suiciderLoop; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_activeLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_activeLoop.sqf index ef2f4b7ef..3c0557708 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_activeLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_activeLoop.sqf @@ -26,7 +26,7 @@ Author: if (alive _suicider) then { private _array = _suicider nearEntities ["SoldierWB", 30]; - if !(_array isEqualTo []) then { + if (_array isNotEqualTo []) then { _suicider doMove (position (_array select 0)); }; _this call btc_fnc_ied_suicider_activeLoop; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf index 162e48793..4709693f9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf @@ -30,7 +30,7 @@ params [ if (_is_real) then { private _array = (position player) nearEntities [btc_type_units, 2500]; - if !(_array isEqualTo []) then { + if (_array isNotEqualTo []) then { private _man = _array select 0; private _dist = (player distance _man) + (random 150) - (random 150); private _dir = player getDir _man; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 08090acae..0910e4b26 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -117,7 +117,7 @@ _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui { //Actions attachted to AI _action = ["Civil_Orders", localize "STR_BTC_HAM_ACTION_ORDERS_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Civil_taxi", localize "STR_BTC_HAM_ACTION_ORDERS_TAXI", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk4_ca.paa", {[4, _target] call btc_fnc_int_orders;}, {(alive _target) && !((vehicle _target) isEqualTo _target)}] call ace_interact_menu_fnc_createAction; + _action = ["Civil_taxi", localize "STR_BTC_HAM_ACTION_ORDERS_TAXI", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk4_ca.paa", {[4, _target] call btc_fnc_int_orders;}, {(alive _target) && (vehicle _target) isNotEqualTo _target}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions", "Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["Civil_Stop", localize "STR_BTC_HAM_ACTION_ORDERS_STOP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk3_ca.paa", {[1, _target] call btc_fnc_int_orders;}, {alive _target}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions", "Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass; @@ -187,13 +187,13 @@ _actions pushBack ["FOB", localize "STR_BTC_HAM_ACTION_REDEPLOYFOB", "\A3\Ui_f\d //Arsenal //BIS if (btc_p_arsenal_Type < 3) then { - btc_gear_object addAction [localize "STR_BTC_HAM_ACTION_ARSENAL_OPEN_BIS", "['Open', [!(btc_p_arsenal_Restrict isEqualTo 1), _this select 0]] call bis_fnc_arsenal;"]; + btc_gear_object addAction [localize "STR_BTC_HAM_ACTION_ARSENAL_OPEN_BIS", "['Open', [btc_p_arsenal_Restrict isNotEqualTo 1, _this select 0]] call bis_fnc_arsenal;"]; }; //ACE if (btc_p_arsenal_Type > 0) then { - [btc_gear_object, !(btc_p_arsenal_Restrict isEqualTo 1), false] call ace_arsenal_fnc_initBox; + [btc_gear_object, btc_p_arsenal_Restrict isNotEqualTo 1, false] call ace_arsenal_fnc_initBox; if (btc_p_arsenal_Type in [2, 4]) then { btc_gear_object addAction [localize "STR_BTC_HAM_ACTION_ARSENAL_OPEN_ACE", "[btc_gear_object, player] call ace_arsenal_fnc_openBox;"]; }; }; -if !(btc_p_arsenal_Restrict isEqualTo 0) then {[btc_gear_object, btc_p_arsenal_Type, btc_p_arsenal_Restrict, btc_custom_arsenal] call btc_fnc_arsenal_data;}; +if (btc_p_arsenal_Restrict isNotEqualTo 0) then {[btc_gear_object, btc_p_arsenal_Type, btc_p_arsenal_Restrict, btc_custom_arsenal] call btc_fnc_arsenal_data;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf index fac66bebf..2664e61ec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf @@ -48,6 +48,6 @@ btc_ropes_deployed = false; player removeAction btc_lift_action; player removeAction btc_lift_action_hud; -if !(ropes _heli isEqualTo []) then { +if (ropes _heli isNotEqualTo []) then { {ropeDestroy _x;} forEach ropes _heli; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/destroyRopes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/destroyRopes.sqf index e35517605..b27725bb8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/destroyRopes.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/destroyRopes.sqf @@ -31,7 +31,7 @@ btc_lifted = false; player removeAction btc_lift_action; player removeAction btc_lift_action_hud; -if !(ropes _heli isEqualTo []) then { +if (ropes _heli isNotEqualTo []) then { { ropeDestroy _x; } forEach ropes _heli; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf index 1fd010c5a..46867c139 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf @@ -41,7 +41,7 @@ private _cargo = _cargo_array select 0; private _cfgVehicles = configFile >> "CfgVehicles"; private _bbr = getArray (_cfgVehicles >> typeOf _cargo >> "slingLoadCargoMemoryPoints"); private _ropes_check = []; -if !(_bbr isEqualTo []) then { +if (_bbr isNotEqualTo []) then { { _ropes_check pushBack (ropeCreate [_chopper, "slingload0", _cargo, _x, 11]); } forEach _bbr; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index a45acb132..07bdc69fe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -51,7 +51,7 @@ _veh setDir _dir; _veh setPosASL _pos; [_veh, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; -if !(_EDENinventory isEqualTo []) then { +if (_EDENinventory isNotEqualTo []) then { _veh setVariable ["btc_EDENinventory", _EDENinventory]; [_veh, _EDENinventory] call btc_fnc_log_setCargo; }; @@ -62,7 +62,7 @@ if (getNumber(configFile >> "CfgVehicles" >> typeOf _veh >> "isUav") isEqualTo 1 createVehicleCrew _veh; }; -if !(_allHitPointsDamage isEqualTo []) then { +if (_allHitPointsDamage isNotEqualTo []) then { {//Disable explosion effect on vehicle creation [_veh, _forEachindex, _x, false] call ace_repair_fnc_setHitPointDamage; } forEach (_allHitPointsDamage select 2); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf index 9a7ae4293..5d9ddc165 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf @@ -42,7 +42,7 @@ private _rearming_magazines = []; private _pylonMagazine = (getPylonMagazines _vehicle) select (_pylonIndex - 1); // Only care about pylons that have a magazine. - if (!(_pylonMagazine isEqualTo "")) then { + if ((_pylonMagazine isNotEqualTo "")) then { _magazineInfo pushBack _pylonMagazine; }; } forEach _pylonConfigs; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf index 3cb1e25cc..478bfd858 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf @@ -39,7 +39,7 @@ private _rpos = [_pos, _area] call btc_fnc_randomize_pos; switch (true) do { case (_wp <= _wp_house_probability) : { private _houses = [_city, _area] call btc_fnc_getHouses; - if !(_houses isEqualTo []) then { + if (_houses isNotEqualTo []) then { private _house = selectRandom _houses; [_group, _house] call btc_fnc_house_addWP; _group setVariable ["btc_inHouse", typeOf _house]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/ammoUsage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/ammoUsage.sqf index 77dc9d76d..ec26d8baa 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/ammoUsage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/ammoUsage.sqf @@ -34,4 +34,4 @@ if (btc_debug_log) then { [format ["%1 Weapons: %2 isAmmoUsage: %3", _typeof_unit, _weapons, _weapons_ammoUsage], __FILE__, [false]] call btc_fnc_debug_message; }; -!(_weapons_ammoUsage isEqualTo []) +_weapons_ammoUsage isNotEqualTo [] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf index 69ff82e94..ecb78a576 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf @@ -123,14 +123,14 @@ if !(_en_AA) then { _type_units = _type_units select {!([_x, ["MissileLauncher", "256"]] call btc_fnc_mil_ammoUsage)}; }; _type_units = _type_units select { - !(getText (_cfgVehicles >> _x >> "role") isEqualTo "Crewman") && + (getText (_cfgVehicles >> _x >> "role") isNotEqualTo "Crewman") && ((_x find "_Survivor_") isEqualTo -1) && ((_x find "_Story") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && - !(getText (_cfgVehicles >> _x >> "vehicleClass") isEqualTo "MenVR") + (getText (_cfgVehicles >> _x >> "vehicleClass") isNotEqualTo "MenVR") }; _type_crewmen = _type_units select 0; -_type_motorized = _type_motorized select {!(getNumber (_cfgVehicles >> _x >> "isUav") isEqualTo 1)}; -_type_motorized_armed = _type_motorized_armed select {!(getNumber (_cfgVehicles >> _x >> "isUav") isEqualTo 1)}; +_type_motorized = _type_motorized select {getNumber (_cfgVehicles >> _x >> "isUav") isNotEqualTo 1}; +_type_motorized_armed = _type_motorized_armed select {getNumber (_cfgVehicles >> _x >> "isUav") isNotEqualTo 1}; [_enemy_side, _type_units, _type_divers, _type_crewmen, _type_boats, _type_motorized, _type_motorized_armed, _type_mg, _type_gl] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf index 38bc67094..2d0560846 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf @@ -30,7 +30,7 @@ private _cfgVehicles = configFile >> "CfgVehicles"; private _structures = (nearestTerrainObjects [_pos, ["House", "BUNKER", "FORTRESS"], _radius]) select {getText(_cfgVehicles >> typeOf _x >> "editorSubcategory") isEqualTo "EdSubcat_Military"}; private _useful = _structures select {( - !((_x buildingPos -1) isEqualTo []) && + (_x buildingPos -1) isNotEqualTo [] && {damage _x isEqualTo 0} )}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf index de48377d8..8df2f9045 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf @@ -24,7 +24,7 @@ Author: params ["_unit", "_causeOfDeath", "_killer", "_instigator"]; -if !(side group _unit isEqualTo btc_enemy_side) exitWith {}; +if (side group _unit isNotEqualTo btc_enemy_side) exitWith {}; if (random 100 > btc_info_intel_chance) then { _unit setVariable ["intel", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf index a504703ca..8b2e9401f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf @@ -49,7 +49,7 @@ _cities_dirTo = _cities select { private _ang = _active_city getDir _x; (abs(_ang - _dirTo) min (360 - abs(_ang - _dirTo)) < 45); }; -if !(_cities_dirTo isEqualTo []) then { +if (_cities_dirTo isNotEqualTo []) then { _cities = _cities_dirTo; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf index 76ce3dc5e..e311bf700 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf @@ -31,9 +31,9 @@ private _players = if (isMultiplayer) then {playableUnits} else {switchableunits //is there an hideout close by? private _start_pos = objNull; private _hideouts = btc_hideouts inAreaArray [_pos, 2000, 2000]; -if !(_hideouts isEqualTo []) then { +if (_hideouts isNotEqualTo []) then { _hideouts = _hideouts select {_players inAreaArray [getPosWorld _hideout, 500, 500] isEqualTo []}; - if !(_hideouts isEqualTo []) then {_start_pos = selectRandom _hideouts}; + if (_hideouts isNotEqualTo []) then {_start_pos = selectRandom _hideouts}; }; if (btc_debug_log) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/firednear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/firednear.sqf index 36a7e0c4e..dddf8a362 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/firednear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/firednear.sqf @@ -42,7 +42,7 @@ if (_ammo isKindOf "SmokeShell") exitWith {}; _civ removeEventHandler ["FiredNear", _thisEventHandler]; -if (!(side group _civ isEqualTo civilian) || (random 3 < 1)) exitWith {}; +if ((side group _civ isNotEqualTo civilian) || (random 3 < 1)) exitWith {}; [_civ, selectRandom ["ApanPknlMstpSnonWnonDnon_G01", "ApanPknlMstpSnonWnonDnon_G02", "ApanPknlMstpSnonWnonDnon_G03", "ApanPpneMstpSnonWnonDnon_G01", "ApanPpneMstpSnonWnonDnon_G02", "ApanPpneMstpSnonWnonDnon_G03"], 1] call ace_common_fnc_doAnimation; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf index 0d5df13a0..b71faccaa 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf @@ -37,7 +37,7 @@ private _isAgent = isAgent teamMember _unit; if ( !_isAgent && { _part isEqualTo "" || - {!(side group _unit isEqualTo civilian)} + {side group _unit isNotEqualTo civilian} } ) exitWith {_dam}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf index e53082623..fa1aa12d3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf @@ -24,7 +24,7 @@ Author: params ["_unit", "_causeOfDeath", "_killer", "_instigator"]; if ( - !(side group _unit isEqualTo civilian) && + (side group _unit isNotEqualTo civilian) && {!isAgent teamMember _unit} ) exitWith {}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf index 2d149fca8..e4461a53a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf @@ -96,7 +96,7 @@ for "_i" from 0 to (1 + round random 2) do { if ( _explosive && {_damage > 0.6} && - {!(_destroy_taskID call BIS_fnc_taskState isEqualTo "CANCELED")} + {_destroy_taskID call BIS_fnc_taskState isNotEqualTo "CANCELED"} ) then { private _pos = getPos _box; [_destroy_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 9d51c8bb1..8989f9c7c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -70,7 +70,7 @@ private _markers = [_marker1, _marker2, _area]; private _veh_types = btc_civ_type_veh select {!(_x isKindOf "air")}; private _agent = [btc_fnc_info_path, [_pos1, _pos2, _taskID, _veh_types select 0]] call CBA_fnc_directCall; -waitUntil {!((_agent getVariable ["btc_path", []]) isEqualTo [])}; +waitUntil {(_agent getVariable ["btc_path", []]) isNotEqualTo []}; private _path = _agent getVariable ["btc_path", []]; if (count _path <= 35) exitWith { _markers append (allMapMarkers select {(_x select [0, count _taskID]) isEqualTo _taskID}); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf index aea6e6b02..870e68fe8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf @@ -96,7 +96,7 @@ for "_i" from 1 to (1 + round random 2) do { private _pos = getPos _boxe; waitUntil {sleep 5; _destroy_taskID call BIS_fnc_taskCompleted || !(alive _boxe)}; - if !(_destroy_taskID call BIS_fnc_taskState isEqualTo "CANCELED") then { + if (_destroy_taskID call BIS_fnc_taskState isNotEqualTo "CANCELED") then { [_destroy_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; private _fx = "test_EmptyObjectForSmoke" createVehicle _pos; _fx setPos _pos; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf index c34751370..facd4ab5d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf @@ -62,7 +62,7 @@ for "_i" from -_number_of_fences to _number_of_fences do { [_barrier, 0, [_i * _distance_between_fences, _offset, 0]], [_barrier, 90, [ -_offset, _i * _distance_between_fences, 0]] ]; - if !(_i isEqualTo 4) then { + if (_i isNotEqualTo 4) then { _composition_pattern pushBack [_barrier, 90, [_offset, _i * _distance_between_fences, 0]]; if (random 1 > 0.7) then { _composition_pattern append [ @@ -158,7 +158,7 @@ private _bring_taskID = _taskID + "br"; waitUntil {sleep 5; ( _taskID call BIS_fnc_taskCompleted || - !((nearestObjects [_pos, btc_containers_mat, 200]) isEqualTo []) + (nearestObjects [_pos, btc_containers_mat, 200]) isNotEqualTo [] )}; if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {[[], _composition_objects + _chemical] call btc_fnc_delete;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf index 8940f6257..4ce541eb5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf @@ -82,7 +82,7 @@ _unit setUnitPos "DOWN"; sleep 1; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !(playableUnits inAreaArray [getPosWorld _unit, 5000, 5000] isEqualTo []))}; +waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || playableUnits inAreaArray [getPosWorld _unit, 5000, 5000] isNotEqualTo [])}; [_unit] call btc_fnc_set_damage; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf index 6e64e9b1a..c2fc8c9d8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf @@ -53,7 +53,7 @@ _unit moveinCargo [_veh, _index]; [_taskID, 10, _unit, [_city getVariable "name", _veh_type]] call btc_fnc_task_create; sleep 1; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !(playableUnits inAreaArray [getPosWorld _unit, 5000, 5000] isEqualTo []))}; +waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || playableUnits inAreaArray [getPosWorld _unit, 5000, 5000] isNotEqualTo [])}; [_unit] call btc_fnc_set_damage; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf index 3b65ba409..e10469639 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf @@ -70,7 +70,7 @@ private _markers = [_marker1, _marker2, _area]; private _veh_types = btc_type_motorized select {!(_x isKindOf "air")}; private _agent = [btc_fnc_info_path, [_pos1, _pos2, _taskID, _veh_types select 0]] call CBA_fnc_directCall; -waitUntil {!((_agent getVariable ["btc_path", []]) isEqualTo [])}; +waitUntil {(_agent getVariable ["btc_path", []]) isNotEqualTo []}; private _path = _agent getVariable ["btc_path", []]; if (count _path <= 35) exitWith { _markers append (allMapMarkers select {(_x select [0, count _taskID]) isEqualTo _taskID}); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf index b90e7a388..7d85f2d3b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf @@ -74,7 +74,7 @@ for "_i" from -_number_of_fences to _number_of_fences do { [_fence, 0, [_i * _distance_between_fences, _offset, 0]], [_fence, 90, [ -_offset, _i * _distance_between_fences, 0]] ]; - if !(_i isEqualTo 1) then { + if (_i isNotEqualTo 1) then { _composition_pattern pushBack [_fence, 90, [_offset, _i * _distance_between_fences, 0]]; }; @@ -105,7 +105,7 @@ for "_i" from 1 to (5 + round random 5) do { }; }; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !(playableUnits inAreaArray [_pos, 100, 100] isEqualTo []))}; +waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || playableUnits inAreaArray [_pos, 100, 100] isNotEqualTo [])}; private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; for "_i" from 1 to (round random 2) do { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf index 4efdf1fa4..5fc201c52 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf @@ -32,7 +32,7 @@ private _useful = btc_city_all select { private _city = _x; ({ isOnRoad (_x select 0) || - {!(((_x select 0) nearRoads 6) isEqualTo [])} // Most IED are just next to road + {((_x select 0) nearRoads 6) isNotEqualTo []} // Most IED are just next to road } count (_city getVariable ["ieds", []])) >= _minNumberOfSubTask } }; @@ -40,7 +40,7 @@ if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; private _city = selectRandom _useful; private _ieds = (_city getVariable ["ieds", []]) select { isOnRoad (_x select 0) || - {!(((_x select 0) nearRoads 6) isEqualTo [])} + {((_x select 0) nearRoads 6) isNotEqualTo []} }; private _extra_ied = round random (((count _ieds) - _minNumberOfSubTask) min 2); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf index cf57c1ac5..5dbe2863a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf @@ -91,10 +91,10 @@ private _direction_composition = random 360; private _composition_objects = [_pos, _direction_composition, _composition] call btc_fnc_create_composition; btc_supplies_mat params ["_food", "_water"]; -waitUntil {sleep 5; (_move_taskID call BIS_fnc_taskCompleted || !((nearestObjects [_pos, [btc_supplies_cargo] + _food + _water, 30]) isEqualTo []))}; +waitUntil {sleep 5; (_move_taskID call BIS_fnc_taskCompleted || (nearestObjects [_pos, [btc_supplies_cargo] + _food + _water, 30]) isNotEqualTo [])}; private _drop_taskID = _taskID + "dr"; -if !(_move_taskID call BIS_fnc_taskState isEqualTo "CANCELED") then { +if (_move_taskID call BIS_fnc_taskState isNotEqualTo "CANCELED") then { [_move_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; [ [_drop_taskID, _taskID], 19, diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf index 8f67e68a1..c3f643763 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf @@ -33,7 +33,11 @@ private _city = selectRandom _useful; //// Choose a random position \\\\ private _objects = nearestObjects [getPos _city, [], 200]; -_objects = _objects select {!((str (_x) find "wreck") isEqualTo -1) || !((str (_x) find "broken") isEqualTo -1) || !((str (_x) find "rock") isEqualTo -1)}; +_objects = _objects select { + (str (_x) find "wreck") isNotEqualTo -1 || + (str (_x) find "broken") isNotEqualTo -1 || + (str (_x) find "rock") isNotEqualTo -1 +}; _objects = _objects select {(getPos _x select 2 < -3) && (((str (_x) find "car") isEqualTo -1) || ((str (_x) find "uaz") isEqualTo -1))}; private _wrecks = _objects select {(str (_x) find "rock") isEqualTo -1}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf index 08e62c6a5..a3cf6d9d4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf @@ -30,7 +30,7 @@ private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; private _roads = _pos nearRoads 300; -if !(_roads isEqualTo []) then {_pos = getPos (selectRandom _roads);}; +if (_roads isNotEqualTo []) then {_pos = getPos (selectRandom _roads);}; private _veh_type = selectRandom btc_civ_type_veh; private _veh = createVehicle [_veh_type, _pos, [], 0, "NONE"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/updateDevice.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/updateDevice.sqf index 2478109bf..cf50a78c4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/updateDevice.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/updateDevice.sqf @@ -63,7 +63,7 @@ btc_spect_updateOn = [{ ["_player", player, [objNull]] ]; - if !(((_player weaponAccessories currentWeapon _player) select 0) isEqualTo _accessorie) exitWith { + if (((_player weaponAccessories currentWeapon _player) select 0) isNotEqualTo _accessorie) exitWith { [] call btc_fnc_spect_disableDevice; [_player, currentWeapon _player] call btc_fnc_spect_updateDevice; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf index a878b96a9..db16d545a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf @@ -60,7 +60,7 @@ if (_array isEqualTo []) then { if !(surfaceIsWater _sel_pos) then { if (isNil "_road" || {isNull _road}) then { private _roads = _sel_pos nearRoads 50; - if !(_roads isEqualTo []) then { + if (_roads isNotEqualTo []) then { _road = selectRandom _roads; }; } else { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setState.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setState.sqf index d31501063..89367a8ef 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setState.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setState.sqf @@ -30,7 +30,7 @@ params [ private _subTasks = _task call BIS_fnc_taskChildren; if (_subTasks isEqualTo []) then { private _taskParent = _task call BIS_fnc_taskParent; - if !(_taskParent isEqualTo "") then { + if (_taskParent isNotEqualTo "") then { _task = _taskParent; _subTasks = _task call BIS_fnc_taskChildren; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf index 75c12a91a..83305ac6d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf @@ -25,7 +25,7 @@ params [ ["_tower", objNull, [objNull]] ]; -if !((isVehicleCargo btc_log_vehicle_selected) isEqualTo objNull) exitWith {(localize "STR_BTC_HAM_LOG_TOW_ALREADYTOWED") call CBA_fnc_notify;}; +if ((isVehicleCargo btc_log_vehicle_selected) isNotEqualTo objNull) exitWith {(localize "STR_BTC_HAM_LOG_TOW_ALREADYTOWED") call CBA_fnc_notify;}; if (_tower setVehicleCargo btc_log_vehicle_selected) exitWith {}; private _towing = _tower getVariable ["btc_towing", objNull]; From 8d9d73ab887f7f36f6522781067d9e7777a46476 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 15 Nov 2020 14:13:15 +0100 Subject: [PATCH 002/354] Use new command syntaxe units side --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/trackItem.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf index bc7b7fe6b..09460286d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf @@ -26,7 +26,7 @@ params [ ["_position_evac", [], [[]]] ]; -private _civilians = (allUnits select {side _x isEqualTo civilian}) inAreaArray [_position, 200, 200]; +private _civilians = (units civilian) inAreaArray [_position, 200, 200]; if (_position_evac isEqualTo []) then { private _safe = (nearestTerrainObjects [_position, ["CHURCH", "CHAPEL"], 400]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/trackItem.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/trackItem.sqf index 9c8a46076..99bb58676 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/trackItem.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/trackItem.sqf @@ -68,7 +68,7 @@ params [ ]; _thisArgs params ["_dogTag", "_taskID"]; - if (!(_taskID call BIS_fnc_taskCompleted) && {(allunits + vehicles) findif {_dogTag in itemCargo _x} isEqualTo -1}) then { + if (!(_taskID call BIS_fnc_taskCompleted) && {(allUnits + vehicles) findif {_dogTag in itemCargo _x} isEqualTo -1}) then { [_taskID, "FAILED"] call BIS_fnc_taskSetState; }; }, [_dogTag, _taskID]] remoteExecCall ["CBA_fnc_addBISEventHandler", 0]; From 91903a7c2f2cf5d6109efc7152964bb3321a2f51 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 15 Nov 2020 14:33:26 +0100 Subject: [PATCH 003/354] Use new syntax configOf --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- .../core/fnc/common/setVehProperties.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf | 5 ++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hudLoop.sqf | 2 +- .../core/fnc/log/createVehicle.sqf | 2 +- .../core/fnc/log/refuelSource.sqf | 2 +- .../core/fnc/mil/getStructures.sqf | 3 +-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf | 2 +- .../core/fnc/veh/addRespawn.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf | 2 +- 12 files changed, 13 insertions(+), 15 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index f069d90f4..f864d636c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -597,7 +597,7 @@ btc_fnc_lift_getLiftable = { _array = ["Motorcycle", "ReammoBox", "ReammoBox_F", "StaticWeapon", "Car", "Truck", "Wheeled_APC_F", "Tracked_APC", "APC_Tracked_01_base_F", "APC_Tracked_02_base_F", "Air", "Ship", "Tank"] + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5); }; default { - private _MaxCargoMass = getNumber (configFile >> "CfgVehicles" >> typeOf _chopper >> "slingLoadMaxCargoMass"); + private _MaxCargoMass = getNumber (configOf _chopper >> "slingLoadMaxCargoMass"); switch (true) do { case (_MaxCargoMass <= 510) : { _array = ["Motorcycle", "ReammoBox", "ReammoBox_F", "Quadbike_01_base_F", "Strategic"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf index 552490a38..8cfddadf1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf @@ -60,7 +60,7 @@ if !(_fuelSource isEqualTo []) then { }; }; if !(_pylons isEqualTo []) then { - private _pylonPaths = (configProperties [configFile >> "CfgVehicles" >> typeOf _vehicle >> "Components" >> "TransportPylonsComponent" >> "Pylons", "isClass _x"]) apply {getArray (_x >> "turret")}; + private _pylonPaths = (configProperties [configOf _vehicle >> "Components" >> "TransportPylonsComponent" >> "Pylons", "isClass _x"]) apply {getArray (_x >> "turret")}; { _vehicle removeWeaponGlobal getText (configFile >> "CfgMagazines" >> _x >> "pylonWeapon") } forEach getPylonMagazines _vehicle; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index 37216b336..477f14dec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -39,7 +39,7 @@ _veh addMPEventHandler ["MPKilled", { _this call btc_fnc_veh_killed; }; }]; -if ((isNumber (configfile >> "CfgVehicles" >> typeOf _veh >> "ace_fastroping_enabled")) && !(typeOf _veh isEqualTo "RHS_UH1Y_d")) then { +if ((isNumber (configOf _veh >> "ace_fastroping_enabled")) && !(typeOf _veh isEqualTo "RHS_UH1Y_d")) then { [_veh] call ace_fastroping_fnc_equipFRIES }; if (btc_p_respawn_location > 1) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf index 2c5a1bd7f..9743b5191 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf @@ -73,7 +73,7 @@ private _cfgVehicles = configFile >> "CfgVehicles"; private _agent = agent _x; if !(isNull _agent) then { _display drawIcon [ - getText (_cfgVehicles >> typeOf _agent >> "Icon"), + getText (configOf _agent >> "Icon"), [0.5, 0.5, 0.5, [1, 0.3] select (local _agent)], visiblePosition _agent, 20, diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf index 1fd010c5a..3175a92de 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf @@ -38,8 +38,7 @@ private _cargo = _cargo_array select 0; {ropeDestroy _x;} forEach ropes _chopper; -private _cfgVehicles = configFile >> "CfgVehicles"; -private _bbr = getArray (_cfgVehicles >> typeOf _cargo >> "slingLoadCargoMemoryPoints"); +private _bbr = getArray (configOf _cargo >> "slingLoadCargoMemoryPoints"); private _ropes_check = []; if !(_bbr isEqualTo []) then { { @@ -79,7 +78,7 @@ if (btc_debug) then { [format ["boundingBoxReal : %1 rope length : %2", _bbr, _rope_length], __FILE__, [btc_debug, false]] call btc_fnc_debug_message; }; -private _max_cargo = getNumber (_cfgVehicles >> typeOf _chopper >> "slingLoadMaxCargoMass"); +private _max_cargo = getNumber (configOf _chopper >> "slingLoadMaxCargoMass"); private _mass = getMass _cargo; [_cargo, clientOwner] remoteExecCall ["setOwner", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hudLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hudLoop.sqf index 2ede9181d..43cf59a12 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hudLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hudLoop.sqf @@ -59,7 +59,7 @@ if (!isNull _cargo) then { _obj_img ctrlSetPosition [_hud_x_1, _hud_y_1]; _obj_img ctrlCommit 0; private _pic_cargo = ""; - private _cfgVehicles_cargo = configFile >> "CfgVehicles" >> typeOf _cargo; + private _cfgVehicles_cargo = configOf _cargo; if (_cargo isKindOf "LandVehicle") then { _pic_cargo = getText (_cfgVehicles_cargo >> "picture"); }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index a45acb132..ff346a94a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -58,7 +58,7 @@ if !(_EDENinventory isEqualTo []) then { _veh setVariable ["btc_dont_delete", true]; -if (getNumber(configFile >> "CfgVehicles" >> typeOf _veh >> "isUav") isEqualTo 1) then { +if (getNumber (configOf _veh >> "isUav") isEqualTo 1) then { createVehicleCrew _veh; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf index b94e3ec6c..0ae8037da 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf @@ -36,7 +36,7 @@ private _failNotify = [ if (_array isEqualTo []) exitWith {_failNotify call CBA_fnc_notify;}; private _fuelSource = _array select 0; -private _default_fuelCargo = getNumber (configFile >> "CfgVehicles" >> typeOf _fuelSource >> "ace_refuel_fuelCargo"); +private _default_fuelCargo = getNumber (configOf _fuelSource >> "ace_refuel_fuelCargo"); if (_default_fuelCargo <= 0) exitWith {_failNotify call CBA_fnc_notify;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf index 38bc67094..46acc0733 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf @@ -26,8 +26,7 @@ params [ ["_radius", 100, [0]] ]; -private _cfgVehicles = configFile >> "CfgVehicles"; -private _structures = (nearestTerrainObjects [_pos, ["House", "BUNKER", "FORTRESS"], _radius]) select {getText(_cfgVehicles >> typeOf _x >> "editorSubcategory") isEqualTo "EdSubcat_Military"}; +private _structures = (nearestTerrainObjects [_pos, ["House", "BUNKER", "FORTRESS"], _radius]) select {getText(configOf _x >> "editorSubcategory") isEqualTo "EdSubcat_Military"}; private _useful = _structures select {( !((_x buildingPos -1) isEqualTo []) && diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index 7e578d0d8..d717b93d8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -39,7 +39,7 @@ _city setVariable ["spawn_more", true]; private _heli_type = typeOf selectRandom ((btc_vehicles + btc_helo) select { _x isKindOf "air" && - getNumber(configFile >> "CfgVehicles" >> typeOf _x >> "isUav") isEqualTo 0 + getNumber(configOf _x >> "isUav") isEqualTo 0 }); private _heli = createVehicle [_heli_type, _pos, [], 0, "NONE"]; _heli setVariable ["btc_dont_delete", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 9ed468933..d0d7a9295 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -40,7 +40,7 @@ _vehProperties set [5, false]; _vehicle setVariable ["data_respawn", [_type, _pos, _dir, _time, _vector] + _vehProperties]; -if ((isNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "ace_fastroping_enabled")) && !(typeOf _vehicle isEqualTo "RHS_UH1Y_d")) then {[_vehicle] call ace_fastroping_fnc_equipFRIES}; +if ((isNumber (configOf _vehicle >> "ace_fastroping_enabled")) && !(typeOf _vehicle isEqualTo "RHS_UH1Y_d")) then {[_vehicle] call ace_fastroping_fnc_equipFRIES}; _vehicle addMPEventHandler ["MPKilled", { params ["_unit"]; if ( diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf index 36c925c2e..0f18fc7ac 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf @@ -33,7 +33,7 @@ params [ private _marker = createMarker [format ["m_%1", _vehicle], getPos _vehicle]; _marker setMarkerType "mil_box"; _marker setMarkerColor "ColorRed"; -[_marker, "STR_BTC_HAM_O_EH_VEHKILLED_MRK", getText (configFile >> "cfgVehicles" >> typeOf _vehicle >> "displayName")] remoteExecCall ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; // %1 wreck +[_marker, "STR_BTC_HAM_O_EH_VEHKILLED_MRK", getText (configOf _vehicle >> "displayName")] remoteExecCall ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; // %1 wreck _vehicle setVariable ["marker", _marker]; if (_allowRepChange) then { From 13eed284a44850bd046fa7ef33d1944054b74913 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 18 Nov 2020 13:14:24 +0100 Subject: [PATCH 004/354] Triggers are now created locally --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- .../core/fnc/city/trigger_player_side.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf | 2 +- .../core/fnc/ied/suicider_active.sqf | 2 +- .../core/fnc/side/capture_officer.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 8be759ff1..3e1f2fad3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -248,7 +248,7 @@ if !(_city getVariable ["has_suicider", false]) then { params ["_has_en", "_city", "_radius", "_id"]; if (_has_en) then { - private _trigger = createTrigger ["EmptyDetector", getPos _city]; + private _trigger = createTrigger ["EmptyDetector", getPos _city, false]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "NOT PRESENT", false]; _trigger setTriggerStatements ["this", format ["[%1] call btc_fnc_city_set_clear", _id], ""]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf index ec1708524..72c88bf93 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf @@ -36,7 +36,7 @@ params [ ["_id", 0, [0]] ]; -private _trigger = createTrigger ["EmptyDetector", _position]; +private _trigger = createTrigger ["EmptyDetector", _position, false]; _trigger setTriggerArea [_radius + btc_city_radius, _radius + btc_city_radius, 0, false]; _trigger setTriggerActivation ["ANYPLAYER", "PRESENT", true]; _trigger setTriggerStatements [btc_p_trigger, format ["[%1] call btc_fnc_city_activate", _id], format ["[%1] call btc_fnc_city_de_activate", _id]]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf index 2c27f28a9..af23210e9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf @@ -27,7 +27,7 @@ params [ [group _driver_drone] call CBA_fnc_clearWaypoints; -private _trigger = createTrigger ["EmptyDetector", getPos _driver_drone]; +private _trigger = createTrigger ["EmptyDetector", getPos _driver_drone, false]; _trigger setTriggerArea [10, 10, 0, false, -60]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", true]; _trigger setTriggerStatements ["this", "[thisTrigger] call btc_fnc_ied_drone_fire;", ""]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf index 1a015db95..c61ffc111 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf @@ -30,7 +30,7 @@ _group setVariable ["suicider", true]; [group _suicider] call CBA_fnc_clearWaypoints; -private _trigger = createTrigger ["EmptyDetector", getPos _suicider]; +private _trigger = createTrigger ["EmptyDetector", getPos _suicider, false]; _trigger setTriggerArea [5, 5, 0, false]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", false]; _trigger setTriggerStatements ["this", "thisTrigger call btc_fnc_ied_allahu_akbar;", ""]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 446b79f43..b80c2488e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -121,7 +121,7 @@ for "_i" from 1 to _convoyLength do { private _back_taskID = _taskID + "bk"; //// Create trigger \\\\ - private _trigger = createTrigger ["EmptyDetector", _captive]; + private _trigger = createTrigger ["EmptyDetector", _captive, false]; _trigger setVariable ["captive", _captive]; _trigger setTriggerArea [15, 15, 0, false]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf index 118044acc..d0ee4ade3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf @@ -68,7 +68,7 @@ private _group = []; _grp setVariable ["no_cache", true]; } forEach (_buildingPos - [_pos]); -_trigger = createTrigger ["EmptyDetector", _pos]; +_trigger = createTrigger ["EmptyDetector", _pos, false]; _trigger setVariable ["group", _group]; _trigger setTriggerArea [20, 20, 0, false]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf index c65296c19..b52b08305 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf @@ -80,7 +80,7 @@ private _group = []; _grp setVariable ["no_cache", true]; } forEach (_buildingPos - [_pos]); -_trigger = createTrigger ["EmptyDetector", _pos]; +_trigger = createTrigger ["EmptyDetector", _pos, false]; _trigger setVariable ["group", _group]; _trigger setTriggerArea [20, 20, 0, false]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index 7e578d0d8..0146ab741 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -80,7 +80,7 @@ private _triggers = []; _x setUnitPos "DOWN"; _units pushBack _x; //// Create trigger \\\\ - private _trigger = createTrigger ["EmptyDetector", getPos _city]; + private _trigger = createTrigger ["EmptyDetector", getPos _city, false]; _trigger setVariable ["unit", _x]; _trigger setTriggerArea [50, 50, 0, false, 10]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", false]; From 627ba6f1b728da9d508cc431a8d3a440ae271cb8 Mon Sep 17 00:00:00 2001 From: Jiang Jinhong Date: Fri, 8 Jan 2021 15:29:18 +0800 Subject: [PATCH 005/354] Add: Enemy will surrender when city becomes free If enemy amount is less than (3 + random 3), city will becomes free and remaining enemies will surrender. I'm new on coding, so this might need to be carefully reviewed. --- .../core/fnc/city/activate.sqf | 5 +++-- .../core/fnc/city/set_clear.sqf | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index d33a61033..a1bf2e219 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -268,8 +268,9 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { if (_has_en) then { private _trigger = createTrigger ["EmptyDetector", getPos _city]; _trigger setTriggerArea [_radius, _radius, 0, false]; - _trigger setTriggerActivation [str btc_enemy_side, "NOT PRESENT", false]; - _trigger setTriggerStatements ["this", format ["[%1] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; + _trigger setTriggerInterval 15; + _trigger setTriggerStatements ["(count thisList) < (3 + random 3)", format ["[%1] call btc_fnc_city_set_clear", _id], ""]; _city setVariable ["trigger", _trigger]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 932b29f1f..f382ac0bd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -38,3 +38,15 @@ if (btc_final_phase) then { if (btc_debug) then { (format ["loc_%1", _id]) setMarkerColor "ColorGreen"; }; + +{ + private _vehicle = vehicle _x; + if (getNumber (_cfgVehicles >> _vehicle >> "isUav") isEqualTo 1) then { + _x setDamage 1; + } else { + if !(_vehicle isEqualTo _x) then { + doGetOut _x; + }; + [_x, true] call ace_captives_setSurrendered; + }; +} forEach (_city getVariable ["data_units", []]); \ No newline at end of file From 4e24c56726f63f4916c14f27ac082aa774a342d3 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 8 Jan 2021 21:50:07 +0800 Subject: [PATCH 006/354] Add mission param for this function, Fix wrong approach of getting units Add mission param for this function Fix wrong approach of getting units --- .../core/def/mission.sqf | 1 + .../core/def/param.hpp | 6 ++++ .../core/fnc/city/activate.sqf | 6 ++-- .../core/fnc/city/set_clear.sqf | 30 +++++++++++-------- .../stringtable.xml | 4 +++ 5 files changed, 32 insertions(+), 15 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 6274dddd3..031d1f93a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -84,6 +84,7 @@ btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) th } else { "this" }; +btc_p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 49ac63fa8..92d70c819 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -395,6 +395,12 @@ class Params { texts[]={$STR_DISABLED,$STR_ENABLED}; default = 0; }; + class btc_p_city_free_trigger { // City will be free if number of enemies is equal or lower than: + title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_CITYFREE"]); + values[]={0,1,2,3,4,5}; + texts[]={$STR_DISABLED,"1","2","3","4","5"}; + default = 0; + }; class btc_p_auto_headless { // Autodetect Headless client: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_AUTOHEADLESS"]); values[]={0,1}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index a1bf2e219..71c2accde 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -14,6 +14,7 @@ Parameters: _p_civ_max_veh - Maximum number of civilian patrol. [Number] _p_patrol_max - Maximum number of enemy patrol. [Number] _wp_ratios - Ratio of spawned group in and out houses. [Array] + _p_city_free_trigger - City will be free if number of enemy is equal or lower than this value. [Number] Returns: @@ -35,7 +36,8 @@ params [ ["_p_animals_group_ratio", btc_p_animals_group_ratio, [0]], ["_p_civ_max_veh", btc_p_civ_max_veh, [0]], ["_p_patrol_max", btc_p_patrol_max, [0]], - ["_wp_ratios", btc_p_mil_wp_ratios, [[]]] + ["_wp_ratios", btc_p_mil_wp_ratios, [[]]], + ["_p_city_free_trigger", btc_p_city_free_trigger, [0]] ]; _wp_ratios params ["_wp_house", "_wp_sentry"]; @@ -270,7 +272,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; _trigger setTriggerInterval 15; - _trigger setTriggerStatements ["(count thisList) < (3 + random 3)", format ["[%1] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerStatements [format ["(count thisList) <= %1", _p_city_free_trigger], format ["[%1, _thisList] call btc_fnc_city_set_clear", _id], ""]; _city setVariable ["trigger", _trigger]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index f382ac0bd..9696e8c66 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -7,6 +7,7 @@ Description: Parameters: _id - ID of the city no more occupied. [Number] + _remainEnemyUnits - Remaining enemy units assigned to the city. [Array] Returns: @@ -21,12 +22,27 @@ Author: ---------------------------------------------------------------------------- */ params [ - ["_id", 0, [0]] + ["_id", 0, [0]], + ["_remainEnemyUnits", [], [[]]] ]; private _city = btc_city_all select _id; _city setVariable ["occupied", false]; +if !(_remainEnemyUnits isEqualTo []) then { + { + private _vehicle = vehicle _x; + if (getNumber (_cfgVehicles >> _vehicle >> "isUav") isEqualTo 1) then { + _x setDamage 1; + } else { + if !(_vehicle isEqualTo _x) then { + doGetOut _x; + }; + [_x, true] call ace_captives_setSurrendered; + }; + } forEach _remainEnemyUnits; +}; + if (_city getVariable ["marker", ""] != "") then { (_city getVariable ["marker", ""]) setMarkerColor "ColorGreen"; }; @@ -38,15 +54,3 @@ if (btc_final_phase) then { if (btc_debug) then { (format ["loc_%1", _id]) setMarkerColor "ColorGreen"; }; - -{ - private _vehicle = vehicle _x; - if (getNumber (_cfgVehicles >> _vehicle >> "isUav") isEqualTo 1) then { - _x setDamage 1; - } else { - if !(_vehicle isEqualTo _x) then { - doGetOut _x; - }; - [_x, true] call ace_captives_setSurrendered; - }; -} forEach (_city getVariable ["data_units", []]); \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 1fd6a4b70..5892060a8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -698,6 +698,10 @@ Desativar o surgimento de unidades na cidade quando uma aeronave ou helicóptero estiver sobrevoando em velocidade (>190km/h): 当飞机或直升机(>190Km/h)飞掠城市上空时, 不激活城市: + + City will be free if number of enemies is equal or lower than: + 城镇将会被解放, 当敌军数量小于或等于: + Autodetect Headless client: Headless-Client automatisch erkennen: From 0777e0680649d9dbf2292c839115723f0731998b Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 8 Jan 2021 22:13:13 +0800 Subject: [PATCH 007/354] Change trigger properties as requested Change trigger properties as requested Co-authored-by: Vdauphin --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 71c2accde..4da5f1887 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -271,7 +271,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { private _trigger = createTrigger ["EmptyDetector", getPos _city]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; - _trigger setTriggerInterval 15; + _trigger setTriggerInterval 2; _trigger setTriggerStatements [format ["(count thisList) <= %1", _p_city_free_trigger], format ["[%1, _thisList] call btc_fnc_city_set_clear", _id], ""]; _city setVariable ["trigger", _trigger]; }; From b6c5f4c7644a0330606eddc6fe31003646433efb Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 8 Jan 2021 22:13:21 +0800 Subject: [PATCH 008/354] Update =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf Change trigger properties as requested Co-authored-by: Vdauphin --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 4da5f1887..dbdd91737 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -272,7 +272,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; _trigger setTriggerInterval 2; - _trigger setTriggerStatements [format ["(count thisList) <= %1", _p_city_free_trigger], format ["[%1, _thisList] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerStatements ["(count thisList) <= btc_p_city_free_trigger", format ["[%1, _thisList] call btc_fnc_city_set_clear", _id], ""]; _city setVariable ["trigger", _trigger]; }; From f0efa128451756d860c4e6b809f04eac57a99990 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 8 Jan 2021 22:15:08 +0800 Subject: [PATCH 009/354] Remove btc_p_city_free_trigger as parameter in activate.sqf --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index dbdd91737..bfd2b0155 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -14,7 +14,6 @@ Parameters: _p_civ_max_veh - Maximum number of civilian patrol. [Number] _p_patrol_max - Maximum number of enemy patrol. [Number] _wp_ratios - Ratio of spawned group in and out houses. [Array] - _p_city_free_trigger - City will be free if number of enemy is equal or lower than this value. [Number] Returns: @@ -36,8 +35,7 @@ params [ ["_p_animals_group_ratio", btc_p_animals_group_ratio, [0]], ["_p_civ_max_veh", btc_p_civ_max_veh, [0]], ["_p_patrol_max", btc_p_patrol_max, [0]], - ["_wp_ratios", btc_p_mil_wp_ratios, [[]]], - ["_p_city_free_trigger", btc_p_city_free_trigger, [0]] + ["_wp_ratios", btc_p_mil_wp_ratios, [[]]] ]; _wp_ratios params ["_wp_house", "_wp_sentry"]; From 27cd2071a8ebe2c3206efa9423a78ea814199552 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 8 Jan 2021 22:19:33 +0800 Subject: [PATCH 010/354] Minimum changes on trigger properties --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index bfd2b0155..dca790b92 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -269,8 +269,8 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { private _trigger = createTrigger ["EmptyDetector", getPos _city]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; - _trigger setTriggerInterval 2; _trigger setTriggerStatements ["(count thisList) <= btc_p_city_free_trigger", format ["[%1, _thisList] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerInterval 2; _city setVariable ["trigger", _trigger]; }; From 4d5e5bd30f5b283609fb51bab828d19f5b64e3b7 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 8 Jan 2021 22:37:37 +0800 Subject: [PATCH 011/354] Fix: correct function name ace_captives_fnc_setSurrendered --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 9696e8c66..46548e160 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -38,7 +38,7 @@ if !(_remainEnemyUnits isEqualTo []) then { if !(_vehicle isEqualTo _x) then { doGetOut _x; }; - [_x, true] call ace_captives_setSurrendered; + [_x, true] call ace_captives_fnc_setSurrendered; }; } forEach _remainEnemyUnits; }; From da571dad4fe13277075b432764656a643acb335a Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 8 Jan 2021 23:51:04 +0800 Subject: [PATCH 012/354] Fix: correct trigger statement, refactor UAV and vehicle crew handling Fix: correct trigger statement Fix: refactor UAV and vehicle crew handling --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- .../core/fnc/city/set_clear.sqf | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index dca790b92..186c4b943 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -269,7 +269,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { private _trigger = createTrigger ["EmptyDetector", getPos _city]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; - _trigger setTriggerStatements ["(count thisList) <= btc_p_city_free_trigger", format ["[%1, _thisList] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerStatements ["(count thisList) <= btc_p_city_free_trigger", format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; _trigger setTriggerInterval 2; _city setVariable ["trigger", _trigger]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 46548e160..31ccd5cef 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -30,13 +30,14 @@ private _city = btc_city_all select _id; _city setVariable ["occupied", false]; if !(_remainEnemyUnits isEqualTo []) then { + private _cfgVehicles = configFile >> "CfgVehicles"; { private _vehicle = vehicle _x; - if (getNumber (_cfgVehicles >> _vehicle >> "isUav") isEqualTo 1) then { + if (getNumber (_cfgVehicles >> typeOf _vehicle >> "isUav") isEqualTo 1) then { _x setDamage 1; } else { if !(_vehicle isEqualTo _x) then { - doGetOut _x; + doStop _x; }; [_x, true] call ace_captives_fnc_setSurrendered; }; From 6f3631d29c8dddef8282fd740d3f093637d5567c Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sat, 9 Jan 2021 13:20:40 +0800 Subject: [PATCH 013/354] Attempt to fix multiple issues Fixed: AI inside vehicle won't surrender as expected. Fixed: Use new syntax configOf. Fixed: All used syntax are argument global and effect global now, so no need to care about handling remote units on headless clients such as enemy patrols. Refactored: Trigger condition, because it detect a whole vehicle as one enemy unit, but we don't want city to be free when there's a vehicle full of enemy units. --- .../core/def/mission.sqf | 6 +++++- .../core/fnc/city/activate.sqf | 2 +- .../core/fnc/city/set_clear.sqf | 19 +++++++++++++++---- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 031d1f93a..b02e6dad3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -84,7 +84,11 @@ btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) th } else { "this" }; -btc_p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; +btc_p_city_free_trigger = if (("btc_p_city_free_trigger" call BIS_fnc_getParamValue) isEqualTo 0) then { + "count thisList <= 0" +} else { + format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits pushBackUnique (crew vehicle _x);} forEach thisList; count _remainEnemyUnits <= %1", btc_p_city_free_trigger] +}; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 186c4b943..74c08db37 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -269,7 +269,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { private _trigger = createTrigger ["EmptyDetector", getPos _city]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; - _trigger setTriggerStatements ["(count thisList) <= btc_p_city_free_trigger", format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerStatements [btc_p_city_free_trigger, format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; _trigger setTriggerInterval 2; _city setVariable ["trigger", _trigger]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 31ccd5cef..3a310aa63 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -33,13 +33,24 @@ if !(_remainEnemyUnits isEqualTo []) then { private _cfgVehicles = configFile >> "CfgVehicles"; { private _vehicle = vehicle _x; - if (getNumber (_cfgVehicles >> typeOf _vehicle >> "isUav") isEqualTo 1) then { + if (getNumber (configOf _vehicle >> "isUav") isEqualTo 1) then { _x setDamage 1; } else { - if !(_vehicle isEqualTo _x) then { - doStop _x; + if (_vehicle isKindOf "Air" || {_vehicle isKindOf "Ship"}) then { + _remainEnemyUnits = _remainEnemyUnits - crew _vehicle; + } else { + if (_vehicle isKindOf "LandVehicle") then { + private _crew = crew _vehicle; + _crew allowGetIn false; + { + moveOut _x; + [_x, true] call ace_captives_fnc_setSurrendered; + } forEach _crew; + _remainEnemyUnits = _remainEnemyUnits - _crew; + } else { + [_x, true] call ace_captives_fnc_setSurrendered; + }; }; - [_x, true] call ace_captives_fnc_setSurrendered; }; } forEach _remainEnemyUnits; }; From 6cbb40f535e1ae5983f15b2ef2642ea71a2935e6 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sat, 9 Jan 2021 16:09:42 +0800 Subject: [PATCH 014/354] Fix: Trigger count multiple units inside vehicle as one unit Fix: Trigger count multiple units inside vehicle as one unit --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 5 +++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index b02e6dad3..9c63f4421 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -84,10 +84,11 @@ btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) th } else { "this" }; -btc_p_city_free_trigger = if (("btc_p_city_free_trigger" call BIS_fnc_getParamValue) isEqualTo 0) then { +private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; +btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { "count thisList <= 0" } else { - format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits pushBackUnique (crew vehicle _x);} forEach thisList; count _remainEnemyUnits <= %1", btc_p_city_free_trigger] + format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits append (crew vehicle _x);} forEach thisList; _remainEnemyUnits arrayIntersect _remainEnemyUnits; count _remainEnemyUnits <= %2", _p_city_free_trigger, _p_city_free_trigger] }; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 74c08db37..cdb26a3c9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -269,7 +269,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { private _trigger = createTrigger ["EmptyDetector", getPos _city]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; - _trigger setTriggerStatements [btc_p_city_free_trigger, format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerStatements [btc_p_city_free_trigger_condition, format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; _trigger setTriggerInterval 2; _city setVariable ["trigger", _trigger]; }; From 30b0db9a315f713488a1994b815394029f6b18f2 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sat, 9 Jan 2021 16:15:57 +0800 Subject: [PATCH 015/354] Fix: Decrease maximum number of btc_p_city_free_trigger Fix: Decrease maximum number of btc_p_city_free_trigger, because sone types of city always spawn less than 4 units. --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 92d70c819..bcb677a76 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -397,8 +397,8 @@ class Params { }; class btc_p_city_free_trigger { // City will be free if number of enemies is equal or lower than: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_CITYFREE"]); - values[]={0,1,2,3,4,5}; - texts[]={$STR_DISABLED,"1","2","3","4","5"}; + values[]={0,1,2,3}; + texts[]={$STR_DISABLED,"1","2","3"}; default = 0; }; class btc_p_auto_headless { // Autodetect Headless client: From a1d1c0363a85d697f1e6b3760ba9dca64942b649 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sat, 9 Jan 2021 18:12:55 +0800 Subject: [PATCH 016/354] Fix: a better solution, use "thisList isEqualTo = []" instead of "count thisList <= 0" Co-authored-by: Vdauphin --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 9c63f4421..fdaf12f44 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -86,7 +86,7 @@ btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) th }; private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { - "count thisList <= 0" + thisList isEqualTo = []" } else { format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits append (crew vehicle _x);} forEach thisList; _remainEnemyUnits arrayIntersect _remainEnemyUnits; count _remainEnemyUnits <= %2", _p_city_free_trigger, _p_city_free_trigger] }; From f7eb2b872089bc0f6f7a841d9386b02075c0d384 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sat, 9 Jan 2021 18:13:37 +0800 Subject: [PATCH 017/354] Fix: no need to store the result of arrayIntersect Co-authored-by: Vdauphin --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index fdaf12f44..9144fc453 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -88,7 +88,7 @@ private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamVa btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { thisList isEqualTo = []" } else { - format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits append (crew vehicle _x);} forEach thisList; _remainEnemyUnits arrayIntersect _remainEnemyUnits; count _remainEnemyUnits <= %2", _p_city_free_trigger, _p_city_free_trigger] + format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits append (crew vehicle _x);} forEach thisList; count(_remainEnemyUnits arrayIntersect _remainEnemyUnits) <= %2", _p_city_free_trigger, _p_city_free_trigger] }; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; From aecca28c2b922de912fae884f3c4a6f335ad7b55 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sat, 9 Jan 2021 18:22:38 +0800 Subject: [PATCH 018/354] Fix: missing quote --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 9144fc453..e90b8d321 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -86,7 +86,7 @@ btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) th }; private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { - thisList isEqualTo = []" + "thisList isEqualTo = []" } else { format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits append (crew vehicle _x);} forEach thisList; count(_remainEnemyUnits arrayIntersect _remainEnemyUnits) <= %2", _p_city_free_trigger, _p_city_free_trigger] }; From 4a8a051dc208aafe2ae7829a64093dea8bfb92ba Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sat, 9 Jan 2021 18:54:19 +0800 Subject: [PATCH 019/354] Fix: remove useless code Fix: remove useless code --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 3a310aa63..2766d9a31 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -30,7 +30,6 @@ private _city = btc_city_all select _id; _city setVariable ["occupied", false]; if !(_remainEnemyUnits isEqualTo []) then { - private _cfgVehicles = configFile >> "CfgVehicles"; { private _vehicle = vehicle _x; if (getNumber (configOf _vehicle >> "isUav") isEqualTo 1) then { From 8c334b2307f724ad4142776a23a3b90f77df0178 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Jan 2021 02:54:09 +0100 Subject: [PATCH 020/354] Use unitIsUAV --- .../core/fnc/db/loadObjectStatus.sqf | 2 +- .../core/fnc/log/createVehicle.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index a4fb42f72..bcf83f26c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -46,7 +46,7 @@ if (_isContaminated) then { }; }; if !(_magClass isEqualTo "") then {_obj setVariable ["ace_rearm_magazineClass", _magClass, true]}; -if (getNumber(configFile >> "CfgVehicles" >> _type >> "isUav") isEqualTo 1) then { +if (unitIsUAV _obj) then { createVehicleCrew _obj; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index a45acb132..31aa8dedd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -58,7 +58,7 @@ if !(_EDENinventory isEqualTo []) then { _veh setVariable ["btc_dont_delete", true]; -if (getNumber(configFile >> "CfgVehicles" >> typeOf _veh >> "isUav") isEqualTo 1) then { +if (unitIsUAV _veh) then { createVehicleCrew _veh; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf index 891a7d0a3..8d9825a02 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf @@ -37,7 +37,7 @@ if (getText (configFile >> "cfgVehicles" >> _objec_type >> "displayName") isEqua _obj setVectorUp _vector; _obj setPosASL _pos; -if (getNumber(configFile >> "CfgVehicles" >> _objec_type >> "isUav") isEqualTo 1) then { +if (unitIsUAV _obj) then { createVehicleCrew _obj; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index 7e578d0d8..e39e678b1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -39,7 +39,7 @@ _city setVariable ["spawn_more", true]; private _heli_type = typeOf selectRandom ((btc_vehicles + btc_helo) select { _x isKindOf "air" && - getNumber(configFile >> "CfgVehicles" >> typeOf _x >> "isUav") isEqualTo 0 + {!(unitIsUAV _x)} }); private _heli = createVehicle [_heli_type, _pos, [], 0, "NONE"]; _heli setVariable ["btc_dont_delete", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index b3e0c0bb0..64e998d00 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -63,7 +63,7 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); _vehicle setPosASL _pos; _vehicle setVectorDirAndUp _vectorPos; - if (getNumber(configFile >> "CfgVehicles" >> _type >> "isUav") isEqualTo 1) then { + if (unitIsUAV _vehicle) then { createVehicleCrew _vehicle; }; From 4d7ed70b3d0cabee9b88d676b8151a149e388c86 Mon Sep 17 00:00:00 2001 From: Jiang Jinhong Date: Mon, 11 Jan 2021 10:49:50 +0800 Subject: [PATCH 021/354] Add: Auto disconnect UAV from dead players --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index bd9062dbf..d59ef1364 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -48,6 +48,10 @@ addMissionEventHandler ["HandleDisconnect", { deleteVehicle _headless; }; }]; +addMissionEventHandler ["entityRespawned", { + params ["_entity", "_corpse"]; + _corpse connectTerminalToUAV objNull; +}]; if (btc_p_auto_db) then { addMissionEventHandler ["HandleDisconnect", { if ((allPlayers - entities "HeadlessClient_F") isEqualTo []) then { @@ -81,4 +85,4 @@ if (btc_p_set_skill) then { [(_this select 0), "HandleDamage", btc_fnc_patrol_disabled] call CBA_fnc_addBISEventHandler; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; -["ace_tagCreated", btc_fnc_tag_eh] call CBA_fnc_addEventHandler; +["ace_tagCreated", btc_fnc_tag_eh] call CBA_fnc_addEventHandler; \ No newline at end of file From eadb3e9fe62ad0f29b2ae5a2c27150f4ba7a75e2 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Mon, 11 Jan 2021 11:01:43 +0800 Subject: [PATCH 022/354] fix typo: recover the last next line --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index d59ef1364..80b81cb83 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -85,4 +85,4 @@ if (btc_p_set_skill) then { [(_this select 0), "HandleDamage", btc_fnc_patrol_disabled] call CBA_fnc_addBISEventHandler; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; -["ace_tagCreated", btc_fnc_tag_eh] call CBA_fnc_addEventHandler; \ No newline at end of file +["ace_tagCreated", btc_fnc_tag_eh] call CBA_fnc_addEventHandler; From ee45a6f52e8aa8ed2de330a73b77c97f2c89583e Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Mon, 11 Jan 2021 11:32:09 +0800 Subject: [PATCH 023/354] Use unitIsUAV --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 2766d9a31..899fa9ef6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -32,7 +32,7 @@ _city setVariable ["occupied", false]; if !(_remainEnemyUnits isEqualTo []) then { { private _vehicle = vehicle _x; - if (getNumber (configOf _vehicle >> "isUav") isEqualTo 1) then { + if (unitIsUAV _vehicle) then { _x setDamage 1; } else { if (_vehicle isKindOf "Air" || {_vehicle isKindOf "Ship"}) then { From 605a590e1a0b1fdb11f68d9e7ae2de0d978ee3d3 Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Mon, 11 Jan 2021 23:33:27 +0800 Subject: [PATCH 024/354] Move the Event Handler to player side --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf | 2 ++ =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 9b9132154..4aa71253a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -26,6 +26,8 @@ params [ ]; [_player, "Respawn", { + params ["_unit", "_corpse"]; + _corpse connectTerminalToUAV objNull; if !(ace_map_mapIllumination) then {ace_map_mapIllumination = btc_map_mapIllumination;}; }] call CBA_fnc_addBISEventHandler; ["ace_killed", { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 80b81cb83..bd9062dbf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -48,10 +48,6 @@ addMissionEventHandler ["HandleDisconnect", { deleteVehicle _headless; }; }]; -addMissionEventHandler ["entityRespawned", { - params ["_entity", "_corpse"]; - _corpse connectTerminalToUAV objNull; -}]; if (btc_p_auto_db) then { addMissionEventHandler ["HandleDisconnect", { if ((allPlayers - entities "HeadlessClient_F") isEqualTo []) then { From a89ada60b6111b4500e708e8383c4ccbed3ac65c Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 15 Jan 2021 10:18:28 +0800 Subject: [PATCH 025/354] Fix: expression fault in btc_p_city_free_trigger_condition Co-authored-by: Vdauphin --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index e90b8d321..b836f34f5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -86,7 +86,7 @@ btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) th }; private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { - "thisList isEqualTo = []" + "thisList isEqualTo []" } else { format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits append (crew vehicle _x);} forEach thisList; count(_remainEnemyUnits arrayIntersect _remainEnemyUnits) <= %2", _p_city_free_trigger, _p_city_free_trigger] }; From 6b8a11613cb5a19f86cb524c74e9b728538f0d28 Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Thu, 21 Jan 2021 10:48:46 +0800 Subject: [PATCH 026/354] Fix: Change vehicle surrender behavior to plan one If city free is triggered (all enemy units less than 1,2,3), infantries will surrender while city will be free, however vehicles should still continue fighting. --- .../core/fnc/city/set_clear.sqf | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 899fa9ef6..8236c45f9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -31,27 +31,17 @@ _city setVariable ["occupied", false]; if !(_remainEnemyUnits isEqualTo []) then { { + private _enemyUnitsToSurrender = _remainEnemyUnits; private _vehicle = vehicle _x; if (unitIsUAV _vehicle) then { _x setDamage 1; } else { - if (_vehicle isKindOf "Air" || {_vehicle isKindOf "Ship"}) then { - _remainEnemyUnits = _remainEnemyUnits - crew _vehicle; - } else { - if (_vehicle isKindOf "LandVehicle") then { - private _crew = crew _vehicle; - _crew allowGetIn false; - { - moveOut _x; - [_x, true] call ace_captives_fnc_setSurrendered; - } forEach _crew; - _remainEnemyUnits = _remainEnemyUnits - _crew; - } else { - [_x, true] call ace_captives_fnc_setSurrendered; - }; + if (_vehicle isKindOf "LandVehicle" || {_vehicle isKindOf "Air" || {_vehicle isKindOf "Ship"}}) then { + _enemyUnitsToSurrender = _enemyUnitsToSurrender - crew _vehicle; }; }; } forEach _remainEnemyUnits; + {[_x, true] call ace_captives_fnc_setSurrendered;} forEach _enemyUnitsToSurrender; }; if (_city getVariable ["marker", ""] != "") then { From e5d68bd976c0a0792090a3f7a818b062dddeafaa Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Thu, 21 Jan 2021 10:49:14 +0800 Subject: [PATCH 027/354] Fix typo: missing space in city free trigger --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index b836f34f5..6c36a3155 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -88,7 +88,7 @@ private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamVa btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { "thisList isEqualTo []" } else { - format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits append (crew vehicle _x);} forEach thisList; count(_remainEnemyUnits arrayIntersect _remainEnemyUnits) <= %2", _p_city_free_trigger, _p_city_free_trigger] + format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits append (crew vehicle _x);} forEach thisList; count (_remainEnemyUnits arrayIntersect _remainEnemyUnits) <= %2", _p_city_free_trigger, _p_city_free_trigger] }; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; From 97eac1a3623c2a7ba90048cbc24ee3744fda9203 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Thu, 21 Jan 2021 20:57:24 +0800 Subject: [PATCH 028/354] Change vehicle surrender behavior --- .../core/def/mission.sqf | 2 +- .../core/fnc/city/set_clear.sqf | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 6c36a3155..02d337c61 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -88,7 +88,7 @@ private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamVa btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { "thisList isEqualTo []" } else { - format ["if (count thisList > %1) exitWith {false}; private _remainEnemyUnits = []; {_remainEnemyUnits append (crew vehicle _x);} forEach thisList; count (_remainEnemyUnits arrayIntersect _remainEnemyUnits) <= %2", _p_city_free_trigger, _p_city_free_trigger] + format ["if (count thisList > %1) exitWith {false}; private _return = true; private _veh; {_veh = vehicle _x; if !(_veh isKindOf 'Man' || {_veh isKindOf 'StaticWeapon' || {unitIsUAV _veh}}) exitWith {_return = false;};} forEach thisList; _return", _p_city_free_trigger, _p_city_free_trigger] }; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 8236c45f9..9cea193e1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -31,17 +31,22 @@ _city setVariable ["occupied", false]; if !(_remainEnemyUnits isEqualTo []) then { { - private _enemyUnitsToSurrender = _remainEnemyUnits; private _vehicle = vehicle _x; if (unitIsUAV _vehicle) then { _x setDamage 1; } else { - if (_vehicle isKindOf "LandVehicle" || {_vehicle isKindOf "Air" || {_vehicle isKindOf "Ship"}}) then { - _enemyUnitsToSurrender = _enemyUnitsToSurrender - crew _vehicle; + if (_vehicle isKindOf "StaticWeapon") then { + private _crew = crew _vehicle; + _crew allowGetIn false; + { + moveOut _x; + [_x, true] call ace_captives_fnc_setSurrendered; + } forEach _crew; + } else { + [_x, true] call ace_captives_fnc_setSurrendered; }; }; } forEach _remainEnemyUnits; - {[_x, true] call ace_captives_fnc_setSurrendered;} forEach _enemyUnitsToSurrender; }; if (_city getVariable ["marker", ""] != "") then { From 695518f452287bc8aad149085b04f1317ba9c4bc Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Fri, 22 Jan 2021 17:28:36 +0800 Subject: [PATCH 029/354] Exclude StaticWeapon because such workaround is not acceptable --- .../core/def/mission.sqf | 2 +- .../core/fnc/city/set_clear.sqf | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 02d337c61..cefbd3801 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -88,7 +88,7 @@ private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamVa btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { "thisList isEqualTo []" } else { - format ["if (count thisList > %1) exitWith {false}; private _return = true; private _veh; {_veh = vehicle _x; if !(_veh isKindOf 'Man' || {_veh isKindOf 'StaticWeapon' || {unitIsUAV _veh}}) exitWith {_return = false;};} forEach thisList; _return", _p_city_free_trigger, _p_city_free_trigger] + format ["if (count thisList > %1) exitWith {false}; private _return = true; private _veh; {_veh = vehicle _x; if !(_veh isKindOf 'Man' || {unitIsUAV _veh}) exitWith {_return = false;};} forEach thisList; _return", _p_city_free_trigger, _p_city_free_trigger] }; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 9cea193e1..4e9d99c2d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -31,20 +31,10 @@ _city setVariable ["occupied", false]; if !(_remainEnemyUnits isEqualTo []) then { { - private _vehicle = vehicle _x; - if (unitIsUAV _vehicle) then { + if (unitIsUAV _x) then { _x setDamage 1; } else { - if (_vehicle isKindOf "StaticWeapon") then { - private _crew = crew _vehicle; - _crew allowGetIn false; - { - moveOut _x; - [_x, true] call ace_captives_fnc_setSurrendered; - } forEach _crew; - } else { - [_x, true] call ace_captives_fnc_setSurrendered; - }; + [_x, true] call ace_captives_fnc_setSurrendered; }; } forEach _remainEnemyUnits; }; From 6282f08cff8ba19d55fcd78e0b13d6b71fc5a6ef Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Tue, 26 Jan 2021 10:59:22 +0800 Subject: [PATCH 030/354] move city free trigger to a single sqf file --- .../core/def/mission.sqf | 7 +-- .../core/fnc/city/activate.sqf | 2 +- .../core/fnc/city/trigger_free_condition.sqf | 44 +++++++++++++++++++ .../core/fnc/compile.sqf | 1 + 4 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index cefbd3801..031d1f93a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -84,12 +84,7 @@ btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) th } else { "this" }; -private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; -btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { - "thisList isEqualTo []" -} else { - format ["if (count thisList > %1) exitWith {false}; private _return = true; private _veh; {_veh = vehicle _x; if !(_veh isKindOf 'Man' || {unitIsUAV _veh}) exitWith {_return = false;};} forEach thisList; _return", _p_city_free_trigger, _p_city_free_trigger] -}; +btc_p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index cdb26a3c9..62ec2075f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -269,7 +269,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { private _trigger = createTrigger ["EmptyDetector", getPos _city]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; - _trigger setTriggerStatements [btc_p_city_free_trigger_condition, format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerStatements ["[thisList] call btc_fnc_city_trigger_free_condition", format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; _trigger setTriggerInterval 2; _city setVariable ["trigger", _trigger]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf new file mode 100644 index 000000000..0b1e52e46 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf @@ -0,0 +1,44 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_city_trigger_free_condition + +Description: + Check if a city should be free. + +Parameters: + _remainEnemyUnits - Remaining enemy units assigned to the city, passed by the trigger. [Array] + +Returns: + _return - If the city should be free. [Boolean] + +Examples: + (begin example) + [_remainEnemyUnits] call btc_fnc_city_trigger_free_condition; + (end) + +Author: + GoldJohnKing + +---------------------------------------------------------------------------- */ + +params [ + ["_remainEnemyUnits", [], [[]]] +]; + +if (btc_p_city_free_trigger isEqualTo 0) then { + _remainEnemyUnits isEqualTo [] +} else { + if (count _remainEnemyUnits > btc_p_city_free_trigger) exitWith { + false + }; + + private _return = true; + private _veh; + { + _veh = vehicle _x; + if !(_veh isKindOf 'Man' || {unitIsUAV _veh}) exitWith { + _return = false; + }; + } forEach _remainEnemyUnits; + _return +} diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index a1dae75b6..ba162874d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -41,6 +41,7 @@ if (isServer) then { btc_fnc_city_trigger_player_side = compile preprocessFileLineNumbers "core\fnc\city\trigger_player_side.sqf"; btc_fnc_city_findPos = compile preprocessFileLineNumbers "core\fnc\city\findPos.sqf"; btc_fnc_city_cleanUp = compile preprocessFileLineNumbers "core\fnc\city\cleanUp.sqf"; + btc_fnc_city_trigger_free_condition = compile preprocessFileLineNumbers "core\fnc\city\trigger_free_condition.sqf"; //CIV btc_fnc_civ_add_weapons = compile preprocessFileLineNumbers "core\fnc\civ\add_weapons.sqf"; From e104a2b49e0fc8a4751282c5756ee46446101e40 Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Tue, 26 Jan 2021 14:56:20 +0800 Subject: [PATCH 031/354] Use findIf instead of forEach --- .../core/fnc/city/trigger_free_condition.sqf | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf index 0b1e52e46..af16fb8ee 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf @@ -28,17 +28,12 @@ params [ if (btc_p_city_free_trigger isEqualTo 0) then { _remainEnemyUnits isEqualTo [] } else { - if (count _remainEnemyUnits > btc_p_city_free_trigger) exitWith { - false - }; - - private _return = true; - private _veh; - { - _veh = vehicle _x; - if !(_veh isKindOf 'Man' || {unitIsUAV _veh}) exitWith { - _return = false; - }; - } forEach _remainEnemyUnits; - _return + if (count _remainEnemyUnits > btc_p_city_free_trigger) exitWith {false}; + _remainEnemyUnits findIf { + private _veh = vehicle _x; + !( + _veh isKindOf 'Man' || + {unitIsUAV _veh} + ) + } isEqualTo -1 } From fc05cdeb3168fa4249f267fc30ffc14a51b66048 Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Tue, 26 Jan 2021 15:29:02 +0800 Subject: [PATCH 032/354] fix missing semicolon & use double quote --- .../core/fnc/city/trigger_free_condition.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf index af16fb8ee..28888359b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf @@ -32,8 +32,8 @@ if (btc_p_city_free_trigger isEqualTo 0) then { _remainEnemyUnits findIf { private _veh = vehicle _x; !( - _veh isKindOf 'Man' || + _veh isKindOf "Man" || {unitIsUAV _veh} ) } isEqualTo -1 -} +}; From 8b71b872bcd60cac81789c752d295b07e6dbd15d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 26 Jan 2021 10:39:17 +0100 Subject: [PATCH 033/354] Keep separate the case when the setting is disable --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 031d1f93a..ee7972d16 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -84,7 +84,12 @@ btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) th } else { "this" }; -btc_p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; +private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamValue; +btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { + "thisList isEqualTo []" +} else { + format ["[thisList, %1] call btc_fnc_city_trigger_free_condition", _p_city_free_trigger] +}; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; From e81e6d4bda3d133e44b9c8288e378b3dd9b7e005 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 26 Jan 2021 10:41:09 +0100 Subject: [PATCH 034/354] Use btc_p_city_free_trigger_condition directly as trigger paralmeter --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 62ec2075f..cdb26a3c9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -269,7 +269,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { private _trigger = createTrigger ["EmptyDetector", getPos _city]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; - _trigger setTriggerStatements ["[thisList] call btc_fnc_city_trigger_free_condition", format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerStatements [btc_p_city_free_trigger_condition, format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; _trigger setTriggerInterval 2; _city setVariable ["trigger", _trigger]; }; From 8645d9e43ef172ff1f081a72f5c261ecc049b9b3 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 26 Jan 2021 10:46:26 +0100 Subject: [PATCH 035/354] Keep separate the case when the setting is disable --- .../core/fnc/city/trigger_free_condition.sqf | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf index 28888359b..5d33285fa 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf @@ -7,13 +7,14 @@ Description: Parameters: _remainEnemyUnits - Remaining enemy units assigned to the city, passed by the trigger. [Array] + _p_city_free_trigger - Minimum number of units to consider a city free. [Number] Returns: _return - If the city should be free. [Boolean] Examples: (begin example) - [_remainEnemyUnits] call btc_fnc_city_trigger_free_condition; + [allUnits inAreaArray [getPos player, 100, 100], 2] call btc_fnc_city_trigger_free_condition; (end) Author: @@ -22,18 +23,15 @@ Author: ---------------------------------------------------------------------------- */ params [ - ["_remainEnemyUnits", [], [[]]] + ["_remainEnemyUnits", [], [[]]], + ["_p_city_free_trigger", 0, [0]] ]; -if (btc_p_city_free_trigger isEqualTo 0) then { - _remainEnemyUnits isEqualTo [] -} else { - if (count _remainEnemyUnits > btc_p_city_free_trigger) exitWith {false}; - _remainEnemyUnits findIf { - private _veh = vehicle _x; - !( - _veh isKindOf "Man" || - {unitIsUAV _veh} - ) - } isEqualTo -1 -}; +if (count _remainEnemyUnits > _p_city_free_trigger) exitWith {false}; +_remainEnemyUnits findIf { + private _veh = vehicle _x; + !( + _veh isKindOf "Man" || + {unitIsUAV _veh} + ) +} isEqualTo -1 From dfe4e5061f1f7b48ded751d23761eb22685075a3 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Feb 2021 11:56:21 +0100 Subject: [PATCH 036/354] Add Flower bouquets where civilian are killed by player --- .../core/def/mission.sqf | 4 ++ .../core/fnc/city/activate.sqf | 5 +++ .../core/fnc/city/de_activate.sqf | 2 + .../core/fnc/civ/createFlower.sqf | 39 +++++++++++++++++++ .../core/fnc/compile.sqf | 1 + .../core/fnc/rep/killed.sqf | 12 +++++- 6 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index e51d7d27a..b0cac0304 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -349,6 +349,10 @@ if (isServer) then { btc_model_ieds = btc_type_ieds apply {(toLower getText(_cfgVehicles >> _x >> "model")) select [1]}; btc_type_blacklist = btc_type_tags + ["UserTexture1m_F"]; + //Flowers + btc_type_flowers = _allClassSorted select {_x isKindOf "FlowerBouquet_base_F"}; + btc_model_flowers = btc_type_flowers apply {(toLower getText(_cfgVehicles >> _x >> "model")) select [1]}; + btc_groundWeaponHolder = []; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index d33a61033..67206b207 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -262,6 +262,11 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { }; [_city, btc_fnc_tag_create] call btc_fnc_delay_exec; +private _civKilled = _city getVariable ["btc_rep_civKilled", []]; +if !(_civKilled isEqualTo []) then { + [[_city, _civKilled], btc_fnc_civ_createFlower] call btc_fnc_delay_exec; +}; + [{ params ["_has_en", "_city", "_radius", "_id"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf index ce0f2b15a..bcf12904e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf @@ -101,6 +101,8 @@ if !(_city getVariable ["active", false]) exitWith {}; } forEach (btc_tags_server inAreaArray [_pos_city, _radius, _radius]); btc_tags_server = btc_tags_server - [objNull]; + (_city getVariable ["btc_city_flowers", []]) call CBA_fnc_deleteEntity; + if (btc_debug_log) then { [format ["data units = %1", _data_units], __FILE__, [false]] call btc_fnc_debug_message; [format ["data animals = %1", _data_animals], __FILE__, [false]] call btc_fnc_debug_message; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf new file mode 100644 index 000000000..a903b287b --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf @@ -0,0 +1,39 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_civ_createFlower + +Description: + Add flower bouquets next to killed civilians. + +Parameters: + _city - City. [Object] + _civKilled - Array of previous killed civilians. [Array] + +Returns: + +Examples: + (begin example) + [btc_city_all#0, [[getPosASL player, getDir player]]] call btc_fnc_civ_createFlower; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_city", objNull, [objNull]], + ["_civKilled", [], [[]]] +]; + +_city setVariable [ + "btc_city_flowers", + _civKilled apply { + _x params ["_posASL", "_dir"]; + + private _flowers = createSimpleObject [selectRandom btc_model_flowers, _posASL]; + _flowers setDir _dir; + + _flowers + } +]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index a1dae75b6..7187b53e0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -50,6 +50,7 @@ if (isServer) then { btc_fnc_civ_populate = compile preprocessFileLineNumbers "core\fnc\civ\populate.sqf"; btc_fnc_civ_create_patrol = compile preprocessFileLineNumbers "core\fnc\civ\create_patrol.sqf"; btc_fnc_civ_evacuate = compile preprocessFileLineNumbers "core\fnc\civ\evacuate.sqf"; + btc_fnc_civ_createFlower = compile preprocessFileLineNumbers "core\fnc\civ\createFlower.sqf"; //DATA btc_fnc_data_add_group = compile preprocessFileLineNumbers "core\fnc\data\add_group.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf index e53082623..e5ab4df4a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf @@ -29,14 +29,24 @@ if ( ) exitWith {}; if (isPlayer _instigator) then { + private _isAgent = isAgent teamMember _unit; [ - [btc_rep_malus_civ_killed, btc_rep_malus_animal_killed] select (isAgent teamMember _unit), + [btc_rep_malus_civ_killed, btc_rep_malus_animal_killed] select _isAgent, _instigator ] call btc_fnc_rep_change; if (btc_global_reputation < 600) then { [getPos _unit] call btc_fnc_rep_eh_effects; }; + if !(_isAgent) then { + private _city = (group _unit) getVariable ["btc_city", objNull]; + if !(isNull _city) then { + private _civKilled = _city getVariable ["btc_rep_civKilled", []]; + _civKilled pushBack [getPosASL _unit, getDir _unit]; + _city setVariable ["btc_rep_civKilled", _civKilled]; + }; + }; + if (btc_debug_log) then { [format ["GREP %1 THIS = %2", btc_global_reputation, _this], __FILE__, [false]] call btc_fnc_debug_message; }; From 45dd45f25ea56921e9f49f10c83d5dbd75c2c2ee Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Feb 2021 14:49:02 +0100 Subject: [PATCH 037/354] Randomise flower color and add database --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 - .../core/fnc/civ/createFlower.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 4 +++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index b0cac0304..28455c216 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -351,7 +351,6 @@ if (isServer) then { //Flowers btc_type_flowers = _allClassSorted select {_x isKindOf "FlowerBouquet_base_F"}; - btc_model_flowers = btc_type_flowers apply {(toLower getText(_cfgVehicles >> _x >> "model")) select [1]}; btc_groundWeaponHolder = []; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf index a903b287b..126e28803 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf @@ -31,7 +31,7 @@ _city setVariable [ _civKilled apply { _x params ["_posASL", "_dir"]; - private _flowers = createSimpleObject [selectRandom btc_model_flowers, _posASL]; + private _flowers = createSimpleObject [selectRandom btc_type_flowers, _posASL]; _flowers setDir _dir; _flowers diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index b96549e1d..7afe9af63 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -32,7 +32,8 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi { _x params ["_id", "_initialized", "_spawn_more", "_occupied", "_data_units", "_has_ho", "_ho_units_spawned", "_ieds", "_has_suicider", ["_data_animals", [], [[]]], - ["_data_tags", [], [[]]] + ["_data_tags", [], [[]]], + ["_civKilled", [], [[]]] ]; private _city = btc_city_all select _id; @@ -47,6 +48,7 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi _city setVariable ["has_suicider", _has_suicider]; _city setVariable ["data_animals", _data_animals]; _city setVariable ["data_tags", _data_tags]; + _city setVariable ["btc_rep_civKilled", _civKilled]; if (btc_debug) then { private _marker = _city getVariable ["marker", ""]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 4bc67deab..30e0182cd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -57,6 +57,7 @@ private _cities_status = []; _city_status pushBack (_x getVariable ["has_suicider", false]); _city_status pushBack (_x getVariable ["data_animals", []]); _city_status pushBack (_x getVariable ["data_tags", []]); + _city_status pushBack (_x getVariable ["btc_rep_civKilled", []]); _cities_status pushBack _city_status; if (btc_debug_log) then { From 9cdd37e68ba276aa02318affa4bc1ba0c13e41ad Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 12 Feb 2021 15:22:42 +0100 Subject: [PATCH 038/354] Exclude flower from IED cleaner --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 77cdda5ac..2cffd6330 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -331,6 +331,9 @@ if (isServer) then { btc_tags_player = []; btc_tags_server = []; + //Flowers + btc_type_flowers = _allClassSorted select {_x isKindOf "FlowerBouquet_base_F"}; + //IED private _ieds = ["Land_GarbageContainer_closed_F", "Land_GarbageContainer_open_F", "Land_Portable_generator_F", "Land_WoodenBox_F", "Land_BarrelTrash_grey_F", "Land_Sacks_heap_F", "Land_Wreck_Skodovka_F", "Land_WheelieBin_01_F", "Land_GarbageBin_03_F"] + btc_type_pallet + btc_type_barrel + (_allClassSorted select { _x isKindOf "GasTank_base_F" || @@ -347,10 +350,7 @@ if (isServer) then { }); btc_type_ieds = _ieds - ["Land_Garbage_line_F","Land_Garbage_square3_F","Land_Garbage_square5_F"]; btc_model_ieds = btc_type_ieds apply {(toLower getText(_cfgVehicles >> _x >> "model")) select [1]}; - btc_type_blacklist = btc_type_tags + ["UserTexture1m_F"]; publicVariable "btc_type_blacklist"; - - //Flowers - btc_type_flowers = _allClassSorted select {_x isKindOf "FlowerBouquet_base_F"}; + btc_type_blacklist = btc_type_tags + btc_type_flowers + ["UserTexture1m_F"]; publicVariable "btc_type_blacklist"; btc_groundWeaponHolder = []; }; From 353c0a2c5fd7361d732ea4365102d2d59c38eb7e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 22 Feb 2021 17:15:58 +0100 Subject: [PATCH 039/354] remove variable to disable ace cookoff --- .../core/fnc/log/createVehicle.sqf | 2 -- 1 file changed, 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index a45acb132..16f7587a9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -67,8 +67,6 @@ if !(_allHitPointsDamage isEqualTo []) then { [_veh, _forEachindex, _x, false] call ace_repair_fnc_setHitPointDamage; } forEach (_allHitPointsDamage select 2); if ((_allHitPointsDamage select 2) select {_x < 1} isEqualTo []) then { - _veh setVariable ["ace_cookoff_enable", false, true]; - _veh setVariable ["ace_cookoff_enableAmmoCookoff", false, true]; _veh setDamage [1, false]; }; }; From b8b54bd946f5731fe974abb25ae3ca7d7e71fb1f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 24 Feb 2021 15:04:45 +0100 Subject: [PATCH 040/354] Add backward compatibility for 1.21 --- .../core/fnc/db/load_old.sqf | 85 +++++++++++++------ 1 file changed, 57 insertions(+), 28 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 9acd4968b..456c1f696 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -24,10 +24,10 @@ params [ ["_name", worldName, [""]] ]; -setDate (profileNamespace getVariable [format ["btc_hm_%1_date", _name], date]); +setDate +(profileNamespace getVariable [format ["btc_hm_%1_date", _name], date]); //CITIES -private _cities_status = profileNamespace getVariable [format ["btc_hm_%1_cities", _name], []]; +private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_cities", _name], []]); { _x params ["_id", "_initialized", "_spawn_more", "_occupied", "_data_units", "_has_ho", "_ho_units_spawned", "_ieds", "_has_suicider", @@ -64,7 +64,7 @@ private _cities_status = profileNamespace getVariable [format ["btc_hm_%1_cities } forEach _cities_status; //HIDEOUT -private _array_ho = profileNamespace getVariable [format ["btc_hm_%1_ho", _name], []]; +private _array_ho = +(profileNamespace getVariable [format ["btc_hm_%1_ho", _name], []]); { _x call btc_fnc_mil_create_hideout; @@ -81,22 +81,27 @@ if (_select_ho isEqualTo - 1) then { if (btc_hideouts isEqualTo []) then {[] spawn btc_fnc_final_phase;}; //CACHE -private _array_cache = profileNamespace getVariable [format ["btc_hm_%1_cache", _name], []]; +private _array_cache = +(profileNamespace getVariable [format ["btc_hm_%1_cache", _name], []]); +_array_cache params ["_cache_pos", "_cache_n", "_cache_info", "_cache_markers", "_cache_pictures", + ["_isChem", false, [true]], + ["_cache_unitsSpawned", false, [true]] +]; -btc_cache_pos = _array_cache select 0; -btc_cache_n = _array_cache select 1; -btc_cache_info = _array_cache select 2; +btc_cache_pos = _cache_pos; +btc_cache_n = _cache_n; +btc_cache_info = _cache_info; -[] call btc_fnc_cache_create; +[_cache_pos, btc_p_chem, [1, 0] select _isChem] call btc_fnc_cache_create; +btc_cache_obj setVariable ["btc_cache_unitsSpawned", _cache_unitsSpawned]; btc_cache_markers = []; { _x params ["_pos", "_marker_name"]; [_pos, 0, _marker_name] call btc_fnc_info_cacheMarker; -} forEach (_array_cache select 3); +} forEach _cache_markers; -btc_cache_pictures = +(_array_cache select 4); +btc_cache_pictures = _cache_pictures; { (btc_cache_pictures select 2) pushBack ([ _x, @@ -106,7 +111,7 @@ btc_cache_pictures = +(_array_cache select 4); } forEach (btc_cache_pictures select 0); //FOB -private _fobs = profileNamespace getVariable [format ["btc_hm_%1_fobs", _name], []]; +private _fobs = +(profileNamespace getVariable [format ["btc_hm_%1_fobs", _name], []]); { _x params ["_fob_name", "_pos", ["_direction", 0, [0]]]; @@ -117,14 +122,20 @@ private _fobs = profileNamespace getVariable [format ["btc_hm_%1_fobs", _name], //REP btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep", _name], 0]; -//VEHICLES +//Objects {deleteVehicle _x} forEach btc_vehicles; btc_vehicles = []; -private _vehs = profileNamespace getVariable [format ["btc_hm_%1_vehs", _name], []]; +private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]); +{ + [_x] call btc_fnc_db_loadObjectStatus; +} forEach _objs; + +//VEHICLES +private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name], []]); [{ // Can't be executed just after because we can't delete and spawn vehicle during the same frame. - { - _x params [ + private _loadVehicle = { + params [ "_veh_type", "_veh_pos", "_veh_dir", @@ -140,7 +151,8 @@ private _vehs = profileNamespace getVariable [format ["btc_hm_%1_vehs", _name], ["_isContaminated", false, [false]], ["_supplyVehicle", [], [[]]], ["_EDENinventory", [], [[]]], - ["_vectorPos", [], [[]]] + ["_vectorPos", [], [[]]], + ["_ViV", [], [[]]] ]; if (btc_debug_log) then { @@ -148,7 +160,7 @@ private _vehs = profileNamespace getVariable [format ["btc_hm_%1_vehs", _name], }; private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory, _veh_AllHitPointsDamage] call btc_fnc_log_createVehicle; - if ((getPos _veh) select 2 < 0) then {_veh setVectorUp surfaceNormal position _veh;}; + _veh setVectorDirAndUp _vectorPos; _veh setFuel _veh_fuel; [_veh, _veh_cargo, _veh_cont] call btc_fnc_db_loadCargo; @@ -156,17 +168,28 @@ private _vehs = profileNamespace getVariable [format ["btc_hm_%1_vehs", _name], if !(alive _veh) then { [_veh, objNull, objNull, false] call btc_fnc_veh_killed; }; - } forEach _this; -}, _vehs, 0.5] call CBA_fnc_waitAndExecute; + if !(_ViV isEqualTo []) then { + { + private _vehToLoad = _x call _loadVehicle; + if !([_vehToLoad, _veh] call btc_fnc_tow_ViV) then { + _vehToLoad setVehiclePosition [_veh, [], 100, "NONE"]; + private _marker = _vehToLoad getVariable ["marker", ""]; + if !(_marker isEqualTo "") then { + _marker setMarkerPos _vehToLoad; + }; + }; + } forEach _ViV; + }; -//Objects -private _objs = profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]; -{ - [_x] call btc_fnc_db_loadObjectStatus; -} forEach _objs; + _veh + }; + { + _x call _loadVehicle; + } forEach _this; +}, _vehs] call CBA_fnc_execNextFrame; //Player Tags -private _tags_properties = profileNamespace getVariable [format ["btc_hm_%1_tags", _name], []]; +private _tags_properties = +(profileNamespace getVariable [format ["btc_hm_%1_tags", _name], []]); private _id = ["ace_tagCreated", { params ["_tag", "_texture", "_object"]; btc_tags_player pushBack [_tag, _texture, _object]; @@ -182,11 +205,14 @@ private _id = ["ace_tagCreated", { ["ace_tagCreated", _id] call CBA_fnc_removeEventHandler; //Player Markers -private _markers_properties = profileNamespace getVariable [format ["btc_hm_%1_markers", _name], []]; +private _markers_properties = +(profileNamespace getVariable [format ["btc_hm_%1_markers", _name], []]); { - _x params ["_markerText", "_markerPos", "_markerColor", "_markerType", "_markerSize", "_markerAlpha", "_markerBrush", "_markerDir", "_markerShape"]; + _x params ["_markerText", "_markerPos", "_markerColor", "_markerType", "_markerSize", "_markerAlpha", "_markerBrush", "_markerDir", "_markerShape", + ["_markerPolyline", [], [[]]], + ["_markerChannel", 0, [0]] + ]; - private _marker = createMarker [format ["_USER_DEFINED #0/%1/0", _forEachindex], _markerPos]; + private _marker = createMarker [format ["_USER_DEFINED #0/%1/%2", _forEachindex, _markerChannel], _markerPos, _markerChannel]; _marker setMarkerText _markerText; _marker setMarkerColor _markerColor; _marker setMarkerType _markerType; @@ -195,4 +221,7 @@ private _markers_properties = profileNamespace getVariable [format ["btc_hm_%1_m _marker setMarkerBrush _markerBrush; _marker setMarkerDir _markerDir; _marker setMarkerShape _markerShape; + if !(_markerPolyline isEqualTo []) then { + _marker setMarkerPolyline _markerPolyline; + }; } forEach _markers_properties; From 83b87215c380813077f3ea8166f9898325a4e779 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 26 Feb 2021 13:03:33 +0100 Subject: [PATCH 041/354] Add ConfigOf for veh respawn --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index b3e0c0bb0..3984344ac 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -63,7 +63,7 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); _vehicle setPosASL _pos; _vehicle setVectorDirAndUp _vectorPos; - if (getNumber(configFile >> "CfgVehicles" >> _type >> "isUav") isEqualTo 1) then { + if (getNumber(configOf _vehicle >> "isUav") isEqualTo 1) then { createVehicleCrew _vehicle; }; From 1d711da1731dc046ae1e87beacd257776639bcae Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 26 Feb 2021 13:18:36 +0100 Subject: [PATCH 042/354] Use more isNotEqualTo --- .../core/fnc/city/activate.sqf | 5 ++++- .../core/fnc/city/set_clear.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf | 2 +- .../core/fnc/common/show_hint.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 6 +++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf | 4 ++-- .../core/fnc/log/server_repair_wreck.sqf | 2 +- .../core/fnc/mil/create_staticOnRoof.sqf | 2 +- .../core/fnc/rep/suppressed.sqf | 2 +- 9 files changed, 15 insertions(+), 12 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index bb2d96506..92f9cca17 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -198,7 +198,10 @@ if (_city getVariable ["spawn_more", false]) then { }; }; -if (!(btc_cache_pos isEqualTo []) && {!(btc_cache_obj getVariable ["btc_cache_unitsSpawned", false])}) then { +if ( + (btc_cache_pos isNotEqualTo []) && + {!(btc_cache_obj getVariable ["btc_cache_unitsSpawned", false])} +) then { if (_city inArea [btc_cache_pos, _radius, _radius, 0, false]) then { btc_cache_obj setVariable ["btc_cache_unitsSpawned", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 4e9d99c2d..8f5606b31 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -29,7 +29,7 @@ params [ private _city = btc_city_all select _id; _city setVariable ["occupied", false]; -if !(_remainEnemyUnits isEqualTo []) then { +if (_remainEnemyUnits isNotEqualTo []) then { { if (unitIsUAV _x) then { _x setDamage 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf index 092cfb068..d55f34f51 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf @@ -43,7 +43,7 @@ if (_surface isEqualTo []) then { // Try to find again the roof with house posit _surface = lineIntersectsSurfaces [_ASL vectorAdd [0, 0, 10], getPosASL _house]; }; -if !(_surface isEqualTo []) then { +if (_surface isNotEqualTo []) then { private _intersect = _surface select 0; if ( (_intersect select 2) isEqualTo _house && diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf index 525633371..b80377af3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf @@ -110,7 +110,7 @@ private _text = switch (_type) do { case 21 : { _custom params ["_color", "_player"]; [ - [[name _player], [" "]] select (isNull _player || !(side group _player isEqualTo btc_player_side)), + [[name _player], [" "]] select (isNull _player || (side group _player isNotEqualTo btc_player_side)), ["\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa", 4, _color], [" "] ]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index afd05855c..4e6efda2b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -168,13 +168,13 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] if !(alive _veh) then { [_veh, objNull, objNull, false] call btc_fnc_veh_killed; }; - if !(_ViV isEqualTo []) then { + if (_ViV isNotEqualTo []) then { { private _vehToLoad = _x call _loadVehicle; if !([_vehToLoad, _veh] call btc_fnc_tow_ViV) then { _vehToLoad setVehiclePosition [_veh, [], 100, "NONE"]; private _marker = _vehToLoad getVariable ["marker", ""]; - if !(_marker isEqualTo "") then { + if (_marker isNotEqualTo "") then { _marker setMarkerPos _vehToLoad; }; }; @@ -221,7 +221,7 @@ private _markers_properties = +(profileNamespace getVariable [format ["btc_hm_%1 _marker setMarkerBrush _markerBrush; _marker setMarkerDir _markerDir; _marker setMarkerShape _markerShape; - if !(_markerPolyline isEqualTo []) then { + if (_markerPolyline isNotEqualTo []) then { _marker setMarkerPolyline _markerPolyline; }; } forEach _markers_properties; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 4aa71253a..96e7047f6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -32,7 +32,7 @@ params [ }] call CBA_fnc_addBISEventHandler; ["ace_killed", { params ["_unit"]; - if !(_unit isEqualTo player) exitWith {}; + if (_unit isNotEqualTo player) exitWith {}; if (ace_map_mapIllumination) then {ace_map_mapIllumination = false;}; if (isObjectHidden player) exitWith {}; [btc_rep_malus_player_respawn, player] remoteExecCall ["btc_fnc_rep_change", 2]; @@ -91,7 +91,7 @@ if (btc_p_respawn_arsenal) then { if (btc_p_respawn_location >= 4) then { ["ace_killed", { params ["_unit"]; - if !(_unit isEqualTo player) exitWith {}; + if (_unit isNotEqualTo player) exitWith {}; private _group = group player; [_group, leader _group] call BIS_fnc_addRespawnPosition; }] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index ff0e6770d..b6a356248 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -44,7 +44,7 @@ if (_marker != "") then { remoteExecCall ["", _marker]; }; -if !((getVehicleCargo _veh) isEqualTo []) then { +if ((getVehicleCargo _veh) isNotEqualTo []) then { _veh setVehicleCargo objNull; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf index 21eeb06e8..94bc4f40b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf @@ -31,7 +31,7 @@ params [ private _i = 1; while { _i <= _n && - {!(_houses isEqualTo [])} + {_houses isNotEqualTo []} } do { private _house = _houses deleteAt 0; private _houseType = typeOf _house; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/suppressed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/suppressed.sqf index 88477ea47..93511487b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/suppressed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/suppressed.sqf @@ -34,7 +34,7 @@ params [ if (_civ getVariable ["btc_fnc_rep_suppressed_fired", false] isEqualTo 2) exitWith {}; if (_ammoObject isKindOf "SmokeShell") exitWith {}; -if !(side group _civ isEqualTo civilian) exitWith {_civ setVariable ["btc_fnc_rep_suppressed_fired", 2]}; +if (side group _civ isNotEqualTo civilian) exitWith {_civ setVariable ["btc_fnc_rep_suppressed_fired", 2]}; if ( _civ getVariable ["btc_fnc_rep_suppressed_fired", 0] isEqualTo 0 && From f7797e2cebabf872810ea94295c3f40b7030d695 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 26 Feb 2021 13:19:13 +0100 Subject: [PATCH 043/354] Remove debug --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 9ac60d0a0..518c1dd36 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -411,6 +411,6 @@ class Params { title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_DEBUG"]); values[]={0,1,2}; texts[]={$STR_DISABLED,$STR_ENABLED, $STR_BTC_HAM_PARAM_OTHER_DEBUG_LOGONLY}; // texts[]={"Off","On","Log only"}; - default = 1; + default = 0; }; }; From 759146e4f446745e6528467d38be74277c57b593 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 28 Feb 2021 15:18:01 +0100 Subject: [PATCH 044/354] Remove useless parenthesis --- .../core/fnc/eh/headless.sqf | 10 +++++----- .../core/fnc/eh/server.sqf | 10 +++++----- .../core/fnc/mil/send.sqf | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf index d10bb8641..ccfbd1b3c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf @@ -20,24 +20,24 @@ Author: ---------------------------------------------------------------------------- */ ["Animal", "InitPost", { - [(_this select 0), "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; }, true, [], true] call CBA_fnc_addClassEventHandler; { [_x, "InitPost", { - [(_this select 0), "Suppressed", btc_fnc_rep_suppressed] call CBA_fnc_addBISEventHandler; - [(_this select 0), "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "Suppressed", btc_fnc_rep_suppressed] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_units; { [_x, "InitPost", { - [(_this select 0), "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; { [_x, "InitPost", { - [(_this select 0), "HandleDamage", btc_fnc_patrol_disabled] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_fnc_patrol_disabled] call CBA_fnc_addBISEventHandler; }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 8cee5d3ee..9bc496bd8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -23,7 +23,7 @@ addMissionEventHandler ["BuildingChanged", btc_fnc_rep_buildingchanged]; ["ace_explosives_defuse", btc_fnc_rep_explosives_defuse] call CBA_fnc_addEventHandler; ["ace_killed", btc_fnc_rep_killed] call CBA_fnc_addEventHandler; ["Animal", "InitPost", { - [(_this select 0), "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; }] call CBA_fnc_addClassEventHandler; ["Animal", "killed", { params ["_unit", "_killer", "_instigator"]; @@ -31,13 +31,13 @@ addMissionEventHandler ["BuildingChanged", btc_fnc_rep_buildingchanged]; }] call CBA_fnc_addClassEventHandler; { [_x, "InitPost", { - [(_this select 0), "Suppressed", btc_fnc_rep_suppressed] call CBA_fnc_addBISEventHandler; - [(_this select 0), "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "Suppressed", btc_fnc_rep_suppressed] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_units; { [_x, "InitPost", { - [(_this select 0), "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; ["ace_killed", btc_fnc_mil_unit_killed] call CBA_fnc_addEventHandler; @@ -78,7 +78,7 @@ if (btc_p_set_skill) then { }] call CBA_fnc_addEventHandler; { [_x, "InitPost", { - [(_this select 0), "HandleDamage", btc_fnc_patrol_disabled] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_fnc_patrol_disabled] call CBA_fnc_addBISEventHandler; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; ["ace_tagCreated", btc_fnc_tag_eh] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf index ceee87122..8a1ecc1f6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - [(allPlayers#0), getPos (allPlayers#0), 1, selectRandom btc_type_motorized] call btc_fnc_mil_send + [allPlayers#0, getPos (allPlayers#0), 1, selectRandom btc_type_motorized] call btc_fnc_mil_send (end) Author: From 4f15e431352f20ccfb90edf6c7ebe2fb2bc1d9a2 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 1 Mar 2021 15:46:16 +0100 Subject: [PATCH 045/354] remove a line --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 92f9cca17..8c4e2833f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -95,7 +95,6 @@ if (!(_city getVariable ["initialized", false])) then { _city setVariable ["initialized", true]; }; - [_city, btc_fnc_ied_check] call btc_fnc_delay_exec; private _delay = 0; From 4c4a92535e61f7340d04c8952edc2b2a508dca35 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 5 Mar 2021 10:46:23 +0100 Subject: [PATCH 046/354] Rewrite create group --- .../core/fnc/mil/create_group.sqf | 61 +++++++++---------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 1a162829b..64a097ca3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -20,7 +20,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_mil_create_group; + [player, 50, 1, (btc_p_mil_wp_ratios#0) - 0.1] call btc_fnc_mil_create_group; (end) Author: @@ -41,43 +41,42 @@ params [ ]; _wp_ratios params ["_wp_house_probability", "_wp_sentry_probability"]; -// Find a position ([_city, _area] call btc_fnc_city_findPos) params ["_rpos", "_pos_iswater"]; - -private _group = createGroup _enemy_side; -if (_city isEqualType objNull) then { - _group setVariable ["btc_city", _city]; +private _group_structure = [1, objNull]; +if (_wp <= _wp_house_probability) then { // Find building + ([_rpos, _n] call btc_fnc_mil_getBuilding) params ["_numberOfGroup", "_structure"]; + if (_structure isNotEqualTo "") then { + _group_structure = [_numberOfGroup, _structure]; + } else { + _wp = _wp_sentry_probability; // Handle the case there is no building + }; }; + +_group_structure params ["_numberOfGroup", "_structure"]; private _groups = []; -_groups pushBack _group; +for "_i" from 1 to _numberOfGroup do { + private _group = createGroup _enemy_side; + _groups pushBack _group; + if (_city isEqualType objNull) then { + _group setVariable ["btc_city", _city]; + }; -// Handle different case of wp -switch (true) do { - case (_wp <= _wp_house_probability) : { - ([_rpos, _n] call btc_fnc_mil_getBuilding) params ["_n", "_structure"]; - if (_structure isEqualTo "") exitWith { - [_city, _area, _n, _wp_sentry_probability, _type_divers, _type_units, _p_sea, _enemy_side, _wp_ratios] call btc_fnc_mil_create_group; + switch (true) do { + case (_wp <= _wp_house_probability) : { + _n = 1; + [_group, _structure] call btc_fnc_house_addWP; + _group setVariable ["btc_inHouse", typeOf _structure]; }; - for "_i" from 1 to _n do { - private _grp = createGroup _enemy_side; - if (_city isEqualType objNull) then { - _grp setVariable ["btc_city", _city]; - }; - [_grp, _rpos, 1] call btc_fnc_mil_createUnits; - _grp setVariable ["btc_inHouse", typeOf _structure]; - [_grp, _structure] call btc_fnc_house_addWP; - _groups pushBack _grp; + case (_wp > _wp_house_probability && _wp <= _wp_sentry_probability) : { + [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; + }; + case (_wp > _wp_sentry_probability) : { + [_group] call CBA_fnc_clearWaypoints; + [_group, _rpos, -1, "SENTRY", "AWARE", "RED"] call CBA_fnc_addWaypoint; }; }; - case (_wp > _wp_house_probability && _wp <= _wp_sentry_probability) : { - [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; - [_group, _rpos, _n, _pos_iswater] call btc_fnc_mil_createUnits; - }; - case (_wp > _wp_sentry_probability) : { - [_group] call CBA_fnc_clearWaypoints; - [_group, _rpos, -1, "SENTRY", "AWARE", "RED"] call CBA_fnc_addWaypoint; - [_group, _rpos, _n, _pos_iswater] call btc_fnc_mil_createUnits; - }; + + [_group, _rpos, _n, _pos_iswater] call btc_fnc_mil_createUnits; }; if (btc_debug_log) then { From cfd3f99dccc4febae67bb4ded7abe586349950ff Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 5 Mar 2021 12:03:54 +0100 Subject: [PATCH 047/354] Migrate hideout fnc to a folder --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 8 +++++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 2 +- .../core/fnc/db/load_old.sqf | 2 +- .../fnc/{mil/create_hideout.sqf => hideout/create.sqf} | 8 ++++---- .../create_composition.sqf} | 4 ++-- .../core/fnc/{mil/hd_hideout.sqf => hideout/hd.sqf} | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 2 +- 7 files changed, 16 insertions(+), 14 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{mil/create_hideout.sqf => hideout/create.sqf} (94%) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{mil/create_hideout_composition.sqf => hideout/create_composition.sqf} (94%) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{mil/hd_hideout.sqf => hideout/hd.sqf} (96%) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 5f9af2f84..90f1e87b8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -110,9 +110,6 @@ if (isServer) then { btc_fnc_mil_addWP = compile preprocessFileLineNumbers "core\fnc\mil\addWP.sqf"; btc_fnc_mil_check_cap = compile preprocessFileLineNumbers "core\fnc\mil\check_cap.sqf"; btc_fnc_mil_create_group = compile preprocessFileLineNumbers "core\fnc\mil\create_group.sqf"; - btc_fnc_mil_hd_hideout = compile preprocessFileLineNumbers "core\fnc\mil\hd_hideout.sqf"; - btc_fnc_mil_create_hideout = compile preprocessFileLineNumbers "core\fnc\mil\create_hideout.sqf"; - btc_fnc_mil_create_hideout_composition = compile preprocessFileLineNumbers "core\fnc\mil\create_hideout_composition.sqf"; btc_fnc_mil_create_static = compile preprocessFileLineNumbers "core\fnc\mil\create_static.sqf"; btc_fnc_mil_create_patrol = compile preprocessFileLineNumbers "core\fnc\mil\create_patrol.sqf"; btc_fnc_mil_send = compile preprocessFileLineNumbers "core\fnc\mil\send.sqf"; @@ -124,6 +121,11 @@ if (isServer) then { btc_fnc_mil_unit_killed = compile preprocessFileLineNumbers "core\fnc\mil\unit_killed.sqf"; btc_fnc_mil_create_staticOnRoof = compile preprocessFileLineNumbers "core\fnc\mil\create_staticOnRoof.sqf"; + //HIDEOUT + btc_fnc_hideout_hd = compile preprocessFileLineNumbers "core\fnc\hideout\hd.sqf"; + btc_fnc_hideout_create = compile preprocessFileLineNumbers "core\fnc\hideout\create.sqf"; + btc_fnc_hideout_create_composition = compile preprocessFileLineNumbers "core\fnc\hideout\create_composition.sqf"; + //PATROL btc_fnc_patrol_playersInAreaCityGroup = compile preprocessFileLineNumbers "core\fnc\patrol\playersInAreaCityGroup.sqf"; btc_fnc_patrol_usefulCity = compile preprocessFileLineNumbers "core\fnc\patrol\usefulCity.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 288d360d0..7a24f4022 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -67,7 +67,7 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi private _array_ho = +(profileNamespace getVariable [format ["btc_hm_%1_ho", _name], []]); { - _x call btc_fnc_mil_create_hideout; + _x call btc_fnc_hideout_create; } forEach _array_ho; private _ho = profileNamespace getVariable [format ["btc_hm_%1_ho_sel", _name], 0]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 456c1f696..0e3193ddb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -67,7 +67,7 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi private _array_ho = +(profileNamespace getVariable [format ["btc_hm_%1_ho", _name], []]); { - _x call btc_fnc_mil_create_hideout; + _x call btc_fnc_hideout_create; } forEach _array_ho; private _ho = profileNamespace getVariable [format ["btc_hm_%1_ho_sel", _name], 0]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf similarity index 94% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf index ba2dd3ef4..8a83f42e4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_create_hideout +Function: btc_fnc_hideout_create Description: Create hideout randomnly or with defined position. @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_mil_create_hideout; + [] call btc_fnc_hideout_create; (end) (begin example) selectMin (btc_hideouts apply { @@ -82,7 +82,7 @@ deleteVehicle (_city getVariable ["trigger_player_side", objNull]); [_pos, btc_hideouts_radius, _city, _city getVariable "occupied", _city getVariable "name", _city getVariable "type", _city getVariable "id"] call btc_fnc_city_trigger_player_side; -private _hideout = [_pos] call btc_fnc_mil_create_hideout_composition; +private _hideout = [_pos] call btc_fnc_hideout_create_composition; clearWeaponCargoGlobal _hideout; clearItemCargoGlobal _hideout; clearMagazineCargoGlobal _hideout; @@ -92,7 +92,7 @@ _hideout setVariable ["rinf_time", _rinf_time]; _hideout setVariable ["cap_time", _cap_time]; _hideout setVariable ["assigned_to", _city]; -_hideout addEventHandler ["HandleDamage", btc_fnc_mil_hd_hideout]; +_hideout addEventHandler ["HandleDamage", btc_fnc_hideout_hd]; private _markers = []; { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout_composition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create_composition.sqf similarity index 94% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout_composition.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create_composition.sqf index 898f6736e..04152ba1d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout_composition.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create_composition.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_create_hideout_composition +Function: btc_fnc_hideout_create_composition Description: Create a random hideout composition. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [getPos (allPlayers#0)] call btc_fnc_mil_create_hideout_composition; + _result = [getPos (allPlayers#0)] call btc_fnc_hideout_create_composition; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/hd_hideout.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf similarity index 96% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/hd_hideout.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf index 4ea7c53cb..f987cb02b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/hd_hideout.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_hd_hideout +Function: btc_fnc_hideout_hd Description: Fill me when you edit me ! @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_mil_hd_hideout; + _result = [] call btc_fnc_hideout_hd; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 021e1ea87..1e3f9c0de 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -14,7 +14,7 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN [] call compile preprocessFileLineNumbers "core\fnc\db\load_old.sqf"; }; } else { - for "_i" from 1 to btc_hideout_n do {[] call btc_fnc_mil_create_hideout;}; + for "_i" from 1 to btc_hideout_n do {[] call btc_fnc_hideout_create;}; [] call btc_fnc_cache_init; private _date = date; From 8aeaff08e1d5731aba8dae5e20fb553a6b474b0a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 5 Mar 2021 22:25:23 +0100 Subject: [PATCH 048/354] Add: compileScript --- .../core/fnc/compile.sqf | 506 +++++++++--------- .../core/fnc/db/load_old.sqf | 2 +- .../core/init.sqf | 12 +- .../core/init_player.sqf | 2 +- .../core/init_server.sqf | 6 +- =BTC=co@30_Hearts_and_Minds.Altis/init.sqf | 2 +- 6 files changed, 265 insertions(+), 265 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 5f9af2f84..b05fe3f15 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -1,371 +1,371 @@ /////////////////////SERVER\\\\\\\\\\\\\\\\\\\\\ if (isServer) then { //CACHE - btc_fnc_cache_find_pos = compile preprocessFileLineNumbers "core\fnc\cache\find_pos.sqf"; - btc_fnc_cache_create = compile preprocessFileLineNumbers "core\fnc\cache\create.sqf"; - btc_fnc_cache_create_attachto = compile preprocessFileLineNumbers "core\fnc\cache\create_attachto.sqf"; - btc_fnc_cache_init = compile preprocessFileLineNumbers "core\fnc\cache\init.sqf"; + btc_fnc_cache_find_pos = compileScript ["core\fnc\cache\find_pos.sqf"]; + btc_fnc_cache_create = compileScript ["core\fnc\cache\create.sqf"]; + btc_fnc_cache_create_attachto = compileScript ["core\fnc\cache\create_attachto.sqf"]; + btc_fnc_cache_init = compileScript ["core\fnc\cache\init.sqf"]; //COMMON - btc_fnc_check_los = compile preprocessFileLineNumbers "core\fnc\common\check_los.sqf"; - btc_fnc_create_composition = compile preprocessFileLineNumbers "core\fnc\common\create_composition.sqf"; - btc_fnc_house_addWP = compile preprocessFileLineNumbers "core\fnc\common\house_addWP.sqf"; - btc_fnc_set_damage = compile preprocessFileLineNumbers "core\fnc\common\set_damage.sqf"; - btc_fnc_road_direction = compile preprocessFileLineNumbers "core\fnc\common\road_direction.sqf"; - btc_fnc_findsafepos = compile preprocessFileLineNumbers "core\fnc\common\findsafepos.sqf"; - btc_fnc_find_closecity = compile preprocessFileLineNumbers "core\fnc\common\find_closecity.sqf"; - btc_fnc_delete = compile preprocessFileLineNumbers "core\fnc\common\delete.sqf"; - btc_fnc_deleteEntities = compile preprocessFileLineNumbers "core\fnc\common\deleteEntities.sqf"; - btc_fnc_final_phase = compile preprocessFileLineNumbers "core\fnc\common\final_phase.sqf"; - btc_fnc_findPosOutsideRock = compile preprocessFileLineNumbers "core\fnc\common\findposoutsiderock.sqf"; - btc_fnc_set_groupsOwner = compile preprocessFileLineNumbers "core\fnc\common\set_groupsOwner.sqf"; - btc_fnc_typeOf = compile preprocessFileLineNumbers "core\fnc\common\typeOf.sqf"; - btc_fnc_getVehProperties = compile preprocessFileLineNumbers "core\fnc\common\getVehProperties.sqf"; - btc_fnc_setVehProperties = compile preprocessFileLineNumbers "core\fnc\common\setVehProperties.sqf"; - btc_fnc_roof = compile preprocessFileLineNumbers "core\fnc\common\roof.sqf"; + btc_fnc_check_los = compileScript ["core\fnc\common\check_los.sqf"]; + btc_fnc_create_composition = compileScript ["core\fnc\common\create_composition.sqf"]; + btc_fnc_house_addWP = compileScript ["core\fnc\common\house_addWP.sqf"]; + btc_fnc_set_damage = compileScript ["core\fnc\common\set_damage.sqf"]; + btc_fnc_road_direction = compileScript ["core\fnc\common\road_direction.sqf"]; + btc_fnc_findsafepos = compileScript ["core\fnc\common\findsafepos.sqf"]; + btc_fnc_find_closecity = compileScript ["core\fnc\common\find_closecity.sqf"]; + btc_fnc_delete = compileScript ["core\fnc\common\delete.sqf"]; + btc_fnc_deleteEntities = compileScript ["core\fnc\common\deleteEntities.sqf"]; + btc_fnc_final_phase = compileScript ["core\fnc\common\final_phase.sqf"]; + btc_fnc_findPosOutsideRock = compileScript ["core\fnc\common\findposoutsiderock.sqf"]; + btc_fnc_set_groupsOwner = compileScript ["core\fnc\common\set_groupsOwner.sqf"]; + btc_fnc_typeOf = compileScript ["core\fnc\common\typeOf.sqf"]; + btc_fnc_getVehProperties = compileScript ["core\fnc\common\getVehProperties.sqf"]; + btc_fnc_setVehProperties = compileScript ["core\fnc\common\setVehProperties.sqf"]; + btc_fnc_roof = compileScript ["core\fnc\common\roof.sqf"]; //CHEM - btc_fnc_chem_checkLoop = compile preprocessFileLineNumbers "core\fnc\chem\checkLoop.sqf"; - btc_fnc_chem_propagate = compile preprocessFileLineNumbers "core\fnc\chem\propagate.sqf"; - btc_fnc_chem_handleShower = compile preprocessFileLineNumbers "core\fnc\chem\handleShower.sqf"; + btc_fnc_chem_checkLoop = compileScript ["core\fnc\chem\checkLoop.sqf"]; + btc_fnc_chem_propagate = compileScript ["core\fnc\chem\propagate.sqf"]; + btc_fnc_chem_handleShower = compileScript ["core\fnc\chem\handleShower.sqf"]; //SPECT - btc_fnc_spect_checkLoop = compile preprocessFileLineNumbers "core\fnc\spect\checkLoop.sqf"; - btc_fnc_spect_electronicFailure = compile preprocessFileLineNumbers "core\fnc\spect\electronicFailure.sqf"; + btc_fnc_spect_checkLoop = compileScript ["core\fnc\spect\checkLoop.sqf"]; + btc_fnc_spect_electronicFailure = compileScript ["core\fnc\spect\electronicFailure.sqf"]; //CITY - btc_fnc_city_activate = compile preprocessFileLineNumbers "core\fnc\city\activate.sqf"; - btc_fnc_city_create = compile preprocessFileLineNumbers "core\fnc\city\create.sqf"; - btc_fnc_city_de_activate = compile preprocessFileLineNumbers "core\fnc\city\de_activate.sqf"; - btc_fnc_city_set_clear = compile preprocessFileLineNumbers "core\fnc\city\set_clear.sqf"; - btc_fnc_city_trigger_player_side = compile preprocessFileLineNumbers "core\fnc\city\trigger_player_side.sqf"; - btc_fnc_city_findPos = compile preprocessFileLineNumbers "core\fnc\city\findPos.sqf"; - btc_fnc_city_cleanUp = compile preprocessFileLineNumbers "core\fnc\city\cleanUp.sqf"; - btc_fnc_city_trigger_free_condition = compile preprocessFileLineNumbers "core\fnc\city\trigger_free_condition.sqf"; + btc_fnc_city_activate = compileScript ["core\fnc\city\activate.sqf"]; + btc_fnc_city_create = compileScript ["core\fnc\city\create.sqf"]; + btc_fnc_city_de_activate = compileScript ["core\fnc\city\de_activate.sqf"]; + btc_fnc_city_set_clear = compileScript ["core\fnc\city\set_clear.sqf"]; + btc_fnc_city_trigger_player_side = compileScript ["core\fnc\city\trigger_player_side.sqf"]; + btc_fnc_city_findPos = compileScript ["core\fnc\city\findPos.sqf"]; + btc_fnc_city_cleanUp = compileScript ["core\fnc\city\cleanUp.sqf"]; + btc_fnc_city_trigger_free_condition = compileScript ["core\fnc\city\trigger_free_condition.sqf"]; //CIV - btc_fnc_civ_add_weapons = compile preprocessFileLineNumbers "core\fnc\civ\add_weapons.sqf"; - btc_fnc_civ_add_grenade = compile preprocessFileLineNumbers "core\fnc\civ\add_grenade.sqf"; - btc_fnc_civ_get_weapons = compile preprocessFileLineNumbers "core\fnc\civ\get_weapons.sqf"; - btc_fnc_civ_get_grenade = compile preprocessFileLineNumbers "core\fnc\civ\get_grenade.sqf"; - btc_fnc_civ_populate = compile preprocessFileLineNumbers "core\fnc\civ\populate.sqf"; - btc_fnc_civ_create_patrol = compile preprocessFileLineNumbers "core\fnc\civ\create_patrol.sqf"; - btc_fnc_civ_evacuate = compile preprocessFileLineNumbers "core\fnc\civ\evacuate.sqf"; + btc_fnc_civ_add_weapons = compileScript ["core\fnc\civ\add_weapons.sqf"]; + btc_fnc_civ_add_grenade = compileScript ["core\fnc\civ\add_grenade.sqf"]; + btc_fnc_civ_get_weapons = compileScript ["core\fnc\civ\get_weapons.sqf"]; + btc_fnc_civ_get_grenade = compileScript ["core\fnc\civ\get_grenade.sqf"]; + btc_fnc_civ_populate = compileScript ["core\fnc\civ\populate.sqf"]; + btc_fnc_civ_create_patrol = compileScript ["core\fnc\civ\create_patrol.sqf"]; + btc_fnc_civ_evacuate = compileScript ["core\fnc\civ\evacuate.sqf"]; //DATA - btc_fnc_data_add_group = compile preprocessFileLineNumbers "core\fnc\data\add_group.sqf"; - btc_fnc_data_get_group = compile preprocessFileLineNumbers "core\fnc\data\get_group.sqf"; - btc_fnc_data_spawn_group = compile preprocessFileLineNumbers "core\fnc\data\spawn_group.sqf"; + btc_fnc_data_add_group = compileScript ["core\fnc\data\add_group.sqf"]; + btc_fnc_data_get_group = compileScript ["core\fnc\data\get_group.sqf"]; + btc_fnc_data_spawn_group = compileScript ["core\fnc\data\spawn_group.sqf"]; //DB - btc_fnc_db_save = compile preprocessFileLineNumbers "core\fnc\db\save.sqf"; - btc_fnc_db_delete = compile preprocessFileLineNumbers "core\fnc\db\delete.sqf"; - btc_fnc_db_loadObjectStatus = compile preprocessFileLineNumbers "core\fnc\db\loadObjectStatus.sqf"; - btc_fnc_db_saveObjectStatus = compile preprocessFileLineNumbers "core\fnc\db\saveObjectStatus.sqf"; - btc_fnc_db_loadCargo = compile preprocessFileLineNumbers "core\fnc\db\loadcargo.sqf"; - btc_fnc_db_autoRestart = compile preprocessFileLineNumbers "core\fnc\db\autoRestart.sqf"; + btc_fnc_db_save = compileScript ["core\fnc\db\save.sqf"]; + btc_fnc_db_delete = compileScript ["core\fnc\db\delete.sqf"]; + btc_fnc_db_loadObjectStatus = compileScript ["core\fnc\db\loadObjectStatus.sqf"]; + btc_fnc_db_saveObjectStatus = compileScript ["core\fnc\db\saveObjectStatus.sqf"]; + btc_fnc_db_loadCargo = compileScript ["core\fnc\db\loadcargo.sqf"]; + btc_fnc_db_autoRestart = compileScript ["core\fnc\db\autoRestart.sqf"]; //DELAY - btc_fnc_delay_createUnit = compile preprocessFileLineNumbers "core\fnc\delay\createUnit.sqf"; - btc_fnc_delay_createVehicle = compile preprocessFileLineNumbers "core\fnc\delay\createVehicle.sqf"; - btc_fnc_delay_createAgent = compile preprocessFileLineNumbers "core\fnc\delay\createAgent.sqf"; - btc_fnc_delay_exec = compile preprocessFileLineNumbers "core\fnc\delay\exec.sqf"; + btc_fnc_delay_createUnit = compileScript ["core\fnc\delay\createUnit.sqf"]; + btc_fnc_delay_createVehicle = compileScript ["core\fnc\delay\createVehicle.sqf"]; + btc_fnc_delay_createAgent = compileScript ["core\fnc\delay\createAgent.sqf"]; + btc_fnc_delay_exec = compileScript ["core\fnc\delay\exec.sqf"]; //EH - btc_fnc_eh_server = compile preprocessFileLineNumbers "core\fnc\eh\server.sqf"; + btc_fnc_eh_server = compileScript ["core\fnc\eh\server.sqf"]; //IED - btc_fnc_ied_boom = compile preprocessFileLineNumbers "core\fnc\ied\boom.sqf"; - btc_fnc_ied_check = compile preprocessFileLineNumbers "core\fnc\ied\check.sqf"; - btc_fnc_ied_checkLoop = compile preprocessFileLineNumbers "core\fnc\ied\checkLoop.sqf"; - btc_fnc_ied_create = compile preprocessFileLineNumbers "core\fnc\ied\create.sqf"; - btc_fnc_ied_fired_near = compile preprocessFileLineNumbers "core\fnc\ied\fired_near.sqf"; - btc_fnc_ied_initArea = compile preprocessFileLineNumbers "core\fnc\ied\initArea.sqf"; - btc_fnc_ied_suicider_active = compile preprocessFileLineNumbers "core\fnc\ied\suicider_active.sqf"; - btc_fnc_ied_suicider_activeLoop = compile preprocessFileLineNumbers "core\fnc\ied\suicider_activeLoop.sqf"; - btc_fnc_ied_suicider_create = compile preprocessFileLineNumbers "core\fnc\ied\suicider_create.sqf"; - btc_fnc_ied_suiciderLoop = compile preprocessFileLineNumbers "core\fnc\ied\suiciderLoop.sqf"; - btc_fnc_ied_allahu_akbar = compile preprocessFileLineNumbers "core\fnc\ied\allahu_akbar.sqf"; - btc_fnc_ied_drone_active = compile preprocessFileLineNumbers "core\fnc\ied\drone_active.sqf"; - btc_fnc_ied_drone_create = compile preprocessFileLineNumbers "core\fnc\ied\drone_create.sqf"; - btc_fnc_ied_droneLoop = compile preprocessFileLineNumbers "core\fnc\ied\droneLoop.sqf"; - btc_fnc_ied_drone_fire = compile preprocessFileLineNumbers "core\fnc\ied\drone_fire.sqf"; - btc_fnc_ied_randomRoadPos = compile preprocessFileLineNumbers "core\fnc\ied\randomRoadPos.sqf"; + btc_fnc_ied_boom = compileScript ["core\fnc\ied\boom.sqf"]; + btc_fnc_ied_check = compileScript ["core\fnc\ied\check.sqf"]; + btc_fnc_ied_checkLoop = compileScript ["core\fnc\ied\checkLoop.sqf"]; + btc_fnc_ied_create = compileScript ["core\fnc\ied\create.sqf"]; + btc_fnc_ied_fired_near = compileScript ["core\fnc\ied\fired_near.sqf"]; + btc_fnc_ied_initArea = compileScript ["core\fnc\ied\initArea.sqf"]; + btc_fnc_ied_suicider_active = compileScript ["core\fnc\ied\suicider_active.sqf"]; + btc_fnc_ied_suicider_activeLoop = compileScript ["core\fnc\ied\suicider_activeLoop.sqf"]; + btc_fnc_ied_suicider_create = compileScript ["core\fnc\ied\suicider_create.sqf"]; + btc_fnc_ied_suiciderLoop = compileScript ["core\fnc\ied\suiciderLoop.sqf"]; + btc_fnc_ied_allahu_akbar = compileScript ["core\fnc\ied\allahu_akbar.sqf"]; + btc_fnc_ied_drone_active = compileScript ["core\fnc\ied\drone_active.sqf"]; + btc_fnc_ied_drone_create = compileScript ["core\fnc\ied\drone_create.sqf"]; + btc_fnc_ied_droneLoop = compileScript ["core\fnc\ied\droneLoop.sqf"]; + btc_fnc_ied_drone_fire = compileScript ["core\fnc\ied\drone_fire.sqf"]; + btc_fnc_ied_randomRoadPos = compileScript ["core\fnc\ied\randomRoadPos.sqf"]; //INFO - btc_fnc_info_cache = compile preprocessFileLineNumbers "core\fnc\info\cache.sqf"; - btc_fnc_info_give_intel = compile preprocessFileLineNumbers "core\fnc\info\give_intel.sqf"; - btc_fnc_info_has_intel = compile preprocessFileLineNumbers "core\fnc\info\has_intel.sqf"; - btc_fnc_info_hideout = compile preprocessFileLineNumbers "core\fnc\info\hideout.sqf"; - btc_fnc_info_cacheMarker = compile preprocessFileLineNumbers "core\fnc\info\cacheMarker.sqf"; - btc_fnc_info_path = compile preprocessFileLineNumbers "core\fnc\info\path.sqf"; + btc_fnc_info_cache = compileScript ["core\fnc\info\cache.sqf"]; + btc_fnc_info_give_intel = compileScript ["core\fnc\info\give_intel.sqf"]; + btc_fnc_info_has_intel = compileScript ["core\fnc\info\has_intel.sqf"]; + btc_fnc_info_hideout = compileScript ["core\fnc\info\hideout.sqf"]; + btc_fnc_info_cacheMarker = compileScript ["core\fnc\info\cacheMarker.sqf"]; + btc_fnc_info_path = compileScript ["core\fnc\info\path.sqf"]; //FOB - btc_fnc_fob_create_s = compile preprocessFileLineNumbers "core\fnc\fob\create_s.sqf"; - btc_fnc_fob_dismantle_s = compile preprocessFileLineNumbers "core\fnc\fob\dismantle_s.sqf"; - btc_fnc_fob_killed = compile preprocessFileLineNumbers "core\fnc\fob\killed.sqf"; - btc_fnc_fob_rallypointTimer = compile preprocessFileLineNumbers "core\fnc\fob\rallypointTimer.sqf"; + btc_fnc_fob_create_s = compileScript ["core\fnc\fob\create_s.sqf"]; + btc_fnc_fob_dismantle_s = compileScript ["core\fnc\fob\dismantle_s.sqf"]; + btc_fnc_fob_killed = compileScript ["core\fnc\fob\killed.sqf"]; + btc_fnc_fob_rallypointTimer = compileScript ["core\fnc\fob\rallypointTimer.sqf"]; //MIL - btc_fnc_mil_addWP = compile preprocessFileLineNumbers "core\fnc\mil\addWP.sqf"; - btc_fnc_mil_check_cap = compile preprocessFileLineNumbers "core\fnc\mil\check_cap.sqf"; - btc_fnc_mil_create_group = compile preprocessFileLineNumbers "core\fnc\mil\create_group.sqf"; - btc_fnc_mil_hd_hideout = compile preprocessFileLineNumbers "core\fnc\mil\hd_hideout.sqf"; - btc_fnc_mil_create_hideout = compile preprocessFileLineNumbers "core\fnc\mil\create_hideout.sqf"; - btc_fnc_mil_create_hideout_composition = compile preprocessFileLineNumbers "core\fnc\mil\create_hideout_composition.sqf"; - btc_fnc_mil_create_static = compile preprocessFileLineNumbers "core\fnc\mil\create_static.sqf"; - btc_fnc_mil_create_patrol = compile preprocessFileLineNumbers "core\fnc\mil\create_patrol.sqf"; - btc_fnc_mil_send = compile preprocessFileLineNumbers "core\fnc\mil\send.sqf"; - btc_fnc_mil_set_skill = compile preprocessFileLineNumbers "core\fnc\mil\set_skill.sqf"; - btc_fnc_mil_getStructures = compile preprocessFileLineNumbers "core\fnc\mil\getStructures.sqf"; - btc_fnc_mil_getBuilding = compile preprocessFileLineNumbers "core\fnc\mil\getBuilding.sqf"; - btc_fnc_mil_createVehicle = compile preprocessFileLineNumbers "core\fnc\mil\createVehicle.sqf"; - btc_fnc_mil_createUnits = compile preprocessFileLineNumbers "core\fnc\mil\createUnits.sqf"; - btc_fnc_mil_unit_killed = compile preprocessFileLineNumbers "core\fnc\mil\unit_killed.sqf"; - btc_fnc_mil_create_staticOnRoof = compile preprocessFileLineNumbers "core\fnc\mil\create_staticOnRoof.sqf"; + btc_fnc_mil_addWP = compileScript ["core\fnc\mil\addWP.sqf"]; + btc_fnc_mil_check_cap = compileScript ["core\fnc\mil\check_cap.sqf"]; + btc_fnc_mil_create_group = compileScript ["core\fnc\mil\create_group.sqf"]; + btc_fnc_mil_hd_hideout = compileScript ["core\fnc\mil\hd_hideout.sqf"]; + btc_fnc_mil_create_hideout = compileScript ["core\fnc\mil\create_hideout.sqf"]; + btc_fnc_mil_create_hideout_composition = compileScript ["core\fnc\mil\create_hideout_composition.sqf"]; + btc_fnc_mil_create_static = compileScript ["core\fnc\mil\create_static.sqf"]; + btc_fnc_mil_create_patrol = compileScript ["core\fnc\mil\create_patrol.sqf"]; + btc_fnc_mil_send = compileScript ["core\fnc\mil\send.sqf"]; + btc_fnc_mil_set_skill = compileScript ["core\fnc\mil\set_skill.sqf"]; + btc_fnc_mil_getStructures = compileScript ["core\fnc\mil\getStructures.sqf"]; + btc_fnc_mil_getBuilding = compileScript ["core\fnc\mil\getBuilding.sqf"]; + btc_fnc_mil_createVehicle = compileScript ["core\fnc\mil\createVehicle.sqf"]; + btc_fnc_mil_createUnits = compileScript ["core\fnc\mil\createUnits.sqf"]; + btc_fnc_mil_unit_killed = compileScript ["core\fnc\mil\unit_killed.sqf"]; + btc_fnc_mil_create_staticOnRoof = compileScript ["core\fnc\mil\create_staticOnRoof.sqf"]; //PATROL - btc_fnc_patrol_playersInAreaCityGroup = compile preprocessFileLineNumbers "core\fnc\patrol\playersInAreaCityGroup.sqf"; - btc_fnc_patrol_usefulCity = compile preprocessFileLineNumbers "core\fnc\patrol\usefulCity.sqf"; - btc_fnc_patrol_WPCheck = compile preprocessFileLineNumbers "core\fnc\patrol\WPCheck.sqf"; - btc_fnc_patrol_init = compile preprocessFileLineNumbers "core\fnc\patrol\init.sqf"; - btc_fnc_patrol_addWP = compile preprocessFileLineNumbers "core\fnc\patrol\addWP.sqf"; - btc_fnc_patrol_eh = compile preprocessFileLineNumbers "core\fnc\patrol\eh.sqf"; - btc_fnc_patrol_addEH = compile preprocessFileLineNumbers "core\fnc\patrol\addEH.sqf"; + btc_fnc_patrol_playersInAreaCityGroup = compileScript ["core\fnc\patrol\playersInAreaCityGroup.sqf"]; + btc_fnc_patrol_usefulCity = compileScript ["core\fnc\patrol\usefulCity.sqf"]; + btc_fnc_patrol_WPCheck = compileScript ["core\fnc\patrol\WPCheck.sqf"]; + btc_fnc_patrol_init = compileScript ["core\fnc\patrol\init.sqf"]; + btc_fnc_patrol_addWP = compileScript ["core\fnc\patrol\addWP.sqf"]; + btc_fnc_patrol_eh = compileScript ["core\fnc\patrol\eh.sqf"]; + btc_fnc_patrol_addEH = compileScript ["core\fnc\patrol\addEH.sqf"]; //REP - btc_fnc_rep_call_militia = compile preprocessFileLineNumbers "core\fnc\rep\call_militia.sqf"; - btc_fnc_rep_change = compile preprocessFileLineNumbers "core\fnc\rep\change.sqf"; - btc_fnc_rep_eh_effects = compile preprocessFileLineNumbers "core\fnc\rep\eh_effects.sqf"; - btc_fnc_rep_hh = compile preprocessFileLineNumbers "core\fnc\rep\hh.sqf"; - btc_fnc_rep_buildingchanged = compile preprocessFileLineNumbers "core\fnc\rep\buildingchanged.sqf"; - btc_fnc_rep_explosives_defuse = compile preprocessFileLineNumbers "core\fnc\rep\explosives_defuse.sqf"; - btc_fnc_rep_notify = compile preprocessFileLineNumbers "core\fnc\rep\notify.sqf"; - btc_fnc_rep_killed = compile preprocessFileLineNumbers "core\fnc\rep\killed.sqf"; + btc_fnc_rep_call_militia = compileScript ["core\fnc\rep\call_militia.sqf"]; + btc_fnc_rep_change = compileScript ["core\fnc\rep\change.sqf"]; + btc_fnc_rep_eh_effects = compileScript ["core\fnc\rep\eh_effects.sqf"]; + btc_fnc_rep_hh = compileScript ["core\fnc\rep\hh.sqf"]; + btc_fnc_rep_buildingchanged = compileScript ["core\fnc\rep\buildingchanged.sqf"]; + btc_fnc_rep_explosives_defuse = compileScript ["core\fnc\rep\explosives_defuse.sqf"]; + btc_fnc_rep_notify = compileScript ["core\fnc\rep\notify.sqf"]; + btc_fnc_rep_killed = compileScript ["core\fnc\rep\killed.sqf"]; //SIDE - btc_fnc_side_create = compile preprocessFileLineNumbers "core\fnc\side\create.sqf"; - btc_fnc_side_get_city = compile preprocessFileLineNumbers "core\fnc\side\get_city.sqf"; - btc_fnc_side_mines = compile preprocessFileLineNumbers "core\fnc\side\mines.sqf"; - btc_fnc_side_supply = compile preprocessFileLineNumbers "core\fnc\side\supply.sqf"; - btc_fnc_side_vehicle = compile preprocessFileLineNumbers "core\fnc\side\vehicle.sqf"; - btc_fnc_side_civtreatment = compile preprocessFileLineNumbers "core\fnc\side\civtreatment.sqf"; - btc_fnc_side_tower = compile preprocessFileLineNumbers "core\fnc\side\tower.sqf"; - btc_fnc_side_checkpoint = compile preprocessFileLineNumbers "core\fnc\side\checkpoint.sqf"; - btc_fnc_side_civtreatment_boat = compile preprocessFileLineNumbers "core\fnc\side\civtreatment_boat.sqf"; - btc_fnc_side_underwater_generator= compile preprocessFileLineNumbers "core\fnc\side\underwater_generator.sqf"; - btc_fnc_side_convoy = compile preprocessFileLineNumbers "core\fnc\side\convoy.sqf"; - btc_fnc_side_rescue = compile preprocessFileLineNumbers "core\fnc\side\rescue.sqf"; - btc_fnc_side_capture_officer = compile preprocessFileLineNumbers "core\fnc\side\capture_officer.sqf"; - btc_fnc_side_hostage = compile preprocessFileLineNumbers "core\fnc\side\hostage.sqf"; - btc_fnc_side_hack = compile preprocessFileLineNumbers "core\fnc\side\hack.sqf"; - btc_fnc_side_kill = compile preprocessFileLineNumbers "core\fnc\side\kill.sqf"; - btc_fnc_side_chemicalLeak = compile preprocessFileLineNumbers "core\fnc\side\chemicalLeak.sqf"; - btc_fnc_side_EMP = compile preprocessFileLineNumbers "core\fnc\side\EMP.sqf"; - btc_fnc_side_removeRubbish = compile preprocessFileLineNumbers "core\fnc\side\removeRubbish.sqf"; + btc_fnc_side_create = compileScript ["core\fnc\side\create.sqf"]; + btc_fnc_side_get_city = compileScript ["core\fnc\side\get_city.sqf"]; + btc_fnc_side_mines = compileScript ["core\fnc\side\mines.sqf"]; + btc_fnc_side_supply = compileScript ["core\fnc\side\supply.sqf"]; + btc_fnc_side_vehicle = compileScript ["core\fnc\side\vehicle.sqf"]; + btc_fnc_side_civtreatment = compileScript ["core\fnc\side\civtreatment.sqf"]; + btc_fnc_side_tower = compileScript ["core\fnc\side\tower.sqf"]; + btc_fnc_side_checkpoint = compileScript ["core\fnc\side\checkpoint.sqf"]; + btc_fnc_side_civtreatment_boat = compileScript ["core\fnc\side\civtreatment_boat.sqf"]; + btc_fnc_side_underwater_generator= compileScript ["core\fnc\side\underwater_generator.sqf"]; + btc_fnc_side_convoy = compileScript ["core\fnc\side\convoy.sqf"]; + btc_fnc_side_rescue = compileScript ["core\fnc\side\rescue.sqf"]; + btc_fnc_side_capture_officer = compileScript ["core\fnc\side\capture_officer.sqf"]; + btc_fnc_side_hostage = compileScript ["core\fnc\side\hostage.sqf"]; + btc_fnc_side_hack = compileScript ["core\fnc\side\hack.sqf"]; + btc_fnc_side_kill = compileScript ["core\fnc\side\kill.sqf"]; + btc_fnc_side_chemicalLeak = compileScript ["core\fnc\side\chemicalLeak.sqf"]; + btc_fnc_side_EMP = compileScript ["core\fnc\side\EMP.sqf"]; + btc_fnc_side_removeRubbish = compileScript ["core\fnc\side\removeRubbish.sqf"]; //TAG - btc_fnc_tag_initArea = compile preprocessFileLineNumbers "core\fnc\tag\initArea.sqf"; - btc_fnc_tag_eh = compile preprocessFileLineNumbers "core\fnc\tag\eh.sqf"; - btc_fnc_tag_create = compile preprocessFileLineNumbers "core\fnc\tag\create.sqf"; + btc_fnc_tag_initArea = compileScript ["core\fnc\tag\initArea.sqf"]; + btc_fnc_tag_eh = compileScript ["core\fnc\tag\eh.sqf"]; + btc_fnc_tag_create = compileScript ["core\fnc\tag\create.sqf"]; //LOG - btc_fnc_log_createVehicle = compile preprocessFileLineNumbers "core\fnc\log\createVehicle.sqf"; - btc_fnc_log_getRearmMagazines = compile preprocessFileLineNumbers "core\fnc\log\getRearmMagazines.sqf"; - btc_fnc_log_init = compile preprocessFileLineNumbers "core\fnc\log\init.sqf"; - btc_fnc_log_setCargo = compile preprocessFileLineNumbers "core\fnc\log\setCargo.sqf"; - btc_fnc_log_server_delete = compile preprocessFileLineNumbers "core\fnc\log\server_delete.sqf"; - btc_fnc_log_create_s = compile preprocessFileLineNumbers "core\fnc\log\create_s.sqf"; - btc_fnc_log_get_cc = compile preprocessFileLineNumbers "core\fnc\log\get_cc.sqf"; - btc_fnc_log_get_rc = compile preprocessFileLineNumbers "core\fnc\log\get_rc.sqf"; - btc_fnc_log_server_repair_wreck = compile preprocessFileLineNumbers "core\fnc\log\server_repair_wreck.sqf"; + btc_fnc_log_createVehicle = compileScript ["core\fnc\log\createVehicle.sqf"]; + btc_fnc_log_getRearmMagazines = compileScript ["core\fnc\log\getRearmMagazines.sqf"]; + btc_fnc_log_init = compileScript ["core\fnc\log\init.sqf"]; + btc_fnc_log_setCargo = compileScript ["core\fnc\log\setCargo.sqf"]; + btc_fnc_log_server_delete = compileScript ["core\fnc\log\server_delete.sqf"]; + btc_fnc_log_create_s = compileScript ["core\fnc\log\create_s.sqf"]; + btc_fnc_log_get_cc = compileScript ["core\fnc\log\get_cc.sqf"]; + btc_fnc_log_get_rc = compileScript ["core\fnc\log\get_rc.sqf"]; + btc_fnc_log_server_repair_wreck = compileScript ["core\fnc\log\server_repair_wreck.sqf"]; //DEAF - btc_fnc_deaf_earringing = compile preprocessFileLineNumbers "core\fnc\deaf\earringing.sqf"; + btc_fnc_deaf_earringing = compileScript ["core\fnc\deaf\earringing.sqf"]; //TASK - btc_fnc_task_create = compile preprocessFileLineNumbers "core\fnc\task\create.sqf"; - btc_fnc_task_setState = compile preprocessFileLineNumbers "core\fnc\task\setState.sqf"; + btc_fnc_task_create = compileScript ["core\fnc\task\create.sqf"]; + btc_fnc_task_setState = compileScript ["core\fnc\task\setState.sqf"]; //TOW - btc_fnc_tow_ropeBreak = compile preprocessFileLineNumbers "core\fnc\tow\ropeBreak.sqf"; - btc_fnc_tow_ViV = compile preprocessFileLineNumbers "core\fnc\tow\ViV.sqf"; + btc_fnc_tow_ropeBreak = compileScript ["core\fnc\tow\ropeBreak.sqf"]; + btc_fnc_tow_ViV = compileScript ["core\fnc\tow\ViV.sqf"]; //VEH - btc_fnc_veh_addRespawn = compile preprocessFileLineNumbers "core\fnc\veh\addRespawn.sqf"; - btc_fnc_veh_killed = compile preprocessFileLineNumbers "core\fnc\veh\killed.sqf"; - btc_fnc_veh_respawn = compile preprocessFileLineNumbers "core\fnc\veh\respawn.sqf"; + btc_fnc_veh_addRespawn = compileScript ["core\fnc\veh\addRespawn.sqf"]; + btc_fnc_veh_killed = compileScript ["core\fnc\veh\killed.sqf"]; + btc_fnc_veh_respawn = compileScript ["core\fnc\veh\respawn.sqf"]; }; /////////////////////CLIENT AND SERVER\\\\\\\\\\\\\\\\\\\\\ //CACHE -btc_fnc_cache_hd = compile preprocessFileLineNumbers "core\fnc\cache\hd.sqf"; +btc_fnc_cache_hd = compileScript ["core\fnc\cache\hd.sqf"]; //COMMON -btc_fnc_find_veh_with_turret = compile preprocessFileLineNumbers "core\fnc\common\find_veh_with_turret.sqf"; -btc_fnc_get_class = compile preprocessFileLineNumbers "core\fnc\common\get_class.sqf"; -btc_fnc_randomize_pos = compile preprocessFileLineNumbers "core\fnc\common\randomize_pos.sqf"; -btc_fnc_getHouses = compile preprocessFileLineNumbers "core\fnc\common\getHouses.sqf"; -btc_fnc_house_addWP_loop = compile preprocessFileLineNumbers "core\fnc\common\house_addWP_loop.sqf"; +btc_fnc_find_veh_with_turret = compileScript ["core\fnc\common\find_veh_with_turret.sqf"]; +btc_fnc_get_class = compileScript ["core\fnc\common\get_class.sqf"]; +btc_fnc_randomize_pos = compileScript ["core\fnc\common\randomize_pos.sqf"]; +btc_fnc_getHouses = compileScript ["core\fnc\common\getHouses.sqf"]; +btc_fnc_house_addWP_loop = compileScript ["core\fnc\common\house_addWP_loop.sqf"]; //CHEM -btc_fnc_chem_damage = compile preprocessFileLineNumbers "core\fnc\chem\damage.sqf"; +btc_fnc_chem_damage = compileScript ["core\fnc\chem\damage.sqf"]; btc_fnc_chem_deconShowerAnimLarge = {(_this select 0) setVariable ["BIN_Shower_Stop",false]; _this call BIN_fnc_deconShowerAnimLarge;}; //DEBUG -btc_fnc_debug_message = compile preprocessFileLineNumbers "core\fnc\debug\message.sqf"; +btc_fnc_debug_message = compileScript ["core\fnc\debug\message.sqf"]; //DB -btc_fnc_db_add_veh = compile preprocessFileLineNumbers "core\fnc\db\add_veh.sqf"; +btc_fnc_db_add_veh = compileScript ["core\fnc\db\add_veh.sqf"]; //EH -btc_fnc_eh_trackItem = compile preprocessFileLineNumbers "core\fnc\eh\trackItem.sqf"; +btc_fnc_eh_trackItem = compileScript ["core\fnc\eh\trackItem.sqf"]; //CIV -btc_fnc_civ_class = compile preprocessFileLineNumbers "core\fnc\civ\class.sqf"; -btc_fnc_civ_addWP = compile preprocessFileLineNumbers "core\fnc\civ\addWP.sqf"; +btc_fnc_civ_class = compileScript ["core\fnc\civ\class.sqf"]; +btc_fnc_civ_addWP = compileScript ["core\fnc\civ\addWP.sqf"]; //IED -btc_fnc_ied_belt = compile preprocessFileLineNumbers "core\fnc\ied\belt.sqf"; +btc_fnc_ied_belt = compileScript ["core\fnc\ied\belt.sqf"]; //INT -btc_fnc_int_orders_give = compile preprocessFileLineNumbers "core\fnc\int\orders_give.sqf"; -btc_fnc_int_orders_behaviour = compile preprocessFileLineNumbers "core\fnc\int\orders_behaviour.sqf"; -btc_fnc_int_ask_var = compile preprocessFileLineNumbers "core\fnc\int\ask_var.sqf"; +btc_fnc_int_orders_give = compileScript ["core\fnc\int\orders_give.sqf"]; +btc_fnc_int_orders_behaviour = compileScript ["core\fnc\int\orders_behaviour.sqf"]; +btc_fnc_int_ask_var = compileScript ["core\fnc\int\ask_var.sqf"]; //LOG -btc_fnc_log_place_destroy_camera = compile preprocessFileLineNumbers "core\fnc\log\place_destroy_camera.sqf"; +btc_fnc_log_place_destroy_camera = compileScript ["core\fnc\log\place_destroy_camera.sqf"]; //MIL -btc_fnc_mil_class = compile preprocessFileLineNumbers "core\fnc\mil\class.sqf"; -btc_fnc_mil_ammoUsage = compile preprocessFileLineNumbers "core\fnc\mil\ammoUsage.sqf"; +btc_fnc_mil_class = compileScript ["core\fnc\mil\class.sqf"]; +btc_fnc_mil_ammoUsage = compileScript ["core\fnc\mil\ammoUsage.sqf"]; //PATROL -btc_fnc_patrol_disabled = compile preprocessFileLineNumbers "core\fnc\patrol\disabled.sqf"; +btc_fnc_patrol_disabled = compileScript ["core\fnc\patrol\disabled.sqf"]; //REP -btc_fnc_rep_hd = compile preprocessFileLineNumbers "core\fnc\rep\hd.sqf"; -btc_fnc_rep_suppressed = compile preprocessFileLineNumbers "core\fnc\rep\suppressed.sqf"; +btc_fnc_rep_hd = compileScript ["core\fnc\rep\hd.sqf"]; +btc_fnc_rep_suppressed = compileScript ["core\fnc\rep\suppressed.sqf"]; //ARSENAL -btc_fnc_arsenal_ammoUsage = compile preprocessFileLineNumbers "core\fnc\arsenal\ammoUsage.sqf"; +btc_fnc_arsenal_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; /////////////////////CLIENT\\\\\\\\\\\\\\\\\\\\\ if (!isDedicated) then { //COMMON - btc_fnc_end_mission = compile preprocessFileLineNumbers "core\fnc\common\end_mission.sqf"; - btc_fnc_get_cardinal = compile preprocessFileLineNumbers "core\fnc\common\get_cardinal.sqf"; - btc_fnc_show_hint = compile preprocessFileLineNumbers "core\fnc\common\show_hint.sqf"; - btc_fnc_intro = compile preprocessFileLineNumbers "core\fnc\common\intro.sqf"; - btc_fnc_set_markerTextLocal = compile preprocessFileLineNumbers "core\fnc\common\set_markerTextLocal.sqf"; - btc_fnc_showSubtitle = compile preprocessFileLineNumbers "core\fnc\common\showSubtitle.sqf"; - btc_fnc_get_composition = compile preprocessFileLineNumbers "core\fnc\common\get_composition.sqf"; - btc_fnc_checkArea = compile preprocessFileLineNumbers "core\fnc\common\checkArea.sqf"; - btc_fnc_typeOfPreview = compile preprocessFileLineNumbers "core\fnc\common\typeOfPreview.sqf"; + btc_fnc_end_mission = compileScript ["core\fnc\common\end_mission.sqf"]; + btc_fnc_get_cardinal = compileScript ["core\fnc\common\get_cardinal.sqf"]; + btc_fnc_show_hint = compileScript ["core\fnc\common\show_hint.sqf"]; + btc_fnc_intro = compileScript ["core\fnc\common\intro.sqf"]; + btc_fnc_set_markerTextLocal = compileScript ["core\fnc\common\set_markerTextLocal.sqf"]; + btc_fnc_showSubtitle = compileScript ["core\fnc\common\showSubtitle.sqf"]; + btc_fnc_get_composition = compileScript ["core\fnc\common\get_composition.sqf"]; + btc_fnc_checkArea = compileScript ["core\fnc\common\checkArea.sqf"]; + btc_fnc_typeOfPreview = compileScript ["core\fnc\common\typeOfPreview.sqf"]; //CHEM - btc_fnc_chem_biopsy = compile preprocessFileLineNumbers "core\fnc\chem\biopsy.sqf"; - btc_fnc_chem_damageLoop = compile preprocessFileLineNumbers "core\fnc\chem\damageLoop.sqf"; - btc_fnc_chem_ehDetector = compile preprocessFileLineNumbers "core\fnc\chem\ehDetector.sqf"; - btc_fnc_chem_updateDetector = compile preprocessFileLineNumbers "core\fnc\chem\updateDetector.sqf"; + btc_fnc_chem_biopsy = compileScript ["core\fnc\chem\biopsy.sqf"]; + btc_fnc_chem_damageLoop = compileScript ["core\fnc\chem\damageLoop.sqf"]; + btc_fnc_chem_ehDetector = compileScript ["core\fnc\chem\ehDetector.sqf"]; + btc_fnc_chem_updateDetector = compileScript ["core\fnc\chem\updateDetector.sqf"]; //DEBUG - btc_fnc_debug_marker = compile preprocessFileLineNumbers "core\fnc\debug\marker.sqf"; - btc_fnc_debug_units = compile preprocessFileLineNumbers "core\fnc\debug\units.sqf"; - btc_fnc_debug_fps = compile preprocessFileLineNumbers "core\fnc\debug\fps.sqf"; - btc_fnc_debug_graph = compile preprocessFileLineNumbers "core\fnc\debug\graph.sqf"; + btc_fnc_debug_marker = compileScript ["core\fnc\debug\marker.sqf"]; + btc_fnc_debug_units = compileScript ["core\fnc\debug\units.sqf"]; + btc_fnc_debug_fps = compileScript ["core\fnc\debug\fps.sqf"]; + btc_fnc_debug_graph = compileScript ["core\fnc\debug\graph.sqf"]; //CIV - btc_fnc_civ_add_leaflets = compile preprocessFileLineNumbers "core\fnc\civ\add_leaflets.sqf"; - btc_fnc_civ_leaflets = compile preprocessFileLineNumbers "core\fnc\civ\leaflets.sqf"; + btc_fnc_civ_add_leaflets = compileScript ["core\fnc\civ\add_leaflets.sqf"]; + btc_fnc_civ_leaflets = compileScript ["core\fnc\civ\leaflets.sqf"]; //IED - btc_fnc_ied_effects = compile preprocessFileLineNumbers "core\fnc\ied\effects.sqf"; - btc_fnc_ied_effect_smoke = compile preprocessFileLineNumbers "core\fnc\ied\effect_smoke.sqf"; - btc_fnc_ied_effect_color_smoke = compile preprocessFileLineNumbers "core\fnc\ied\effect_color_smoke.sqf"; - btc_fnc_ied_effect_rocks = compile preprocessFileLineNumbers "core\fnc\ied\effect_rocks.sqf"; - btc_fnc_ied_effect_blurEffect = compile preprocessFileLineNumbers "core\fnc\ied\effect_blurEffect.sqf"; - btc_fnc_ied_effect_shock_wave = compile preprocessFileLineNumbers "core\fnc\ied\effect_shock_wave.sqf"; - btc_fnc_ied_deleteLoop = compile preprocessFileLineNumbers "core\fnc\ied\deleteLoop.sqf"; + btc_fnc_ied_effects = compileScript ["core\fnc\ied\effects.sqf"]; + btc_fnc_ied_effect_smoke = compileScript ["core\fnc\ied\effect_smoke.sqf"]; + btc_fnc_ied_effect_color_smoke = compileScript ["core\fnc\ied\effect_color_smoke.sqf"]; + btc_fnc_ied_effect_rocks = compileScript ["core\fnc\ied\effect_rocks.sqf"]; + btc_fnc_ied_effect_blurEffect = compileScript ["core\fnc\ied\effect_blurEffect.sqf"]; + btc_fnc_ied_effect_shock_wave = compileScript ["core\fnc\ied\effect_shock_wave.sqf"]; + btc_fnc_ied_deleteLoop = compileScript ["core\fnc\ied\deleteLoop.sqf"]; //EH - btc_fnc_eh_CuratorObjectPlaced = compile preprocessFileLineNumbers "core\fnc\eh\CuratorObjectPlaced.sqf"; - btc_fnc_eh_player = compile preprocessFileLineNumbers "core\fnc\eh\player.sqf"; + btc_fnc_eh_CuratorObjectPlaced = compileScript ["core\fnc\eh\CuratorObjectPlaced.sqf"]; + btc_fnc_eh_player = compileScript ["core\fnc\eh\player.sqf"]; //FOB - btc_fnc_fob_create = compile preprocessFileLineNumbers "core\fnc\fob\create.sqf"; - btc_fnc_fob_rallypointAssemble = compile preprocessFileLineNumbers "core\fnc\fob\rallypointAssemble.sqf"; - btc_fnc_fob_redeploy = compile preprocessFileLineNumbers "core\fnc\fob\redeploy.sqf"; - btc_fnc_fob_redeployCheck = compile preprocessFileLineNumbers "core\fnc\fob\redeployCheck.sqf"; + btc_fnc_fob_create = compileScript ["core\fnc\fob\create.sqf"]; + btc_fnc_fob_rallypointAssemble = compileScript ["core\fnc\fob\rallypointAssemble.sqf"]; + btc_fnc_fob_redeploy = compileScript ["core\fnc\fob\redeploy.sqf"]; + btc_fnc_fob_redeployCheck = compileScript ["core\fnc\fob\redeployCheck.sqf"]; //INT - btc_fnc_int_add_actions = compile preprocessFileLineNumbers "core\fnc\int\add_actions.sqf"; - btc_fnc_int_orders = compile preprocessFileLineNumbers "core\fnc\int\orders.sqf"; - btc_fnc_int_shortcuts = compile preprocessFileLineNumbers "core\fnc\int\shortcuts.sqf"; - btc_fnc_int_terminal = compile preprocessFileLineNumbers "core\fnc\int\terminal.sqf"; + btc_fnc_int_add_actions = compileScript ["core\fnc\int\add_actions.sqf"]; + btc_fnc_int_orders = compileScript ["core\fnc\int\orders.sqf"]; + btc_fnc_int_shortcuts = compileScript ["core\fnc\int\shortcuts.sqf"]; + btc_fnc_int_terminal = compileScript ["core\fnc\int\terminal.sqf"]; //INFO - btc_fnc_info_ask = compile preprocessFileLineNumbers "core\fnc\info\ask.sqf"; - btc_fnc_info_hideout_asked = compile preprocessFileLineNumbers "core\fnc\info\hideout_asked.sqf"; - btc_fnc_info_search_for_intel = compile preprocessFileLineNumbers "core\fnc\info\search_for_intel.sqf"; - btc_fnc_info_troops = compile preprocessFileLineNumbers "core\fnc\info\troops.sqf"; - btc_fnc_info_ask_reputation = compile preprocessFileLineNumbers "core\fnc\info\ask_reputation.sqf"; - btc_fnc_info_cachePicture = compile preprocessFileLineNumbers "core\fnc\info\cachePicture.sqf"; + btc_fnc_info_ask = compileScript ["core\fnc\info\ask.sqf"]; + btc_fnc_info_hideout_asked = compileScript ["core\fnc\info\hideout_asked.sqf"]; + btc_fnc_info_search_for_intel = compileScript ["core\fnc\info\search_for_intel.sqf"]; + btc_fnc_info_troops = compileScript ["core\fnc\info\troops.sqf"]; + btc_fnc_info_ask_reputation = compileScript ["core\fnc\info\ask_reputation.sqf"]; + btc_fnc_info_cachePicture = compileScript ["core\fnc\info\cachePicture.sqf"]; //LIFT - btc_fnc_lift_check = compile preprocessFileLineNumbers "core\fnc\lift\check.sqf"; - btc_fnc_lift_deployRopes = compile preprocessFileLineNumbers "core\fnc\lift\deployRopes.sqf"; - btc_fnc_lift_destroyRopes = compile preprocessFileLineNumbers "core\fnc\lift\destroyRopes.sqf"; - btc_fnc_lift_hook = compile preprocessFileLineNumbers "core\fnc\lift\hook.sqf"; - btc_fnc_lift_hookFake = compile preprocessFileLineNumbers "core\fnc\lift\hookFake.sqf"; - btc_fnc_lift_hud = compile preprocessFileLineNumbers "core\fnc\lift\hud.sqf"; - btc_fnc_lift_hudLoop = compile preprocessFileLineNumbers "core\fnc\lift\hudLoop.sqf"; + btc_fnc_lift_check = compileScript ["core\fnc\lift\check.sqf"]; + btc_fnc_lift_deployRopes = compileScript ["core\fnc\lift\deployRopes.sqf"]; + btc_fnc_lift_destroyRopes = compileScript ["core\fnc\lift\destroyRopes.sqf"]; + btc_fnc_lift_hook = compileScript ["core\fnc\lift\hook.sqf"]; + btc_fnc_lift_hookFake = compileScript ["core\fnc\lift\hookFake.sqf"]; + btc_fnc_lift_hud = compileScript ["core\fnc\lift\hud.sqf"]; + btc_fnc_lift_hudLoop = compileScript ["core\fnc\lift\hudLoop.sqf"]; //LOG - btc_fnc_log_get_corner_points = compile preprocessFileLineNumbers "core\fnc\log\get_corner_points.sqf"; - btc_fnc_log_delete = compile preprocessFileLineNumbers "core\fnc\log\delete.sqf"; - btc_fnc_log_create = compile preprocessFileLineNumbers "core\fnc\log\create.sqf"; - btc_fnc_log_create_apply = compile preprocessFileLineNumbers "core\fnc\log\create_apply.sqf"; - btc_fnc_log_create_load = compile preprocessFileLineNumbers "core\fnc\log\create_load.sqf"; - btc_fnc_log_create_change_target = compile preprocessFileLineNumbers "core\fnc\log\create_change_target.sqf"; - btc_fnc_log_place_create_camera = compile preprocessFileLineNumbers "core\fnc\log\place_create_camera.sqf"; - btc_fnc_log_place = compile preprocessFileLineNumbers "core\fnc\log\place.sqf"; - btc_fnc_log_place_key_down = compile preprocessFileLineNumbers "core\fnc\log\place_key_down.sqf"; - btc_fnc_log_repair_wreck = compile preprocessFileLineNumbers "core\fnc\log\repair_wreck.sqf"; - btc_fnc_log_copy = compile preprocessFileLineNumbers "core\fnc\log\copy.sqf"; - btc_fnc_log_paste = compile preprocessFileLineNumbers "core\fnc\log\paste.sqf"; - btc_fnc_log_refuelSource = compile preprocessFileLineNumbers "core\fnc\log\refuelSource.sqf"; + btc_fnc_log_get_corner_points = compileScript ["core\fnc\log\get_corner_points.sqf"]; + btc_fnc_log_delete = compileScript ["core\fnc\log\delete.sqf"]; + btc_fnc_log_create = compileScript ["core\fnc\log\create.sqf"]; + btc_fnc_log_create_apply = compileScript ["core\fnc\log\create_apply.sqf"]; + btc_fnc_log_create_load = compileScript ["core\fnc\log\create_load.sqf"]; + btc_fnc_log_create_change_target = compileScript ["core\fnc\log\create_change_target.sqf"]; + btc_fnc_log_place_create_camera = compileScript ["core\fnc\log\place_create_camera.sqf"]; + btc_fnc_log_place = compileScript ["core\fnc\log\place.sqf"]; + btc_fnc_log_place_key_down = compileScript ["core\fnc\log\place_key_down.sqf"]; + btc_fnc_log_repair_wreck = compileScript ["core\fnc\log\repair_wreck.sqf"]; + btc_fnc_log_copy = compileScript ["core\fnc\log\copy.sqf"]; + btc_fnc_log_paste = compileScript ["core\fnc\log\paste.sqf"]; + btc_fnc_log_refuelSource = compileScript ["core\fnc\log\refuelSource.sqf"]; //REP - btc_fnc_rep_treatment = compile preprocessFileLineNumbers "core\fnc\rep\treatment.sqf"; + btc_fnc_rep_treatment = compileScript ["core\fnc\rep\treatment.sqf"]; //SPECT - btc_fnc_spect_updateDevice = compile preprocessFileLineNumbers "core\fnc\spect\updateDevice.sqf"; - btc_fnc_spect_frequencies = compile preprocessFileLineNumbers "core\fnc\spect\frequencies.sqf"; - btc_fnc_spect_disableDevice = compile preprocessFileLineNumbers "core\fnc\spect\disableDevice.sqf"; + btc_fnc_spect_updateDevice = compileScript ["core\fnc\spect\updateDevice.sqf"]; + btc_fnc_spect_frequencies = compileScript ["core\fnc\spect\frequencies.sqf"]; + btc_fnc_spect_disableDevice = compileScript ["core\fnc\spect\disableDevice.sqf"]; //ARSENAL - btc_fnc_arsenal_data = compile preprocessFileLineNumbers "core\fnc\arsenal\data.sqf"; - btc_fnc_arsenal_garage = compile preprocessFileLineNumbers "core\fnc\arsenal\garage.sqf"; - btc_fnc_arsenal_loadout = compile preprocessFileLineNumbers "core\fnc\arsenal\loadout.sqf"; - btc_fnc_arsenal_trait = compile preprocessFileLineNumbers "core\fnc\arsenal\trait.sqf"; - btc_fnc_arsenal_ammoUsage = compile preprocessFileLineNumbers "core\fnc\arsenal\ammoUsage.sqf"; - btc_fnc_arsenal_weaponsFilter = compile preprocessFileLineNumbers "core\fnc\arsenal\weaponsfilter.sqf"; + btc_fnc_arsenal_data = compileScript ["core\fnc\arsenal\data.sqf"]; + btc_fnc_arsenal_garage = compileScript ["core\fnc\arsenal\garage.sqf"]; + btc_fnc_arsenal_loadout = compileScript ["core\fnc\arsenal\loadout.sqf"]; + btc_fnc_arsenal_trait = compileScript ["core\fnc\arsenal\trait.sqf"]; + btc_fnc_arsenal_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; + btc_fnc_arsenal_weaponsFilter = compileScript ["core\fnc\arsenal\weaponsfilter.sqf"]; //TASK - btc_fnc_task_setDescription = compile preprocessFileLineNumbers "core\fnc\task\setDescription.sqf"; - btc_fnc_task_abort = compile preprocessFileLineNumbers "core\fnc\task\abort.sqf"; + btc_fnc_task_setDescription = compileScript ["core\fnc\task\setDescription.sqf"]; + btc_fnc_task_abort = compileScript ["core\fnc\task\abort.sqf"]; //TOW - btc_fnc_tow_ropeCreate = compile preprocessFileLineNumbers "core\fnc\tow\ropeCreate.sqf"; - btc_fnc_tow_hitch_points = compile preprocessFileLineNumbers "core\fnc\tow\hitch_points.sqf"; - btc_fnc_tow_unhook = compile preprocessFileLineNumbers "core\fnc\tow\unhook.sqf"; - btc_fnc_tow_unwind = compile preprocessFileLineNumbers "core\fnc\tow\unwind.sqf"; - btc_fnc_tow_check = compile preprocessFileLineNumbers "core\fnc\tow\check.sqf"; + btc_fnc_tow_ropeCreate = compileScript ["core\fnc\tow\ropeCreate.sqf"]; + btc_fnc_tow_hitch_points = compileScript ["core\fnc\tow\hitch_points.sqf"]; + btc_fnc_tow_unhook = compileScript ["core\fnc\tow\unhook.sqf"]; + btc_fnc_tow_unwind = compileScript ["core\fnc\tow\unwind.sqf"]; + btc_fnc_tow_check = compileScript ["core\fnc\tow\check.sqf"]; }; /////////////////////HEADLESS\\\\\\\\\\\\\\\\\\\\\ if (!hasInterface && !isDedicated) then { - btc_fnc_eh_headless = compile preprocessFileLineNumbers "core\fnc\eh\headless.sqf"; + btc_fnc_eh_headless = compileScript ["core\fnc\eh\headless.sqf"]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 456c1f696..d2819bed7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call compile preprocessFileLineNumbers "core\fnc\db\load_old.sqf"; + [] call compileScript ["core\fnc\db\load_old.sqf"]; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init.sqf index b291f2a6d..226e89756 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init.sqf @@ -1,18 +1,18 @@ enableSaving [false, false]; -[] call compile preprocessFileLineNumbers "core\def\mission.sqf"; -[] call compile preprocessFileLineNumbers "define_mod.sqf"; +[] call compileScript ["core\def\mission.sqf"]; +[] call compileScript ["define_mod.sqf"]; if (isServer) then { - [] call compile preprocessFileLineNumbers "core\init_server.sqf"; + [] call compileScript ["core\init_server.sqf"]; }; -[] call compile preprocessFileLineNumbers "core\init_common.sqf"; +[] call compileScript ["core\init_common.sqf"]; if (!isDedicated && hasInterface) then { - [] call compile preprocessFileLineNumbers "core\init_player.sqf"; + [] call compileScript ["core\init_player.sqf"]; }; if (!isDedicated && !hasInterface) then { - [] call compile preprocessFileLineNumbers "core\init_headless.sqf"; + [] call compileScript ["core\init_headless.sqf"]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index c61cf34b5..c48f3a668 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -9,7 +9,7 @@ if !(isNil "btc_custom_loc") then { btc_intro_done = [] spawn btc_fnc_intro; [{!isNull player}, { - [] call compile preprocessFileLineNumbers "core\doc.sqf"; + [] call compileScript ["core\doc.sqf"]; btc_respawn_marker setMarkerPosLocal player; player addRating 9999; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 021e1ea87..ca4294521 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -1,4 +1,4 @@ -[] call compile preprocessFileLineNumbers "core\fnc\city\init.sqf"; +[] call compileScript ["core\fnc\city\init.sqf"]; ["Initialize"] call BIS_fnc_dynamicGroups; setTimeMultiplier btc_p_acctime; @@ -9,9 +9,9 @@ setTimeMultiplier btc_p_acctime; if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldName], false]}) then { if ((profileNamespace getVariable [format ["btc_hm_%1_version", worldName], 1.13]) in [btc_version select 1, 20.1]) then { - [] call compile preprocessFileLineNumbers "core\fnc\db\load.sqf"; + [] call compileScript ["core\fnc\db\load.sqf"]; } else { - [] call compile preprocessFileLineNumbers "core\fnc\db\load_old.sqf"; + [] call compileScript ["core\fnc\db\load_old.sqf"]; }; } else { for "_i" from 1 to btc_hideout_n do {[] call btc_fnc_mil_create_hideout;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/init.sqf index 97ba728d6..8a8ec55d6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/init.sqf @@ -1,2 +1,2 @@ -[compile preprocessFileLineNumbers "core\init.sqf"] call CBA_fnc_directCall; +[compileScript ["core\init.sqf"]] call CBA_fnc_directCall; From d496aee953d7ff0da41d30f6206411b3358ce742 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 9 Mar 2021 13:54:12 +0100 Subject: [PATCH 049/354] Disable door of all houses --- .../core/fnc/city/activate.sqf | 10 +++++- .../core/fnc/city/disableDoor.sqf | 31 +++++++++++++++++ .../core/fnc/city/getHouses.sqf | 33 +++++++++++++++++++ .../core/fnc/compile.sqf | 2 ++ 4 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index d78aa9756..030ef6694 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -125,7 +125,7 @@ if !(_data_units isEqualTo []) then { }; if !(_type in ["Hill", "NameMarine"]) then { - private _houses = ([position _city, _spawningRadius/3] call btc_fnc_getHouses) call BIS_fnc_arrayShuffle; + private _houses = [_city, _spawningRadius/3] call btc_fnc_city_getHouses; if (_has_en) then { private _max_number_group = (switch _type do { @@ -279,6 +279,14 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { }; [_city, btc_fnc_tag_create] call btc_fnc_delay_exec; +if ( + !(_type in ["Hill", "NameMarine"]) && + _city getVariable ["btc_city_houses", []] isEqualTo [] +) then { + [[_city, _spawningRadius/3], btc_fnc_city_getHouses] call btc_fnc_delay_exec; +}; +[_city, btc_fnc_city_disableDoor] call btc_fnc_delay_exec; + [{ params ["_has_en", "_city", "_radius", "_id"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf new file mode 100644 index 000000000..a5cf4d1f5 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf @@ -0,0 +1,31 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_city_disableDoor + +Description: + Disable door in a city. + +Parameters: + _city - City. [Array] + +Returns: + +Examples: + (begin example) + [player] call btc_fnc_city_disableDoor; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_city", objNull, [objNull]] +]; + +{ + for "_i" from 0 to getNumber (configOf _x >> "numberOfDoors") do { + _x setVariable [format ["bis_disabled_Door_%1", _i], 1, true]; + }; +} forEach (_city getVariable ["btc_city_houses", []]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf new file mode 100644 index 000000000..219433797 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf @@ -0,0 +1,33 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_city_getHouses + +Description: + Get random open houses around a position. + +Parameters: + _city - City to search for houses. [Object] + _radius - Radius of search. [Number] + +Returns: + _houses - Random useful open houses. [Array] + +Examples: + (begin example) + [player] call btc_fnc_city_getHouses; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_city", objNull, [objNull]], + ["_radius", 100, [0]] +]; + +private _houses = ([_city, _radius] call btc_fnc_getHouses) call BIS_fnc_arrayShuffle; +_city setVariable ["btc_city_houses", _houses]; + +_houses diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 5f9af2f84..cc272313c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -42,6 +42,8 @@ if (isServer) then { btc_fnc_city_findPos = compile preprocessFileLineNumbers "core\fnc\city\findPos.sqf"; btc_fnc_city_cleanUp = compile preprocessFileLineNumbers "core\fnc\city\cleanUp.sqf"; btc_fnc_city_trigger_free_condition = compile preprocessFileLineNumbers "core\fnc\city\trigger_free_condition.sqf"; + btc_fnc_city_getHouses = compileScript ["core\fnc\city\getHouses.sqf"]; + btc_fnc_city_disableDoor = compileScript ["core\fnc\city\disableDoor.sqf"]; //CIV btc_fnc_civ_add_weapons = compile preprocessFileLineNumbers "core\fnc\civ\add_weapons.sqf"; From eac69990a7c55efb6bdb2f375c0793463f8f39c0 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 9 Mar 2021 16:27:38 +0100 Subject: [PATCH 050/354] Do not disable door for house without door --- .../core/fnc/city/disableDoor.sqf | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf index a5cf4d1f5..b72cdba7c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf @@ -24,8 +24,29 @@ params [ ["_city", objNull, [objNull]] ]; +private _houses = +(_city getVariable ["btc_city_houses", []]); +private _n = count _houses; +private _i = 1; + +while { + _i <= _n && + {_houses isNotEqualTo []} +} do { + private _house = _houses deleteAt 0; + private _numberOfDoors = getNumber (configOf _house >> "numberOfDoors"); + + if (_numberOfDoors isNotEqualTo 0) then { + for "_door" from 1 to _numberOfDoors do { + _house setVariable [format ["bis_disabled_Door_%1", _door], 1, true]; + }; + _i = _i + 1; + }; +}; + { - for "_i" from 0 to getNumber (configOf _x >> "numberOfDoors") do { - _x setVariable [format ["bis_disabled_Door_%1", _i], 1, true]; + if (_x getVariable ["bis_disabled_Door_1", 0] isEqualTo 1) then { + for "_door" from 1 to getNumber (configOf _x >> "numberOfDoors") do { + _x setVariable [format ["bis_disabled_Door_%1", _door], nil, true]; + }; }; -} forEach (_city getVariable ["btc_city_houses", []]); +} forEach _houses; From 6abcc523951e56656b0a5a8a2449f6dd5a099ea3 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 9 Mar 2021 20:55:52 +0100 Subject: [PATCH 051/354] Add: Physique intel in houses --- .../core/def/mission.sqf | 1 + .../core/fnc/city/activate.sqf | 12 ++++++++++++ .../core/fnc/city/de_activate.sqf | 2 ++ .../core/fnc/info/has_intel.sqf | 9 ++++++++- .../core/fnc/int/add_actions.sqf | 4 ++++ 5 files changed, 27 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 774804632..04c29bcec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -402,6 +402,7 @@ btc_info_intel_type = [80, 95];//cache - hd - both btc_info_cache_def = _cache_info_def; btc_info_cache_ratio = _cache_info_ratio; btc_info_hideout_radius = 4000; +btc_info_intels = ["Land_Camera_01_F", "Land_HandyCam_F"]; //Supplies btc_supplies_cargo = "Land_Cargo20_IDAP_F"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index d78aa9756..dd0e36806 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -279,6 +279,18 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { }; [_city, btc_fnc_tag_create] call btc_fnc_delay_exec; +[_city, { + params ["_city"]; + private _houses = +(_city getVariable ["btc_city_houses", []]); + + _houses = _houses select [0, count _houses]; + + private _intels = _houses apply { + createVehicle [selectRandom btc_info_intels, ASLToATL AGLToASL selectRandom (_x buildingPos -1), [], 0, "CAN_COLLIDE"]; + }; + _city setVariable ["btc_city_intels", _intels]; +}] call btc_fnc_delay_exec; + [{ params ["_has_en", "_city", "_radius", "_id"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf index ce0f2b15a..e999b3e45 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf @@ -101,6 +101,8 @@ if !(_city getVariable ["active", false]) exitWith {}; } forEach (btc_tags_server inAreaArray [_pos_city, _radius, _radius]); btc_tags_server = btc_tags_server - [objNull]; + (_city getVariable ["btc_city_intels", []]) call CBA_fnc_deleteEntity; + if (btc_debug_log) then { [format ["data units = %1", _data_units], __FILE__, [false]] call btc_fnc_debug_message; [format ["data animals = %1", _data_animals], __FILE__, [false]] call btc_fnc_debug_message; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf index 9b61ceefb..0f97a3f8e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf @@ -30,8 +30,15 @@ if (btc_debug_log) then { [format ["%1", _body getVariable "intel"], __FILE__, [false]] call btc_fnc_debug_message; }; -if (_body getVariable ["intel", false] && !(_body getVariable ["btc_already_interrogated", false])) then { +if ( + _body isKindOf "Items_base_F" || ( + _body getVariable ["intel", false] && + !(_body getVariable ["btc_already_interrogated", false])) +) then { _body setVariable ["intel", false]; + if (_body isKindOf "Items_base_F") then { + _body call CBA_fnc_deleteEntity; + }; if (isServer) then { [_asker] call btc_fnc_info_give_intel; } else { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 0687c3944..6b1260f29 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -36,6 +36,10 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title {[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} forEach (btc_type_units + btc_type_divers); _action = ["Interrogate_intel", localize "STR_BTC_HAM_ACTION_INTEL_INTERROGATE", "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa", {[_target,true] spawn btc_fnc_info_ask;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && captive _target}] call ace_interact_menu_fnc_createAction; {[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} forEach (btc_type_units + btc_type_divers); +_action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title", "\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa", { + [btc_fnc_info_search_for_intel, [_target]] call CBA_fnc_execNextFrame; +}, {true}] call ace_interact_menu_fnc_createAction; +{[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} forEach btc_info_intels; //Log point { From 4a255d2412edbd7e47f68aa86c4501f94ea9bed6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 Mar 2021 01:55:20 +0100 Subject: [PATCH 052/354] Add containers are fully saved --- .../core/fnc/log/getCargo.sqf | 39 +++++++++++++++ .../core/fnc/log/setCargo.sqf | 47 +++++++++++++------ 2 files changed, 71 insertions(+), 15 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf new file mode 100644 index 000000000..9ae430eac --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf @@ -0,0 +1,39 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_log_getCargo + +Description: + Clear cargo of all item weapon. + +Parameters: + _object - Object which cargo will be cleared. [Object] + +Returns: + +Examples: + (begin example) + [cursorObject] call btc_fnc_log_getCargo; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ +btc_fnc_log_getCargo = { +params [ + ["_object", objNull, [objNull]] +]; + +private _everyContainer = everyContainer _object; +{ + _x set [1, (_x select 1) call btc_fnc_log_getCargo]; +} forEach _everyContainer; + +[ + getMagazineCargo _object, + weaponsItemsCargo _object, + itemCargo _object, + _everyContainer +] +}; +[cursorObject] call btc_fnc_log_getCargo; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf index 98283b45c..43b6870bb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf @@ -12,37 +12,54 @@ Returns: Examples: (begin example) - [vehicle player] call btc_fnc_log_setCargo; + [cursorObject, [cursorObject] call btc_fnc_log_getCargo] call btc_fnc_log_setCargo; (end) Author: Vdauphin ---------------------------------------------------------------------------- */ - +btc_fnc_log_setCargo = { params [ - ["_objects", objNull, [objNull]], + ["_object", objNull, [objNull]], ["_inventory", [], [[]]] ]; -clearWeaponCargoGlobal _objects; -clearItemCargoGlobal _objects; -clearMagazineCargoGlobal _objects; +clearWeaponCargoGlobal _object; +clearItemCargoGlobal _object; +clearMagazineCargoGlobal _object; +clearBackpackCargoGlobal _object; _inventory params [ - ["_weap_obj", [], [[]]], - ["_mags_obj", [], [[]]], - ["_items_obj", [], [[]]] + ["_magazines", [], [[]]], + ["_weapons", [], [[]]], + ["_items", [], [[]]], + ["_everyContainer", [], [[]]] ]; { - _objects addWeaponCargoGlobal [_x, (_weap_obj select 1) select _forEachIndex]; -} forEach (_weap_obj select 0); + _object addMagazineCargoGlobal [_x, (_magazines select 1) select _forEachIndex]; +} forEach (_magazines select 0); + +{ + _object addWeaponWithAttachmentsCargoGlobal [_weapons, 1]; +} forEach _weapons; { - _objects addMagazineCargoGlobal [_x, (_mags_obj select 1) select _forEachIndex]; -} forEach (_mags_obj select 0); + private _containerType = _x select 0; + if (_containerType in _items) then { + _object addItemCargoGlobal [_containerType, 1]; + _items deleteAt (_items find _containerType); + } else { + _object addBackpackCargoGlobal [_containerType, 1]; + }; + private _newContainer = everyContainer _object; + [(_newContainer select (count _newContainer -1)) select 1, _x select 1] call btc_fnc_log_setCargo; +} forEach _everyContainer; { - _objects addItemCargoGlobal [_x, (_items_obj select 1) select _forEachIndex]; -} forEach (_items_obj select 0); + _object addItemCargoGlobal [_x, 1]; +} forEach _items; + +}; +[cursorObject, [cursorObject] call btc_fnc_log_getCargo] call btc_fnc_log_setCargo; From f097071ada70391f80ec329cba9daf8a092e38d3 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 Mar 2021 11:03:53 +0100 Subject: [PATCH 053/354] Convert to btc_fnc_log_getCargo --- .../core/fnc/db/save.sqf | 9 +++++++-- .../core/fnc/db/saveObjectStatus.sqf | 8 ++++++-- .../core/fnc/log/getCargo.sqf | 8 +++----- .../core/fnc/log/setCargo.sqf | 11 +++++------ .../core/init_server.sqf | 4 ++-- 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 8789cd6b7..a41254e60 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -149,11 +149,16 @@ private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; _cargo pushBack (if (_x isEqualType "") then { [_x, "", [[], [], []]] } else { - [typeOf _x, _x getVariable ["ace_rearm_magazineClass", ""], [getWeaponCargo _x, getMagazineCargo _x, getItemCargo _x, getBackpackCargo _x], _x in btc_chem_contaminated] + [ + typeOf _x, + _x getVariable ["ace_rearm_magazineClass", ""], + _x call btc_fnc_log_getCargo, + _x in btc_chem_contaminated + ] }); } forEach (_x getVariable ["ace_cargo_loaded", []]); _data pushBack _cargo; - private _cont = [getWeaponCargo _x, getMagazineCargo _x, getItemCargo _x, getBackpackCargo _x]; + private _cont = _x call btc_fnc_log_getCargo; _data pushBack _cont; _data append ([_x] call btc_fnc_getVehProperties); _data pushBack (_x getVariable ["btc_EDENinventory", []]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 898ff8d5e..59eb02fa2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -39,12 +39,16 @@ if !(!alive _object || isNull _object) then { _cargo pushBack (if (_x isEqualType "") then { [_x, "", [[], [], []]] } else { - [typeOf _x, _x getVariable ["ace_rearm_magazineClass", ""], [getWeaponCargo _x, getMagazineCargo _x, getItemCargo _x, getBackpackCargo _x]] + [ + typeOf _x, + _x getVariable ["ace_rearm_magazineClass", ""], + _x call btc_fnc_log_getCargo + ] }); } forEach (_object getVariable ["ace_cargo_loaded", []]); _data pushBack _cargo; //Inventory - private _cont = [getWeaponCargo _object, getMagazineCargo _object, getItemCargo _object, getBackpackCargo _object]; + private _cont = _x call btc_fnc_log_getCargo; _data pushBack _cont; _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf index 9ae430eac..187eb5df7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf @@ -3,10 +3,10 @@ Function: btc_fnc_log_getCargo Description: - Clear cargo of all item weapon. + Get cargo inventory of an object. Parameters: - _object - Object which cargo will be cleared. [Object] + _object - Object which inventory. [Object] Returns: @@ -19,7 +19,7 @@ Author: Vdauphin ---------------------------------------------------------------------------- */ -btc_fnc_log_getCargo = { + params [ ["_object", objNull, [objNull]] ]; @@ -35,5 +35,3 @@ private _everyContainer = everyContainer _object; itemCargo _object, _everyContainer ] -}; -[cursorObject] call btc_fnc_log_getCargo; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf index 43b6870bb..574853bb3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf @@ -3,10 +3,11 @@ Function: btc_fnc_log_setCargo Description: - Clear cargo of all item weapon. + Set cargo inventory. Parameters: - _object - Object which cargo will be cleared. [Object] + _object - Object which inventory. [Object] + _inventory - Inventory to set. [Array] Returns: @@ -19,7 +20,7 @@ Author: Vdauphin ---------------------------------------------------------------------------- */ -btc_fnc_log_setCargo = { + params [ ["_object", objNull, [objNull]], ["_inventory", [], [[]]] @@ -53,6 +54,7 @@ _inventory params [ } else { _object addBackpackCargoGlobal [_containerType, 1]; }; + private _newContainer = everyContainer _object; [(_newContainer select (count _newContainer -1)) select 1, _x select 1] call btc_fnc_log_setCargo; } forEach _everyContainer; @@ -60,6 +62,3 @@ _inventory params [ { _object addItemCargoGlobal [_x, 1]; } forEach _items; - -}; -[cursorObject, [cursorObject] call btc_fnc_log_getCargo] call btc_fnc_log_setCargo; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 3b62d5e6e..519c45014 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -22,7 +22,7 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN setDate _date; { - _x setVariable ["btc_EDENinventory", [getWeaponCargo _x, getMagazineCargo _x, getItemCargo _x, getBackpackCargo _x]]; + _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_getCargo]; _x call btc_fnc_db_add_veh; } forEach btc_vehicles; }; @@ -42,7 +42,7 @@ if (btc_p_db_autoRestart > 0) then { }; { - _x setVariable ["btc_EDENinventory", [getWeaponCargo _x, getMagazineCargo _x, getItemCargo _x, getBackpackCargo _x]]; + _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_getCargo]; [_x, 30] call btc_fnc_veh_addRespawn; } forEach btc_helo; From b115bc5505e5c9e0202ed334d8e4cd91ada9ccaf Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 Mar 2021 11:13:37 +0100 Subject: [PATCH 054/354] Migrate save to btc_fnc_db_saveObjectStatus --- .../core/fnc/db/save.sqf | 31 ++++------- .../core/fnc/db/saveObjectStatus.sqf | 51 +++++++++---------- 2 files changed, 35 insertions(+), 47 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index a41254e60..0c1bd6d30 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -138,31 +138,19 @@ private _vehiclesNotInCargo = _vehicles select { }; private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; { + (_x call btc_fnc_db_saveObjectStatus) params ["_type", "_posWorld", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated"]; + private _data = []; - _data pushBack (typeOf _x); - _data pushBack (getPosASL _x); - _data pushBack (getDir _x); + _data pushBack _type; + _data pushBack _posWorld; + _data pushBack _dir; _data pushBack (fuel _x); _data pushBack (getAllHitPointsDamage _x); - private _cargo = []; - { - _cargo pushBack (if (_x isEqualType "") then { - [_x, "", [[], [], []]] - } else { - [ - typeOf _x, - _x getVariable ["ace_rearm_magazineClass", ""], - _x call btc_fnc_log_getCargo, - _x in btc_chem_contaminated - ] - }); - } forEach (_x getVariable ["ace_cargo_loaded", []]); _data pushBack _cargo; - private _cont = _x call btc_fnc_log_getCargo; - _data pushBack _cont; + _data pushBack _inventory; _data append ([_x] call btc_fnc_getVehProperties); _data pushBack (_x getVariable ["btc_EDENinventory", []]); - _data pushBack ([vectorDir _x, vectorUp _x]); + _data pushBack _vectorPos; _data pushBack []; // ViV private _fakeViV = isVehicleCargo attachedTo _x; @@ -190,7 +178,10 @@ profileNamespace setVariable [format ["btc_hm_%1_vehs", _name], +_array_veh]; //Objects status private _array_obj = []; { - private _data = [_x] call btc_fnc_db_saveObjectStatus; + private _data = []; + if !(!alive _x || isNull _x) then { + _data = [_x] call btc_fnc_db_saveObjectStatus; + }; if (_data isNotEqualTo []) then { _array_obj pushBack _data; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 59eb02fa2..287618028 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -26,32 +26,29 @@ params [ ]; private _data = []; - -if !(!alive _object || isNull _object) then { - - _data pushBack (typeOf _object); - _data pushBack (getPosWorld _object); - _data pushBack (getDir _object); - _data pushBack (_object getVariable ["ace_rearm_magazineClass", ""]); - //Cargo - private _cargo = []; - { - _cargo pushBack (if (_x isEqualType "") then { - [_x, "", [[], [], []]] - } else { - [ - typeOf _x, - _x getVariable ["ace_rearm_magazineClass", ""], - _x call btc_fnc_log_getCargo - ] - }); - } forEach (_object getVariable ["ace_cargo_loaded", []]); - _data pushBack _cargo; - //Inventory - private _cont = _x call btc_fnc_log_getCargo; - _data pushBack _cont; - _data pushBack [vectorDir _object, vectorUp _object]; - _data pushBack (_object in btc_chem_contaminated); -}; +_data pushBack (typeOf _object); +_data pushBack (getPosWorld _object); +_data pushBack (getDir _object); +_data pushBack (_object getVariable ["ace_rearm_magazineClass", ""]); +//Cargo +private _cargo = []; +{ + _cargo pushBack (if (_x isEqualType "") then { + [_x, "", [[], [], []]] + } else { + [ + typeOf _x, + _x getVariable ["ace_rearm_magazineClass", ""], + _x call btc_fnc_log_getCargo, + _x in btc_chem_contaminated + ] + }); +} forEach (_object getVariable ["ace_cargo_loaded", []]); +_data pushBack _cargo; +//Inventory +private _cont = _x call btc_fnc_log_getCargo; +_data pushBack _cont; +_data pushBack [vectorDir _object, vectorUp _object]; +_data pushBack (_object in btc_chem_contaminated); _data From b79ba300f1663c57664dd10c6a59409e2a428b4b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 Mar 2021 11:18:35 +0100 Subject: [PATCH 055/354] rename btc_fnc_log_setCargo and getCargo to Inventory --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 3 ++- .../core/fnc/db/loadcargo.sqf | 4 ++-- .../core/fnc/db/saveObjectStatus.sqf | 4 ++-- .../core/fnc/log/createVehicle.sqf | 2 +- .../core/fnc/log/{getCargo.sqf => getInventory.sqf} | 8 ++++---- .../core/fnc/log/{setCargo.sqf => setInventory.sqf} | 6 +++--- .../core/fnc/veh/respawn.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 4 ++-- 8 files changed, 17 insertions(+), 16 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/{getCargo.sqf => getInventory.sqf} (75%) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/{setCargo.sqf => setInventory.sqf} (89%) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 5f9af2f84..d989add58 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -173,12 +173,13 @@ if (isServer) then { btc_fnc_log_createVehicle = compile preprocessFileLineNumbers "core\fnc\log\createVehicle.sqf"; btc_fnc_log_getRearmMagazines = compile preprocessFileLineNumbers "core\fnc\log\getRearmMagazines.sqf"; btc_fnc_log_init = compile preprocessFileLineNumbers "core\fnc\log\init.sqf"; - btc_fnc_log_setCargo = compile preprocessFileLineNumbers "core\fnc\log\setCargo.sqf"; + btc_fnc_log_setInventory = compile preprocessFileLineNumbers "core\fnc\log\setInventory.sqf"; btc_fnc_log_server_delete = compile preprocessFileLineNumbers "core\fnc\log\server_delete.sqf"; btc_fnc_log_create_s = compile preprocessFileLineNumbers "core\fnc\log\create_s.sqf"; btc_fnc_log_get_cc = compile preprocessFileLineNumbers "core\fnc\log\get_cc.sqf"; btc_fnc_log_get_rc = compile preprocessFileLineNumbers "core\fnc\log\get_rc.sqf"; btc_fnc_log_server_repair_wreck = compile preprocessFileLineNumbers "core\fnc\log\server_repair_wreck.sqf"; + btc_fnc_log_getInventory = compile preprocessFileLineNumbers "core\fnc\log\getInventory.sqf"; //DEAF btc_fnc_deaf_earringing = compile preprocessFileLineNumbers "core\fnc\deaf\earringing.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index 5f14cf822..d45e707b6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -40,7 +40,7 @@ Author: _l setVariable ["ace_rearm_magazineClass", _magClass, true] }; - [_l, _cargo_obj] call btc_fnc_log_setCargo; + [_l, _cargo_obj] call btc_fnc_log_setInventory; if (_isContaminated) then { btc_chem_contaminated pushBack _l; @@ -49,5 +49,5 @@ Author: } forEach _cargo; //set inventory content for weapons, magazines and items - [_obj, _inventory] call btc_fnc_log_setCargo; + [_obj, _inventory] call btc_fnc_log_setInventory; }, _this] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 287618028..458f07a48 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -39,14 +39,14 @@ private _cargo = []; [ typeOf _x, _x getVariable ["ace_rearm_magazineClass", ""], - _x call btc_fnc_log_getCargo, + _x call btc_fnc_log_getInventory, _x in btc_chem_contaminated ] }); } forEach (_object getVariable ["ace_cargo_loaded", []]); _data pushBack _cargo; //Inventory -private _cont = _x call btc_fnc_log_getCargo; +private _cont = _x call btc_fnc_log_getInventory; _data pushBack _cont; _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 747ac0513..1374bb8c3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -53,7 +53,7 @@ _veh setPosASL _pos; [_veh, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; if (_EDENinventory isNotEqualTo []) then { _veh setVariable ["btc_EDENinventory", _EDENinventory]; - [_veh, _EDENinventory] call btc_fnc_log_setCargo; + [_veh, _EDENinventory] call btc_fnc_log_setInventory; }; _veh setVariable ["btc_dont_delete", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getInventory.sqf similarity index 75% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getInventory.sqf index 187eb5df7..b0eaba226 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getCargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getInventory.sqf @@ -1,9 +1,9 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_getCargo +Function: btc_fnc_log_getInventory Description: - Get cargo inventory of an object. + Get inventory of an object. Parameters: _object - Object which inventory. [Object] @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_log_getCargo; + [cursorObject] call btc_fnc_log_getInventory; (end) Author: @@ -26,7 +26,7 @@ params [ private _everyContainer = everyContainer _object; { - _x set [1, (_x select 1) call btc_fnc_log_getCargo]; + _x set [1, (_x select 1) call btc_fnc_log_getInventory]; } forEach _everyContainer; [ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf similarity index 89% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf index 574853bb3..6c908790c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf @@ -1,9 +1,9 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_setCargo +Function: btc_fnc_log_setInventory Description: - Set cargo inventory. + Set inventory of an object. Parameters: _object - Object which inventory. [Object] @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject, [cursorObject] call btc_fnc_log_getCargo] call btc_fnc_log_setCargo; + [cursorObject, [cursorObject] call btc_fnc_log_getInventory] call btc_fnc_log_setInventory; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index 458e487e2..fef8413bf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -70,7 +70,7 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); [_vehicle, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; if (_EDENinventory isNotEqualTo []) then { _vehicle setVariable ["btc_EDENinventory", _EDENinventory]; - [_vehicle, _EDENinventory] call btc_fnc_log_setCargo; + [_vehicle, _EDENinventory] call btc_fnc_log_setInventory; }; [_vehicle, _time] call btc_fnc_veh_addRespawn; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 519c45014..5da8f445d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -22,7 +22,7 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN setDate _date; { - _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_getCargo]; + _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_getInventory]; _x call btc_fnc_db_add_veh; } forEach btc_vehicles; }; @@ -42,7 +42,7 @@ if (btc_p_db_autoRestart > 0) then { }; { - _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_getCargo]; + _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_getInventory]; [_x, 30] call btc_fnc_veh_addRespawn; } forEach btc_helo; From 433397dd62cafc4fc3cb4e7c80aec9c37f2e1d33 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 Mar 2021 12:04:40 +0100 Subject: [PATCH 056/354] Fix wrong private and fnc name --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 4 ++-- .../core/fnc/log/createVehicle.sqf | 2 +- .../core/fnc/log/setInventory.sqf | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index d989add58..a2f57fcc5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -179,7 +179,7 @@ if (isServer) then { btc_fnc_log_get_cc = compile preprocessFileLineNumbers "core\fnc\log\get_cc.sqf"; btc_fnc_log_get_rc = compile preprocessFileLineNumbers "core\fnc\log\get_rc.sqf"; btc_fnc_log_server_repair_wreck = compile preprocessFileLineNumbers "core\fnc\log\server_repair_wreck.sqf"; - btc_fnc_log_getInventory = compile preprocessFileLineNumbers "core\fnc\log\getInventory.sqf"; + btc_fnc_log_getInventory = compileScript ["core\fnc\log\getInventory.sqf"]; //DEAF btc_fnc_deaf_earringing = compile preprocessFileLineNumbers "core\fnc\deaf\earringing.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 0c1bd6d30..51a5578c5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -138,11 +138,11 @@ private _vehiclesNotInCargo = _vehicles select { }; private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; { - (_x call btc_fnc_db_saveObjectStatus) params ["_type", "_posWorld", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated"]; + (_x call btc_fnc_db_saveObjectStatus) params ["_type", "", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated"]; private _data = []; _data pushBack _type; - _data pushBack _posWorld; + _data pushBack (getPosASL _x); _data pushBack _dir; _data pushBack (fuel _x); _data pushBack (getAllHitPointsDamage _x); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 1374bb8c3..ab35f0404 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -7,7 +7,7 @@ Description: Parameters: _type - Vehicle className. [String] - _pos - Desired placement position. If the exact position is occupied, nearest empty position is used. [Array] + _pos - Desired placement position. [Array] _dir - Desired direction. [Number] _customization - Customized appearance [Array] _isMedicalVehicle - Set the ACE parameter is a medical vehicle. [Boolean] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf index 6c908790c..2ae78d1e8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf @@ -43,7 +43,7 @@ _inventory params [ } forEach (_magazines select 0); { - _object addWeaponWithAttachmentsCargoGlobal [_weapons, 1]; + _object addWeaponWithAttachmentsCargoGlobal [_x, 1]; } forEach _weapons; { @@ -56,7 +56,7 @@ _inventory params [ }; private _newContainer = everyContainer _object; - [(_newContainer select (count _newContainer -1)) select 1, _x select 1] call btc_fnc_log_setCargo; + [(_newContainer select (count _newContainer -1)) select 1, _x select 1] call btc_fnc_log_setInventory; } forEach _everyContainer; { From 8f631e727c6e8b9049c233b3c3c1037fc82aca8f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 Mar 2021 12:13:09 +0100 Subject: [PATCH 057/354] Use ASL instead of posWorld for objects --- .../core/def/mission.sqf | 2 +- .../core/fnc/db/loadObjectStatus.sqf | 6 ++-- .../core/fnc/db/load_old.sqf | 35 ++++++++++++++++++- .../core/fnc/db/save.sqf | 4 +-- .../core/fnc/db/saveObjectStatus.sqf | 2 +- 5 files changed, 41 insertions(+), 8 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 77397bdfb..f4fa852fb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -1,5 +1,5 @@ -btc_version = [1, 21, 0]; +btc_version = [1, 21.1, 0]; diag_log format (["=BTC= HEARTS AND MINDS VERSION %1.%2.%3"] + btc_version); //Param diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index c6e1d8ea8..9dcb2ad42 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -25,7 +25,7 @@ params [ ]; _object_data params [ "_type", - "_posWorld", + "_pos", "_dir", "_magClass", "_cargo", @@ -34,10 +34,10 @@ _object_data params [ ["_isContaminated", false, [false]] ]; -private _obj = _type createVehicle _posWorld; +private _obj = createVehicle [_type, ASLToATL _pos, [], 0, "CAN_COLLIDE"]; _obj setDir _dir; -_obj setPosWorld _posWorld; +_obj setPosASL _pos; _obj setVectorDirAndUp _vectorPos; if (_isContaminated) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 7394e2cdb..0956b0cab 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -128,7 +128,40 @@ btc_vehicles = []; private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]); { - [_x] call btc_fnc_db_loadObjectStatus; + [_x] call { + params [ + ["_object_data", [], [[]]] + ]; + _object_data params [ + "_type", + "_posWorld", + "_dir", + "_magClass", + "_cargo", + "_inventory", + "_vectorPos", + ["_isContaminated", false, [false]] + ]; + + private _obj = _type createVehicle _posWorld; + + _obj setDir _dir; + _obj setPosWorld _posWorld; + _obj setVectorDirAndUp _vectorPos; + + if (_isContaminated) then { + if ((btc_chem_contaminated pushBackUnique _obj) > -1) then { + publicVariable "btc_chem_contaminated"; + }; + }; + if (_magClass isNotEqualTo "") then {_obj setVariable ["ace_rearm_magazineClass", _magClass, true]}; + if (unitIsUAV _obj) then { + createVehicleCrew _obj; + }; + + [_obj] call btc_fnc_log_init; + [_obj, _cargo, _inventory] call btc_fnc_db_loadCargo; + }; } forEach _objs; //VEHICLES diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 51a5578c5..d890dc46c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -138,11 +138,11 @@ private _vehiclesNotInCargo = _vehicles select { }; private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; { - (_x call btc_fnc_db_saveObjectStatus) params ["_type", "", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated"]; + (_x call btc_fnc_db_saveObjectStatus) params ["_type", "_pos", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated"]; private _data = []; _data pushBack _type; - _data pushBack (getPosASL _x); + _data pushBack _pos; _data pushBack _dir; _data pushBack (fuel _x); _data pushBack (getAllHitPointsDamage _x); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 458f07a48..5a6498834 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -27,7 +27,7 @@ params [ private _data = []; _data pushBack (typeOf _object); -_data pushBack (getPosWorld _object); +_data pushBack (getPosASL _object); _data pushBack (getDir _object); _data pushBack (_object getVariable ["ace_rearm_magazineClass", ""]); //Cargo From 12af49dd0b593ebbcad08c4a652d8cda2d28ba5e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 13 Mar 2021 13:57:01 +0100 Subject: [PATCH 058/354] Fix Typo --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf index 8a83f42e4..7c33243ea 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf @@ -6,7 +6,7 @@ Description: Create hideout randomnly or with defined position. Parameters: - _pos - Poisition of the hideout. [Array] + _pos - Position of the hideout. [Array] _id_hideout - Id of the hideout. [Number] _rinf_time - Not used. [Number] _cap_time - Time for next capture of city around. [Number] From e2a9a35833ee15b1c0ce6fa485b72659816d70bb Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 19 Mar 2021 23:14:45 +0100 Subject: [PATCH 059/354] tweak variable name --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf index bcf12904e..0a630f305 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf @@ -101,7 +101,7 @@ if !(_city getVariable ["active", false]) exitWith {}; } forEach (btc_tags_server inAreaArray [_pos_city, _radius, _radius]); btc_tags_server = btc_tags_server - [objNull]; - (_city getVariable ["btc_city_flowers", []]) call CBA_fnc_deleteEntity; + (_city getVariable ["btc_civ_flowers", []]) call CBA_fnc_deleteEntity; if (btc_debug_log) then { [format ["data units = %1", _data_units], __FILE__, [false]] call btc_fnc_debug_message; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf index 126e28803..ac6826b9e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf @@ -27,7 +27,7 @@ params [ ]; _city setVariable [ - "btc_city_flowers", + "btc_civ_flowers", _civKilled apply { _x params ["_posASL", "_dir"]; From b4e42c73ad18be9e06a6ad93f7c19f9ae98a9495 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 20 Mar 2021 17:08:34 +0100 Subject: [PATCH 060/354] Add tool to unlock door --- .../core/def/mission.sqf | 4 ++ .../core/fnc/arsenal/loadout.sqf | 2 +- .../core/fnc/city/activate.sqf | 2 +- .../core/fnc/compile.sqf | 8 +++- .../core/fnc/door/break.sqf | 32 +++++++++++++ .../core/fnc/door/broke.sqf | 45 +++++++++++++++++++ .../{city/disableDoor.sqf => door/lock.sqf} | 4 +- .../core/fnc/int/add_actions.sqf | 6 +++ 8 files changed, 98 insertions(+), 5 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{city/disableDoor.sqf => door/lock.sqf} (93%) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 77397bdfb..dfdd1c6bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -701,6 +701,7 @@ btc_rep_malus_player_respawn = - 10; btc_rep_malus_veh_killed = - 25; btc_rep_malus_building_damaged = - 2.5; btc_rep_malus_building_destroyed = - 5; +btc_rep_malus_doorLockpick = - 1; //Skill btc_AI_skill = _p_skill; @@ -709,3 +710,6 @@ btc_AI_skill = _p_skill; btc_units_owners = []; btc_player_type = ["SoldierWB", "SoldierEB", "SoldierGB"] select ([west, east, independent] find btc_player_side); + +//Door +btc_door_breaking_time = 60; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf index aab2effb8..3ce0f7a1b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf @@ -166,7 +166,7 @@ if (_fractures > 0) then { private _cargos = [ [], [_backpack, [["SmokeShellGreen", 3, 1], ["SmokeShellPurple", 1, 1]] + _backpackMedical], - [_backpack, [["ToolKit", 1], ["ACE_EntrenchingTool", 1]]], + [_backpack, [["ToolKit", 1], ["ACE_EntrenchingTool", 1], ["ACE_wirecutter", 1]]], [_backpack, [["ACE_DefusalKit", 1], ["ACE_Clacker", 2], ["ACE_SpraypaintRed", 1], ["DemoCharge_Remote_Mag", 2, 1], [["ACE_VMM3", "", "", "", [], [], ""], 1], ["ACE_EntrenchingTool", 1]]], [_backpack, [[_launcherMagazines param [1, _launcherMagazine], 1, _launcherCount], [_launcherMagazine, 1, _launcherCount]]], [_backpack_big, [[_launcherMagazine, 2, _launcherCount]]], diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index b296194ce..0c884d4b2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -288,7 +288,7 @@ if ( ) then { [[_city, _spawningRadius/3], btc_fnc_city_getHouses] call btc_fnc_delay_exec; }; -[_city, btc_fnc_city_disableDoor] call btc_fnc_delay_exec; +[_city, btc_fnc_door_lock] call btc_fnc_delay_exec; [{ params ["_has_en", "_city", "_radius", "_id"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index a35b6d8bf..9c3ed36fe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -43,7 +43,6 @@ if (isServer) then { btc_fnc_city_cleanUp = compileScript ["core\fnc\city\cleanUp.sqf"]; btc_fnc_city_trigger_free_condition = compileScript ["core\fnc\city\trigger_free_condition.sqf"]; btc_fnc_city_getHouses = compileScript ["core\fnc\city\getHouses.sqf"]; - btc_fnc_city_disableDoor = compileScript ["core\fnc\city\disableDoor.sqf"]; //CIV btc_fnc_civ_add_weapons = compileScript ["core\fnc\civ\add_weapons.sqf"]; @@ -73,6 +72,9 @@ if (isServer) then { btc_fnc_delay_createAgent = compileScript ["core\fnc\delay\createAgent.sqf"]; btc_fnc_delay_exec = compileScript ["core\fnc\delay\exec.sqf"]; + //DOOR + btc_fnc_door_lock = compileScript ["core\fnc\door\lock.sqf"]; + //EH btc_fnc_eh_server = compileScript ["core\fnc\eh\server.sqf"]; @@ -282,6 +284,10 @@ if (!isDedicated) then { btc_fnc_civ_add_leaflets = compileScript ["core\fnc\civ\add_leaflets.sqf"]; btc_fnc_civ_leaflets = compileScript ["core\fnc\civ\leaflets.sqf"]; + //DOOR + btc_fnc_door_break = compileScript ["core\fnc\door\break.sqf"]; + btc_fnc_door_broke = compileScript ["core\fnc\door\broke.sqf"]; + //IED btc_fnc_ied_effects = compileScript ["core\fnc\ied\effects.sqf"]; btc_fnc_ied_effect_smoke = compileScript ["core\fnc\ied\effect_smoke.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf new file mode 100644 index 000000000..beeb54c4d --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf @@ -0,0 +1,32 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_door_break + +Description: + Break lock door action. + +Parameters: + +Returns: + +Examples: + (begin example) + _result = [] call btc_fnc_door_break; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +([2] call ace_interaction_fnc_getDoor) params ["_house", "_door"]; +if (_door isEqualTo "") exitWith { + "No door" call CBA_fnc_notify; +}; + +["Breaking door lock...", btc_door_breaking_time, { + [player, objNull, ["isnotinside"]] call ace_common_fnc_canInteractWith +}, { + params ["_args"]; + _args call btc_fnc_door_broke; +}, {}, [_house, _door]] call CBA_fnc_progressBar; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf new file mode 100644 index 000000000..2f47331aa --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf @@ -0,0 +1,45 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_door_broke + +Description: + Unlock door. + +Parameters: + _house - House. [Object] + _door - Door name. [String] + +Returns: + +Examples: + (begin example) + ([2] call ace_interaction_fnc_getDoor) call btc_fnc_door_broke; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_house", objNull, [objNull]], + ["_door", "", [""]] +]; + +_house setVariable [format ["bis_disabled_%1", _door], 0, true]; +playSound "ACE_Sound_Click"; +[btc_rep_malus_doorLockpick, player] remoteExecCall ["btc_fnc_rep_change", 2]; + +private _getDoorAnimations = [_house, _door] call ace_interaction_fnc_getDoorAnimations; +_getDoorAnimations params ["_animations"]; +if (_animations isEqualTo []) exitWith {}; + +// Add handle on carrier +if (typeOf _house == "Land_Carrier_01_island_01_F") then { + private _handle = format ["door_handle_%1_rot_1", (_animations select 0) select [5, 1]]; + _animations pushBack _handle; +}; +// do incremental door opening +{ + _house animate [_x, 0.2]; +} forEach _animations; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf similarity index 93% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf index b72cdba7c..dff19026e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/disableDoor.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_disableDoor +Function: btc_fnc_door_lock Description: Disable door in a city. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [player] call btc_fnc_city_disableDoor; + [player] call btc_fnc_door_lock; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index ac788156b..795bfd9be 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -196,3 +196,9 @@ if (btc_p_arsenal_Type > 0) then { }; }; if (btc_p_arsenal_Restrict isNotEqualTo 0) then {[btc_gear_object, btc_p_arsenal_Type, btc_p_arsenal_Restrict, btc_custom_arsenal] call btc_fnc_arsenal_data;}; + +//Door +_action = ["Open_door", "Break door lock", "\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa", { + [btc_fnc_door_break] call CBA_fnc_execNextFrame; +}, {"ACE_wirecutter" in items player}] call ace_interact_menu_fnc_createAction; +[player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject; From 58fd5e37162fe974743fd23ff0a7c3e37d061fea Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 21 Mar 2021 00:16:33 +0100 Subject: [PATCH 061/354] Add translation --- .../core/fnc/door/break.sqf | 6 +++--- .../core/fnc/int/add_actions.sqf | 2 +- .../stringtable.xml | 20 +++++++++++++++++-- README.md | 2 +- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf index beeb54c4d..01ca2af46 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_door_break; + [] call btc_fnc_door_break; (end) Author: @@ -21,10 +21,10 @@ Author: ([2] call ace_interaction_fnc_getDoor) params ["_house", "_door"]; if (_door isEqualTo "") exitWith { - "No door" call CBA_fnc_notify; + (localize "STR_BTC_HAM_O_DOOR_NO") call CBA_fnc_notify; }; -["Breaking door lock...", btc_door_breaking_time, { +[localize "STR_BTC_HAM_O_DOOR_BREAKING", btc_door_breaking_time, { [player, objNull, ["isnotinside"]] call ace_common_fnc_canInteractWith }, { params ["_args"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 795bfd9be..ec4def5ed 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -198,7 +198,7 @@ if (btc_p_arsenal_Type > 0) then { if (btc_p_arsenal_Restrict isNotEqualTo 0) then {[btc_gear_object, btc_p_arsenal_Type, btc_p_arsenal_Restrict, btc_custom_arsenal] call btc_fnc_arsenal_data;}; //Door -_action = ["Open_door", "Break door lock", "\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa", { +_action = ["door_break", localize "STR_BTC_HAM_ACTION_DOOR_BREAK", "\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa", { [btc_fnc_door_break] call CBA_fnc_execNextFrame; }, {"ACE_wirecutter" in items player}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 58fe7bee2..b5a6c0a55 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -202,12 +202,12 @@ Réputation - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Good actions:</marker><br/> Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bad actions:</marker><br/> Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Good actions:</marker><br/> Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bad actions:</marker><br/> Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, damaging/destroying buildings, breaking door lock, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> La reputación se puede solicitar a los civiles<br/> Las malas acciones causan malos efectos sobre la reputacion.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ayudar a la población local luchando contra los Oplitas y desarmando los artefactos explosivos improvisados aumentará tu reputación; matar civiles, mutilar civiles vivos/muertos, disparar cerca de civiles sin razón alguna, disparar a vehículos civiles, dañar/destruir edificios, perder vehículos, respawns de jugadores disminuirá tu reputación. Al principio tienes un nivel de reputación muy bajo, por lo que los civiles no te ayudarán a revelar información importante sobre los Oplitas, es probable que mientan en su lugar.<br/> Abortar una misión secundaria no afecta a la reputación. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Ihr Ansehen bei der Bevölkerung können Sie bei Zivilisten erfragen <br/> Schlechte bzw. böse Handlungen habe zur Folge das ihr Ansehen sinkt. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Das Unterstützen der lokalen Bevölkerung, das Entschärfen von IEDs und der aktive Kampf gegen die Oplitas wird sich positiv auf ihr Ansehen auswirken. Negative Aktionen wie zb. das Töten oder verstümmeln von Zivlisten, das grundlose Abfeueren einer Waffe in der Nähe von Zivilisten, das Zerstören oder Beschädigen von Gebäuden, der Angriff auf zivile Fahrzeuge, der Verlust von Fahrzeugen im Allgemeinen oder das Respawnen haben hingegen einen nicht so guten Effekt. Zu Beginn ist Ihr Ansehen nur recht gering, weshalb es sein kann das Zivlisten eher zruückhaltend mit Informationen sind. In manchen Fällen werden die Zivilisten Sie auch einfach belügen.<br/> Das Abbrechen von Nebenaufgaben hat keine Auswirkung auf Ihr Ansehen. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> A Reputação entre a população é obtida por meio dos civis <br/> Ações ruins ou más fazem a reputação diminuir. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ajudar a população local combatendo os inimigos e desarmando os IED's aumentará sua reputação. Matar civis, mutilar civis vivos/mortos, atirar perto de civis sem motivo, atirar nos veículos civis, danificar/destruir prédios, perder veículos civis, respawns de jogadores diminuirão a reputação. No começo, o nível de reputação é muito baixo, então, os civis não irão ajudá-lo a revelar informações importantes sobre os inimigos ou provavelmente irão mentir.<br/> Cancelar tarefas secundárias não afeta a reputação. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> 在任务开始时, 你只有很低的声誉, 所以平民不会向你展示关于Oplitas的重要信息, 他们更倾向于说谎。可以通过询问平民来获知声誉状况。<br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>善举:</marker><br/> 帮助当地居民反抗Oplitas, 拆除IED, 救助平民, 使用红色喷漆去除涂鸦, 完成支线任务和摧毁武器箱/藏匿点将会提升你的声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>恶行:</marker><br/> 恶行将会酿成恶果: 击杀或残害平民/动物、毫无理由地向平民身边射击、攻击民用车辆、毁坏或摧毁建筑物、损失我方载具和玩家重生均会降低声誉。中止支线任务不会影响声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, tirer sur une voiture civile, endommager / détruire des bâtiments, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, tirer sur une voiture civile, endommager / détruire des bâtiments, casser les serrures des portes, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> @@ -1718,6 +1718,12 @@ Coller le conteneur + + + Break door lock + Casser la serrure + + @@ -2331,6 +2337,16 @@ Non contaminé + + + No door + Aucune porte + + + Breaking door lock... + Casser la serrure ... + + diff --git a/README.md b/README.md index cfd45e15b..0edcd64d0 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ The militia has an unknown number of hideouts in the island that need to be dest They have also ammo caches in various locations, destroy them to weaken its power. Bad actions cause bad effects. -Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, damaging/destroying buildings, losing vehicles, respawns will decrease your reputation. +Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, damaging/destroying buildings, breaking door lock, losing vehicles, respawns will decrease your reputation. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead.

From 0e83ea9b41e4409119beace5e61ca8aa8783997a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 21 Mar 2021 00:56:19 +0100 Subject: [PATCH 062/354] Change number of locked door with reputation --- .../core/fnc/door/lock.sqf | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf index dff19026e..79b0dbcdc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf @@ -7,6 +7,7 @@ Description: Parameters: _city - City. [Array] + _rep - Reputation level. [Number] Returns: @@ -21,11 +22,18 @@ Author: ---------------------------------------------------------------------------- */ params [ - ["_city", objNull, [objNull]] + ["_city", objNull, [objNull]], + ["_rep", btc_global_reputation, [0]] ]; private _houses = +(_city getVariable ["btc_city_houses", []]); -private _n = count _houses; +private _ratio = switch (true) do { + case (_rep < 200): {1}; + case (_rep >= 200 && _rep < 500): {1/2}; + case (_rep >= 500 && _rep < 750): {1/3}; + case (_rep >= 750): {0}; +}; +private _n = (count _houses) * _ratio; private _i = 1; while { From b5a98f17baca7832b8faae41994aa4cfb12a9974 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 21 Mar 2021 15:07:28 +0100 Subject: [PATCH 063/354] Create a dedicated file --- .../core/fnc/city/activate.sqf | 12 +------ .../core/fnc/info/createIntels.sqf | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index dd0e36806..44759031f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -279,17 +279,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { }; [_city, btc_fnc_tag_create] call btc_fnc_delay_exec; -[_city, { - params ["_city"]; - private _houses = +(_city getVariable ["btc_city_houses", []]); - - _houses = _houses select [0, count _houses]; - - private _intels = _houses apply { - createVehicle [selectRandom btc_info_intels, ASLToATL AGLToASL selectRandom (_x buildingPos -1), [], 0, "CAN_COLLIDE"]; - }; - _city setVariable ["btc_city_intels", _intels]; -}] call btc_fnc_delay_exec; +[_city, btc_fnc_info_createIntels] call btc_fnc_delay_exec; [{ params ["_has_en", "_city", "_radius", "_id"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf new file mode 100644 index 000000000..5de5032d3 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf @@ -0,0 +1,34 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_info_createIntels + +Description: + Create intel. + +Parameters: + _city - City to create intels. [Object] + +Returns: + +Examples: + (begin example) + [] call btc_fnc_info_createIntels; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_city", objNull, [objNull]] +]; + +private _houses = +(_city getVariable ["btc_city_houses", []]); + +_houses = _houses select [0, count _houses]; + +private _intels = _houses apply { + createVehicle [selectRandom btc_info_intels, ASLToATL AGLToASL selectRandom (_x buildingPos -1), [], 0, "CAN_COLLIDE"]; +}; +_city setVariable ["btc_city_intels", _intels]; From ed6349322a93d0cede3ed76ef8ef0b09f4e0e547 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 23 Mar 2021 18:17:32 +0100 Subject: [PATCH 064/354] Add file fnc --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 1 + .../core/fnc/info/createIntels.sqf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index b05fe3f15..b3112310e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -99,6 +99,7 @@ if (isServer) then { btc_fnc_info_hideout = compileScript ["core\fnc\info\hideout.sqf"]; btc_fnc_info_cacheMarker = compileScript ["core\fnc\info\cacheMarker.sqf"]; btc_fnc_info_path = compileScript ["core\fnc\info\path.sqf"]; + btc_fnc_info_createIntels = compileScript ["core\fnc\info\createIntels.sqf"]; //FOB btc_fnc_fob_create_s = compileScript ["core\fnc\fob\create_s.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf index 5de5032d3..d590a251b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf @@ -3,7 +3,7 @@ Function: btc_fnc_info_createIntels Description: - Create intel. + Create intels in a city. Parameters: _city - City to create intels. [Object] From c885f70a34f141253e369f487daaa8989637ddc1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 27 Mar 2021 14:16:07 +0100 Subject: [PATCH 065/354] FIX: Missing function --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index cea79d819..d5040ce68 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -173,7 +173,7 @@ if (isServer) then { btc_fnc_log_createVehicle = compileScript ["core\fnc\log\createVehicle.sqf"]; btc_fnc_log_getRearmMagazines = compileScript ["core\fnc\log\getRearmMagazines.sqf"]; btc_fnc_log_init = compileScript ["core\fnc\log\init.sqf"]; - btc_fnc_log_setCargo = compileScript ["core\fnc\log\setCargo.sqf"]; + btc_fnc_log_setInventory = compileScript ["core\fnc\log\setInventory.sqf"]; btc_fnc_log_server_delete = compileScript ["core\fnc\log\server_delete.sqf"]; btc_fnc_log_create_s = compileScript ["core\fnc\log\create_s.sqf"]; btc_fnc_log_get_cc = compileScript ["core\fnc\log\get_cc.sqf"]; From a3f43148874765d15b5064ecbc9961f61249b3a3 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 30 Mar 2021 21:21:02 +0200 Subject: [PATCH 066/354] Add give food You can now give banana to feed civilian Removing banan from inventory descrease reputation --- .../core/def/mission.sqf | 2 + .../core/fnc/compile.sqf | 2 + .../core/fnc/eh/headless.sqf | 1 + .../core/fnc/eh/server.sqf | 1 + .../core/fnc/int/add_actions.sqf | 2 + .../core/fnc/int/giveFood.sqf | 40 +++++++++++++++++++ .../core/fnc/rep/foodRemoved.sqf | 36 +++++++++++++++++ 7 files changed, 84 insertions(+) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index b643ce4fa..86a00f74b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -691,6 +691,7 @@ btc_rep_bonus_mil_killed = 0.25; btc_rep_bonus_IEDCleanUp = 10; btc_rep_bonus_removeTag = 3; btc_rep_bonus_removeTagLetter = 0.5; +btc_rep_bonus_giveFood = 10; btc_rep_malus_civ_hd = - 2; btc_rep_malus_animal_hd = - 1; @@ -701,6 +702,7 @@ btc_rep_malus_player_respawn = - 10; btc_rep_malus_veh_killed = - 25; btc_rep_malus_building_damaged = - 2.5; btc_rep_malus_building_destroyed = - 5; +btc_rep_bonus_removeFood = - btc_rep_bonus_giveFood; //Skill btc_AI_skill = _p_skill; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index d618d1819..08e3cd977 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -249,6 +249,7 @@ btc_fnc_patrol_disabled = compileScript ["core\fnc\patrol\disabled.sqf"]; //REP btc_fnc_rep_hd = compileScript ["core\fnc\rep\hd.sqf"]; btc_fnc_rep_suppressed = compileScript ["core\fnc\rep\suppressed.sqf"]; +btc_fnc_rep_foodRemoved = compileScript ["core\fnc\rep\foodRemoved.sqf"]; //ARSENAL btc_fnc_arsenal_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; @@ -306,6 +307,7 @@ if (!isDedicated) then { btc_fnc_int_orders = compileScript ["core\fnc\int\orders.sqf"]; btc_fnc_int_shortcuts = compileScript ["core\fnc\int\shortcuts.sqf"]; btc_fnc_int_terminal = compileScript ["core\fnc\int\terminal.sqf"]; + btc_fnc_int_giveFood = compileScript ["core\fnc\int\giveFood.sqf"]; //INFO btc_fnc_info_ask = compileScript ["core\fnc\info\ask.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf index ccfbd1b3c..f51f51764 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf @@ -41,3 +41,4 @@ Author: }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; +["ace_disarming_dropItems", btc_fnc_rep_foodRemoved] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 741ecad09..22bed2ea0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -82,3 +82,4 @@ if (btc_p_set_skill) then { }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; ["ace_tagCreated", btc_fnc_tag_eh] call CBA_fnc_addEventHandler; +["ace_disarming_dropItems", btc_fnc_rep_foodRemoved] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index ac788156b..bb6d1127b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -129,6 +129,8 @@ _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["Ask_Reputation", localize "STR_BTC_HAM_ACTION_ORDERS_ASKREP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target] spawn btc_fnc_info_ask_reputation;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; + _action = ["Give_banana", "Give banana", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[player, _target] call btc_fnc_int_giveFood}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; + [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; //remove ace3 "get down" order [_x, 0, ["ACE_MainActions", "ACE_GetDown"]] call ace_interact_menu_fnc_removeActionFromClass; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf new file mode 100644 index 000000000..fb0fdc3aa --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf @@ -0,0 +1,40 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_int_giveFood + +Description: + Give food to a unit. + +Parameters: + _player - Player. [Object] + _target - Target. [Object] + +Returns: + +Examples: + (begin example) + [player, cursorObject] call btc_fnc_int_giveFood; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_player", player, [objNull]], + ["_target", objNull, [objNull]] +]; + +private _hadFood = "ACE_Banana" in items _target; +if ( + [player, "ACE_Banana"] call CBA_fnc_removeItem && + {[_target, "ACE_Banana", true] call CBA_fnc_addItem} +) then { + if (_hadFood) then { + systemChat "Thank you but I already have food"; + } else { + systemChat "Thank you"; + [btc_rep_bonus_giveFood, _player] remoteExecCall ["btc_fnc_rep_change", 2]; + }; +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf new file mode 100644 index 000000000..3546a78f2 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -0,0 +1,36 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_rep_foodRemoved + +Description: + Change reputation if food is removed. + +Parameters: + _caller - Caller (player). [Object] + _unit - Target. [Object] + _listOfItemsToRemove - Classnames. [Array] + +Returns: + +Examples: + (begin example) + [player, cursorObject, ["ACE_Banana"]] call btc_fnc_rep_foodRemoved; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params ["_caller", "_target", "_listOfItemsToRemove"]; + +if ( + (side group _target) isEqualTo civilian && + {"ACE_Banana" in _listOfItemsToRemove} +) then { + if (isServer) then { + [btc_rep_bonus_removeFood, _caller] call btc_fnc_rep_change; + } else { + [btc_rep_bonus_removeFood, _caller] remoteExecCall ["btc_fnc_rep_change", 2]; + }; +}; From a29cf14f3314c0fa8bc0fdc176a315529581a806 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 31 Mar 2021 18:18:31 +0200 Subject: [PATCH 067/354] Lower reputation gain and add stringatable --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- .../core/fnc/int/add_actions.sqf | 2 +- .../core/fnc/int/giveFood.sqf | 7 +++++-- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 6 ++++++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 86a00f74b..573e000d9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -691,7 +691,7 @@ btc_rep_bonus_mil_killed = 0.25; btc_rep_bonus_IEDCleanUp = 10; btc_rep_bonus_removeTag = 3; btc_rep_bonus_removeTagLetter = 0.5; -btc_rep_bonus_giveFood = 10; +btc_rep_bonus_giveFood = 0.5; btc_rep_malus_civ_hd = - 2; btc_rep_malus_animal_hd = - 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index bb6d1127b..eaefed417 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -129,7 +129,7 @@ _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["Ask_Reputation", localize "STR_BTC_HAM_ACTION_ORDERS_ASKREP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target] spawn btc_fnc_info_ask_reputation;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Give_banana", "Give banana", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[player, _target] call btc_fnc_int_giveFood}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; + _action = ["Give_food", localize "STR_BTC_HAM_ACTION_GIVEFOOD", "\z\ace\addons\common\data\icon_banana_ca.paa", {[player, _target] call btc_fnc_int_giveFood}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; //remove ace3 "get down" order diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf index fb0fdc3aa..d58fee560 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf @@ -31,10 +31,13 @@ if ( [player, "ACE_Banana"] call CBA_fnc_removeItem && {[_target, "ACE_Banana", true] call CBA_fnc_addItem} ) then { + _player switchMove "ainvpknlmstpslaywrfldnon_1"; + + private _isInterpreter = player getVariable ["interpreter", false]; if (_hadFood) then { - systemChat "Thank you but I already have food"; + [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "STR_BTC_HAM_CON_INT_ALRGIVEFOOD"] select _isInterpreter)] call btc_fnc_showSubtitle; } else { - systemChat "Thank you"; + [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "str_a3_rscdisplaywelcome_kart_pard_footer2"] select _isInterpreter)] call btc_fnc_showSubtitle; [btc_rep_bonus_giveFood, _player] remoteExecCall ["btc_fnc_rep_change", 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index b10b3b461..1d66b0b8b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -1608,6 +1608,9 @@ 询问声誉情况 Demander la réputation + + Give a banana + @@ -1961,6 +1964,9 @@ 不! 老子想去哪就去哪! Non ! Je vais où je veux ! + + Thank you but I already have food + From 44171e6e16bf4b048fddd6847a36c168b9b3d883 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 3 Apr 2021 13:12:53 +0200 Subject: [PATCH 068/354] Add documentation --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf | 3 +++ .../core/fnc/door/break.sqf | 2 +- .../core/fnc/door/broke.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 9 +++++++++ README.md | 2 +- docs/InGame-documentation.md | 7 ++++++- 8 files changed, 24 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index dfdd1c6bc..bed5f4535 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -701,7 +701,7 @@ btc_rep_malus_player_respawn = - 10; btc_rep_malus_veh_killed = - 25; btc_rep_malus_building_damaged = - 2.5; btc_rep_malus_building_destroyed = - 5; -btc_rep_malus_doorLockpick = - 1; +btc_rep_malus_breakDoor = - 2; //Skill btc_AI_skill = _p_skill; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf index 023207b52..f38d49b93 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf @@ -4,6 +4,9 @@ player createDiarySubject [_MainCategory, _MainCategory]; //Headless and Data base player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_HEADLESS_TITLE", localize "STR_BTC_HAM_DOC_HEADLESS_TEXT"]]; +//Door locked +player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_DOOR_TITLE", localize "STR_BTC_HAM_DOC_DOOR_TEXT"]]; + //Chemical warfare player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_CHEMICALWARFARE_TITLE", localize "STR_BTC_HAM_DOC_CHEMICALWARFARE_TEXT"]]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf index 01ca2af46..f1e84e40f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf @@ -3,7 +3,7 @@ Function: btc_fnc_door_break Description: - Break lock door action. + Break locked door action. Parameters: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf index 2f47331aa..06eea5bc6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf @@ -27,8 +27,8 @@ params [ ]; _house setVariable [format ["bis_disabled_%1", _door], 0, true]; -playSound "ACE_Sound_Click"; -[btc_rep_malus_doorLockpick, player] remoteExecCall ["btc_fnc_rep_change", 2]; +playSound3D ["\z\ace\addons\logistics_wirecutter\sound\wirecut.ogg", player]; +[btc_rep_malus_breakDoor, player] remoteExecCall ["btc_fnc_rep_change", 2]; private _getDoorAnimations = [_house, _door] call ace_interaction_fnc_getDoorAnimations; _getDoorAnimations params ["_animations"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf index 79b0dbcdc..06774e30b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf @@ -3,7 +3,7 @@ Function: btc_fnc_door_lock Description: - Disable door in a city. + Lock door in a city. Parameters: _city - City. [Array] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index b5a6c0a55..37af85704 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -264,6 +264,15 @@ <img image='\A3\Data_F_Enoch\Logos\arma3_enoch_logo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Champ électromagnétique:</marker><br/>Il existe deux types de champ électromagnétique provenant d'un UAV ou d'une impulsion électromagnétique (EMP). Les drones émettent un champ électromagnétique de 390 MHz à 500 MHz en raison de la transmission de l'appareil. Les impulsions électromagnétiques sont utilisées comme arme pour créer une défaillance électronique des véhicules. La gamme de fréquences va de 78 MHz à 89 MHz et est suffisamment puissante pour éteindre la lumière, le moteur et les appareils avioniques. <img image='\A3\Data_F_Mark\Images\watermarkInfo_page14_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/>Les champs électromagnétiques des drones sont inoffensifs, mais les EMP affectent le moteur des véhicules dans un rayon de 500 m. <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Détection:</marker><br/> Vous pouvez détecter l'origine du champ électromagnétique avec des appareils spectraux. L'amplitude du pic dépend de la distance et de l'angle entre l'émetteur et l'antenne. La portée maximale est de 1000 m. <img image='\a3\Data_F_Enoch\Images\SpectrumDevice_ca.paa' width='355' height='200'/> + + + Door locked + Porte verrouillée + + + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>House doors:</marker><br/> Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. <br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Break locked door:</marker><br/> You can still enter by breaking door lock with a wirecutter. <img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> + + diff --git a/README.md b/README.md index 0edcd64d0..fc024f705 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ The militia has an unknown number of hideouts in the island that need to be dest They have also ammo caches in various locations, destroy them to weaken its power. Bad actions cause bad effects. -Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, damaging/destroying buildings, breaking door lock, losing vehicles, respawns will decrease your reputation. +Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, damaging/destroying buildings, breaking locked door, losing vehicles, respawns will decrease your reputation. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead.

diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index d363bb088..33fecf89b 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -24,6 +24,11 @@ Electromagnetic field from UAV are safe but EMP have a range of 500m where vehic ### Detection: You can detect the origin of electromagnetic field with spectrum devices. The amplitude of the peak depend on the distance and angle between the emiter and the antenna. The maximum range is 1000m. +## Door locked +###House doors: +Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. +###Break locked door: +You can still enter by breaking door lock with a wirecutter. ## Vehicles ### Respawn: @@ -120,7 +125,7 @@ At the beginning you have a very low reputation level, so civilians won't help y ### Good actions: Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. ### Bad actions: -Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. +Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, damaging/destroying buildings, breaking locked door, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. ## Civil Orders Any player can give orders to civilians. To do this, just open your self interaction menu and select 'ORDERS' or use one of the shortcuts. Shortcuts can changed under 'configure >> controls>> configure addons >> Hearts and Minds: Mission (drop down menu)'. Your options are: From d4a39503fc37f8b5f4363202e863492184804762 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 10 Apr 2021 19:18:53 +0200 Subject: [PATCH 069/354] Update documentation --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 4 ++-- README.md | 2 +- docs/InGame-documentation.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 1d66b0b8b..48f7ee75e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -202,12 +202,12 @@ Réputation - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Good actions:</marker><br/> Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bad actions:</marker><br/> Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Good actions:</marker><br/> Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, give banana, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bad actions:</marker><br/> Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, remove banana, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> La reputación se puede solicitar a los civiles<br/> Las malas acciones causan malos efectos sobre la reputacion.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ayudar a la población local luchando contra los Oplitas y desarmando los artefactos explosivos improvisados aumentará tu reputación; matar civiles, mutilar civiles vivos/muertos, disparar cerca de civiles sin razón alguna, disparar a vehículos civiles, dañar/destruir edificios, perder vehículos, respawns de jugadores disminuirá tu reputación. Al principio tienes un nivel de reputación muy bajo, por lo que los civiles no te ayudarán a revelar información importante sobre los Oplitas, es probable que mientan en su lugar.<br/> Abortar una misión secundaria no afecta a la reputación. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Ihr Ansehen bei der Bevölkerung können Sie bei Zivilisten erfragen <br/> Schlechte bzw. böse Handlungen habe zur Folge das ihr Ansehen sinkt. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Das Unterstützen der lokalen Bevölkerung, das Entschärfen von IEDs und der aktive Kampf gegen die Oplitas wird sich positiv auf ihr Ansehen auswirken. Negative Aktionen wie zb. das Töten oder verstümmeln von Zivlisten, das grundlose Abfeueren einer Waffe in der Nähe von Zivilisten, das Zerstören oder Beschädigen von Gebäuden, der Angriff auf zivile Fahrzeuge, der Verlust von Fahrzeugen im Allgemeinen oder das Respawnen haben hingegen einen nicht so guten Effekt. Zu Beginn ist Ihr Ansehen nur recht gering, weshalb es sein kann das Zivlisten eher zruückhaltend mit Informationen sind. In manchen Fällen werden die Zivilisten Sie auch einfach belügen.<br/> Das Abbrechen von Nebenaufgaben hat keine Auswirkung auf Ihr Ansehen. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> A Reputação entre a população é obtida por meio dos civis <br/> Ações ruins ou más fazem a reputação diminuir. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ajudar a população local combatendo os inimigos e desarmando os IED's aumentará sua reputação. Matar civis, mutilar civis vivos/mortos, atirar perto de civis sem motivo, atirar nos veículos civis, danificar/destruir prédios, perder veículos civis, respawns de jogadores diminuirão a reputação. No começo, o nível de reputação é muito baixo, então, os civis não irão ajudá-lo a revelar informações importantes sobre os inimigos ou provavelmente irão mentir.<br/> Cancelar tarefas secundárias não afeta a reputação. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> 在任务开始时, 你只有很低的声誉, 所以平民不会向你展示关于Oplitas的重要信息, 他们更倾向于说谎。可以通过询问平民来获知声誉状况。<br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>善举:</marker><br/> 帮助当地居民反抗Oplitas, 拆除IED, 救助平民, 使用红色喷漆去除涂鸦, 完成支线任务和摧毁武器箱/藏匿点将会提升你的声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>恶行:</marker><br/> 恶行将会酿成恶果: 击杀或残害平民/动物、毫无理由地向平民身边射击、攻击民用车辆、毁坏或摧毁建筑物、损失我方载具和玩家重生均会降低声誉。中止支线任务不会影响声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, tirer sur une voiture civile, endommager / détruire des bâtiments, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, donner une banane, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, retirer une banane, tirer sur une voiture civile, endommager / détruire des bâtiments, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> diff --git a/README.md b/README.md index 9848adb12..aa7ee35eb 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ The militia has an unknown number of hideouts in the island that need to be dest They have also ammo caches in various locations, destroy them to weaken its power. Bad actions cause bad effects. -Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, damaging/destroying buildings, losing vehicles, respawns will decrease your reputation. +Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, remove banana, damaging/destroying buildings, losing vehicles, respawns will decrease your reputation. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead.

diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index d363bb088..d8542bd04 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -118,9 +118,9 @@ When you destroy an hideout or an ammo cache, all the markers related to it will ### System: At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. ### Good actions: -Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. +Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, give banana, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. ### Bad actions: -Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. +Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, remove banana, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. ## Civil Orders Any player can give orders to civilians. To do this, just open your self interaction menu and select 'ORDERS' or use one of the shortcuts. Shortcuts can changed under 'configure >> controls>> configure addons >> Hearts and Minds: Mission (drop down menu)'. Your options are: From 93760c8791547ea9fd74a9351bce4d963898edfa Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 11 Apr 2021 19:33:17 +0200 Subject: [PATCH 070/354] Add: Selectable reputation level change --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 8 ++++---- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index b643ce4fa..5da8adedb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -77,7 +77,7 @@ btc_p_autoloadout = "btc_p_autoloadout" call BIS_fnc_getParamValue; //<< Other options >> private _p_rep = "btc_p_rep" call BIS_fnc_getParamValue; -btc_p_rep_notify = ("btc_p_rep_notify" call BIS_fnc_getParamValue) isEqualTo 1; +btc_p_rep_notify = "btc_p_rep_notify" call BIS_fnc_getParamValue; private _p_city_radius = ("btc_p_city_radius" call BIS_fnc_getParamValue) * 100; btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) then { "this && (false in (thisList apply {_x isKindOf 'Plane'})) && (false in (thisList apply {(_x isKindOf 'Helicopter') && (speed _x > 190)}))" diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 518c1dd36..7f097b9d6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -377,11 +377,11 @@ class Params { texts[]={$STR_ACE_ViewDistance_object_verylow,$STR_A3_TIME_TRIALS_MISCTT_ROF_25,$STR_3DEN_ATTRIBUTES_SPEEDMODE_NORMAL,$STR_A3_TIME_TRIALS_MISCTT_ROF_21}; //texts[]={"Very Low","Low","Normal","High"}; default = 200; }; - class btc_p_rep_notify { // Show reputation change: + class btc_p_rep_notify { // Show reputation change above of: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_SHOWREP"]); - values[]={0, 1}; - texts[]={$STR_DISABLED,$STR_ENABLED}; - default = 1; + values[]={-1, 0, 1, 2, 3, 5, 10, 25, 50, 100, 200}; + texts[]={$STR_DISABLED, 0, 1, 2, 3, 5, 10, 25, 50, 100, 200}; + default = 3; }; class btc_p_city_radius { // Spawn city radius offset: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_SPAWNRAD"]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf index 6f1ca457e..3d470da67 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf @@ -32,11 +32,11 @@ if (btc_debug || btc_debug_log) then { btc_global_reputation = btc_global_reputation + _reputation; -if (btc_p_rep_notify) then { +if (btc_p_rep_notify > 0) then { if ((btc_rep_delayed select 1) isEqualTo []) then { [{ [{ - abs(btc_rep_delayed select 0) > 3 + abs(btc_rep_delayed select 0) > btc_p_rep_notify }, { btc_rep_delayed call btc_fnc_rep_notify; }, [], 10 * 60, { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index b10b3b461..aa831d5dd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -783,9 +783,9 @@ Réputation de départ: - Show reputation change: + Show reputation change above of: 显示声誉变化: - Afficher le changement de réputation: + Afficher un changement de réputation au dessus de: Spawn city radius offset: From 8614ef1149897357d806bfec8b191ed07fa47370 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 11 Apr 2021 19:58:02 +0200 Subject: [PATCH 071/354] FIX: still disable for rep notity of 0 --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf index 3d470da67..0fff37deb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf @@ -32,7 +32,7 @@ if (btc_debug || btc_debug_log) then { btc_global_reputation = btc_global_reputation + _reputation; -if (btc_p_rep_notify > 0) then { +if (btc_p_rep_notify >= 0) then { if ((btc_rep_delayed select 1) isEqualTo []) then { [{ [{ From 22e23f512956078f6251b2877954b1c0dd7af9b1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 17 Apr 2021 15:46:37 +0200 Subject: [PATCH 072/354] FIX: house already lock are not lock twice --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf index 06774e30b..823255130 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf @@ -44,8 +44,10 @@ while { private _numberOfDoors = getNumber (configOf _house >> "numberOfDoors"); if (_numberOfDoors isNotEqualTo 0) then { - for "_door" from 1 to _numberOfDoors do { - _house setVariable [format ["bis_disabled_Door_%1", _door], 1, true]; + if (isNil {_house getVariable "bis_disabled_Door_1"}) then { + for "_door" from 1 to _numberOfDoors do { + _house setVariable [format ["bis_disabled_Door_%1", _door], 1, true]; + }; }; _i = _i + 1; }; From ce393be949ff8aaba72eb4731628937b86cc1acc Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 17 Apr 2021 20:56:28 +0200 Subject: [PATCH 073/354] Improve inAreaArray syntaxe when z is passed --- .../core/fnc/chem/checkLoop.sqf | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf index 705f1f1d7..d2fa132a7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf @@ -40,13 +40,12 @@ private _bodyParts = ["head","body","hand_l","hand_r","leg_l","leg_r"]; (0 boundingBoxReal _x) params ["_p1", "_p2"]; private _maxWidth = abs ((_p2 select 0) - (_p1 select 0)); private _maxLength = abs ((_p2 select 1) - (_p1 select 1)); - private _pos = getPosWorld _x; - private _maxHeight = abs ((_p2 select 2) - (_p1 select 2)) + (_pos select 2); + private _maxHeight = abs ((_p2 select 2) - (_p1 select 2)); private _sorted = _contaminated; if (_x isKindOf "DeconShower_01_F") then { _sorted = _unitsContaminated; // Small shower can only decontaminate units }; - _objtToDecontaminate append (_sorted inAreaArray [_pos, _maxWidth/2, _maxLength/2, getDir _x, true, _maxHeight]); + _objtToDecontaminate append (_sorted inAreaArray [ASLToAGL getPosASL _x, _maxWidth/2, _maxLength/2, getDir _x, true, _maxHeight]); } forEach (_decontaminate select {_x animationSourcePhase "valve_source" isEqualTo 1}); { if (!(local _x) && {_x in _units}) then { @@ -72,8 +71,7 @@ private _bodyParts = ["head","body","hand_l","hand_r","leg_l","leg_r"]; if (_x in _units) then { _range = _range / 2; }; - private _pos = getPosWorld _x; - _unitContaminate append (_units inAreaArray [_pos, _range, _range, 0, false, 2 + (_pos select 2)]); + _unitContaminate append (_units inAreaArray [ASLToAGL getPosASL _x, _range, _range, 0, false, 2]); } forEach _contaminated; if (_unitContaminate isEqualTo []) exitWith {}; From fef6c498168baf3484e5fde02d58e4bf78a62457 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Apr 2021 10:47:46 +0200 Subject: [PATCH 074/354] Change file name to btc_fnc_int_foodGive --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 2 +- .../core/fnc/int/add_actions.sqf | 2 +- .../core/fnc/int/{giveFood.sqf => foodGive.sqf} | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/{giveFood.sqf => foodGive.sqf} (93%) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 08e3cd977..eac6617de 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -307,7 +307,7 @@ if (!isDedicated) then { btc_fnc_int_orders = compileScript ["core\fnc\int\orders.sqf"]; btc_fnc_int_shortcuts = compileScript ["core\fnc\int\shortcuts.sqf"]; btc_fnc_int_terminal = compileScript ["core\fnc\int\terminal.sqf"]; - btc_fnc_int_giveFood = compileScript ["core\fnc\int\giveFood.sqf"]; + btc_fnc_int_foodGive = compileScript ["core\fnc\int\foodGive.sqf"]; //INFO btc_fnc_info_ask = compileScript ["core\fnc\info\ask.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index eaefed417..f7da37f45 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -129,7 +129,7 @@ _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["Ask_Reputation", localize "STR_BTC_HAM_ACTION_ORDERS_ASKREP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target] spawn btc_fnc_info_ask_reputation;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Give_food", localize "STR_BTC_HAM_ACTION_GIVEFOOD", "\z\ace\addons\common\data\icon_banana_ca.paa", {[player, _target] call btc_fnc_int_giveFood}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; + _action = ["Give_food", localize "STR_BTC_HAM_ACTION_GIVEFOOD", "\z\ace\addons\common\data\icon_banana_ca.paa", {[player, _target] call btc_fnc_int_foodGive}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; //remove ace3 "get down" order diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf similarity index 93% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf index d58fee560..0bd433bcf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_giveFood +Function: btc_fnc_int_foodGive Description: Give food to a unit. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [player, cursorObject] call btc_fnc_int_giveFood; + [player, cursorObject] call btc_fnc_int_foodGive; (end) Author: From dc8b94ba418aea44f1c6ad0b4b84eb9c0872e144 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Apr 2021 11:07:07 +0200 Subject: [PATCH 075/354] FIX: Animation put down --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf index 0bd433bcf..7baf7d1ff 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf @@ -31,7 +31,7 @@ if ( [player, "ACE_Banana"] call CBA_fnc_removeItem && {[_target, "ACE_Banana", true] call CBA_fnc_addItem} ) then { - _player switchMove "ainvpknlmstpslaywrfldnon_1"; + [_player, "PutDown"] call ace_common_fnc_doGesture; private _isInterpreter = player getVariable ["interpreter", false]; if (_hadFood) then { From cdf75fe7e265c520bdb7fd2552fac4a91c95148d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Apr 2021 17:51:22 +0200 Subject: [PATCH 076/354] Remove old function unwind --- .../core/fnc/compile.sqf | 1 - .../core/fnc/eh/player.sqf | 1 - .../core/fnc/tow/unwind.sqf | 62 ------------------- 3 files changed, 64 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/unwind.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 6cc1a62f1..9712d78e4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -364,7 +364,6 @@ if (!isDedicated) then { btc_fnc_tow_ropeCreate = compileScript ["core\fnc\tow\ropeCreate.sqf"]; btc_fnc_tow_hitch_points = compileScript ["core\fnc\tow\hitch_points.sqf"]; btc_fnc_tow_unhook = compileScript ["core\fnc\tow\unhook.sqf"]; - btc_fnc_tow_unwind = compileScript ["core\fnc\tow\unwind.sqf"]; btc_fnc_tow_check = compileScript ["core\fnc\tow\check.sqf"]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 96e7047f6..16d343ad5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -58,7 +58,6 @@ _player addEventHandler ["WeaponAssembled", { ["ace_csw_deployWeaponSucceeded", { _this remoteExecCall ["btc_fnc_log_init", 2]; }] call CBA_fnc_addEventHandler; -["btc_tow_unwindDone", {(localize "STR_BTC_HAM_TOW_DONE") call CBA_fnc_notify}] call CBA_fnc_addEventHandler; if (btc_p_chem) then { // Add biopsy diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/unwind.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/unwind.sqf deleted file mode 100644 index 2cacdbd20..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/unwind.sqf +++ /dev/null @@ -1,62 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_fnc_tow_unwind - -Description: - Unwind rope until the pitch is increased by 3°. - -Parameters: - _flat - Object carrying the towed vehicle. [Object] - _rope1 - Rope to unwind. [Object] - _rope2 - Rope to unwind. [Object] - _initialPitch - Initial pitch and bank. [Number] - -Returns: - -Examples: - (begin example) - [] call btc_fnc_tow_unwind; - (end) - -Author: - Vdauphin - ----------------------------------------------------------------------------- */ - -[{ - isNull (_this select 1) || - {isNull (_this select 2)} || - { - ropeUnwound (_this select 1) && - ropeUnwound (_this select 2) - } -}, { - params ["_flat", "_rope1", "_rope2", "_initialPitch"]; - - private _actualPitch = (_flat call BIS_fnc_getPitchBank) select 0; - if ( - isNull _rope1 || - {isNull _rope2} || - {0.5 in ([_rope1, _rope2] apply {ropeLength _x})} - ) exitWith {}; - if (_actualPitch - _initialPitch > 3) exitWith { - [{ - params ["_flat", "_rope1", "_rope2", "_initialPitch"]; - - private _actualPitch = (_flat call BIS_fnc_getPitchBank) select 0; - _actualPitch - _initialPitch < 3 - }, { - _this call btc_fnc_tow_unwind; - }, _this, 1, { - params ["_flat", "_rope1", "_rope2"]; - - private _longRope = [_rope2, _rope1] select (ropeLength _rope1 > ropeLength _rope2); - ropeUnwind [_longRope, 1, ropeLength _rope1 min ropeLength _rope2, false]; - ["btc_tow_unwindDone", _this] call CBA_fnc_localEvent; - }] call CBA_fnc_waitUntilAndExecute; - }; - - ropeUnwind [_rope1, 0.2, -0.02, true]; - ropeUnwind [_rope2, 0.2, -0.02, true]; - _this call btc_fnc_tow_unwind; -}, _this] call CBA_fnc_waitUntilAndExecute; From 5493b34a97c842120286afe692ca0d27ca0ae404 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 1 May 2021 22:09:42 +0200 Subject: [PATCH 077/354] Add new name for fnc --- .../core/def/mission.sqf | 14 +- .../core/fnc/arsenal/ammoUsage.sqf | 6 +- .../core/fnc/arsenal/data.sqf | 4 +- .../core/fnc/arsenal/garage.sqf | 8 +- .../core/fnc/arsenal/loadout.sqf | 6 +- .../core/fnc/arsenal/trait.sqf | 18 +- .../core/fnc/arsenal/weaponsfilter.sqf | 6 +- .../core/fnc/cache/create.sqf | 14 +- .../core/fnc/cache/create_attachto.sqf | 4 +- .../core/fnc/cache/find_pos.sqf | 8 +- .../core/fnc/cache/hd.sqf | 18 +- .../core/fnc/cache/init.sqf | 8 +- .../core/fnc/chem/biopsy.sqf | 4 +- .../core/fnc/chem/checkLoop.sqf | 8 +- .../core/fnc/chem/damage.sqf | 4 +- .../core/fnc/chem/damageLoop.sqf | 10 +- .../core/fnc/chem/ehDetector.sqf | 6 +- .../core/fnc/chem/handleShower.sqf | 6 +- .../core/fnc/chem/propagate.sqf | 4 +- .../core/fnc/chem/updateDetector.sqf | 4 +- .../core/fnc/city/activate.sqf | 66 +-- .../core/fnc/city/cleanUp.sqf | 4 +- .../core/fnc/city/create.sqf | 6 +- .../core/fnc/city/de_activate.sqf | 18 +- .../core/fnc/city/findPos.sqf | 4 +- .../core/fnc/city/init.sqf | 8 +- .../core/fnc/city/set_clear.sqf | 4 +- .../core/fnc/city/trigger_free_condition.sqf | 4 +- .../core/fnc/city/trigger_player_side.sqf | 6 +- .../core/fnc/civ/addWP.sqf | 4 +- .../core/fnc/civ/add_grenade.sqf | 6 +- .../core/fnc/civ/add_leaflets.sqf | 8 +- .../core/fnc/civ/add_weapons.sqf | 4 +- .../core/fnc/civ/class.sqf | 4 +- .../core/fnc/civ/createFlower.sqf | 4 +- .../core/fnc/civ/create_patrol.sqf | 8 +- .../core/fnc/civ/evacuate.sqf | 6 +- .../core/fnc/civ/get_grenade.sqf | 8 +- .../core/fnc/civ/get_weapons.sqf | 8 +- .../core/fnc/civ/leaflets.sqf | 8 +- .../core/fnc/civ/populate.sqf | 8 +- .../core/fnc/common/final_phase.sqf | 4 +- .../core/fnc/common/findposoutsiderock.sqf | 4 +- .../core/fnc/common/house_addWP_loop.sqf | 2 +- .../core/fnc/common/intro.sqf | 4 +- .../core/fnc/compile.sqf | 450 +++++++++--------- .../core/fnc/data/add_group.sqf | 16 +- .../core/fnc/data/get_group.sqf | 4 +- .../core/fnc/data/spawn_group.sqf | 18 +- .../core/fnc/db/add_veh.sqf | 8 +- .../core/fnc/db/autoRestart.sqf | 8 +- .../core/fnc/db/delete.sqf | 4 +- .../core/fnc/db/load.sqf | 30 +- .../core/fnc/db/loadObjectStatus.sqf | 8 +- .../core/fnc/db/load_old.sqf | 28 +- .../core/fnc/db/loadcargo.sqf | 12 +- .../core/fnc/db/save.sqf | 20 +- .../core/fnc/db/saveObjectStatus.sqf | 4 +- .../core/fnc/deaf/earringing.sqf | 4 +- .../core/fnc/debug/dlg.hpp | 2 +- .../core/fnc/debug/fps.sqf | 6 +- .../core/fnc/debug/graph.sqf | 8 +- .../core/fnc/debug/marker.sqf | 4 +- .../core/fnc/debug/message.sqf | 4 +- .../core/fnc/debug/units.sqf | 12 +- .../core/fnc/delay/createAgent.sqf | 4 +- .../core/fnc/delay/createUnit.sqf | 6 +- .../core/fnc/delay/createVehicle.sqf | 8 +- .../core/fnc/delay/exec.sqf | 4 +- .../core/fnc/eh/CuratorObjectPlaced.sqf | 10 +- .../core/fnc/eh/headless.sqf | 14 +- .../core/fnc/eh/player.sqf | 32 +- .../core/fnc/eh/server.sqf | 38 +- .../core/fnc/eh/trackItem.sqf | 6 +- .../core/fnc/eh/xeh_InitPost_EH_Vehicle.hpp | 2 +- .../core/fnc/fob/create.sqf | 10 +- .../core/fnc/fob/create_s.sqf | 6 +- .../core/fnc/fob/dismantle_s.sqf | 8 +- .../core/fnc/fob/killed.sqf | 6 +- .../core/fnc/fob/rallypointAssemble.sqf | 6 +- .../core/fnc/fob/rallypointTimer.sqf | 4 +- .../core/fnc/fob/redeploy.sqf | 6 +- .../core/fnc/fob/redeployCheck.sqf | 4 +- .../core/fnc/hideout/create.sqf | 12 +- .../core/fnc/hideout/create_composition.sqf | 4 +- .../core/fnc/hideout/hd.sqf | 12 +- .../core/fnc/ied/allahu_akbar.sqf | 4 +- .../core/fnc/ied/belt.sqf | 4 +- .../core/fnc/ied/boom.sqf | 10 +- .../core/fnc/ied/check.sqf | 14 +- .../core/fnc/ied/checkLoop.sqf | 14 +- .../core/fnc/ied/create.sqf | 6 +- .../core/fnc/ied/deleteLoop.sqf | 6 +- .../core/fnc/ied/droneLoop.sqf | 10 +- .../core/fnc/ied/drone_active.sqf | 8 +- .../core/fnc/ied/drone_create.sqf | 8 +- .../core/fnc/ied/drone_fire.sqf | 4 +- .../core/fnc/ied/effect_blurEffect.sqf | 4 +- .../core/fnc/ied/effect_color_smoke.sqf | 4 +- .../core/fnc/ied/effect_rocks.sqf | 4 +- .../core/fnc/ied/effect_shock_wave.sqf | 4 +- .../core/fnc/ied/effect_smoke.sqf | 6 +- .../core/fnc/ied/effects.sqf | 12 +- .../core/fnc/ied/fired_near.sqf | 12 +- .../core/fnc/ied/initArea.sqf | 8 +- .../core/fnc/ied/randomRoadPos.sqf | 4 +- .../core/fnc/ied/suiciderLoop.sqf | 8 +- .../core/fnc/ied/suicider_active.sqf | 12 +- .../core/fnc/ied/suicider_activeLoop.sqf | 8 +- .../core/fnc/ied/suicider_create.sqf | 10 +- .../core/fnc/info/ask.sqf | 12 +- .../core/fnc/info/ask_reputation.sqf | 6 +- .../core/fnc/info/cache.sqf | 10 +- .../core/fnc/info/cacheMarker.sqf | 4 +- .../core/fnc/info/cachePicture.sqf | 4 +- .../core/fnc/info/give_intel.sqf | 12 +- .../core/fnc/info/has_intel.sqf | 10 +- .../core/fnc/info/hideout.sqf | 4 +- .../core/fnc/info/hideout_asked.sqf | 4 +- .../core/fnc/info/path.sqf | 4 +- .../core/fnc/info/search_for_intel.sqf | 6 +- .../core/fnc/info/troops.sqf | 4 +- .../core/fnc/int/add_actions.sqf | 66 +-- .../core/fnc/int/ask_var.sqf | 6 +- .../core/fnc/int/orders.sqf | 12 +- .../core/fnc/int/orders_behaviour.sqf | 6 +- .../core/fnc/int/orders_give.sqf | 6 +- .../core/fnc/int/shortcuts.sqf | 10 +- .../core/fnc/int/terminal.sqf | 4 +- .../core/fnc/lift/check.sqf | 6 +- .../core/fnc/lift/deployRopes.sqf | 8 +- .../core/fnc/lift/destroyRopes.sqf | 4 +- .../core/fnc/lift/hook.sqf | 12 +- .../core/fnc/lift/hookFake.sqf | 4 +- .../core/fnc/lift/hud.sqf | 6 +- .../core/fnc/lift/hudLoop.sqf | 6 +- .../core/fnc/log/copy.sqf | 6 +- .../core/fnc/log/create.sqf | 6 +- .../core/fnc/log/createVehicle.sqf | 8 +- .../core/fnc/log/create_apply.sqf | 8 +- .../core/fnc/log/create_change_target.sqf | 4 +- .../core/fnc/log/create_load.sqf | 4 +- .../core/fnc/log/create_s.sqf | 6 +- .../core/fnc/log/delete.sqf | 6 +- .../core/fnc/log/dlg.hpp | 4 +- .../core/fnc/log/getRearmMagazines.sqf | 4 +- .../core/fnc/log/get_cc.sqf | 4 +- .../core/fnc/log/get_corner_points.sqf | 4 +- .../core/fnc/log/get_rc.sqf | 4 +- .../core/fnc/log/init.sqf | 12 +- .../core/fnc/log/paste.sqf | 6 +- .../core/fnc/log/place.sqf | 6 +- .../core/fnc/log/place_create_camera.sqf | 4 +- .../core/fnc/log/place_destroy_camera.sqf | 4 +- .../core/fnc/log/place_key_down.sqf | 4 +- .../core/fnc/log/refuelSource.sqf | 4 +- .../core/fnc/log/repair_wreck.sqf | 6 +- .../core/fnc/log/server_delete.sqf | 4 +- .../core/fnc/log/server_repair_wreck.sqf | 6 +- .../core/fnc/log/setCargo.sqf | 4 +- .../core/fnc/mil/addWP.sqf | 6 +- .../core/fnc/mil/ammoUsage.sqf | 8 +- .../core/fnc/mil/check_cap.sqf | 16 +- .../core/fnc/mil/class.sqf | 10 +- .../core/fnc/mil/createUnits.sqf | 6 +- .../core/fnc/mil/createVehicle.sqf | 10 +- .../core/fnc/mil/create_group.sqf | 12 +- .../core/fnc/mil/create_patrol.sqf | 14 +- .../core/fnc/mil/create_static.sqf | 8 +- .../core/fnc/mil/create_staticOnRoof.sqf | 6 +- .../core/fnc/mil/getBuilding.sqf | 6 +- .../core/fnc/mil/getStructures.sqf | 4 +- .../core/fnc/mil/send.sqf | 14 +- .../core/fnc/mil/set_skill.sqf | 4 +- .../core/fnc/mil/unit_killed.sqf | 6 +- .../core/fnc/patrol/WPCheck.sqf | 12 +- .../core/fnc/patrol/addEH.sqf | 6 +- .../core/fnc/patrol/addWP.sqf | 6 +- .../core/fnc/patrol/disabled.sqf | 12 +- .../core/fnc/patrol/eh.sqf | 12 +- .../core/fnc/patrol/init.sqf | 12 +- .../fnc/patrol/playersInAreaCityGroup.sqf | 4 +- .../core/fnc/patrol/usefulCity.sqf | 4 +- .../core/fnc/rep/buildingchanged.sqf | 8 +- .../core/fnc/rep/call_militia.sqf | 16 +- .../core/fnc/rep/change.sqf | 10 +- .../core/fnc/rep/eh_effects.sqf | 12 +- .../core/fnc/rep/explosives_defuse.sqf | 6 +- .../core/fnc/rep/hd.sqf | 12 +- .../core/fnc/rep/hh.sqf | 8 +- .../core/fnc/rep/killed.sqf | 10 +- .../core/fnc/rep/notify.sqf | 4 +- .../core/fnc/rep/suppressed.sqf | 22 +- .../core/fnc/rep/treatment.sqf | 6 +- .../core/fnc/side/EMP.sqf | 16 +- .../core/fnc/side/capture_officer.sqf | 28 +- .../core/fnc/side/checkpoint.sqf | 18 +- .../core/fnc/side/chemicalLeak.sqf | 18 +- .../core/fnc/side/civtreatment.sqf | 12 +- .../core/fnc/side/civtreatment_boat.sqf | 10 +- .../core/fnc/side/convoy.sqf | 20 +- .../core/fnc/side/create.sqf | 10 +- .../core/fnc/side/get_city.sqf | 10 +- .../core/fnc/side/hack.sqf | 26 +- .../core/fnc/side/hostage.sqf | 12 +- .../core/fnc/side/kill.sqf | 28 +- .../core/fnc/side/mines.sqf | 12 +- .../core/fnc/side/removeRubbish.sqf | 14 +- .../core/fnc/side/rescue.sqf | 24 +- .../core/fnc/side/supply.sqf | 16 +- .../core/fnc/side/tower.sqf | 16 +- .../core/fnc/side/underwater_generator.sqf | 14 +- .../core/fnc/side/vehicle.sqf | 10 +- .../core/fnc/spect/checkLoop.sqf | 6 +- .../core/fnc/spect/disableDevice.sqf | 4 +- .../core/fnc/spect/electronicFailure.sqf | 4 +- .../core/fnc/spect/frequencies.sqf | 4 +- .../core/fnc/spect/updateDevice.sqf | 12 +- .../core/fnc/tag/create.sqf | 4 +- .../core/fnc/tag/eh.sqf | 4 +- .../core/fnc/tag/initArea.sqf | 6 +- .../core/fnc/task/abort.sqf | 6 +- .../core/fnc/task/create.sqf | 6 +- .../core/fnc/task/setDescription.sqf | 4 +- .../core/fnc/task/setState.sqf | 4 +- .../core/fnc/tow/ViV.sqf | 4 +- .../core/fnc/tow/check.sqf | 12 +- .../core/fnc/tow/hitch_points.sqf | 6 +- .../core/fnc/tow/ropeBreak.sqf | 2 +- .../core/fnc/tow/ropeCreate.sqf | 14 +- .../core/fnc/tow/unhook.sqf | 4 +- .../core/fnc/veh/addRespawn.sqf | 6 +- .../core/fnc/veh/init.sqf | 12 +- .../core/fnc/veh/killed.sqf | 8 +- .../core/fnc/veh/respawn.sqf | 12 +- .../core/init_headless.sqf | 2 +- .../core/init_player.sqf | 16 +- .../core/init_server.sqf | 28 +- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 2 +- .../mission__Enoch.sqm | 2 +- .../mission__Tanoa.sqm | 2 +- 241 files changed, 1296 insertions(+), 1296 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index b17975baa..9c71605ff 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -88,7 +88,7 @@ private _p_city_free_trigger = "btc_p_city_free_trigger" call BIS_fnc_getParamVa btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { "thisList isEqualTo []" } else { - format ["[thisList, %1] call btc_fnc_city_trigger_free_condition", _p_city_free_trigger] + format ["[thisList, %1] call btc_city_fnc_trigger_free_condition", _p_city_free_trigger] }; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; @@ -367,11 +367,11 @@ if (isServer) then { private _allfaction = ["AFGCIV","CIV_F","DEFAULT","CFP_C_AFG","CFP_C_AFRCHRISTIAN","CFP_C_AFRISLAMIC","CFP_C_ASIA","CFP_C_CHERNO_WIN","CFP_C_MALDEN","CFP_C_ME","CUP_C_RU","CUP_C_CHERNARUS","CUP_C_SAHRANI","CUP_C_TK","GM_FC_GC_CIV","GM_FC_GE_CIV","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","CIV_IDAP_F","OPTRE_UEG_CIV","RDS_RUS_CIV","UK3CB_ADC_C","UK3CB_CHC_C","UK3CB_TKC_C","UNSUNG_C"]; //All factions _p_civ = _allfaction select _p_civ; //Select faction selected from mission parameter _p_civ_veh = _allfaction select _p_civ_veh; //Select faction selected from mission parameter -private _allclasse = [[_p_civ]] call btc_fnc_civ_class; //Create classes from factions, you can combine factions from the SAME side : [[_p_civ, "btc_ac","LOP_TAK_CIV"]] call btc_fnc_civ_class. +private _allclasse = [[_p_civ]] call btc_civ_fnc_class; //Create classes from factions, you can combine factions from the SAME side : [[_p_civ, "btc_ac","LOP_TAK_CIV"]] call btc_civ_fnc_class. //Save class name to global variable btc_civ_type_units = _allclasse select 0; -_allclasse = [[_p_civ_veh]] call btc_fnc_civ_class; +_allclasse = [[_p_civ_veh]] call btc_civ_fnc_class; btc_civ_type_veh = _allclasse select 2; btc_civ_type_boats = _allclasse select 1; @@ -445,7 +445,7 @@ if (isServer) then { }); ([_rearming_static] call btc_fnc_find_veh_with_turret) params ["_rearming_static", "_magazines_static"]; - ([btc_vehicles + btc_helo] call btc_fnc_log_getRearmMagazines) params ["_rearming_vehicles", "_rearming_magazines"]; + ([btc_vehicles + btc_helo] call btc_log_fnc_getRearmMagazines) params ["_rearming_vehicles", "_rearming_magazines"]; btc_construction_array = [ @@ -581,7 +581,7 @@ btc_log_def_rc = [ "Land_Pod_Heli_Transport_04_medevac_black_F", 8 ]; -btc_fnc_log_get_nottowable = { +btc_log_fnc_get_nottowable = { params ["_tower"]; switch (true) do { @@ -597,7 +597,7 @@ btc_fnc_log_get_nottowable = { }; //Lift -btc_fnc_lift_getLiftable = { +btc_lift_fnc_getLiftable = { params ["_chopper"]; private _array = []; @@ -642,7 +642,7 @@ btc_hq = objNull; //copyToClipboard str (["EN"] call btc_fnc_get_class); private _allfaction = ["BLU_G_F","IND_E_F","IND_F","IND_G_F","IND_L_F","OPF_F","OPF_G_F","TBAN","00VTN_MILFOR_USMCW","01VTN_MILFOR_USMCD","05VTN_MILFOR_TIASF","AFR_ARMY","ARA_ARMY","ARL_ARMY","BLU_F","CEC_ARMY","CFP_B_AFGPOLICE","CFP_B_CAF","CFP_B_CZARMY_WDL","CFP_B_ILIDF","CFP_B_IQARMY","CFP_B_IQPOLICE","CFP_B_KEARMY","CFP_B_MLARMY","CFP_B_NAARMY","CFP_B_PESH","CFP_B_UGARMY","CFP_B_USRANGERS_WDL","CFP_B_USSEALS_DES","CFP_B_USSEALS_WDL","CFP_B_YPG","CFP_I_ALNUSRA","CFP_I_IS","CFP_I_SDREBELS","CFP_I_SDREBELSRF","CFP_I_SSARMY","CFP_I_TUAREG","CFP_I_WESTULTRA","CFP_O_ABUSAYYAF","CFP_O_ALQAEDA","CFP_O_ALSHABAAB","CFP_O_ANSARALLAH","CFP_O_BOKOHARAM","CFP_O_CFREBELS","CFP_O_HAMAS","CFP_O_HEZBOLLAH","CFP_O_IQARMY","CFP_O_IRARMY","CFP_O_IS","CFP_O_SDARMY","CFP_O_SDMILITIA","CFP_O_SOREBEL","CFP_O_SSREBELS","CFP_O_SYARMY","CFP_O_TBAN","CUP_B_CDF","CUP_B_CZ","CUP_B_GB","CUP_B_HIL","CUP_B_RNZN","CUP_B_US_ARMY","CUP_B_USMC","CUP_I_NAPA","CUP_I_RACS","CUP_I_UN","CUP_O_CHDKZ","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","CUP_STATIC_SHIPS","CFP_B_CDF_SNW","CFP_B_DEARMY_WDL","CFP_B_GBARMY_WDL","CFP_B_USARMY_1991_DES","CFP_B_USARMY_1991_WDL","CFP_B_USARMY_2003_DES","CFP_B_USARMY_2003_WDL","CFP_B_USCIA","CFP_B_USMC_DES","CFP_I_WAGNER","CFP_I_WAGNER_WDL","CFP_I_WAGNER_WIN","CFP_O_RUARMY_DES","CFP_O_RUMVD","CFP_O_WAGNER","CFP_O_WAGNER_WDL","CFP_O_WAGNER_WIN","CUP_B_GER","CUP_I_PMC_ION","CUP_I_TK_GUE","CFP_B_AFARMY","CFP_B_USARMY_WDL","CFP_O_CHDKZ_SNW","OPF_R_F","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","CFP_O_NKARMY","OPF_GEN_F","FAP_ARMY","FOW_HEER","FOW_IJA_NAS","FOW_UK_FAA","FOW_USA_NAVY","FOW_WAFFENSS","FOW_AUS","FOW_HI","FOW_IJA","FOW_LUFTWAFFE","FOW_UK","FOW_USA","FOW_USA_P","FOW_USMC","GAL_ARMY","GANGBLUE_ARMY","GANGRED_ARMY","GM_FC_DK","GM_FC_GC","GM_FC_GC_BGS","GM_FC_GE","GM_FC_GE_BGS","GM_FC_PL","IBR_ZETABORN_FACTION","ISC_ALNUSRA_I","ISC_IP_B","ISC_IS_I","ISC_IS_O","ISC_PESH_B","ISC_YPG_B","LM_OPCAN_URA","LIB_ACI","LIB_ARR","LIB_DAK","LIB_FFI","LIB_FSJ","LIB_GUER","LIB_MKHL","LIB_NAC","LIB_NKVD","LIB_RAAF","LIB_RBAF","LIB_RKKA","LIB_RKKA_W","LIB_UK_AB","LIB_UK_AB_W","LIB_UK_ARMY","LIB_UK_ARMY_W","LIB_UK_DR","LIB_US_101AB","LIB_US_82AB","LIB_US_ARMY","LIB_US_ARMY_W","LIB_US_RANGERS","LIB_WEHRMACHT","LIB_WEHRMACHT_W","LM_OPCAN_CGC","LM_OPCAN_CMA","LM_OPCAN_CPD","LM_OPCAN_FRI","LM_OPCAN_FRI_DES","LM_OPCAN_FRI_WDL","LM_OPCAN_KOS","LM_OPCAN_SU","LM_OPCAN_UNSC_ARMY","LM_OPCAN_UNSC_ARMY_D","LM_OPCAN_UNSC_ARMY_MIX","LM_OPCAN_UNSC_ARMY_RES","LM_OPCAN_UNSC_MC","LM_OPCAN_UNSC_MC_CEA","LM_OPCAN_UNSC_MC_D","LM_OPCAN_UNSC_MC_INF","LOP_AA","LOP_AFR","LOP_AFR_OPF","LOP_AM","LOP_AM_OPF","LOP_BH","LOP_CDF","LOP_CHDKZ","LOP_GRE","LOP_IA","LOP_IRA","LOP_IRAN","LOP_ISTS","LOP_ISTS_OPF","LOP_NAPA","LOP_NK","LOP_PESH","LOP_PESH_IND","LOP_PMC","LOP_RACS","LOP_SLA","LOP_SYR","LOP_TKA","LOP_TRK","LOP_UA","LOP_UKR","LOP_UN","LOP_US","LOP_UVF","BLU_W_F","MOL_ARMY","O_CAR","OPF_T_F","OPTRE_FC_COVENANT","OPTRE_INS","OPTRE_PD","OPTRE_UNSC","ISC_IA_B","RHS_FACTION_MSV","RHS_FACTION_RVA","RHS_FACTION_TV","RHS_FACTION_VDV","RHS_FACTION_VMF","RHS_FACTION_VPVO","RHS_FACTION_VV","RHS_FACTION_VVS","RHS_FACTION_VVS_C","ISC_SAA_O","RHSGREF_FACTION_CDF_AIR","RHSGREF_FACTION_CDF_AIR_B","RHSGREF_FACTION_CHDKZ","RHSSAF_FACTION_AIRFORCE","RHSSAF_FACTION_AIRFORCE_OPFOR","RHSSAF_FACTION_ARMY","RHSSAF_FACTION_ARMY_OPFOR","RHSSAF_FACTION_UN","RHS_FACTION_SOCOM","RHS_FACTION_USAF","RHS_FACTION_USARMY_D","RHS_FACTION_USMC_D","RHS_FACTION_USN","RHSGREF_FACTION_CDF_GROUND","RHSGREF_FACTION_CDF_GROUND_B","RHSGREF_FACTION_NATIONALIST","RHSGREF_FACTION_TLA","RHSGREF_FACTION_TLA_G","RHSGREF_FACTION_UN","SG_STURM","SG_STURMPANZER","IND_C_F","RHS_FACTION_USARMY_WD","RHS_FACTION_USMC_WD","RHSGREF_FACTION_CDF_NG","RHSGREF_FACTION_CDF_NG_B","RHSGREF_FACTION_CHDKZ_G","RHSGREF_FACTION_HIDF","UK3CB_AAF_B","UK3CB_AAF_I","UK3CB_AAF_O","UK3CB_ADA_B","UK3CB_ADA_I","UK3CB_ADA_O","UK3CB_ADC_B","UK3CB_ADC_I","UK3CB_ADC_O","UK3CB_ADE_I","UK3CB_ADE_O","UK3CB_ADG_B","UK3CB_ADG_I","UK3CB_ADG_O","UK3CB_ADM_B","UK3CB_ADM_I","UK3CB_ADM_O","UK3CB_ADP_B","UK3CB_ADP_I","UK3CB_ADP_O","UK3CB_ADR_B","UK3CB_ADR_I","UK3CB_ADR_O","UK3CB_ANA_B","UK3CB_ANP_B","UK3CB_CCM_B","UK3CB_CCM_I","UK3CB_CCM_O","UK3CB_CHC_B","UK3CB_CHC_I","UK3CB_CHC_O","UK3CB_CHD_B","UK3CB_CHD_I","UK3CB_CHD_O","UK3CB_CPD_B","UK3CB_CPD_I","UK3CB_CPD_O","UK3CB_CW_SOV_O_EARLY","UK3CB_CW_SOV_O_LATE","UK3CB_CW_US_B_EARLY","UK3CB_CW_US_B_LATE","UK3CB_NAP_B","UK3CB_NAP_I","UK3CB_NAP_O","UK3CB_TKA_B","UK3CB_TKA_I","UK3CB_TKA_O","UK3CB_TKC_B","UK3CB_TKC_I","UK3CB_TKC_O","UK3CB_TKM_B","UK3CB_TKM_I","UK3CB_TKM_O","UK3CB_TKP_B","UK3CB_TKP_I","UK3CB_TKP_O","UK3CB_UN_B","UK3CB_UN_I","UNSUNG_AUS","UNSUNG_E","UNSUNG_EV","UNSUNG_G","UNSUNG_NZ","UNSUNG_ROK","UNSUNG_W","00VTN_MILFOR_MIW_EMR","00VTN_MILITIA_RU","01VTN_INSURGENTS_RU","01VTN_MILFOR_MIW","02VTN_MILFOR_RC","03VTN_INSURGENTS_ISIL","03VTN_MILFOR_SPPU","07VTN_MILFOR_TNG"]; //All factions _p_en = _allfaction select _p_en; //Select faction selected from mission parameter -_allclasse = [[_p_en], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from factions, you can combine factions like that: [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; +_allclasse = [[_p_en], _p_en_AA, _p_en_tank] call btc_mil_fnc_class; //Create classes from factions, you can combine factions like that: [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_mil_fnc_class; //Save class name to global variable btc_enemy_side = _allclasse select 0; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/ammoUsage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/ammoUsage.sqf index a1e6db9d5..bb35f2ece 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/ammoUsage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/ammoUsage.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_arsenal_ammoUsage +Function: btc_arsenal_fnc_ammoUsage Description: Select weapons if: @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - _weapons_selected = [["launch_RPG7_F"], ["MissileLauncher", "256", []]] call btc_fnc_arsenal_ammoUsage; + _weapons_selected = [["launch_RPG7_F"], ["MissileLauncher", "256", []]] call btc_arsenal_fnc_ammoUsage; (end) Author: @@ -55,7 +55,7 @@ _weapons select { if (btc_debug_log) then { if ("" in _aiAmmoUsage_magazines) then { - [format ["Weapons: %1 AiAmmoUsage Magazines: %2", _weapon, _aiAmmoUsage_magazines], __FILE__, [false]] call btc_fnc_debug_message; + [format ["Weapons: %1 AiAmmoUsage Magazines: %2", _weapon, _aiAmmoUsage_magazines], __FILE__, [false]] call btc_debug_fnc_message; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/data.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/data.sqf index 1a58fffb4..cc56381ad 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/data.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/data.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_arsenal_data +Function: btc_arsenal_fnc_data Description: Add virtual weapons to an object (e.g., ammo box) with restriction. Virtual items can be selected in the BIS/ACE3 Arsenal. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [btc_gear_object, btc_p_arsenal_Type, btc_p_arsenal_Restrict, btc_custom_arsenal] call btc_fnc_arsenal_data; + [btc_gear_object, btc_p_arsenal_Type, btc_p_arsenal_Restrict, btc_custom_arsenal] call btc_arsenal_fnc_data; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/garage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/garage.sqf index 9939f84bd..e7163777e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/garage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/garage.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_arsenal_garage +Function: btc_arsenal_fnc_garage Description: Open virtual Arsenal garage on object position. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [btc_create_object_point] call btc_fnc_arsenal_garage; + [btc_create_object_point] call btc_arsenal_fnc_garage; (end) Author: @@ -55,7 +55,7 @@ with uiNamespace do { private _customization = [_x] call BIS_fnc_getVehicleCustomization; _x call CBA_fnc_deleteEntity; - [_type, _pos, _dir, _customization] remoteExecCall ["btc_fnc_log_createVehicle", 2]; - [_type] remoteExecCall ["btc_fnc_veh_init", -2]; + [_type, _pos, _dir, _customization] remoteExecCall ["btc_log_fnc_createVehicle", 2]; + [_type] remoteExecCall ["btc_veh_fnc_init", -2]; } forEach _veh_list; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf index aab2effb8..e50e68b9d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_arsenal_loadout +Function: btc_arsenal_fnc_loadout Description: Generate a loadout from an array of defined loadout depending on trait, medical level, color and hour of the day. @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - _rifleman_loadout = [0] call btc_fnc_arsenal_loadout; + _rifleman_loadout = [0] call btc_arsenal_fnc_loadout; (end) (begin example) [] spawn { @@ -26,7 +26,7 @@ Examples: { private _j = _x; { - player setUnitLoadout ([_i, _j, _x] call btc_fnc_arsenal_loadout); + player setUnitLoadout ([_i, _j, _x] call btc_arsenal_fnc_loadout); sleep 1; } forEach [false,true]; } forEach [0,1,2,3]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/trait.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/trait.sqf index 5e559cb52..a5b17a079 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/trait.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/trait.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_arsenal_trait +Function: btc_arsenal_fnc_trait Description: Get trait from an object (e.g. Player) and return the corresponding trait and weapons allowed filter (https://community.bistudio.com/wiki/CfgAmmo_Config_Reference#aiAmmoUsageFlags). @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _type_ammoUsageAllowed = [player] call btc_fnc_arsenal_trait; + _type_ammoUsageAllowed = [player] call btc_arsenal_fnc_trait; (end) Author: @@ -36,16 +36,16 @@ switch (true) do { case (_player getUnitTrait "explosiveSpecialist"): { _type_ammoUsageAllowed = [3, [["AssaultRifle", "", [false, "Rifle_Long_Base_F"]]]]; }; - case ([typeOf _player, ["MissileLauncher", "128 + 512"]] call btc_fnc_mil_ammoUsage): { + case ([typeOf _player, ["MissileLauncher", "128 + 512"]] call btc_mil_fnc_ammoUsage): { _type_ammoUsageAllowed = [4, [["AssaultRifle", "", [false, "Rifle_Long_Base_F"]], ["RocketLauncher", ""], ["MissileLauncher", "128 + 512"]]]; }; - case ([typeOf _player, ["MissileLauncher", "256"]] call btc_fnc_mil_ammoUsage): { + case ([typeOf _player, ["MissileLauncher", "256"]] call btc_mil_fnc_ammoUsage): { _type_ammoUsageAllowed = [5, [["AssaultRifle", "", [false, "Rifle_Long_Base_F"]], ["MissileLauncher", "256"]]]; }; - case ([typeOf _player, ["SniperRifle", ""]] call btc_fnc_mil_ammoUsage): { + case ([typeOf _player, ["SniperRifle", ""]] call btc_mil_fnc_ammoUsage): { _type_ammoUsageAllowed = [6, [["AssaultRifle", "64 + 128 + 256", [true, "Rifle_Long_Base_F"]], ["SniperRifle", ""]]]; }; - case ([typeOf _player, ["MachineGun", ""]] call btc_fnc_mil_ammoUsage): { + case ([typeOf _player, ["MachineGun", ""]] call btc_mil_fnc_ammoUsage): { _type_ammoUsageAllowed = [7, [["MachineGun", ""]]]; }; case ("cbrn" in toLower uniform _player): { @@ -65,10 +65,10 @@ if (btc_debug || btc_debug_log) then { _player getUnitTrait "medic", _player getVariable ["ace_isEngineer", 0], _player getUnitTrait "explosiveSpecialist", - [typeOf _player, ["MissileLauncher", "128 + 512"]] call btc_fnc_mil_ammoUsage, - [typeOf _player, ["MissileLauncher", "256"]] call btc_fnc_mil_ammoUsage + [typeOf _player, ["MissileLauncher", "128 + 512"]] call btc_mil_fnc_ammoUsage, + [typeOf _player, ["MissileLauncher", "256"]] call btc_mil_fnc_ammoUsage ], __FILE__, [btc_debug, btc_debug_log] - ] call btc_fnc_debug_message; + ] call btc_debug_fnc_message; }; _type_ammoUsageAllowed diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/weaponsfilter.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/weaponsfilter.sqf index d93805024..a08fbbc4c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/weaponsfilter.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/weaponsfilter.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_arsenal_weaponsFilter +Function: btc_arsenal_fnc_weaponsFilter Description: Filter weapons allowed with the weapons allowed filter: array of item type ("AssaultRifle", "MissileLauncher"...), allowed ammo usage ("128 + 512": ammo against vehicles and armored vehicles) and array to check if weapons are parent to a parent. @@ -16,7 +16,7 @@ Returns: Examples: (begin example) - _allowedWeapons = [["AssaultRifle", ""], ["RocketLauncher", ""]] call btc_fnc_arsenal_weaponsFilter; + _allowedWeapons = [["AssaultRifle", ""], ["RocketLauncher", ""]] call btc_arsenal_fnc_weaponsFilter; (end) Author: @@ -38,7 +38,7 @@ private _weapons = ("true" configClasses (configFile >> "CfgWeapons") select { private _allowedWeapons = []; { - _allowedWeapons append ([_weapons, _x] call btc_fnc_arsenal_ammoUsage); + _allowedWeapons append ([_weapons, _x] call btc_arsenal_fnc_ammoUsage); } forEach _itemType_ammo_usageAllowed; private _cfgVehicles = configFile >> "CfgVehicles"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf index 82c6bacdf..6c9269e73 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_cache_create +Function: btc_cache_fnc_create Description: Create a cache at btc_cache_pos position. @@ -16,7 +16,7 @@ Examples: (begin example) [] spawn { for [{_i=1},{_i<=360},{_i=_i+10}] do { - [player getpos [10, _i], true, 0.7] call btc_fnc_cache_create; + [player getpos [10, _i], true, 0.7] call btc_cache_fnc_create; }; }; (end) @@ -46,13 +46,13 @@ clearItemCargoGlobal btc_cache_obj; clearMagazineCargoGlobal btc_cache_obj; clearBackpackCargoGlobal btc_cache_obj; -[btc_cache_obj, "HandleDamage", btc_fnc_cache_hd] remoteExecCall ["CBA_fnc_addBISEventHandler", 0, true]; +[btc_cache_obj, "HandleDamage", btc_cache_fnc_hd] remoteExecCall ["CBA_fnc_addBISEventHandler", 0, true]; if (_isChem) then { btc_chem_contaminated pushBack btc_cache_obj; publicVariable "btc_chem_contaminated"; private _holder = createSimpleObject [selectRandom (btc_cache_type select 1), _cache_pos]; - [btc_cache_obj, _holder, "TOP", -0.47] call btc_fnc_cache_create_attachto; + [btc_cache_obj, _holder, "TOP", -0.47] call btc_cache_fnc_create_attachto; } else { private _pos_type_array = ["TOP", "FRONT", "CORNER_L", "CORNER_R"]; @@ -63,16 +63,16 @@ if (_isChem) then { private _pos_type = selectRandom _pos_type_array; _pos_type_array = _pos_type_array - [_pos_type]; - [btc_cache_obj, _holder, _pos_type] call btc_fnc_cache_create_attachto; + [btc_cache_obj, _holder, _pos_type] call btc_cache_fnc_create_attachto; }; }; if (btc_debug_log) then { - [format ["ID %1 POS %2", btc_cache_n, _cache_pos], __FILE__, [false]] call btc_fnc_debug_message; + [format ["ID %1 POS %2", btc_cache_n, _cache_pos], __FILE__, [false]] call btc_debug_fnc_message; }; if (btc_debug) then { - [format ["in %1", _cache_pos], __FILE__, [btc_debug, false]] call btc_fnc_debug_message; + [format ["in %1", _cache_pos], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; //Marker private _marker = createMarker [format ["%1", _cache_pos], _cache_pos]; _marker setMarkerType "mil_unknown"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create_attachto.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create_attachto.sqf index cbbd73c7a..3947daf00 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create_attachto.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create_attachto.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_cache_create_attachto +Function: btc_cache_fnc_create_attachto Description: Attach holder to an object at the desired position. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [btc_cache_obj, "groundWeaponHolder" createVehicle btc_cache_obj, "TOP"] call btc_fnc_cache_create_attachto; + [btc_cache_obj, "groundWeaponHolder" createVehicle btc_cache_obj, "TOP"] call btc_cache_fnc_create_attachto; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf index 9883f33c3..c398fef65 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_cache_find_pos +Function: btc_cache_fnc_find_pos Description: Find a house in a city and spawn in it an ammo cache. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_cache_find_pos; + [] call btc_cache_fnc_find_pos; (end) Author: @@ -33,7 +33,7 @@ private _id = floor random count _useful; private _city = _useful select _id; if (_city getVariable ["type", ""] in ["NameLocal", "Hill", "NameMarine"]) exitWith { - [] call btc_fnc_cache_find_pos; + [] call btc_cache_fnc_find_pos; }; private _radius = _city getVariable ["radius", 200]; @@ -41,7 +41,7 @@ private _pos = [getPos _city, _radius] call btc_fnc_randomize_pos; private _houses = [_pos, 50] call btc_fnc_getHouses; if (_houses isEqualTo []) then { - [] call btc_fnc_cache_find_pos + [] call btc_cache_fnc_find_pos } else { ASLToATL AGLToASL selectRandom (selectRandom _houses buildingPos -1) } diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd.sqf index 5bd209c8f..f46837e75 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_cache_hd +Function: btc_cache_fnc_hd Description: Destroy an ammo cache only when an explposive with damage > 0.6 is used. @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_cache_hd; + _result = [] call btc_cache_fnc_hd; (end) Author: @@ -39,14 +39,14 @@ params [ private _explosive = (getNumber(configFile >> "cfgAmmo" >> _ammo >> "explosive") > 0); if ( - !(_cache getVariable ["btc_fnc_cache_hd_fired", false]) && + !(_cache getVariable ["btc_cache_fnc_hd_fired", false]) && {_explosive} && {_damage > 0.6} ) then { - _cache setVariable ["btc_fnc_cache_hd_fired", true]; + _cache setVariable ["btc_cache_fnc_hd_fired", true]; if (!isServer) exitWith { - _this remoteExecCall ["btc_fnc_cache_hd", 2]; + _this remoteExecCall ["btc_cache_fnc_hd", 2]; }; //Effects @@ -58,7 +58,7 @@ if ( "M_PG_AT" createVehicle _this; }, _this, random [0.5, 2, 3]] call CBA_fnc_waitAndExecute; }, _pos, random [0.5, 2, 3]] call CBA_fnc_waitAndExecute; - [_pos] call btc_fnc_deaf_earringing; + [_pos] call btc_deaf_fnc_earringing; [attachedObjects _cache, btc_cache_obj, btc_cache_markers] call CBA_fnc_deleteEntity; private _marker = createMarker [format ["btc_cache_%1", btc_cache_n], btc_cache_pos]; @@ -68,15 +68,15 @@ if ( _marker setMarkerColor "ColorRed"; if (btc_debug_log) then { - [format ["DESTROYED: ID %1 POS %2", btc_cache_n, btc_cache_pos], __FILE__, [false]] call btc_fnc_debug_message; + [format ["DESTROYED: ID %1 POS %2", btc_cache_n, btc_cache_pos], __FILE__, [false]] call btc_debug_fnc_message; }; - [btc_rep_bonus_cache, _instigator] call btc_fnc_rep_change; + [btc_rep_bonus_cache, _instigator] call btc_rep_fnc_change; //Notification [0] remoteExecCall ["btc_fnc_show_hint", 0]; - [btc_cache_n + 1, btc_cache_pictures] call btc_fnc_cache_init; + [btc_cache_n + 1, btc_cache_pictures] call btc_cache_fnc_init; } else { 0 }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/init.sqf index 7f7f7263c..b5febbd7b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/init.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_cache_init +Function: btc_cache_fnc_init Description: Initialise the ammo cache system with all necessary variable and start the search of a suitable position for it. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [0, btc_cache_pictures] call btc_fnc_cache_init; + [0, btc_cache_pictures] call btc_cache_fnc_init; (end) Author: @@ -34,5 +34,5 @@ btc_cache_markers = []; } forEach (_cache_pictures select 2); btc_cache_pictures = [[], [], []]; btc_cache_info = btc_info_cache_def; -btc_cache_pos = [] call btc_fnc_cache_find_pos; -[btc_cache_pos] call btc_fnc_cache_create; +btc_cache_pos = [] call btc_cache_fnc_find_pos; +[btc_cache_pos] call btc_cache_fnc_create; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/biopsy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/biopsy.sqf index bc463358e..ab897ed27 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/biopsy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/biopsy.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_chem_biopsy +Function: btc_chem_fnc_biopsy Description: Do a biopsy to determine if the object is contaminated. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [[player, "head", 50], true] call btc_fnc_chem_biopsy; + [[player, "head", 50], true] call btc_chem_fnc_biopsy; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf index d2fa132a7..b6c94de62 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_chem_checkLoop +Function: btc_chem_fnc_checkLoop Description: Loop over chemical objects, showers and check if player/objects is around. If yes, decontaminate player/objects or set damage to player. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_chem_checkLoop; + [] call btc_chem_fnc_checkLoop; (end) Author: @@ -83,11 +83,11 @@ private _bodyParts = ["head","body","hand_l","hand_r","leg_l","leg_r"]; }; if (local _x) then { [{ - _this call btc_fnc_chem_damage; + _this call btc_chem_fnc_damage; }, [_x, _notAlready, _bodyParts, _cfgGlasses], _forEachIndex * _periode] call CBA_fnc_waitAndExecute; } else { if (_notAlready) then { - [_x] remoteExecCall ["btc_fnc_chem_damageLoop", _x]; + [_x] remoteExecCall ["btc_chem_fnc_damageLoop", _x]; }; }; } forEach _unitContaminate; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf index 803eaded9..be5d8fd45 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_chem_damage +Function: btc_chem_fnc_damage Description: Apply chemical damage. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [cursorObject, true, ["head","body","hand_l","hand_r","leg_l","leg_r"], configFile >> "CfgGlasses"] call btc_fnc_chem_damage; + [cursorObject, true, ["head","body","hand_l","hand_r","leg_l","leg_r"], configFile >> "CfgGlasses"] call btc_chem_fnc_damage; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damageLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damageLoop.sqf index ed7bf6177..18a8cac91 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damageLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damageLoop.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_chem_damageLoop +Function: btc_chem_fnc_damageLoop Description: Apply chemical damage constantly. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_chem_damageLoop; + [] call btc_chem_fnc_damageLoop; (end) Author: @@ -34,7 +34,7 @@ private _handle = [{ if !(alive _unit) exitWith { ["btc_chem_decontaminated", [_unit]] call CBA_fnc_localEvent; }; - _this set [0, _args call btc_fnc_chem_damage]; + _this set [0, _args call btc_chem_fnc_damage]; }, 3, [_unit, _notAlready, _bodyParts, configFile >> "CfgGlasses"]] call CBA_fnc_addPerFrameHandler; ["btc_chem_decontaminated", { @@ -46,11 +46,11 @@ private _handle = [{ [_handle] call CBA_fnc_removePerFrameHandler; if (btc_debug || btc_debug_log) then { - [format ["Stop: %1", _handle], __FILE__, [btc_debug, btc_debug_log]] call btc_fnc_debug_message; + [format ["Stop: %1", _handle], __FILE__, [btc_debug, btc_debug_log]] call btc_debug_fnc_message; }; }; }, [_handle, _unit]] call CBA_fnc_addEventHandlerArgs; if (btc_debug || btc_debug_log) then { - [format ["Start: %1", _handle], __FILE__, [btc_debug, btc_debug_log]] call btc_fnc_debug_message; + [format ["Start: %1", _handle], __FILE__, [btc_debug, btc_debug_log]] call btc_debug_fnc_message; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/ehDetector.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/ehDetector.sqf index 9176a8c5e..4cdd0b14f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/ehDetector.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/ehDetector.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_chem_ehDetector +Function: btc_chem_fnc_ehDetector Description: Trigger the screen update of the chemical detector when it is opened. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_chem_ehDetector; + [] call btc_chem_fnc_ehDetector; (end) Author: @@ -34,7 +34,7 @@ Author: private _obj = _ui displayCtrl 101; [{visibleWatch}, { - _this call btc_fnc_chem_updateDetector; + _this call btc_chem_fnc_updateDetector; }, [_obj]] call CBA_fnc_waitUntilAndExecute; }; }]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/handleShower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/handleShower.sqf index 51cf1983f..ea462006c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/handleShower.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/handleShower.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_chem_handleShower +Function: btc_chem_fnc_handleShower Description: Loop over shower and activate or desactivate them if objects are around. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_chem_handleShower; + [] call btc_chem_fnc_handleShower; (end) Author: @@ -46,7 +46,7 @@ params [ if (_x isKindOf "DeconShower_01_F") then { [_x, 1.5, 9] remoteExec ["BIN_fnc_deconShowerAnim", 0, _x]; } else { - [_x, 5.4, 4, 2, true] remoteExec ["btc_fnc_chem_deconShowerAnimLarge", 0, _x]; + [_x, 5.4, 4, 2, true] remoteExec ["btc_chem_fnc_deconShowerAnimLarge", 0, _x]; }; } forEach _needActivate; { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/propagate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/propagate.sqf index 8d16ae648..79b6f0eea 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/propagate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/propagate.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_chem_propagate +Function: btc_chem_fnc_propagate Description: Propagate from the item or vehicle contaminated to the item or vehicle not contaminated. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject, vehicle player] call btc_fnc_chem_propagate; + [cursorObject, vehicle player] call btc_chem_fnc_propagate; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/updateDetector.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/updateDetector.sqf index 5916e7d6f..ae204ddf3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/updateDetector.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/updateDetector.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_chem_updateDetector +Function: btc_chem_fnc_updateDetector Description: Refresh chemical level on the chemical detector screen when it is open. @@ -14,7 +14,7 @@ Examples: (begin example) private _ui = uiNamespace getVariable "RscWeaponChemicalDetector"; private _obj = _ui displayCtrl 101; - [_obj] call btc_fnc_chem_updateDetector; + [_obj] call btc_chem_fnc_updateDetector; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 9d999644a..89db19418 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_activate +Function: btc_city_fnc_activate Description: Activate the city with the current id passed. This generate IED, random group, populate city with civilian and suicider. It also spawn military patrol and civilian. @@ -19,7 +19,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_city_activate; + _result = [] call btc_city_fnc_activate; (end) Author: @@ -43,7 +43,7 @@ private _city = btc_city_all select _id; if (_city getVariable "activating") exitWith {}; if (btc_debug) then { - [str _id, __FILE__, [btc_debug, btc_debug_log, true]] call btc_fnc_debug_message; + [str _id, __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; _city setVariable ["serverTime", serverTime]; }; @@ -85,22 +85,22 @@ if (!(_city getVariable ["initialized", false])) then { }; if (btc_debug_log) then { - [format ["_ratio_ied %1 - p %2", _ratio_ied, _ratio_ied * btc_p_ied], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_ratio_ied %1 - p %2", _ratio_ied, _ratio_ied * btc_p_ied], __FILE__, [false]] call btc_debug_fnc_message; }; _ratio_ied = _ratio_ied * btc_p_ied; if (_ratio_ied > 0) then { - [[_city, _spawningRadius, (_ratio_ied / 2) + (random _ratio_ied)], btc_fnc_ied_initArea] call btc_fnc_delay_exec; + [[_city, _spawningRadius, (_ratio_ied / 2) + (random _ratio_ied)], btc_ied_fnc_initArea] call btc_delay_fnc_exec; }; _city setVariable ["initialized", true]; }; -[_city, btc_fnc_ied_check] call btc_fnc_delay_exec; +[_city, btc_ied_fnc_check] call btc_delay_fnc_exec; private _delay = 0; if (_data_units isNotEqualTo []) then { { - _delay = _delay + ([_x, _city] call btc_fnc_data_spawn_group); + _delay = _delay + ([_x, _city] call btc_data_fnc_spawn_group); } forEach _data_units; } else { // Maximum number of enemy group @@ -120,7 +120,7 @@ if (_data_units isNotEqualTo []) then { if (_has_en) then { for "_i" from 1 to (round (_p_mil_group_ratio * (1 + random _max_number_group))) do { - [_city, _spawningRadius, 1 + round random [0, 1, 2], random 1] call btc_fnc_mil_create_group; + [_city, _spawningRadius, 1 + round random [0, 1, 2], random 1] call btc_mil_fnc_create_group; }; }; @@ -139,7 +139,7 @@ if (_data_units isNotEqualTo []) then { case "Airport" : {2}; default {0}; }); - [+_houses, round (_p_mil_static_group_ratio * random _max_number_group), _city] call btc_fnc_mil_create_staticOnRoof; + [+_houses, round (_p_mil_static_group_ratio * random _max_number_group), _city] call btc_mil_fnc_create_staticOnRoof; }; // Spawn civilians @@ -154,13 +154,13 @@ if (_data_units isNotEqualTo []) then { case "Airport" : {6}; default {2}; }); - [+_houses, round (_p_civ_group_ratio * _max_number_group), _city] call btc_fnc_civ_populate; + [+_houses, round (_p_civ_group_ratio * _max_number_group), _city] call btc_civ_fnc_populate; }; }; if (btc_p_animals_group_ratio > 0) then { if (_data_animals isNotEqualTo []) then { { - (_x + [nil, _city]) call btc_fnc_delay_createAgent; + (_x + [nil, _city]) call btc_delay_fnc_createAgent; } forEach _data_animals; } else { // Spawn animals @@ -178,7 +178,7 @@ if (btc_p_animals_group_ratio > 0) then { for "_i" from 1 to (round (random _max_number_animalsGroup)) do { private _pos = [_city, _spawningRadius/3] call CBA_fnc_randPos; for "_i" from 1 to (round (random 3)) do { - [selectRandom btc_animals_type, [_pos, 6] call CBA_fnc_randPos, nil, _city] call btc_fnc_delay_createAgent; + [selectRandom btc_animals_type, [_pos, 6] call CBA_fnc_randPos, nil, _city] call btc_delay_fnc_createAgent; }; }; }; @@ -187,12 +187,12 @@ if (btc_p_animals_group_ratio > 0) then { if (_city getVariable ["spawn_more", false]) then { _city setVariable ["spawn_more", false]; for "_i" from 1 to (round (_p_mil_group_ratio * (2 + random 3))) do { - [_city, _spawningRadius, 4 + round random 3, random 1] call btc_fnc_mil_create_group; + [_city, _spawningRadius, 4 + round random 3, random 1] call btc_mil_fnc_create_group; }; if (btc_p_veh_armed_spawn_more) then { private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; for "_i" from 1 to (1 + round random 2) do { - [[_closest, [_city, _spawningRadius/3] call CBA_fnc_randPos, 1, selectRandom btc_type_motorized_armed], btc_fnc_mil_send] call btc_fnc_delay_exec; + [[_closest, [_city, _spawningRadius/3] call CBA_fnc_randPos, 1, selectRandom btc_type_motorized_armed], btc_mil_fnc_send] call btc_delay_fnc_exec; }; }; }; @@ -204,12 +204,12 @@ if ( if (_city inArea [btc_cache_pos, _radius, _radius, 0, false]) then { btc_cache_obj setVariable ["btc_cache_unitsSpawned", true]; - [btc_cache_pos, 8, 3, _wp_house] call btc_fnc_mil_create_group; - [btc_cache_pos, 60, 4, _wp_sentry] call btc_fnc_mil_create_group; + [btc_cache_pos, 8, 3, _wp_house] call btc_mil_fnc_create_group; + [btc_cache_pos, 60, 4, _wp_sentry] call btc_mil_fnc_create_group; if (btc_p_veh_armed_spawn_more) then { private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; for "_i" from 1 to (1 + round random 3) do { - [[_closest, [_city, _spawningRadius/3] call CBA_fnc_randPos, 1, selectRandom btc_type_motorized_armed], btc_fnc_mil_send] call btc_fnc_delay_exec; + [[_closest, [_city, _spawningRadius/3] call CBA_fnc_randPos, 1, selectRandom btc_type_motorized_armed], btc_mil_fnc_send] call btc_delay_fnc_exec; }; }; }; @@ -218,26 +218,26 @@ if ( if (_has_ho && {!(_city getVariable ["ho_units_spawned", false])}) then { _city setVariable ["ho_units_spawned", true]; private _pos = _city getVariable ["ho_pos", getPos _city]; - [_pos, 20, 10 + round (_p_mil_group_ratio * random 6), 1.1] call btc_fnc_mil_create_group; - [_pos, 120, 1 + round random 2, _wp_sentry] call btc_fnc_mil_create_group; - [_pos, 120, 1 + round random 2, _wp_sentry] call btc_fnc_mil_create_group; + [_pos, 20, 10 + round (_p_mil_group_ratio * random 6), 1.1] call btc_mil_fnc_create_group; + [_pos, 120, 1 + round random 2, _wp_sentry] call btc_mil_fnc_create_group; + [_pos, 120, 1 + round random 2, _wp_sentry] call btc_mil_fnc_create_group; private _random = random 1; switch (true) do { case (_random <= 0.3) : {}; case (_random > 0.3 && _random <= 0.75) : { private _statics = btc_type_gl + btc_type_mg; - [[(_pos select 0) + 7, (_pos select 1) + 7, 0], _statics, 45, [], _city] call btc_fnc_mil_create_static; + [[(_pos select 0) + 7, (_pos select 1) + 7, 0], _statics, 45, [], _city] call btc_mil_fnc_create_static; }; case (_random > 0.75) : { private _statics = btc_type_gl + btc_type_mg; - [[(_pos select 0) + 7, (_pos select 1) + 7, 0], _statics, 45, [], _city] call btc_fnc_mil_create_static; - [[(_pos select 0) - 7, (_pos select 1) - 7, 0], _statics, 225, [], _city] call btc_fnc_mil_create_static; + [[(_pos select 0) + 7, (_pos select 1) + 7, 0], _statics, 45, [], _city] call btc_mil_fnc_create_static; + [[(_pos select 0) - 7, (_pos select 1) - 7, 0], _statics, 225, [], _city] call btc_mil_fnc_create_static; }; }; if (btc_p_veh_armed_ho) then { private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; for "_i" from 1 to (2 + round random 3) do { - [[_closest, [_pos, _spawningRadius/3] call CBA_fnc_randPos, 1, selectRandom btc_type_motorized_armed], btc_fnc_mil_send] call btc_fnc_delay_exec; + [[_closest, [_pos, _spawningRadius/3] call CBA_fnc_randPos, 1, selectRandom btc_type_motorized_armed], btc_mil_fnc_send] call btc_delay_fnc_exec; }; }; }; @@ -248,9 +248,9 @@ if !(_city getVariable ["has_suicider", false]) then { btc_ied_suic_spawned = time; _city setVariable ["has_suicider", true]; if (selectRandom [false, false, btc_p_ied_drone]) then { - [[_city, _spawningRadius], btc_fnc_ied_drone_create] call btc_fnc_delay_exec; + [[_city, _spawningRadius], btc_ied_fnc_drone_create] call btc_delay_fnc_exec; } else { - [[_city, _spawningRadius], btc_fnc_ied_suicider_create] call btc_fnc_delay_exec; + [[_city, _spawningRadius], btc_ied_fnc_suicider_create] call btc_delay_fnc_exec; }; }; }; @@ -277,14 +277,14 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { }; if (_tag_number > 0) then { - [[_city, _spawningRadius, _tag_number], btc_fnc_tag_initArea] call btc_fnc_delay_exec; + [[_city, _spawningRadius, _tag_number], btc_tag_fnc_initArea] call btc_delay_fnc_exec; }; }; -[_city, btc_fnc_tag_create] call btc_fnc_delay_exec; +[_city, btc_tag_fnc_create] call btc_delay_fnc_exec; private _civKilled = _city getVariable ["btc_rep_civKilled", []]; if !(_civKilled isEqualTo []) then { - [[_city, _civKilled], btc_fnc_civ_createFlower] call btc_fnc_delay_exec; + [[_city, _civKilled], btc_civ_fnc_createFlower] call btc_delay_fnc_exec; }; [{ @@ -294,7 +294,7 @@ if !(_civKilled isEqualTo []) then { private _trigger = createTrigger ["EmptyDetector", getPos _city, false]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; - _trigger setTriggerStatements [btc_p_city_free_trigger_condition, format ["[%1, thisList] call btc_fnc_city_set_clear", _id], ""]; + _trigger setTriggerStatements [btc_p_city_free_trigger_condition, format ["[%1, thisList] call btc_city_fnc_set_clear", _id], ""]; _trigger setTriggerInterval 2; _city setVariable ["trigger", _trigger]; }; @@ -317,7 +317,7 @@ if (_numberOfPatrol < _p_patrol_max) then { private _group = createGroup btc_enemy_side; btc_patrol_active pushBack _group; _group setVariable ["no_cache", true]; - [[_group, 1 + round random 1, _city, _radius + btc_patrol_area], btc_fnc_mil_create_patrol] call btc_fnc_delay_exec; + [[_group, 1 + round random 1, _city, _radius + btc_patrol_area], btc_mil_fnc_create_patrol] call btc_delay_fnc_exec; }; }; //Traffic @@ -329,10 +329,10 @@ if (_numberOfCivVeh < _p_civ_max_veh) then { private _group = createGroup civilian; btc_civ_veh_active pushBack _group; _group setVariable ["no_cache", true]; - [[_group, _city, _radius + btc_patrol_area], btc_fnc_civ_create_patrol] call btc_fnc_delay_exec; + [[_group, _city, _radius + btc_patrol_area], btc_civ_fnc_create_patrol] call btc_delay_fnc_exec; }; }; if (btc_debug) then { - [format ["%1 - %2ms", _id, (serverTime - (_city getVariable ["serverTime", serverTime])) * 1000] , __FILE__, [btc_debug, false, true]] call btc_fnc_debug_message; + [format ["%1 - %2ms", _id, (serverTime - (_city getVariable ["serverTime", serverTime])) * 1000] , __FILE__, [btc_debug, false, true]] call btc_debug_fnc_message; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/cleanUp.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/cleanUp.sqf index b67cfbf85..04b919507 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/cleanUp.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/cleanUp.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_cleanUp +Function: btc_city_fnc_cleanUp Description: Delete all ground weapon holder (in range of 500 m), dead bodies (in range of 500 m) and empty group. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_city_cleanUp; + [] call btc_city_fnc_cleanUp; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf index 85b30e966..3c28c8632 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_create +Function: btc_city_fnc_create Description: Create a city at the desired position with all necessary variable and the trigger to detect player presence. @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - _city = [[0, 0, 0], "NameCityCapital", "BTC Capital", 500, true] call btc_fnc_city_create; + _city = [[0, 0, 0], "NameCityCapital", "BTC Capital", 500, true] call btc_city_fnc_create; (end) Author: @@ -58,6 +58,6 @@ if (btc_p_sea) then { }, {}, [_position, [0, _radius]], 5 * 60] call CBA_fnc_waitUntilAndExecute; btc_city_all set [_id, _city]; -[_position, _radius, _city, _has_en, _name, _type, _id] call btc_fnc_city_trigger_player_side; +[_position, _radius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; _city diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf index 0a630f305..4265a8cb0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_de_activate +Function: btc_city_fnc_de_activate Description: Desactivate the city with the corresponding ID by storing all groups present inside and clean up dead bodies. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_city_de_activate; + _result = [] call btc_city_fnc_de_activate; (end) Author: @@ -38,7 +38,7 @@ if !(_city getVariable ["active", false]) exitWith {}; if !(_city getVariable ["active", false]) exitWith {}; if (btc_debug) then { - [str _id, __FILE__, [btc_debug, btc_debug_log, true]] call btc_fnc_debug_message; + [str _id, __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; }; //Save all and delete @@ -61,7 +61,7 @@ if !(_city getVariable ["active", false]) exitWith {}; {!(_x getVariable ["no_cache", false])} && {_x getVariable ["btc_city", _city] in [_city, objNull]} ) then { - private _data_group = _x call btc_fnc_data_get_group; + private _data_group = _x call btc_data_fnc_get_group; _data_units pushBack _data_group; if ((_data_group select 0) in [5, 7]) then {_has_suicider = true;}; @@ -104,9 +104,9 @@ if !(_city getVariable ["active", false]) exitWith {}; (_city getVariable ["btc_civ_flowers", []]) call CBA_fnc_deleteEntity; if (btc_debug_log) then { - [format ["data units = %1", _data_units], __FILE__, [false]] call btc_fnc_debug_message; - [format ["data animals = %1", _data_animals], __FILE__, [false]] call btc_fnc_debug_message; - [format ["data tags = %1", _data_tags], __FILE__, [false]] call btc_fnc_debug_message; + [format ["data units = %1", _data_units], __FILE__, [false]] call btc_debug_fnc_message; + [format ["data animals = %1", _data_animals], __FILE__, [false]] call btc_debug_fnc_message; + [format ["data tags = %1", _data_tags], __FILE__, [false]] call btc_debug_fnc_message; }; _city setVariable ["has_suicider", _has_suicider]; @@ -116,9 +116,9 @@ if !(_city getVariable ["active", false]) exitWith {}; _city setVariable ["active", false]; if (!btc_hideout_cap_checking) then { - [] call btc_fnc_mil_check_cap; + [] call btc_mil_fnc_check_cap; }; - [] call btc_fnc_city_cleanUp; + [] call btc_city_fnc_cleanUp; }, [_city, _id]] call CBA_fnc_waitUntilAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf index 3917ac4ca..8d310f112 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_findPos +Function: btc_city_fnc_findPos Description: Find a random and safe position in a city (not inside rock). @@ -16,7 +16,7 @@ Returns: Examples: (begin example) - _results = [[0, 0, 0], 100, true] call btc_fnc_city_findPos; + _results = [[0, 0, 0], 100, true] call btc_city_fnc_findPos; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf index f86af258c..698ddc70f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_init +Function: btc_city_fnc_init Description: Create cities all over the map and store those properties. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_city_init; + [] call btc_city_fnc_init; (end) Author: @@ -68,12 +68,12 @@ for "_id" from 0 to (count _locations - 1) do { if ((getMarkerPos "YOUR_MARKER_AREA") inArea [_position, 500, 500, 0, false]) exitWith {}; */ - [_position, _type, _name, _radius, random 1 > _is_free_probability, _id] call btc_fnc_city_create; + [_position, _type, _name, _radius, random 1 > _is_free_probability, _id] call btc_city_fnc_create; }; }; if !(isNil "btc_custom_loc") then { - {_x call btc_fnc_city_create;} forEach btc_custom_loc; + {_x call btc_city_fnc_create;} forEach btc_custom_loc; }; btc_city_all = btc_city_all apply {if (isNil "_x") then {objNull} else {_x}}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf index 8f5606b31..df9ab29e2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_set_clear +Function: btc_city_fnc_set_clear Description: Define a city with the corresponding ID as clear (no more occupied). @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_city_set_clear; + _result = [] call btc_city_fnc_set_clear; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf index 5d33285fa..27db74fca 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_free_condition.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_trigger_free_condition +Function: btc_city_fnc_trigger_free_condition Description: Check if a city should be free. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [allUnits inAreaArray [getPos player, 100, 100], 2] call btc_fnc_city_trigger_free_condition; + [allUnits inAreaArray [getPos player, 100, 100], 2] call btc_city_fnc_trigger_free_condition; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf index 72c88bf93..582cb242e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_trigger_player_side +Function: btc_city_fnc_trigger_player_side Description: Create a trigger to detect player presence around a position. @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - [_position, _radius, _city, _has_en, _name, _type, _id] call btc_fnc_city_trigger_player_side; + [_position, _radius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; (end) Author: @@ -39,7 +39,7 @@ params [ private _trigger = createTrigger ["EmptyDetector", _position, false]; _trigger setTriggerArea [_radius + btc_city_radius, _radius + btc_city_radius, 0, false]; _trigger setTriggerActivation ["ANYPLAYER", "PRESENT", true]; -_trigger setTriggerStatements [btc_p_trigger, format ["[%1] call btc_fnc_city_activate", _id], format ["[%1] call btc_fnc_city_de_activate", _id]]; +_trigger setTriggerStatements [btc_p_trigger, format ["[%1] call btc_city_fnc_activate", _id], format ["[%1] call btc_city_fnc_de_activate", _id]]; _city setVariable ["trigger_player_side", _trigger]; if (btc_debug) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf index 572970975..518ebc735 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_addWP +Function: btc_civ_fnc_addWP Description: Add waypoints to a group. The group will patrol inside a first house, then 4 waypoints outside are added and finally the group will patrol again in an other house. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [_group] call btc_fnc_civ_addWP; + [_group] call btc_civ_fnc_addWP; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf index 0ec743fab..eb20fc0e9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_add_grenade +Function: btc_civ_fnc_add_grenade Description: Add grenade to a unit. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [_unit] call btc_fnc_civ_add_grenade; + [_unit] call btc_civ_fnc_add_grenade; (end) Author: @@ -39,7 +39,7 @@ _unit addEventHandler ["Fired", { [{ params ["_unit"]; - [group _unit] call btc_fnc_civ_addWP; + [group _unit] call btc_civ_fnc_addWP; }, [_unit], 20] call CBA_fnc_waitAndExecute; }; }]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_leaflets.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_leaflets.sqf index 626a62686..26cc95523 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_leaflets.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_leaflets.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_add_leaflets +Function: btc_civ_fnc_add_leaflets Description: Add leaflets to drone which have parents classe: UAV_06_base_F and UAV_01_base_F. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [_player, _uav] call btc_fnc_civ_add_leaflets; + [_player, _uav] call btc_civ_fnc_add_leaflets; (end) Author: @@ -40,10 +40,10 @@ _uav selectWeaponTurret ["Bomb_Leaflets", [_turret]]; if (needReload _uav isEqualTo 1) then {reload _uav}; if ((_uav getVariable ["btc_leaflets_eh_added" , -1]) isEqualTo -1) then { - private _id_f = _uav addEventHandler ["Fired", btc_fnc_civ_leaflets]; + private _id_f = _uav addEventHandler ["Fired", btc_civ_fnc_leaflets]; _uav setVariable ["btc_leaflets_eh_added", _id_f]; if (btc_debug) then { - [format ["EventHandler ID: %1", _id_f], __FILE__, [btc_debug, false]] call btc_fnc_debug_message; + [format ["EventHandler ID: %1", _id_f], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_weapons.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_weapons.sqf index 8dfbc84d9..dfc7f7f06 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_weapons.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_weapons.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_add_weapons +Function: btc_civ_fnc_add_weapons Description: Add weapon to a unit. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [_unit] call btc_fnc_civ_add_weapons; + [_unit] call btc_civ_fnc_add_weapons; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf index de6a9d285..f0587a641 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_class +Function: btc_civ_fnc_class Description: Return civilian classe names sorted by units, boats and vehicules based on faction name. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _civilian_classe_names = ["CIV_F"] call btc_fnc_civ_class; + _civilian_classe_names = ["CIV_F"] call btc_civ_fnc_class; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf index ac6826b9e..834e501bf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/createFlower.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_createFlower +Function: btc_civ_fnc_createFlower Description: Add flower bouquets next to killed civilians. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [btc_city_all#0, [[getPosASL player, getDir player]]] call btc_fnc_civ_createFlower; + [btc_city_all#0, [[getPosASL player, getDir player]]] call btc_civ_fnc_createFlower; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf index 545a856b6..375fae7f9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_create_patrol +Function: btc_civ_fnc_create_patrol Description: Create a civilian patrol around a city in a defined area. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - _isCreated = [createGroup civilian, _active_city] call btc_fnc_civ_create_patrol; + _isCreated = [createGroup civilian, _active_city] call btc_civ_fnc_create_patrol; (end) Author: @@ -65,10 +65,10 @@ if (_roads isEqualTo []) then { _group setVariable ["btc_patrol_id", btc_civilian_id, btc_debug]; btc_civilian_id = btc_civilian_id - 1; -private _delay = [_group, _veh_type, [selectRandom btc_civ_type_units], _safe_pos] call btc_fnc_delay_createVehicle; +private _delay = [_group, _veh_type, [selectRandom btc_civ_type_units], _safe_pos] call btc_delay_fnc_createVehicle; [{ - _this call btc_fnc_patrol_init; + _this call btc_patrol_fnc_init; [[_this select 0]] call btc_fnc_set_groupsOwner; }, [_group, [_start_city, _active_city], _area, _pos_isWater], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf index 531845e20..e67408012 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_evacuate +Function: btc_civ_fnc_evacuate Description: Evacuate civlians around a position in an area of 200 to a safe position. @@ -13,7 +13,7 @@ Returns: _civilians - Civlians found. [Array] Examples: (begin example) - _civilians = [getPos player] call btc_fnc_civ_evacuate; + _civilians = [getPos player] call btc_civ_fnc_evacuate; (end) Author: @@ -44,7 +44,7 @@ if (_position_evac isEqualTo []) then { }; { - [group _x, _position_evac, 20] call btc_fnc_civ_addWP; + [group _x, _position_evac, 20] call btc_civ_fnc_addWP; } forEach _civilians; _civilians diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf index ab9cc5382..f539351f1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_get_grenade +Function: btc_civ_fnc_get_grenade Description: Search for civilians at a position in a range to add grenade to their inventory. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [[0, 0, 0], 200] call btc_fnc_civ_get_grenade; + [[0, 0, 0], 200] call btc_civ_fnc_get_grenade; (end) Author: @@ -41,10 +41,10 @@ if (_units isEqualTo []) exitWith {}; { if (btc_debug_log) then { - [format ["%1 - %2", _x, side _x], __FILE__, [false]] call btc_fnc_debug_message; + [format ["%1 - %2", _x, side _x], __FILE__, [false]] call btc_debug_fnc_message; }; - [_x] call btc_fnc_civ_add_grenade; + [_x] call btc_civ_fnc_add_grenade; private _group = createGroup [btc_enemy_side, true]; _group setVariable ["btc_city", group _x getVariable ["btc_city", objNull]]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf index 35c5fef22..3a1c4cd52 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_get_weapons +Function: btc_civ_fnc_get_weapons Description: Search for civilians at a position in a range to add weapons to their inventory. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [getPos player, 200] call btc_fnc_civ_get_weapons; + [getPos player, 200] call btc_civ_fnc_get_weapons; (end) Author: @@ -38,11 +38,11 @@ if (_units isEqualTo []) then { { if (btc_debug_log) then { - [format ["%1 - %2", _x, side _x], __FILE__, [false]] call btc_fnc_debug_message; + [format ["%1 - %2", _x, side _x], __FILE__, [false]] call btc_debug_fnc_message; }; [_x, "", 2] call ace_common_fnc_doAnimation; - [_x] call btc_fnc_civ_add_weapons; + [_x] call btc_civ_fnc_add_weapons; private _group = createGroup [btc_enemy_side, true]; _group setVariable ["btc_city", group _x getVariable ["btc_city", objNull]]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/leaflets.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/leaflets.sqf index 002d4121b..0db7de89c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/leaflets.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/leaflets.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_leaflets +Function: btc_civ_fnc_leaflets Description: Evacuate civilian when player drop leaflets. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [player, "Bomb_Leaflets"] call btc_fnc_civ_leaflets; + _result = [player, "Bomb_Leaflets"] call btc_civ_fnc_leaflets; (end) Author: @@ -27,9 +27,9 @@ params [ ]; if (btc_debug) then { - [format ["%1 fired with %2", typeOf _uav, _weapon], __FILE__, [btc_debug, false]] call btc_fnc_debug_message; + [format ["%1 fired with %2", typeOf _uav, _weapon], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; }; if (_weapon isEqualTo "Bomb_Leaflets") then { - [getPos _uav] remoteExecCall ["btc_fnc_civ_evacuate", 2]; + [getPos _uav] remoteExecCall ["btc_civ_fnc_evacuate", 2]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf index a602228a9..471416a53 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_civ_populate +Function: btc_civ_fnc_populate Description: Populate a city in an area with a defined number of civilians. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [_city, 200, 3] call btc_fnc_civ_populate; + [_city, 200, 3] call btc_civ_fnc_populate; (end) Author: @@ -38,6 +38,6 @@ for "_i" from 1 to _n do { private _group = createGroup civilian; _group setVariable ["btc_city", _city]; _group setVariable ["btc_data_inhouse", [_pos]]; - [_group, _pos] call btc_fnc_civ_addWP; - [_group, selectRandom btc_civ_type_units, _pos] call btc_fnc_delay_createUnit; + [_group, _pos] call btc_civ_fnc_addWP; + [_group, selectRandom btc_civ_type_units, _pos] call btc_delay_fnc_createUnit; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf index 0c37304f4..85473917d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf @@ -20,7 +20,7 @@ Author: ---------------------------------------------------------------------------- */ ["btc_dty", "SUCCEEDED"] call BIS_fnc_taskSetState; -[["btc_sze", "btc_m"], 2] call btc_fnc_task_create; +[["btc_sze", "btc_m"], 2] call btc_task_fnc_create; btc_final_phase = true; @@ -50,7 +50,7 @@ btc_city_remaining = []; waitUntil {sleep 15; (btc_city_remaining isEqualTo [])}; -["btc_m", "SUCCEEDED"] call btc_fnc_task_setState; +["btc_m", "SUCCEEDED"] call btc_task_fnc_setState; //END [] remoteExec ["btc_fnc_end_mission", 0, true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf index 48ab30abe..35dff17f6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf @@ -45,9 +45,9 @@ if (btc_debug_log) then { if (_objects isNotEqualTo []) then { _object = _objects select 0; if (_object in nearestTerrainObjects [_object, ["HIDE", "ROCK", "ROCKS"], 1]) then { - [format ["POS %1 Still inside rock", _rpos], __FILE__, [false]] call btc_fnc_debug_message; + [format ["POS %1 Still inside rock", _rpos], __FILE__, [false]] call btc_debug_fnc_message; if (btc_debug) then { - ["Still inside rock", __FILE__, [btc_debug, false]] call btc_fnc_debug_message; + ["Still inside rock", __FILE__, [btc_debug, false]] call btc_debug_fnc_message; private _marker = createMarker [format ["btc_inrock_%1", _rpos], _rpos]; _marker setMarkerType "mil_unknown"; _marker setMarkerText "In rock"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf index 3d2b9e39a..9f322f62c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf @@ -30,7 +30,7 @@ params [ private _allpositions = (_house buildingPos -1) call BIS_fnc_arrayShuffle; if (btc_debug_log) then { - [format ["count all pos %1 in %2 ", count _allpositions, _house], __FILE__, [false]] call btc_fnc_debug_message; + [format ["count all pos %1 in %2 ", count _allpositions, _house], __FILE__, [false]] call btc_debug_fnc_message; }; { private _wp = [_group, [_x, 0.2] call CBA_fnc_randPos, -1, "MOVE", "UNCHANGED", "NO CHANGE", "UNCHANGED", "NO CHANGE", "", [15, 20, 30]] call CBA_fnc_addWaypoint; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf index 3a5c2891d..51071578e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_intro +Function: btc_int_fncro Description: Introduction camera. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_intro; + [] call btc_int_fncro; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 9712d78e4..942e38853 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -1,10 +1,10 @@ /////////////////////SERVER\\\\\\\\\\\\\\\\\\\\\ if (isServer) then { //CACHE - btc_fnc_cache_find_pos = compileScript ["core\fnc\cache\find_pos.sqf"]; - btc_fnc_cache_create = compileScript ["core\fnc\cache\create.sqf"]; - btc_fnc_cache_create_attachto = compileScript ["core\fnc\cache\create_attachto.sqf"]; - btc_fnc_cache_init = compileScript ["core\fnc\cache\init.sqf"]; + btc_cache_fnc_find_pos = compileScript ["core\fnc\cache\find_pos.sqf"]; + btc_cache_fnc_create = compileScript ["core\fnc\cache\create.sqf"]; + btc_cache_fnc_create_attachto = compileScript ["core\fnc\cache\create_attachto.sqf"]; + btc_cache_fnc_init = compileScript ["core\fnc\cache\init.sqf"]; //COMMON btc_fnc_check_los = compileScript ["core\fnc\common\check_los.sqf"]; @@ -25,185 +25,185 @@ if (isServer) then { btc_fnc_roof = compileScript ["core\fnc\common\roof.sqf"]; //CHEM - btc_fnc_chem_checkLoop = compileScript ["core\fnc\chem\checkLoop.sqf"]; - btc_fnc_chem_propagate = compileScript ["core\fnc\chem\propagate.sqf"]; - btc_fnc_chem_handleShower = compileScript ["core\fnc\chem\handleShower.sqf"]; + btc_chem_fnc_checkLoop = compileScript ["core\fnc\chem\checkLoop.sqf"]; + btc_chem_fnc_propagate = compileScript ["core\fnc\chem\propagate.sqf"]; + btc_chem_fnc_handleShower = compileScript ["core\fnc\chem\handleShower.sqf"]; //SPECT - btc_fnc_spect_checkLoop = compileScript ["core\fnc\spect\checkLoop.sqf"]; - btc_fnc_spect_electronicFailure = compileScript ["core\fnc\spect\electronicFailure.sqf"]; + btc_spect_fnc_checkLoop = compileScript ["core\fnc\spect\checkLoop.sqf"]; + btc_spect_fnc_electronicFailure = compileScript ["core\fnc\spect\electronicFailure.sqf"]; //CITY - btc_fnc_city_activate = compileScript ["core\fnc\city\activate.sqf"]; - btc_fnc_city_create = compileScript ["core\fnc\city\create.sqf"]; - btc_fnc_city_de_activate = compileScript ["core\fnc\city\de_activate.sqf"]; - btc_fnc_city_set_clear = compileScript ["core\fnc\city\set_clear.sqf"]; - btc_fnc_city_trigger_player_side = compileScript ["core\fnc\city\trigger_player_side.sqf"]; - btc_fnc_city_findPos = compileScript ["core\fnc\city\findPos.sqf"]; - btc_fnc_city_cleanUp = compileScript ["core\fnc\city\cleanUp.sqf"]; - btc_fnc_city_trigger_free_condition = compileScript ["core\fnc\city\trigger_free_condition.sqf"]; + btc_city_fnc_activate = compileScript ["core\fnc\city\activate.sqf"]; + btc_city_fnc_create = compileScript ["core\fnc\city\create.sqf"]; + btc_city_fnc_de_activate = compileScript ["core\fnc\city\de_activate.sqf"]; + btc_city_fnc_set_clear = compileScript ["core\fnc\city\set_clear.sqf"]; + btc_city_fnc_trigger_player_side = compileScript ["core\fnc\city\trigger_player_side.sqf"]; + btc_city_fnc_findPos = compileScript ["core\fnc\city\findPos.sqf"]; + btc_city_fnc_cleanUp = compileScript ["core\fnc\city\cleanUp.sqf"]; + btc_city_fnc_trigger_free_condition = compileScript ["core\fnc\city\trigger_free_condition.sqf"]; //CIV - btc_fnc_civ_add_weapons = compileScript ["core\fnc\civ\add_weapons.sqf"]; - btc_fnc_civ_add_grenade = compileScript ["core\fnc\civ\add_grenade.sqf"]; - btc_fnc_civ_get_weapons = compileScript ["core\fnc\civ\get_weapons.sqf"]; - btc_fnc_civ_get_grenade = compileScript ["core\fnc\civ\get_grenade.sqf"]; - btc_fnc_civ_populate = compileScript ["core\fnc\civ\populate.sqf"]; - btc_fnc_civ_create_patrol = compileScript ["core\fnc\civ\create_patrol.sqf"]; - btc_fnc_civ_evacuate = compileScript ["core\fnc\civ\evacuate.sqf"]; - btc_fnc_civ_createFlower = compileScript ["core\fnc\civ\createFlower.sqf"]; + btc_civ_fnc_add_weapons = compileScript ["core\fnc\civ\add_weapons.sqf"]; + btc_civ_fnc_add_grenade = compileScript ["core\fnc\civ\add_grenade.sqf"]; + btc_civ_fnc_get_weapons = compileScript ["core\fnc\civ\get_weapons.sqf"]; + btc_civ_fnc_get_grenade = compileScript ["core\fnc\civ\get_grenade.sqf"]; + btc_civ_fnc_populate = compileScript ["core\fnc\civ\populate.sqf"]; + btc_civ_fnc_create_patrol = compileScript ["core\fnc\civ\create_patrol.sqf"]; + btc_civ_fnc_evacuate = compileScript ["core\fnc\civ\evacuate.sqf"]; + btc_civ_fnc_createFlower = compileScript ["core\fnc\civ\createFlower.sqf"]; //DATA - btc_fnc_data_add_group = compileScript ["core\fnc\data\add_group.sqf"]; - btc_fnc_data_get_group = compileScript ["core\fnc\data\get_group.sqf"]; - btc_fnc_data_spawn_group = compileScript ["core\fnc\data\spawn_group.sqf"]; + btc_data_fnc_add_group = compileScript ["core\fnc\data\add_group.sqf"]; + btc_data_fnc_get_group = compileScript ["core\fnc\data\get_group.sqf"]; + btc_data_fnc_spawn_group = compileScript ["core\fnc\data\spawn_group.sqf"]; //DB - btc_fnc_db_save = compileScript ["core\fnc\db\save.sqf"]; - btc_fnc_db_delete = compileScript ["core\fnc\db\delete.sqf"]; - btc_fnc_db_loadObjectStatus = compileScript ["core\fnc\db\loadObjectStatus.sqf"]; - btc_fnc_db_saveObjectStatus = compileScript ["core\fnc\db\saveObjectStatus.sqf"]; - btc_fnc_db_loadCargo = compileScript ["core\fnc\db\loadcargo.sqf"]; - btc_fnc_db_autoRestart = compileScript ["core\fnc\db\autoRestart.sqf"]; + btc_db_fnc_save = compileScript ["core\fnc\db\save.sqf"]; + btc_db_fnc_delete = compileScript ["core\fnc\db\delete.sqf"]; + btc_db_fnc_loadObjectStatus = compileScript ["core\fnc\db\loadObjectStatus.sqf"]; + btc_db_fnc_saveObjectStatus = compileScript ["core\fnc\db\saveObjectStatus.sqf"]; + btc_db_fnc_loadCargo = compileScript ["core\fnc\db\loadcargo.sqf"]; + btc_db_fnc_autoRestart = compileScript ["core\fnc\db\autoRestart.sqf"]; //DELAY - btc_fnc_delay_createUnit = compileScript ["core\fnc\delay\createUnit.sqf"]; - btc_fnc_delay_createVehicle = compileScript ["core\fnc\delay\createVehicle.sqf"]; - btc_fnc_delay_createAgent = compileScript ["core\fnc\delay\createAgent.sqf"]; - btc_fnc_delay_exec = compileScript ["core\fnc\delay\exec.sqf"]; + btc_delay_fnc_createUnit = compileScript ["core\fnc\delay\createUnit.sqf"]; + btc_delay_fnc_createVehicle = compileScript ["core\fnc\delay\createVehicle.sqf"]; + btc_delay_fnc_createAgent = compileScript ["core\fnc\delay\createAgent.sqf"]; + btc_delay_fnc_exec = compileScript ["core\fnc\delay\exec.sqf"]; //EH - btc_fnc_eh_server = compileScript ["core\fnc\eh\server.sqf"]; + btc_eh_fnc_server = compileScript ["core\fnc\eh\server.sqf"]; //IED - btc_fnc_ied_boom = compileScript ["core\fnc\ied\boom.sqf"]; - btc_fnc_ied_check = compileScript ["core\fnc\ied\check.sqf"]; - btc_fnc_ied_checkLoop = compileScript ["core\fnc\ied\checkLoop.sqf"]; - btc_fnc_ied_create = compileScript ["core\fnc\ied\create.sqf"]; - btc_fnc_ied_fired_near = compileScript ["core\fnc\ied\fired_near.sqf"]; - btc_fnc_ied_initArea = compileScript ["core\fnc\ied\initArea.sqf"]; - btc_fnc_ied_suicider_active = compileScript ["core\fnc\ied\suicider_active.sqf"]; - btc_fnc_ied_suicider_activeLoop = compileScript ["core\fnc\ied\suicider_activeLoop.sqf"]; - btc_fnc_ied_suicider_create = compileScript ["core\fnc\ied\suicider_create.sqf"]; - btc_fnc_ied_suiciderLoop = compileScript ["core\fnc\ied\suiciderLoop.sqf"]; - btc_fnc_ied_allahu_akbar = compileScript ["core\fnc\ied\allahu_akbar.sqf"]; - btc_fnc_ied_drone_active = compileScript ["core\fnc\ied\drone_active.sqf"]; - btc_fnc_ied_drone_create = compileScript ["core\fnc\ied\drone_create.sqf"]; - btc_fnc_ied_droneLoop = compileScript ["core\fnc\ied\droneLoop.sqf"]; - btc_fnc_ied_drone_fire = compileScript ["core\fnc\ied\drone_fire.sqf"]; - btc_fnc_ied_randomRoadPos = compileScript ["core\fnc\ied\randomRoadPos.sqf"]; + btc_ied_fnc_boom = compileScript ["core\fnc\ied\boom.sqf"]; + btc_ied_fnc_check = compileScript ["core\fnc\ied\check.sqf"]; + btc_ied_fnc_checkLoop = compileScript ["core\fnc\ied\checkLoop.sqf"]; + btc_ied_fnc_create = compileScript ["core\fnc\ied\create.sqf"]; + btc_ied_fnc_fired_near = compileScript ["core\fnc\ied\fired_near.sqf"]; + btc_ied_fnc_initArea = compileScript ["core\fnc\ied\initArea.sqf"]; + btc_ied_fnc_suicider_active = compileScript ["core\fnc\ied\suicider_active.sqf"]; + btc_ied_fnc_suicider_activeLoop = compileScript ["core\fnc\ied\suicider_activeLoop.sqf"]; + btc_ied_fnc_suicider_create = compileScript ["core\fnc\ied\suicider_create.sqf"]; + btc_ied_fnc_suiciderLoop = compileScript ["core\fnc\ied\suiciderLoop.sqf"]; + btc_ied_fnc_allahu_akbar = compileScript ["core\fnc\ied\allahu_akbar.sqf"]; + btc_ied_fnc_drone_active = compileScript ["core\fnc\ied\drone_active.sqf"]; + btc_ied_fnc_drone_create = compileScript ["core\fnc\ied\drone_create.sqf"]; + btc_ied_fnc_droneLoop = compileScript ["core\fnc\ied\droneLoop.sqf"]; + btc_ied_fnc_drone_fire = compileScript ["core\fnc\ied\drone_fire.sqf"]; + btc_ied_fnc_randomRoadPos = compileScript ["core\fnc\ied\randomRoadPos.sqf"]; //INFO - btc_fnc_info_cache = compileScript ["core\fnc\info\cache.sqf"]; - btc_fnc_info_give_intel = compileScript ["core\fnc\info\give_intel.sqf"]; - btc_fnc_info_has_intel = compileScript ["core\fnc\info\has_intel.sqf"]; - btc_fnc_info_hideout = compileScript ["core\fnc\info\hideout.sqf"]; - btc_fnc_info_cacheMarker = compileScript ["core\fnc\info\cacheMarker.sqf"]; - btc_fnc_info_path = compileScript ["core\fnc\info\path.sqf"]; + btc_info_fnc_cache = compileScript ["core\fnc\info\cache.sqf"]; + btc_info_fnc_give_intel = compileScript ["core\fnc\info\give_intel.sqf"]; + btc_info_fnc_has_intel = compileScript ["core\fnc\info\has_intel.sqf"]; + btc_info_fnc_hideout = compileScript ["core\fnc\info\hideout.sqf"]; + btc_info_fnc_cacheMarker = compileScript ["core\fnc\info\cacheMarker.sqf"]; + btc_info_fnc_path = compileScript ["core\fnc\info\path.sqf"]; //FOB - btc_fnc_fob_create_s = compileScript ["core\fnc\fob\create_s.sqf"]; - btc_fnc_fob_dismantle_s = compileScript ["core\fnc\fob\dismantle_s.sqf"]; - btc_fnc_fob_killed = compileScript ["core\fnc\fob\killed.sqf"]; - btc_fnc_fob_rallypointTimer = compileScript ["core\fnc\fob\rallypointTimer.sqf"]; + btc_fob_fnc_create_s = compileScript ["core\fnc\fob\create_s.sqf"]; + btc_fob_fnc_dismantle_s = compileScript ["core\fnc\fob\dismantle_s.sqf"]; + btc_fob_fnc_killed = compileScript ["core\fnc\fob\killed.sqf"]; + btc_fob_fnc_rallypointTimer = compileScript ["core\fnc\fob\rallypointTimer.sqf"]; //MIL - btc_fnc_mil_addWP = compileScript ["core\fnc\mil\addWP.sqf"]; - btc_fnc_mil_check_cap = compileScript ["core\fnc\mil\check_cap.sqf"]; - btc_fnc_mil_create_group = compileScript ["core\fnc\mil\create_group.sqf"]; - btc_fnc_mil_create_static = compileScript ["core\fnc\mil\create_static.sqf"]; - btc_fnc_mil_create_patrol = compileScript ["core\fnc\mil\create_patrol.sqf"]; - btc_fnc_mil_send = compileScript ["core\fnc\mil\send.sqf"]; - btc_fnc_mil_set_skill = compileScript ["core\fnc\mil\set_skill.sqf"]; - btc_fnc_mil_getStructures = compileScript ["core\fnc\mil\getStructures.sqf"]; - btc_fnc_mil_getBuilding = compileScript ["core\fnc\mil\getBuilding.sqf"]; - btc_fnc_mil_createVehicle = compileScript ["core\fnc\mil\createVehicle.sqf"]; - btc_fnc_mil_createUnits = compileScript ["core\fnc\mil\createUnits.sqf"]; - btc_fnc_mil_unit_killed = compileScript ["core\fnc\mil\unit_killed.sqf"]; - btc_fnc_mil_create_staticOnRoof = compileScript ["core\fnc\mil\create_staticOnRoof.sqf"]; + btc_mil_fnc_addWP = compileScript ["core\fnc\mil\addWP.sqf"]; + btc_mil_fnc_check_cap = compileScript ["core\fnc\mil\check_cap.sqf"]; + btc_mil_fnc_create_group = compileScript ["core\fnc\mil\create_group.sqf"]; + btc_mil_fnc_create_static = compileScript ["core\fnc\mil\create_static.sqf"]; + btc_mil_fnc_create_patrol = compileScript ["core\fnc\mil\create_patrol.sqf"]; + btc_mil_fnc_send = compileScript ["core\fnc\mil\send.sqf"]; + btc_mil_fnc_set_skill = compileScript ["core\fnc\mil\set_skill.sqf"]; + btc_mil_fnc_getStructures = compileScript ["core\fnc\mil\getStructures.sqf"]; + btc_mil_fnc_getBuilding = compileScript ["core\fnc\mil\getBuilding.sqf"]; + btc_mil_fnc_createVehicle = compileScript ["core\fnc\mil\createVehicle.sqf"]; + btc_mil_fnc_createUnits = compileScript ["core\fnc\mil\createUnits.sqf"]; + btc_mil_fnc_unit_killed = compileScript ["core\fnc\mil\unit_killed.sqf"]; + btc_mil_fnc_create_staticOnRoof = compileScript ["core\fnc\mil\create_staticOnRoof.sqf"]; //HIDEOUT - btc_fnc_hideout_hd = compileScript ["core\fnc\hideout\hd.sqf"]; - btc_fnc_hideout_create = compileScript ["core\fnc\hideout\create.sqf"]; - btc_fnc_hideout_create_composition = compileScript ["core\fnc\hideout\create_composition.sqf"]; + btc_hideout_fnc_hd = compileScript ["core\fnc\hideout\hd.sqf"]; + btc_hideout_fnc_create = compileScript ["core\fnc\hideout\create.sqf"]; + btc_hideout_fnc_create_composition = compileScript ["core\fnc\hideout\create_composition.sqf"]; //PATROL - btc_fnc_patrol_playersInAreaCityGroup = compileScript ["core\fnc\patrol\playersInAreaCityGroup.sqf"]; - btc_fnc_patrol_usefulCity = compileScript ["core\fnc\patrol\usefulCity.sqf"]; - btc_fnc_patrol_WPCheck = compileScript ["core\fnc\patrol\WPCheck.sqf"]; - btc_fnc_patrol_init = compileScript ["core\fnc\patrol\init.sqf"]; - btc_fnc_patrol_addWP = compileScript ["core\fnc\patrol\addWP.sqf"]; - btc_fnc_patrol_eh = compileScript ["core\fnc\patrol\eh.sqf"]; - btc_fnc_patrol_addEH = compileScript ["core\fnc\patrol\addEH.sqf"]; + btc_patrol_fnc_playersInAreaCityGroup = compileScript ["core\fnc\patrol\playersInAreaCityGroup.sqf"]; + btc_patrol_fnc_usefulCity = compileScript ["core\fnc\patrol\usefulCity.sqf"]; + btc_patrol_fnc_WPCheck = compileScript ["core\fnc\patrol\WPCheck.sqf"]; + btc_patrol_fnc_init = compileScript ["core\fnc\patrol\init.sqf"]; + btc_patrol_fnc_addWP = compileScript ["core\fnc\patrol\addWP.sqf"]; + btc_patrol_fnc_eh = compileScript ["core\fnc\patrol\eh.sqf"]; + btc_patrol_fnc_addEH = compileScript ["core\fnc\patrol\addEH.sqf"]; //REP - btc_fnc_rep_call_militia = compileScript ["core\fnc\rep\call_militia.sqf"]; - btc_fnc_rep_change = compileScript ["core\fnc\rep\change.sqf"]; - btc_fnc_rep_eh_effects = compileScript ["core\fnc\rep\eh_effects.sqf"]; - btc_fnc_rep_hh = compileScript ["core\fnc\rep\hh.sqf"]; - btc_fnc_rep_buildingchanged = compileScript ["core\fnc\rep\buildingchanged.sqf"]; - btc_fnc_rep_explosives_defuse = compileScript ["core\fnc\rep\explosives_defuse.sqf"]; - btc_fnc_rep_notify = compileScript ["core\fnc\rep\notify.sqf"]; - btc_fnc_rep_killed = compileScript ["core\fnc\rep\killed.sqf"]; + btc_rep_fnc_call_militia = compileScript ["core\fnc\rep\call_militia.sqf"]; + btc_rep_fnc_change = compileScript ["core\fnc\rep\change.sqf"]; + btc_rep_fnc_eh_effects = compileScript ["core\fnc\rep\eh_effects.sqf"]; + btc_rep_fnc_hh = compileScript ["core\fnc\rep\hh.sqf"]; + btc_rep_fnc_buildingchanged = compileScript ["core\fnc\rep\buildingchanged.sqf"]; + btc_rep_fnc_explosives_defuse = compileScript ["core\fnc\rep\explosives_defuse.sqf"]; + btc_rep_fnc_notify = compileScript ["core\fnc\rep\notify.sqf"]; + btc_rep_fnc_killed = compileScript ["core\fnc\rep\killed.sqf"]; //SIDE - btc_fnc_side_create = compileScript ["core\fnc\side\create.sqf"]; - btc_fnc_side_get_city = compileScript ["core\fnc\side\get_city.sqf"]; - btc_fnc_side_mines = compileScript ["core\fnc\side\mines.sqf"]; - btc_fnc_side_supply = compileScript ["core\fnc\side\supply.sqf"]; - btc_fnc_side_vehicle = compileScript ["core\fnc\side\vehicle.sqf"]; - btc_fnc_side_civtreatment = compileScript ["core\fnc\side\civtreatment.sqf"]; - btc_fnc_side_tower = compileScript ["core\fnc\side\tower.sqf"]; - btc_fnc_side_checkpoint = compileScript ["core\fnc\side\checkpoint.sqf"]; - btc_fnc_side_civtreatment_boat = compileScript ["core\fnc\side\civtreatment_boat.sqf"]; - btc_fnc_side_underwater_generator= compileScript ["core\fnc\side\underwater_generator.sqf"]; - btc_fnc_side_convoy = compileScript ["core\fnc\side\convoy.sqf"]; - btc_fnc_side_rescue = compileScript ["core\fnc\side\rescue.sqf"]; - btc_fnc_side_capture_officer = compileScript ["core\fnc\side\capture_officer.sqf"]; - btc_fnc_side_hostage = compileScript ["core\fnc\side\hostage.sqf"]; - btc_fnc_side_hack = compileScript ["core\fnc\side\hack.sqf"]; - btc_fnc_side_kill = compileScript ["core\fnc\side\kill.sqf"]; - btc_fnc_side_chemicalLeak = compileScript ["core\fnc\side\chemicalLeak.sqf"]; - btc_fnc_side_EMP = compileScript ["core\fnc\side\EMP.sqf"]; - btc_fnc_side_removeRubbish = compileScript ["core\fnc\side\removeRubbish.sqf"]; + btc_side_fnc_create = compileScript ["core\fnc\side\create.sqf"]; + btc_side_fnc_get_city = compileScript ["core\fnc\side\get_city.sqf"]; + btc_side_fnc_mines = compileScript ["core\fnc\side\mines.sqf"]; + btc_side_fnc_supply = compileScript ["core\fnc\side\supply.sqf"]; + btc_side_fnc_vehicle = compileScript ["core\fnc\side\vehicle.sqf"]; + btc_side_fnc_civtreatment = compileScript ["core\fnc\side\civtreatment.sqf"]; + btc_side_fnc_tower = compileScript ["core\fnc\side\tower.sqf"]; + btc_side_fnc_checkpoint = compileScript ["core\fnc\side\checkpoint.sqf"]; + btc_side_fnc_civtreatment_boat = compileScript ["core\fnc\side\civtreatment_boat.sqf"]; + btc_side_fnc_underwater_generator= compileScript ["core\fnc\side\underwater_generator.sqf"]; + btc_side_fnc_convoy = compileScript ["core\fnc\side\convoy.sqf"]; + btc_side_fnc_rescue = compileScript ["core\fnc\side\rescue.sqf"]; + btc_side_fnc_capture_officer = compileScript ["core\fnc\side\capture_officer.sqf"]; + btc_side_fnc_hostage = compileScript ["core\fnc\side\hostage.sqf"]; + btc_side_fnc_hack = compileScript ["core\fnc\side\hack.sqf"]; + btc_side_fnc_kill = compileScript ["core\fnc\side\kill.sqf"]; + btc_side_fnc_chemicalLeak = compileScript ["core\fnc\side\chemicalLeak.sqf"]; + btc_side_fnc_EMP = compileScript ["core\fnc\side\EMP.sqf"]; + btc_side_fnc_removeRubbish = compileScript ["core\fnc\side\removeRubbish.sqf"]; //TAG - btc_fnc_tag_initArea = compileScript ["core\fnc\tag\initArea.sqf"]; - btc_fnc_tag_eh = compileScript ["core\fnc\tag\eh.sqf"]; - btc_fnc_tag_create = compileScript ["core\fnc\tag\create.sqf"]; + btc_tag_fnc_initArea = compileScript ["core\fnc\tag\initArea.sqf"]; + btc_tag_fnc_eh = compileScript ["core\fnc\tag\eh.sqf"]; + btc_tag_fnc_create = compileScript ["core\fnc\tag\create.sqf"]; //LOG - btc_fnc_log_createVehicle = compileScript ["core\fnc\log\createVehicle.sqf"]; - btc_fnc_log_getRearmMagazines = compileScript ["core\fnc\log\getRearmMagazines.sqf"]; - btc_fnc_log_init = compileScript ["core\fnc\log\init.sqf"]; - btc_fnc_log_setCargo = compileScript ["core\fnc\log\setCargo.sqf"]; - btc_fnc_log_server_delete = compileScript ["core\fnc\log\server_delete.sqf"]; - btc_fnc_log_create_s = compileScript ["core\fnc\log\create_s.sqf"]; - btc_fnc_log_get_cc = compileScript ["core\fnc\log\get_cc.sqf"]; - btc_fnc_log_get_rc = compileScript ["core\fnc\log\get_rc.sqf"]; - btc_fnc_log_server_repair_wreck = compileScript ["core\fnc\log\server_repair_wreck.sqf"]; + btc_log_fnc_createVehicle = compileScript ["core\fnc\log\createVehicle.sqf"]; + btc_log_fnc_getRearmMagazines = compileScript ["core\fnc\log\getRearmMagazines.sqf"]; + btc_log_fnc_init = compileScript ["core\fnc\log\init.sqf"]; + btc_log_fnc_setCargo = compileScript ["core\fnc\log\setCargo.sqf"]; + btc_log_fnc_server_delete = compileScript ["core\fnc\log\server_delete.sqf"]; + btc_log_fnc_create_s = compileScript ["core\fnc\log\create_s.sqf"]; + btc_log_fnc_get_cc = compileScript ["core\fnc\log\get_cc.sqf"]; + btc_log_fnc_get_rc = compileScript ["core\fnc\log\get_rc.sqf"]; + btc_log_fnc_server_repair_wreck = compileScript ["core\fnc\log\server_repair_wreck.sqf"]; //DEAF - btc_fnc_deaf_earringing = compileScript ["core\fnc\deaf\earringing.sqf"]; + btc_deaf_fnc_earringing = compileScript ["core\fnc\deaf\earringing.sqf"]; //TASK - btc_fnc_task_create = compileScript ["core\fnc\task\create.sqf"]; - btc_fnc_task_setState = compileScript ["core\fnc\task\setState.sqf"]; + btc_task_fnc_create = compileScript ["core\fnc\task\create.sqf"]; + btc_task_fnc_setState = compileScript ["core\fnc\task\setState.sqf"]; //TOW - btc_fnc_tow_ropeBreak = compileScript ["core\fnc\tow\ropeBreak.sqf"]; - btc_fnc_tow_ViV = compileScript ["core\fnc\tow\ViV.sqf"]; + btc_tow_fnc_ropeBreak = compileScript ["core\fnc\tow\ropeBreak.sqf"]; + btc_tow_fnc_ViV = compileScript ["core\fnc\tow\ViV.sqf"]; //VEH - btc_fnc_veh_addRespawn = compileScript ["core\fnc\veh\addRespawn.sqf"]; - btc_fnc_veh_killed = compileScript ["core\fnc\veh\killed.sqf"]; - btc_fnc_veh_respawn = compileScript ["core\fnc\veh\respawn.sqf"]; + btc_veh_fnc_addRespawn = compileScript ["core\fnc\veh\addRespawn.sqf"]; + btc_veh_fnc_killed = compileScript ["core\fnc\veh\killed.sqf"]; + btc_veh_fnc_respawn = compileScript ["core\fnc\veh\respawn.sqf"]; }; /////////////////////CLIENT AND SERVER\\\\\\\\\\\\\\\\\\\\\ //CACHE -btc_fnc_cache_hd = compileScript ["core\fnc\cache\hd.sqf"]; +btc_cache_fnc_hd = compileScript ["core\fnc\cache\hd.sqf"]; //COMMON btc_fnc_find_veh_with_turret = compileScript ["core\fnc\common\find_veh_with_turret.sqf"]; @@ -213,46 +213,46 @@ btc_fnc_getHouses = compileScript ["core\fnc\common\getHouses.sqf"]; btc_fnc_house_addWP_loop = compileScript ["core\fnc\common\house_addWP_loop.sqf"]; //CHEM -btc_fnc_chem_damage = compileScript ["core\fnc\chem\damage.sqf"]; -btc_fnc_chem_deconShowerAnimLarge = {(_this select 0) setVariable ["BIN_Shower_Stop",false]; _this call BIN_fnc_deconShowerAnimLarge;}; +btc_chem_fnc_damage = compileScript ["core\fnc\chem\damage.sqf"]; +btc_chem_fnc_deconShowerAnimLarge = {(_this select 0) setVariable ["BIN_Shower_Stop",false]; _this call BIN_fnc_deconShowerAnimLarge;}; //DEBUG -btc_fnc_debug_message = compileScript ["core\fnc\debug\message.sqf"]; +btc_debug_fnc_message = compileScript ["core\fnc\debug\message.sqf"]; //DB -btc_fnc_db_add_veh = compileScript ["core\fnc\db\add_veh.sqf"]; +btc_db_fnc_add_veh = compileScript ["core\fnc\db\add_veh.sqf"]; //EH -btc_fnc_eh_trackItem = compileScript ["core\fnc\eh\trackItem.sqf"]; +btc_eh_fnc_trackItem = compileScript ["core\fnc\eh\trackItem.sqf"]; //CIV -btc_fnc_civ_class = compileScript ["core\fnc\civ\class.sqf"]; -btc_fnc_civ_addWP = compileScript ["core\fnc\civ\addWP.sqf"]; +btc_civ_fnc_class = compileScript ["core\fnc\civ\class.sqf"]; +btc_civ_fnc_addWP = compileScript ["core\fnc\civ\addWP.sqf"]; //IED -btc_fnc_ied_belt = compileScript ["core\fnc\ied\belt.sqf"]; +btc_ied_fnc_belt = compileScript ["core\fnc\ied\belt.sqf"]; //INT -btc_fnc_int_orders_give = compileScript ["core\fnc\int\orders_give.sqf"]; -btc_fnc_int_orders_behaviour = compileScript ["core\fnc\int\orders_behaviour.sqf"]; -btc_fnc_int_ask_var = compileScript ["core\fnc\int\ask_var.sqf"]; +btc_int_fnc_orders_give = compileScript ["core\fnc\int\orders_give.sqf"]; +btc_int_fnc_orders_behaviour = compileScript ["core\fnc\int\orders_behaviour.sqf"]; +btc_int_fnc_ask_var = compileScript ["core\fnc\int\ask_var.sqf"]; //LOG -btc_fnc_log_place_destroy_camera = compileScript ["core\fnc\log\place_destroy_camera.sqf"]; +btc_log_fnc_place_destroy_camera = compileScript ["core\fnc\log\place_destroy_camera.sqf"]; //MIL -btc_fnc_mil_class = compileScript ["core\fnc\mil\class.sqf"]; -btc_fnc_mil_ammoUsage = compileScript ["core\fnc\mil\ammoUsage.sqf"]; +btc_mil_fnc_class = compileScript ["core\fnc\mil\class.sqf"]; +btc_mil_fnc_ammoUsage = compileScript ["core\fnc\mil\ammoUsage.sqf"]; //PATROL -btc_fnc_patrol_disabled = compileScript ["core\fnc\patrol\disabled.sqf"]; +btc_patrol_fnc_disabled = compileScript ["core\fnc\patrol\disabled.sqf"]; //REP -btc_fnc_rep_hd = compileScript ["core\fnc\rep\hd.sqf"]; -btc_fnc_rep_suppressed = compileScript ["core\fnc\rep\suppressed.sqf"]; +btc_rep_fnc_hd = compileScript ["core\fnc\rep\hd.sqf"]; +btc_rep_fnc_suppressed = compileScript ["core\fnc\rep\suppressed.sqf"]; //ARSENAL -btc_fnc_arsenal_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; +btc_arsenal_fnc_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; /////////////////////CLIENT\\\\\\\\\\\\\\\\\\\\\ if (!isDedicated) then { @@ -260,7 +260,7 @@ if (!isDedicated) then { btc_fnc_end_mission = compileScript ["core\fnc\common\end_mission.sqf"]; btc_fnc_get_cardinal = compileScript ["core\fnc\common\get_cardinal.sqf"]; btc_fnc_show_hint = compileScript ["core\fnc\common\show_hint.sqf"]; - btc_fnc_intro = compileScript ["core\fnc\common\intro.sqf"]; + btc_int_fncro = compileScript ["core\fnc\common\intro.sqf"]; btc_fnc_set_markerTextLocal = compileScript ["core\fnc\common\set_markerTextLocal.sqf"]; btc_fnc_showSubtitle = compileScript ["core\fnc\common\showSubtitle.sqf"]; btc_fnc_get_composition = compileScript ["core\fnc\common\get_composition.sqf"]; @@ -268,106 +268,106 @@ if (!isDedicated) then { btc_fnc_typeOfPreview = compileScript ["core\fnc\common\typeOfPreview.sqf"]; //CHEM - btc_fnc_chem_biopsy = compileScript ["core\fnc\chem\biopsy.sqf"]; - btc_fnc_chem_damageLoop = compileScript ["core\fnc\chem\damageLoop.sqf"]; - btc_fnc_chem_ehDetector = compileScript ["core\fnc\chem\ehDetector.sqf"]; - btc_fnc_chem_updateDetector = compileScript ["core\fnc\chem\updateDetector.sqf"]; + btc_chem_fnc_biopsy = compileScript ["core\fnc\chem\biopsy.sqf"]; + btc_chem_fnc_damageLoop = compileScript ["core\fnc\chem\damageLoop.sqf"]; + btc_chem_fnc_ehDetector = compileScript ["core\fnc\chem\ehDetector.sqf"]; + btc_chem_fnc_updateDetector = compileScript ["core\fnc\chem\updateDetector.sqf"]; //DEBUG - btc_fnc_debug_marker = compileScript ["core\fnc\debug\marker.sqf"]; - btc_fnc_debug_units = compileScript ["core\fnc\debug\units.sqf"]; - btc_fnc_debug_fps = compileScript ["core\fnc\debug\fps.sqf"]; - btc_fnc_debug_graph = compileScript ["core\fnc\debug\graph.sqf"]; + btc_debug_fnc_marker = compileScript ["core\fnc\debug\marker.sqf"]; + btc_debug_fnc_units = compileScript ["core\fnc\debug\units.sqf"]; + btc_debug_fnc_fps = compileScript ["core\fnc\debug\fps.sqf"]; + btc_debug_fnc_graph = compileScript ["core\fnc\debug\graph.sqf"]; //CIV - btc_fnc_civ_add_leaflets = compileScript ["core\fnc\civ\add_leaflets.sqf"]; - btc_fnc_civ_leaflets = compileScript ["core\fnc\civ\leaflets.sqf"]; + btc_civ_fnc_add_leaflets = compileScript ["core\fnc\civ\add_leaflets.sqf"]; + btc_civ_fnc_leaflets = compileScript ["core\fnc\civ\leaflets.sqf"]; //IED - btc_fnc_ied_effects = compileScript ["core\fnc\ied\effects.sqf"]; - btc_fnc_ied_effect_smoke = compileScript ["core\fnc\ied\effect_smoke.sqf"]; - btc_fnc_ied_effect_color_smoke = compileScript ["core\fnc\ied\effect_color_smoke.sqf"]; - btc_fnc_ied_effect_rocks = compileScript ["core\fnc\ied\effect_rocks.sqf"]; - btc_fnc_ied_effect_blurEffect = compileScript ["core\fnc\ied\effect_blurEffect.sqf"]; - btc_fnc_ied_effect_shock_wave = compileScript ["core\fnc\ied\effect_shock_wave.sqf"]; - btc_fnc_ied_deleteLoop = compileScript ["core\fnc\ied\deleteLoop.sqf"]; + btc_ied_fnc_effects = compileScript ["core\fnc\ied\effects.sqf"]; + btc_ied_fnc_effect_smoke = compileScript ["core\fnc\ied\effect_smoke.sqf"]; + btc_ied_fnc_effect_color_smoke = compileScript ["core\fnc\ied\effect_color_smoke.sqf"]; + btc_ied_fnc_effect_rocks = compileScript ["core\fnc\ied\effect_rocks.sqf"]; + btc_ied_fnc_effect_blurEffect = compileScript ["core\fnc\ied\effect_blurEffect.sqf"]; + btc_ied_fnc_effect_shock_wave = compileScript ["core\fnc\ied\effect_shock_wave.sqf"]; + btc_ied_fnc_deleteLoop = compileScript ["core\fnc\ied\deleteLoop.sqf"]; //EH - btc_fnc_eh_CuratorObjectPlaced = compileScript ["core\fnc\eh\CuratorObjectPlaced.sqf"]; - btc_fnc_eh_player = compileScript ["core\fnc\eh\player.sqf"]; + btc_eh_fnc_CuratorObjectPlaced = compileScript ["core\fnc\eh\CuratorObjectPlaced.sqf"]; + btc_eh_fnc_player = compileScript ["core\fnc\eh\player.sqf"]; //FOB - btc_fnc_fob_create = compileScript ["core\fnc\fob\create.sqf"]; - btc_fnc_fob_rallypointAssemble = compileScript ["core\fnc\fob\rallypointAssemble.sqf"]; - btc_fnc_fob_redeploy = compileScript ["core\fnc\fob\redeploy.sqf"]; - btc_fnc_fob_redeployCheck = compileScript ["core\fnc\fob\redeployCheck.sqf"]; + btc_fob_fnc_create = compileScript ["core\fnc\fob\create.sqf"]; + btc_fob_fnc_rallypointAssemble = compileScript ["core\fnc\fob\rallypointAssemble.sqf"]; + btc_fob_fnc_redeploy = compileScript ["core\fnc\fob\redeploy.sqf"]; + btc_fob_fnc_redeployCheck = compileScript ["core\fnc\fob\redeployCheck.sqf"]; //INT - btc_fnc_int_add_actions = compileScript ["core\fnc\int\add_actions.sqf"]; - btc_fnc_int_orders = compileScript ["core\fnc\int\orders.sqf"]; - btc_fnc_int_shortcuts = compileScript ["core\fnc\int\shortcuts.sqf"]; - btc_fnc_int_terminal = compileScript ["core\fnc\int\terminal.sqf"]; + btc_int_fnc_add_actions = compileScript ["core\fnc\int\add_actions.sqf"]; + btc_int_fnc_orders = compileScript ["core\fnc\int\orders.sqf"]; + btc_int_fnc_shortcuts = compileScript ["core\fnc\int\shortcuts.sqf"]; + btc_int_fnc_terminal = compileScript ["core\fnc\int\terminal.sqf"]; //INFO - btc_fnc_info_ask = compileScript ["core\fnc\info\ask.sqf"]; - btc_fnc_info_hideout_asked = compileScript ["core\fnc\info\hideout_asked.sqf"]; - btc_fnc_info_search_for_intel = compileScript ["core\fnc\info\search_for_intel.sqf"]; - btc_fnc_info_troops = compileScript ["core\fnc\info\troops.sqf"]; - btc_fnc_info_ask_reputation = compileScript ["core\fnc\info\ask_reputation.sqf"]; - btc_fnc_info_cachePicture = compileScript ["core\fnc\info\cachePicture.sqf"]; + btc_info_fnc_ask = compileScript ["core\fnc\info\ask.sqf"]; + btc_info_fnc_hideout_asked = compileScript ["core\fnc\info\hideout_asked.sqf"]; + btc_info_fnc_search_for_intel = compileScript ["core\fnc\info\search_for_intel.sqf"]; + btc_info_fnc_troops = compileScript ["core\fnc\info\troops.sqf"]; + btc_info_fnc_ask_reputation = compileScript ["core\fnc\info\ask_reputation.sqf"]; + btc_info_fnc_cachePicture = compileScript ["core\fnc\info\cachePicture.sqf"]; //LIFT - btc_fnc_lift_check = compileScript ["core\fnc\lift\check.sqf"]; - btc_fnc_lift_deployRopes = compileScript ["core\fnc\lift\deployRopes.sqf"]; - btc_fnc_lift_destroyRopes = compileScript ["core\fnc\lift\destroyRopes.sqf"]; - btc_fnc_lift_hook = compileScript ["core\fnc\lift\hook.sqf"]; - btc_fnc_lift_hookFake = compileScript ["core\fnc\lift\hookFake.sqf"]; - btc_fnc_lift_hud = compileScript ["core\fnc\lift\hud.sqf"]; - btc_fnc_lift_hudLoop = compileScript ["core\fnc\lift\hudLoop.sqf"]; + btc_lift_fnc_check = compileScript ["core\fnc\lift\check.sqf"]; + btc_lift_fnc_deployRopes = compileScript ["core\fnc\lift\deployRopes.sqf"]; + btc_lift_fnc_destroyRopes = compileScript ["core\fnc\lift\destroyRopes.sqf"]; + btc_lift_fnc_hook = compileScript ["core\fnc\lift\hook.sqf"]; + btc_lift_fnc_hookFake = compileScript ["core\fnc\lift\hookFake.sqf"]; + btc_lift_fnc_hud = compileScript ["core\fnc\lift\hud.sqf"]; + btc_lift_fnc_hudLoop = compileScript ["core\fnc\lift\hudLoop.sqf"]; //LOG - btc_fnc_log_get_corner_points = compileScript ["core\fnc\log\get_corner_points.sqf"]; - btc_fnc_log_delete = compileScript ["core\fnc\log\delete.sqf"]; - btc_fnc_log_create = compileScript ["core\fnc\log\create.sqf"]; - btc_fnc_log_create_apply = compileScript ["core\fnc\log\create_apply.sqf"]; - btc_fnc_log_create_load = compileScript ["core\fnc\log\create_load.sqf"]; - btc_fnc_log_create_change_target = compileScript ["core\fnc\log\create_change_target.sqf"]; - btc_fnc_log_place_create_camera = compileScript ["core\fnc\log\place_create_camera.sqf"]; - btc_fnc_log_place = compileScript ["core\fnc\log\place.sqf"]; - btc_fnc_log_place_key_down = compileScript ["core\fnc\log\place_key_down.sqf"]; - btc_fnc_log_repair_wreck = compileScript ["core\fnc\log\repair_wreck.sqf"]; - btc_fnc_log_copy = compileScript ["core\fnc\log\copy.sqf"]; - btc_fnc_log_paste = compileScript ["core\fnc\log\paste.sqf"]; - btc_fnc_log_refuelSource = compileScript ["core\fnc\log\refuelSource.sqf"]; + btc_log_fnc_get_corner_points = compileScript ["core\fnc\log\get_corner_points.sqf"]; + btc_log_fnc_delete = compileScript ["core\fnc\log\delete.sqf"]; + btc_log_fnc_create = compileScript ["core\fnc\log\create.sqf"]; + btc_log_fnc_create_apply = compileScript ["core\fnc\log\create_apply.sqf"]; + btc_log_fnc_create_load = compileScript ["core\fnc\log\create_load.sqf"]; + btc_log_fnc_create_change_target = compileScript ["core\fnc\log\create_change_target.sqf"]; + btc_log_fnc_place_create_camera = compileScript ["core\fnc\log\place_create_camera.sqf"]; + btc_log_fnc_place = compileScript ["core\fnc\log\place.sqf"]; + btc_log_fnc_place_key_down = compileScript ["core\fnc\log\place_key_down.sqf"]; + btc_log_fnc_repair_wreck = compileScript ["core\fnc\log\repair_wreck.sqf"]; + btc_log_fnc_copy = compileScript ["core\fnc\log\copy.sqf"]; + btc_log_fnc_paste = compileScript ["core\fnc\log\paste.sqf"]; + btc_log_fnc_refuelSource = compileScript ["core\fnc\log\refuelSource.sqf"]; //REP - btc_fnc_rep_treatment = compileScript ["core\fnc\rep\treatment.sqf"]; + btc_rep_fnc_treatment = compileScript ["core\fnc\rep\treatment.sqf"]; //SPECT - btc_fnc_spect_updateDevice = compileScript ["core\fnc\spect\updateDevice.sqf"]; - btc_fnc_spect_frequencies = compileScript ["core\fnc\spect\frequencies.sqf"]; - btc_fnc_spect_disableDevice = compileScript ["core\fnc\spect\disableDevice.sqf"]; + btc_spect_fnc_updateDevice = compileScript ["core\fnc\spect\updateDevice.sqf"]; + btc_spect_fnc_frequencies = compileScript ["core\fnc\spect\frequencies.sqf"]; + btc_spect_fnc_disableDevice = compileScript ["core\fnc\spect\disableDevice.sqf"]; //ARSENAL - btc_fnc_arsenal_data = compileScript ["core\fnc\arsenal\data.sqf"]; - btc_fnc_arsenal_garage = compileScript ["core\fnc\arsenal\garage.sqf"]; - btc_fnc_arsenal_loadout = compileScript ["core\fnc\arsenal\loadout.sqf"]; - btc_fnc_arsenal_trait = compileScript ["core\fnc\arsenal\trait.sqf"]; - btc_fnc_arsenal_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; - btc_fnc_arsenal_weaponsFilter = compileScript ["core\fnc\arsenal\weaponsfilter.sqf"]; + btc_arsenal_fnc_data = compileScript ["core\fnc\arsenal\data.sqf"]; + btc_arsenal_fnc_garage = compileScript ["core\fnc\arsenal\garage.sqf"]; + btc_arsenal_fnc_loadout = compileScript ["core\fnc\arsenal\loadout.sqf"]; + btc_arsenal_fnc_trait = compileScript ["core\fnc\arsenal\trait.sqf"]; + btc_arsenal_fnc_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; + btc_arsenal_fnc_weaponsFilter = compileScript ["core\fnc\arsenal\weaponsfilter.sqf"]; //TASK - btc_fnc_task_setDescription = compileScript ["core\fnc\task\setDescription.sqf"]; - btc_fnc_task_abort = compileScript ["core\fnc\task\abort.sqf"]; + btc_task_fnc_setDescription = compileScript ["core\fnc\task\setDescription.sqf"]; + btc_task_fnc_abort = compileScript ["core\fnc\task\abort.sqf"]; //TOW - btc_fnc_tow_ropeCreate = compileScript ["core\fnc\tow\ropeCreate.sqf"]; - btc_fnc_tow_hitch_points = compileScript ["core\fnc\tow\hitch_points.sqf"]; - btc_fnc_tow_unhook = compileScript ["core\fnc\tow\unhook.sqf"]; - btc_fnc_tow_check = compileScript ["core\fnc\tow\check.sqf"]; + btc_tow_fnc_ropeCreate = compileScript ["core\fnc\tow\ropeCreate.sqf"]; + btc_tow_fnc_hitch_points = compileScript ["core\fnc\tow\hitch_points.sqf"]; + btc_tow_fnc_unhook = compileScript ["core\fnc\tow\unhook.sqf"]; + btc_tow_fnc_check = compileScript ["core\fnc\tow\check.sqf"]; }; /////////////////////HEADLESS\\\\\\\\\\\\\\\\\\\\\ if (!hasInterface && !isDedicated) then { - btc_fnc_eh_headless = compileScript ["core\fnc\eh\headless.sqf"]; + btc_eh_fnc_headless = compileScript ["core\fnc\eh\headless.sqf"]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf index 0eda468d5..d86b51f18 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf @@ -1,10 +1,10 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_data_add_group +Function: btc_data_fnc_add_group Description: If player is around: initiate patrol around the destination, - Ifnot: save in database and delete units by calling btc_fnc_data_get_group. + Ifnot: save in database and delete units by calling btc_data_fnc_get_group. Parameters: _group - Group of units. [Group] @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_data_add_group; + _result = [] call btc_data_fnc_add_group; (end) Author: @@ -26,7 +26,7 @@ params [ ]; if (btc_debug_log) then { - [format ["%1", _group], __FILE__, [false]] call btc_fnc_debug_message; + [format ["%1", _group], __FILE__, [false]] call btc_debug_fnc_message; }; _group setVariable ["no_cache", nil]; [_group] call CBA_fnc_clearWaypoints; @@ -50,18 +50,18 @@ private _wp = if (vehicle leader _group isEqualTo leader _group) then { }; }; -[_group, _city, 200, _wp] call btc_fnc_mil_addWP; +[_group, _city, 200, _wp] call btc_mil_fnc_addWP; if (_city getVariable ["active", false]) then { _group setVariable ["btc_city", _city]; } else { private _data_units = _city getVariable ["data_units", []]; - private _data_group = _group call btc_fnc_data_get_group; + private _data_group = _group call btc_data_fnc_get_group; _data_units pushBack _data_group; _city setVariable ["data_units", _data_units]; if (btc_debug_log) then { - [format ["PUSHBACK = %1", _data_group], __FILE__, [false]] call btc_fnc_debug_message; + [format ["PUSHBACK = %1", _data_group], __FILE__, [false]] call btc_debug_fnc_message; }; }; @@ -69,5 +69,5 @@ if (btc_final_phase) then { btc_city_remaining pushBack _city; }; if (btc_debug_log) then { - [format ["END = %1", []], __FILE__, [false]] call btc_fnc_debug_message; + [format ["END = %1", []], __FILE__, [false]] call btc_debug_fnc_message; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/get_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/get_group.sqf index ac1ccc04d..d95da4362 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/get_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/get_group.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_data_get_group +Function: btc_data_fnc_get_group Description: Get groups parameters (position, waypoints, behaviour ...), save them and delete. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_data_get_group; + _result = [] call btc_data_fnc_get_group; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf index 456aaf382..6d063c20c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf @@ -1,9 +1,9 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_data_spawn_group +Function: btc_data_fnc_spawn_group Description: - Create group previously saved by btc_fnc_data_get_group. + Create group previously saved by btc_data_fnc_get_group. Parameters: _data_unit - All data listed above. [Array] @@ -22,7 +22,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_data_spawn_group; + _result = [] call btc_data_fnc_spawn_group; (end) Author: @@ -47,11 +47,11 @@ _data_unit params [ private _delay = 0; if (_type isEqualTo 5) exitWith { - [_city, 100, _array_pos select 0, _array_type select 0] call btc_fnc_ied_suicider_create; + [_city, 100, _array_pos select 0, _array_type select 0] call btc_ied_fnc_suicider_create; _delay }; if (_type isEqualTo 7) exitWith { - [_city, 100, _array_pos select 0] call btc_fnc_ied_drone_create; + [_city, 100, _array_pos select 0] call btc_ied_fnc_drone_create; _delay }; @@ -59,10 +59,10 @@ private _group = createGroup _side; _group setVariable ["btc_city", _city]; if (_type isEqualTo 1) then { _array_veh params ["_typeOf", "_posATL", "_dir", "_fuel", ["_vectorUp", []]]; - _delay = [_group, _typeOf, _array_type, _posATL, _dir, _fuel, _vectorUp] call btc_fnc_delay_createVehicle; + _delay = [_group, _typeOf, _array_type, _posATL, _dir, _fuel, _vectorUp] call btc_delay_fnc_createVehicle; } else { for "_i" from 0 to (count _array_pos - 1) do { - [_group, _array_type select _i, _array_pos select _i, "CAN_COLLIDE"] call btc_fnc_delay_createUnit; + [_group, _array_type select _i, _array_pos select _i, "CAN_COLLIDE"] call btc_delay_fnc_createUnit; //_u setDamage (_array_dam select _i); }; }; @@ -103,9 +103,9 @@ if (_type isEqualTo 1) then { [_group, nearestObject [_array_pos select 0, _array_veh]] call btc_fnc_house_addWP; _group setVariable ["btc_inHouse", _array_veh]; }; - if (_type isEqualTo 4) then {[[0, 0, 0], 0, units _group] call btc_fnc_civ_get_weapons;}; + if (_type isEqualTo 4) then {[[0, 0, 0], 0, units _group] call btc_civ_fnc_get_weapons;}; if (_type isEqualTo 6) then { - [_group, _array_veh select 0] call btc_fnc_civ_addWP; + [_group, _array_veh select 0] call btc_civ_fnc_addWP; _group setVariable ["btc_data_inhouse", _array_veh]; }; }, [_data_unit, _group], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index 8a10b5bc2..76a97aac9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_db_add_veh +Function: btc_db_fnc_add_veh Description: Add vehicle to the wreck system. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_db_add_veh; + [cursorObject] call btc_db_fnc_add_veh; (end) Author: @@ -25,7 +25,7 @@ params [ ]; if !(isServer) exitWith { - _veh remoteExecCall ["btc_fnc_db_add_veh", 2]; + _veh remoteExecCall ["btc_db_fnc_add_veh", 2]; }; btc_vehicles pushBackUnique _veh; @@ -36,7 +36,7 @@ _veh addMPEventHandler ["MPKilled", { {_unit getVariable ["btc_killed", true]} // https://feedback.bistudio.com/T149510 ) then { _unit setVariable ["btc_killed", false]; - _this call btc_fnc_veh_killed; + _this call btc_veh_fnc_killed; }; }]; if ((isNumber (configOf _veh >> "ace_fastroping_enabled")) && (typeOf _veh isNotEqualTo "RHS_UH1Y_d")) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/autoRestart.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/autoRestart.sqf index b751ed506..93bd7c5c4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/autoRestart.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/autoRestart.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_db_autoRestart +Function: btc_db_fnc_autoRestart Description: Save or not and restart/shutdown server. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [4] call btc_fnc_db_autoRestart; + [4] call btc_db_fnc_autoRestart; (end) Author: @@ -35,9 +35,9 @@ private _serverCommand = if (_p_autoRestart in [1, 3]) then { }; if (_p_autoRestart > 2) then { - [] call btc_fnc_db_save; + [] call btc_db_fnc_save; }; if !(_serverCommandPassword serverCommand _serverCommand) then { - ["Invalid password", __FILE__, [true, true, true]] call btc_fnc_debug_message; + ["Invalid password", __FILE__, [true, true, true]] call btc_debug_fnc_message; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf index f24090f01..7918c241b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_db_delete +Function: btc_db_fnc_delete Description: Delete database. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_db_delete; + [] call btc_db_fnc_delete; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 2726192fa..d3cafb76d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_db_load +Function: btc_db_fnc_load Description: Load database from profileNamespace depends one worldname @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - ["Altis"] call btc_fnc_db_load; + ["Altis"] call btc_db_fnc_load; (end) Author: @@ -60,8 +60,8 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi _marker setMarkerText format ["loc_%3 %1 %2 - [%4]", _city getVariable "name", _city getVariable "type", _id, _occupied]; }; if (btc_debug_log) then { - [format ["ID: %1 - IsOccupied %2", _id, _occupied], __FILE__, [false]] call btc_fnc_debug_message; - [format ["data_city: %1", _x], __FILE__, [false]] call btc_fnc_debug_message; + [format ["ID: %1 - IsOccupied %2", _id, _occupied], __FILE__, [false]] call btc_debug_fnc_message; + [format ["data_city: %1", _x], __FILE__, [false]] call btc_debug_fnc_message; }; } forEach _cities_status; @@ -69,7 +69,7 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi private _array_ho = +(profileNamespace getVariable [format ["btc_hm_%1_ho", _name], []]); { - _x call btc_fnc_hideout_create; + _x call btc_hideout_fnc_create; } forEach _array_ho; private _ho = profileNamespace getVariable [format ["btc_hm_%1_ho_sel", _name], 0]; @@ -93,14 +93,14 @@ btc_cache_pos = _cache_pos; btc_cache_n = _cache_n; btc_cache_info = _cache_info; -[_cache_pos, btc_p_chem, [1, 0] select _isChem] call btc_fnc_cache_create; +[_cache_pos, btc_p_chem, [1, 0] select _isChem] call btc_cache_fnc_create; btc_cache_obj setVariable ["btc_cache_unitsSpawned", _cache_unitsSpawned]; btc_cache_markers = []; { _x params ["_pos", "_marker_name"]; - [_pos, 0, _marker_name] call btc_fnc_info_cacheMarker; + [_pos, 0, _marker_name] call btc_info_fnc_cacheMarker; } forEach _cache_markers; btc_cache_pictures = _cache_pictures; @@ -109,7 +109,7 @@ btc_cache_pictures = _cache_pictures; _x, btc_cache_n, btc_cache_pictures select 1 select _forEachindex - ] remoteExecCall ["btc_fnc_info_cachePicture", [0, -2] select isDedicated, true]); + ] remoteExecCall ["btc_info_fnc_cachePicture", [0, -2] select isDedicated, true]); } forEach (btc_cache_pictures select 0); //FOB @@ -118,7 +118,7 @@ private _fobs = +(profileNamespace getVariable [format ["btc_hm_%1_fobs", _name] { _x params ["_fob_name", "_pos", ["_direction", 0, [0]]]; - [_pos, _direction, _fob_name] call btc_fnc_fob_create_s; + [_pos, _direction, _fob_name] call btc_fob_fnc_create_s; } forEach _fobs; //REP @@ -130,7 +130,7 @@ btc_vehicles = []; private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]); { - [_x] call btc_fnc_db_loadObjectStatus; + [_x] call btc_db_fnc_loadObjectStatus; } forEach _objs; //VEHICLES @@ -158,22 +158,22 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] ]; if (btc_debug_log) then { - [format ["_veh = %1", _x], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_veh = %1", _x], __FILE__, [false]] call btc_debug_fnc_message; }; - private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory, _veh_AllHitPointsDamage] call btc_fnc_log_createVehicle; + private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory, _veh_AllHitPointsDamage] call btc_log_fnc_createVehicle; _veh setVectorDirAndUp _vectorPos; _veh setFuel _veh_fuel; - [_veh, _veh_cargo, _veh_cont] call btc_fnc_db_loadCargo; + [_veh, _veh_cargo, _veh_cont] call btc_db_fnc_loadCargo; if !(alive _veh) then { - [_veh, objNull, objNull, false] call btc_fnc_veh_killed; + [_veh, objNull, objNull, false] call btc_veh_fnc_killed; }; if (_ViV isNotEqualTo []) then { { private _vehToLoad = _x call _loadVehicle; - if !([_vehToLoad, _veh] call btc_fnc_tow_ViV) then { + if !([_vehToLoad, _veh] call btc_tow_fnc_ViV) then { _vehToLoad setVehiclePosition [_veh, [], 100, "NONE"]; private _marker = _vehToLoad getVariable ["marker", ""]; if (_marker isNotEqualTo "") then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index c6e1d8ea8..e41689a1b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_db_loadObjectStatus +Function: btc_db_fnc_loadObjectStatus Description: Load object status like ACE cargo, inventory and position. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_db_loadObjectStatus; + _result = [] call btc_db_fnc_loadObjectStatus; (end) Author: @@ -50,5 +50,5 @@ if (unitIsUAV _obj) then { createVehicleCrew _obj; }; -[_obj] call btc_fnc_log_init; -[_obj, _cargo, _inventory] call btc_fnc_db_loadCargo; +[_obj] call btc_log_fnc_init; +[_obj, _cargo, _inventory] call btc_db_fnc_loadCargo; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 0d9e6a296..04e8e0b55 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_db_load_old +Function: btc_db_fnc_load_old Description: Load older database version thanks to profileNamespace getVariable [format ["btc_hm_%1_version", worldName], 1.13]. @@ -58,8 +58,8 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi _marker setMarkerText format ["loc_%3 %1 %2 - [%4]", _city getVariable "name", _city getVariable "type", _id, _occupied]; }; if (btc_debug_log) then { - [format ["ID: %1 - IsOccupied %2", _id, _occupied], __FILE__, [false]] call btc_fnc_debug_message; - [format ["data_city: %1", _x], __FILE__, [false]] call btc_fnc_debug_message; + [format ["ID: %1 - IsOccupied %2", _id, _occupied], __FILE__, [false]] call btc_debug_fnc_message; + [format ["data_city: %1", _x], __FILE__, [false]] call btc_debug_fnc_message; }; } forEach _cities_status; @@ -67,7 +67,7 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi private _array_ho = +(profileNamespace getVariable [format ["btc_hm_%1_ho", _name], []]); { - _x call btc_fnc_hideout_create; + _x call btc_hideout_fnc_create; } forEach _array_ho; private _ho = profileNamespace getVariable [format ["btc_hm_%1_ho_sel", _name], 0]; @@ -91,14 +91,14 @@ btc_cache_pos = _cache_pos; btc_cache_n = _cache_n; btc_cache_info = _cache_info; -[_cache_pos, btc_p_chem, [1, 0] select _isChem] call btc_fnc_cache_create; +[_cache_pos, btc_p_chem, [1, 0] select _isChem] call btc_cache_fnc_create; btc_cache_obj setVariable ["btc_cache_unitsSpawned", _cache_unitsSpawned]; btc_cache_markers = []; { _x params ["_pos", "_marker_name"]; - [_pos, 0, _marker_name] call btc_fnc_info_cacheMarker; + [_pos, 0, _marker_name] call btc_info_fnc_cacheMarker; } forEach _cache_markers; btc_cache_pictures = _cache_pictures; @@ -107,7 +107,7 @@ btc_cache_pictures = _cache_pictures; _x, btc_cache_n, btc_cache_pictures select 1 select _forEachindex - ] remoteExecCall ["btc_fnc_info_cachePicture", [0, -2] select isDedicated, true]); + ] remoteExecCall ["btc_info_fnc_cachePicture", [0, -2] select isDedicated, true]); } forEach (btc_cache_pictures select 0); //FOB @@ -116,7 +116,7 @@ private _fobs = +(profileNamespace getVariable [format ["btc_hm_%1_fobs", _name] { _x params ["_fob_name", "_pos", ["_direction", 0, [0]]]; - [_pos, _direction, _fob_name] call btc_fnc_fob_create_s; + [_pos, _direction, _fob_name] call btc_fob_fnc_create_s; } forEach _fobs; //REP @@ -128,7 +128,7 @@ btc_vehicles = []; private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]); { - [_x] call btc_fnc_db_loadObjectStatus; + [_x] call btc_db_fnc_loadObjectStatus; } forEach _objs; //VEHICLES @@ -156,22 +156,22 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] ]; if (btc_debug_log) then { - [format ["_veh = %1", _x], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_veh = %1", _x], __FILE__, [false]] call btc_debug_fnc_message; }; - private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory, _veh_AllHitPointsDamage] call btc_fnc_log_createVehicle; + private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory, _veh_AllHitPointsDamage] call btc_log_fnc_createVehicle; _veh setVectorDirAndUp _vectorPos; _veh setFuel _veh_fuel; - [_veh, _veh_cargo, _veh_cont] call btc_fnc_db_loadCargo; + [_veh, _veh_cargo, _veh_cont] call btc_db_fnc_loadCargo; if !(alive _veh) then { - [_veh, objNull, objNull, false] call btc_fnc_veh_killed; + [_veh, objNull, objNull, false] call btc_veh_fnc_killed; }; if !(_ViV isEqualTo []) then { { private _vehToLoad = _x call _loadVehicle; - if !([_vehToLoad, _veh] call btc_fnc_tow_ViV) then { + if !([_vehToLoad, _veh] call btc_tow_fnc_ViV) then { _vehToLoad setVehiclePosition [_veh, [], 100, "NONE"]; private _marker = _vehToLoad getVariable ["marker", ""]; if !(_marker isEqualTo "") then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index d0b049754..e4afbd0e2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_db_loadCargo +Function: btc_db_fnc_loadCargo Description: Load ACE cargo and inventory of a vehicle/container. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_db_loadCargo; + _result = [] call btc_db_fnc_loadCargo; (end) Author: @@ -30,17 +30,17 @@ Author: _x params ["_type", "_magClass", "_cargo_obj", ["_isContaminated", false, [false]]]; private _l = createVehicle [_type, getPosATL _obj, [], 0, "CAN_COLLIDE"]; - [_l] call btc_fnc_log_init; + [_l] call btc_log_fnc_init; private _isloaded = [_l, _obj, false] call ace_cargo_fnc_loadItem; if (btc_debug_log) then { - [format ["Object loaded: %1 in veh/container %2 IsLoaded: %3", _l, _obj, _isloaded], __FILE__, [false]] call btc_fnc_debug_message; + [format ["Object loaded: %1 in veh/container %2 IsLoaded: %3", _l, _obj, _isloaded], __FILE__, [false]] call btc_debug_fnc_message; }; if (_magClass != "") then { _l setVariable ["ace_rearm_magazineClass", _magClass, true] }; - [_l, _cargo_obj] call btc_fnc_log_setCargo; + [_l, _cargo_obj] call btc_log_fnc_setCargo; if (_isContaminated) then { btc_chem_contaminated pushBack _l; @@ -49,5 +49,5 @@ Author: } forEach _cargo; //set inventory content for weapons, magazines and items - [_obj, _inventory] call btc_fnc_log_setCargo; + [_obj, _inventory] call btc_log_fnc_setCargo; }, _this, 0.1] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 8a9496caf..e2ae6ca36 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_db_save +Function: btc_db_fnc_save Description: Save the current game into profileNamespace. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_db_save; + [] call btc_db_fnc_save; (end) Author: @@ -25,12 +25,12 @@ params [ ]; if (btc_debug) then { - ["...1", __FILE__, [btc_debug, false, true]] call btc_fnc_debug_message; + ["...1", __FILE__, [btc_debug, false, true]] call btc_debug_fnc_message; }; [8] remoteExecCall ["btc_fnc_show_hint", 0]; -[false] call btc_fnc_db_delete; +[false] call btc_db_fnc_delete; //Version profileNamespace setVariable [format ["btc_hm_%1_version", _name], btc_version select 1]; @@ -61,7 +61,7 @@ private _cities_status = []; _cities_status pushBack _city_status; if (btc_debug_log) then { - [format ["ID %1 - IsOccupied %2", _x getVariable "id", _x getVariable "occupied"], __FILE__, [false]] call btc_fnc_debug_message; + [format ["ID %1 - IsOccupied %2", _x getVariable "id", _x getVariable "occupied"], __FILE__, [false]] call btc_debug_fnc_message; }; } forEach (btc_city_all select {!(isNull _x)}); profileNamespace setVariable [format ["btc_hm_%1_cities", _name], +_cities_status]; @@ -86,7 +86,7 @@ private _array_ho = []; } forEach (_x getVariable ["markers", []]); _data pushBack _ho_markers; if (btc_debug_log) then { - [format ["HO %1 DATA %2", _x, _data], __FILE__, [false]] call btc_fnc_debug_message; + [format ["HO %1 DATA %2", _x, _data], __FILE__, [false]] call btc_debug_fnc_message; }; _array_ho pushBack _data; } forEach btc_hideouts; @@ -95,7 +95,7 @@ profileNamespace setVariable [format ["btc_hm_%1_ho", _name], +_array_ho]; profileNamespace setVariable [format ["btc_hm_%1_ho_sel", _name], btc_hq getVariable ["id", 0]]; if (btc_debug) then { - ["...2", __FILE__, [btc_debug, false, true]] call btc_fnc_debug_message; + ["...2", __FILE__, [btc_debug, false, true]] call btc_debug_fnc_message; }; //CACHE @@ -178,7 +178,7 @@ private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; }; if (btc_debug_log) then { - [format ["VEH %1 DATA %2", _x, _data], __FILE__, [false]] call btc_fnc_debug_message; + [format ["VEH %1 DATA %2", _x, _data], __FILE__, [false]] call btc_debug_fnc_message; }; } forEach (_vehiclesNotInCargo + _vehiclesInCargo); profileNamespace setVariable [format ["btc_hm_%1_vehs", _name], +_array_veh]; @@ -186,7 +186,7 @@ profileNamespace setVariable [format ["btc_hm_%1_vehs", _name], +_array_veh]; //Objects status private _array_obj = []; { - private _data = [_x] call btc_fnc_db_saveObjectStatus; + private _data = [_x] call btc_db_fnc_saveObjectStatus; if (_data isNotEqualTo []) then { _array_obj pushBack _data; }; @@ -222,6 +222,6 @@ profileNamespace setVariable [format ["btc_hm_%1_markers", _name], +_markers_pro profileNamespace setVariable [format ["btc_hm_%1_db", _name], true]; saveProfileNamespace; if (btc_debug) then { - ["...3", __FILE__, [btc_debug, false, true]] call btc_fnc_debug_message; + ["...3", __FILE__, [btc_debug, false, true]] call btc_debug_fnc_message; }; [9] remoteExecCall ["btc_fnc_show_hint", 0]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 898ff8d5e..d7a5c8b48 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_db_saveObjectStatus +Function: btc_db_fnc_saveObjectStatus Description: Save all data from an object like position, ACE cargo, inventory ... @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_db_saveObjectStatus; + [cursorObject] call btc_db_fnc_saveObjectStatus; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/deaf/earringing.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/deaf/earringing.sqf index b13235541..bcdd614fd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/deaf/earringing.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/deaf/earringing.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_deaf_earringing +Function: btc_deaf_fnc_earringing Description: Create earringing to all player in a radius of 100m. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [getPos (allPlayers select 0)] call btc_fnc_deaf_earringing; + [getPos (allPlayers select 0)] call btc_deaf_fnc_earringing; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/dlg.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/dlg.hpp index 0f6488821..9a25a3f7f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/dlg.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/dlg.hpp @@ -2,7 +2,7 @@ class TER_fpscounter { idd = 73001; duration = 1e+1000; - onLoad = "_this call btc_fnc_debug_graph;"; + onLoad = "_this call btc_debug_fnc_graph;"; class controls { class IGUIBack_2200: IGUIBack diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/fps.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/fps.sqf index 3927fe134..c174a0e06 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/fps.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/fps.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_debug_fps +Function: btc_debug_fnc_fps Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_debug_fps; + _result = [] call btc_debug_fnc_fps; (end) Author: @@ -32,7 +32,7 @@ if (isNull _display || !btc_debug_graph) exitWith { _display closeDisplay 1; }; -[11, objNull, "btc_debug_frames"] remoteExecCall ["btc_fnc_int_ask_var", 2]; +[11, objNull, "btc_debug_frames"] remoteExecCall ["btc_int_fnc_ask_var", 2]; private _frames = btc_debug_frames; _TXTfps ctrlSetText format ["SERVER FPS: %1", _frames]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/graph.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/graph.sqf index 49ddd1719..1dc0e058f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/graph.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/graph.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_debug_graph +Function: btc_debug_fnc_graph Description: https://forums.bohemia.net/forums/topic/204157-display-graph-in-dialog/ @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_debug_graph; + _result = [] call btc_debug_fnc_graph; (end) Author: @@ -34,6 +34,6 @@ private _maxFps = 60; private _maxWidth = ctrlPosition _GRPframes select 2; private _width = _maxWidth/300; -[btc_fnc_debug_fps, [0.5, 0.1] select (isServer), [_display, _maxFps, _maxWidth, _width, _barArray, _GRPframes, _TXTfps]] call CBA_fnc_addPerFrameHandler; +[btc_debug_fnc_fps, [0.5, 0.1] select (isServer), [_display, _maxFps, _maxWidth, _width, _barArray, _GRPframes, _TXTfps]] call CBA_fnc_addPerFrameHandler; -[btc_fnc_debug_units, 1, [_display, _TXTunits]] call CBA_fnc_addPerFrameHandler; +[btc_debug_fnc_units, 1, [_display, _TXTunits]] call CBA_fnc_addPerFrameHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf index 841b46ca9..50ab28525 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/marker.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_debug_marker +Function: btc_debug_fnc_marker Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_debug_marker; + _result = [] call btc_debug_fnc_marker; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/message.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/message.sqf index f588e5da6..b59c6f65a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/message.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/message.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_debug_message +Function: btc_debug_fnc_message Description: Fill me when you edit me ! @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_debug_message; + _result = [] call btc_debug_fnc_message; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/units.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/units.sqf index d03606344..71ab756d3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/units.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/units.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_debug_units +Function: btc_debug_fnc_units Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_debug_units; + _result = [] call btc_debug_fnc_units; (end) Author: @@ -32,10 +32,10 @@ if (isNull _display || !btc_debug_graph) exitWith { _display closeDisplay 1; }; -[10, objNull, "btc_units_owners"] remoteExecCall ["btc_fnc_int_ask_var", 2]; -["btc_patrol_active", objNull, "btc_patrol_active"] remoteExecCall ["btc_fnc_int_ask_var", 2]; -["btc_civ_veh_active", objNull, "btc_civ_veh_active"] remoteExecCall ["btc_fnc_int_ask_var", 2]; -["btc_delay_createUnit", objNull, "btc_delay_createUnitDebug"] remoteExecCall ["btc_fnc_int_ask_var", 2]; +[10, objNull, "btc_units_owners"] remoteExecCall ["btc_int_fnc_ask_var", 2]; +["btc_patrol_active", objNull, "btc_patrol_active"] remoteExecCall ["btc_int_fnc_ask_var", 2]; +["btc_civ_veh_active", objNull, "btc_civ_veh_active"] remoteExecCall ["btc_int_fnc_ask_var", 2]; +["btc_delay_createUnit", objNull, "btc_delay_createUnitDebug"] remoteExecCall ["btc_int_fnc_ask_var", 2]; private _count_units = {(_x select 0) isKindOf "man"} count btc_units_owners; private _count_units_own = {((_x select 1) isEqualTo 2) && ((_x select 0) isKindOf "man")} count btc_units_owners; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf index c5cb1f128..1c54b5088 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_delay_createAgent +Function: btc_delay_fnc_createAgent Description: Create agent when all previous agents have been created. btc_delay_createagent define the time (in second) when the agent will be created. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - ["Sheep_random_F", getPosATL player] call btc_fnc_delay_createAgent; + ["Sheep_random_F", getPosATL player] call btc_delay_fnc_createAgent; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf index 6abf1514e..2278e5f8a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_delay_createUnit +Function: btc_delay_fnc_createUnit Description: Create unit when all previous units have been created. btc_delay_createUnit define the time (in second) when the unit will be created. @@ -16,7 +16,7 @@ Returns: Examples: (begin example) - [createGroup (side player), typeOf player, getPosATL player] call btc_fnc_delay_createUnit; + [createGroup (side player), typeOf player, getPosATL player] call btc_delay_fnc_createUnit; (end) Author: @@ -36,7 +36,7 @@ btc_delay_createUnit = btc_delay_createUnit + 0.3; ]; if (isNull _group) exitWith { - [format ["isNull _group _this = %1", _this], __FILE__, [btc_debug, btc_debug_log, true]] call btc_fnc_debug_message; + [format ["isNull _group _this = %1", _this], __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; btc_delay_createUnit = btc_delay_createUnit - 0.3; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf index 455b67ec5..1992c4215 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_delay_createVehicle +Function: btc_delay_fnc_createVehicle Description: Create vehicle and crew when all previous units have been created. btc_delay_createUnit define the time (in second) when the vehicle and crew will be created. @@ -19,8 +19,8 @@ Returns: Examples: (begin example) - [createGroup (side player), "O_G_Van_01_transport_F", (btc_type_units + btc_type_units) select [0, ["O_G_Van_01_transport_F",true] call BIS_fnc_crewCount], player getPos [10, direction player]] call btc_fnc_delay_createVehicle; - [createGroup (side player), "B_Heli_Transport_01_camo_F", (btc_type_units + btc_type_units) select [0, ["B_Heli_Transport_01_camo_F",true] call BIS_fnc_crewCount], player getPos [10, direction player]] call btc_fnc_delay_createVehicle; + [createGroup (side player), "O_G_Van_01_transport_F", (btc_type_units + btc_type_units) select [0, ["O_G_Van_01_transport_F",true] call BIS_fnc_crewCount], player getPos [10, direction player]] call btc_delay_fnc_createVehicle; + [createGroup (side player), "B_Heli_Transport_01_camo_F", (btc_type_units + btc_type_units) select [0, ["B_Heli_Transport_01_camo_F",true] call BIS_fnc_crewCount], player getPos [10, direction player]] call btc_delay_fnc_createVehicle; (end) Author: @@ -79,7 +79,7 @@ btc_delay_createUnit = btc_delay_createUnit + 0.3; private _crews_and_turret = _crews + _turretCount + _cargoCount; for "_i" from _crews to ((_crews_and_turret min _numberOfUnits) - 1) do { - [_group, _units_type select _i, _position, "CAN_COLLIDE", _veh] call btc_fnc_delay_createUnit; + [_group, _units_type select _i, _position, "CAN_COLLIDE", _veh] call btc_delay_fnc_createUnit; }; ["btc_delay_vehicleInit", [_veh, _group]] call CBA_fnc_localEvent; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf index 96951854e..cb33641a2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_delay_exec +Function: btc_delay_fnc_exec Description: Execute a function when all previous units have been created. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [[btc_city_all select 0, 100], btc_fnc_ied_drone_create] call btc_fnc_delay_exec; + [[btc_city_all select 0, 100], btc_ied_fnc_drone_create] call btc_delay_fnc_exec; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/CuratorObjectPlaced.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/CuratorObjectPlaced.sqf index 75712bd9f..6f926e04f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/CuratorObjectPlaced.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/CuratorObjectPlaced.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_eh_CuratorObjectPlaced +Function: btc_eh_fnc_CuratorObjectPlaced Description: Initialise object placed by curator. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_eh_CuratorObjectPlaced; + [cursorObject] call btc_eh_fnc_CuratorObjectPlaced; (end) Author: @@ -27,12 +27,12 @@ params [ ]; if !((_object_placed isKindOf "AllVehicles") || (_object_placed isKindOf "Module_F")) then { - [_object_placed] remoteExecCall ["btc_fnc_log_init", 2]; + [_object_placed] remoteExecCall ["btc_log_fnc_init", 2]; if (btc_debug_log) then { - [format ["OBJECT %1", _object_placed], __FILE__, [false]] call btc_fnc_debug_message; + [format ["OBJECT %1", _object_placed], __FILE__, [false]] call btc_debug_fnc_message; }; if (btc_debug) then { - [str _object_placed, __FILE__, [btc_debug, false]] call btc_fnc_debug_message; + [str _object_placed, __FILE__, [btc_debug, false]] call btc_debug_fnc_message; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf index ccfbd1b3c..0cbb84e1d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_eh_headless +Function: btc_eh_fnc_headless Description: Add local events handler to headless client. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_eh_headless; + [] call btc_eh_fnc_headless; (end) Author: @@ -20,24 +20,24 @@ Author: ---------------------------------------------------------------------------- */ ["Animal", "InitPost", { - [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_rep_fnc_hd] call CBA_fnc_addBISEventHandler; }, true, [], true] call CBA_fnc_addClassEventHandler; { [_x, "InitPost", { - [_this select 0, "Suppressed", btc_fnc_rep_suppressed] call CBA_fnc_addBISEventHandler; - [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "Suppressed", btc_rep_fnc_suppressed] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_rep_fnc_hd] call CBA_fnc_addBISEventHandler; }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_units; { [_x, "InitPost", { - [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_rep_fnc_hd] call CBA_fnc_addBISEventHandler; }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; { [_x, "InitPost", { - [_this select 0, "HandleDamage", btc_fnc_patrol_disabled] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_patrol_fnc_disabled] call CBA_fnc_addBISEventHandler; }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 16d343ad5..74260955f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_eh_player +Function: btc_eh_fnc_player Description: Add event handler to player. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _eventHandleID = [player] call btc_fnc_eh_player; + _eventHandleID = [player] call btc_eh_fnc_player; (end) Author: @@ -35,14 +35,14 @@ params [ if (_unit isNotEqualTo player) exitWith {}; if (ace_map_mapIllumination) then {ace_map_mapIllumination = false;}; if (isObjectHidden player) exitWith {}; - [btc_rep_malus_player_respawn, player] remoteExecCall ["btc_fnc_rep_change", 2]; + [btc_rep_malus_player_respawn, player] remoteExecCall ["btc_rep_fnc_change", 2]; }] call CBA_fnc_addEventHandler; -_player addEventHandler ["CuratorObjectPlaced", btc_fnc_eh_CuratorObjectPlaced]; -["ace_treatmentSucceded", btc_fnc_rep_treatment] call CBA_fnc_addEventHandler; -_player addEventHandler ["WeaponAssembled", btc_fnc_civ_add_leaflets]; -[_player, "WeaponAssembled", {[_thisType, _this] call btc_fnc_fob_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; -[_player, "WeaponDisassembled", {[_thisType, _this] call btc_fnc_fob_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; -_player addEventHandler ["GetInMan", {_this call btc_fnc_ied_deleteLoop}]; +_player addEventHandler ["CuratorObjectPlaced", btc_eh_fnc_CuratorObjectPlaced]; +["ace_treatmentSucceded", btc_rep_fnc_treatment] call CBA_fnc_addEventHandler; +_player addEventHandler ["WeaponAssembled", btc_civ_fnc_add_leaflets]; +[_player, "WeaponAssembled", {[_thisType, _this] call btc_fob_fnc_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; +[_player, "WeaponDisassembled", {[_thisType, _this] call btc_fob_fnc_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; +_player addEventHandler ["GetInMan", {_this call btc_ied_fnc_deleteLoop}]; _player addEventHandler ["GetOutMan", { if (btc_ied_deleteOn > -1) then { [btc_ied_deleteOn] call CBA_fnc_removePerFrameHandler; @@ -53,29 +53,29 @@ _player addEventHandler ["WeaponAssembled", { params ["_player", "_static"]; if !(_static isKindOf "StaticWeapon") exitWith {_this}; - [_static] remoteExecCall ["btc_fnc_log_init", 2]; + [_static] remoteExecCall ["btc_log_fnc_init", 2]; }]; ["ace_csw_deployWeaponSucceeded", { - _this remoteExecCall ["btc_fnc_log_init", 2]; + _this remoteExecCall ["btc_log_fnc_init", 2]; }] call CBA_fnc_addEventHandler; if (btc_p_chem) then { // Add biopsy - [missionNamespace, "probingEnded", btc_fnc_chem_biopsy] call BIS_fnc_addScriptedEventHandler; + [missionNamespace, "probingEnded", btc_chem_fnc_biopsy] call BIS_fnc_addScriptedEventHandler; // Disable BI shower ["DeconShower_01_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction', true];}] call CBA_fnc_addClassEventHandler; ["DeconShower_02_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction', true];}] call CBA_fnc_addClassEventHandler; - [] call btc_fnc_chem_ehDetector; + [] call btc_chem_fnc_ehDetector; }; if (btc_p_spect) then { - ["weapon", {_this call btc_fnc_spect_updateDevice}] call CBA_fnc_addPlayerEventHandler; + ["weapon", {_this call btc_spect_fnc_updateDevice}] call CBA_fnc_addPlayerEventHandler; ["vehicle", { params ["_unit", "_newVehicle"]; - [] call btc_fnc_spect_disableDevice; - [_unit, currentWeapon _unit] call btc_fnc_spect_updateDevice; + [] call btc_spect_fnc_disableDevice; + [_unit, currentWeapon _unit] call btc_spect_fnc_updateDevice; }] call CBA_fnc_addPlayerEventHandler; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 741ecad09..f761dd6c8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_eh_server +Function: btc_eh_fnc_server Description: Add event handler to server. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_eh_server; + [] call btc_eh_fnc_server; (end) Author: @@ -19,28 +19,28 @@ Author: ---------------------------------------------------------------------------- */ -addMissionEventHandler ["BuildingChanged", btc_fnc_rep_buildingchanged]; -["ace_explosives_defuse", btc_fnc_rep_explosives_defuse] call CBA_fnc_addEventHandler; -["ace_killed", btc_fnc_rep_killed] call CBA_fnc_addEventHandler; +addMissionEventHandler ["BuildingChanged", btc_rep_fnc_buildingchanged]; +["ace_explosives_defuse", btc_rep_fnc_explosives_defuse] call CBA_fnc_addEventHandler; +["ace_killed", btc_rep_fnc_killed] call CBA_fnc_addEventHandler; ["Animal", "InitPost", { - [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_rep_fnc_hd] call CBA_fnc_addBISEventHandler; }] call CBA_fnc_addClassEventHandler; ["Animal", "killed", { params ["_unit", "_killer", "_instigator"]; - [_unit, "", _killer, _instigator] call btc_fnc_rep_killed; + [_unit, "", _killer, _instigator] call btc_rep_fnc_killed; }] call CBA_fnc_addClassEventHandler; { [_x, "InitPost", { - [_this select 0, "Suppressed", btc_fnc_rep_suppressed] call CBA_fnc_addBISEventHandler; - [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "Suppressed", btc_rep_fnc_suppressed] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_rep_fnc_hd] call CBA_fnc_addBISEventHandler; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_units; { [_x, "InitPost", { - [_this select 0, "HandleDamage", btc_fnc_rep_hd] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_rep_fnc_hd] call CBA_fnc_addBISEventHandler; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; -["ace_killed", btc_fnc_mil_unit_killed] call CBA_fnc_addEventHandler; +["ace_killed", btc_mil_fnc_unit_killed] call CBA_fnc_addEventHandler; addMissionEventHandler ["HandleDisconnect", { params ["_headless"]; @@ -51,23 +51,23 @@ addMissionEventHandler ["HandleDisconnect", { if (btc_p_auto_db) then { addMissionEventHandler ["HandleDisconnect", { if ((allPlayers - entities "HeadlessClient_F") isEqualTo []) then { - [] call btc_fnc_db_save; + [] call btc_db_fnc_save; }; }]; }; if (btc_p_chem) then { - ["ace_cargoLoaded", btc_fnc_chem_propagate] call CBA_fnc_addEventHandler; - ["AllVehicles", "GetIn", {[_this select 0, _this select 2] call btc_fnc_chem_propagate}] call CBA_fnc_addClassEventHandler; + ["ace_cargoLoaded", btc_chem_fnc_propagate] call CBA_fnc_addEventHandler; + ["AllVehicles", "GetIn", {[_this select 0, _this select 2] call btc_chem_fnc_propagate}] call CBA_fnc_addClassEventHandler; ["DeconShower_01_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction',true]}] call CBA_fnc_addClassEventHandler; ["DeconShower_02_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction',true]}] call CBA_fnc_addClassEventHandler; }; ["GroundWeaponHolder", "InitPost", {btc_groundWeaponHolder append _this}] call CBA_fnc_addClassEventHandler; -["acex_fortify_objectPlaced", {[_this select 2] call btc_fnc_log_init}] call CBA_fnc_addEventHandler; +["acex_fortify_objectPlaced", {[_this select 2] call btc_log_fnc_init}] call CBA_fnc_addEventHandler; if (btc_p_set_skill) then { - ["CAManBase", "InitPost", btc_fnc_mil_set_skill] call CBA_fnc_addClassEventHandler; + ["CAManBase", "InitPost", btc_mil_fnc_set_skill] call CBA_fnc_addClassEventHandler; }; -["btc_delay_vehicleInit", btc_fnc_patrol_addEH] call CBA_fnc_addEventHandler; +["btc_delay_vehicleInit", btc_patrol_fnc_addEH] call CBA_fnc_addEventHandler; ["ace_killed", { params ["_unit"]; if (side group _unit isNotEqualTo civilian) exitWith {}; @@ -78,7 +78,7 @@ if (btc_p_set_skill) then { }] call CBA_fnc_addEventHandler; { [_x, "InitPost", { - [_this select 0, "HandleDamage", btc_fnc_patrol_disabled] call CBA_fnc_addBISEventHandler; + [_this select 0, "HandleDamage", btc_patrol_fnc_disabled] call CBA_fnc_addBISEventHandler; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; -["ace_tagCreated", btc_fnc_tag_eh] call CBA_fnc_addEventHandler; +["ace_tagCreated", btc_tag_fnc_eh] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/trackItem.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/trackItem.sqf index 99bb58676..82391fc26 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/trackItem.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/trackItem.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_eh_trackItem +Function: btc_eh_fnc_trackItem Description: This function detect if an object is deleted with a specific item and fail the task. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_eh_trackItem; + [] call btc_eh_fnc_trackItem; (end) Author: @@ -42,7 +42,7 @@ params [ }; if (btc_debug) then { - [format ["_thisArgs %1, items %2", _thisArgs, items _unit], __FILE__, [btc_debug, true]] call btc_fnc_debug_message; + [format ["_thisArgs %1, items %2", _thisArgs, items _unit], __FILE__, [btc_debug, true]] call btc_debug_fnc_message; }; }, [_dogTag, _taskID]] call CBA_fnc_addBISEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/xeh_InitPost_EH_Vehicle.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/xeh_InitPost_EH_Vehicle.hpp index 3125399a3..12e1ff236 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/xeh_InitPost_EH_Vehicle.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/xeh_InitPost_EH_Vehicle.hpp @@ -1,3 +1,3 @@ class btc_actions { - init = "[typeOf (_this select 0)] call btc_fnc_veh_init"; + init = "[typeOf (_this select 0)] call btc_veh_fnc_init"; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create.sqf index b816af534..0099e6b5e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_fob_create +Function: btc_fob_fnc_create Description: Create user interface for FOB creation. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_fob_create; + [cursorObject] call btc_fob_fnc_create; (end) Author: @@ -51,7 +51,7 @@ while {!btc_fob_dlg} do { if (ctrlText 777 == "") exitWith { closeDialog 0; (localize "STR_BTC_HAM_O_FOB_CREATE_H_NAME") call CBA_fnc_notify; - _mat spawn btc_fnc_fob_create; + _mat spawn btc_fob_fnc_create; }; private _name = ctrlText 777; @@ -63,7 +63,7 @@ private _array_markers = allMapMarkers apply {toUpper _x}; if (_name_to_check in _array_markers) exitWith { closeDialog 0; (localize "STR_BTC_HAM_O_FOB_CREATE_H_NAMENOTA") call CBA_fnc_notify; - _mat spawn btc_fnc_fob_create; + _mat spawn btc_fob_fnc_create; }; (localize "STR_BTC_HAM_O_FOB_CREATE_H_WIP") call CBA_fnc_notify; @@ -81,6 +81,6 @@ closeDialog 0; deleteVehicle _mat; - [_pos, _direction, _FOB_name] remoteExecCall ["btc_fnc_fob_create_s", 2]; + [_pos, _direction, _FOB_name] remoteExecCall ["btc_fob_fnc_create_s", 2]; [7, _FOB_name] remoteExecCall ["btc_fnc_show_hint", [0, -2] select isDedicated]; }, [_mat, _name], 5] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create_s.sqf index c9b618b06..32d123fa8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create_s.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_fob_create_s +Function: btc_fob_fnc_create_s Description: Create the FOB. @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - [getPos player, random 360, "My FOB"] call btc_fnc_fob_create_s; + [getPos player, random 360, "My FOB"] call btc_fob_fnc_create_s; (end) Author: @@ -52,6 +52,6 @@ _marker setMarkerShape "ICON"; (_fobs select 2) pushBack _flag; [_flag, "Deleted", {[_thisArgs select 0, _thisArgs select 1] call BIS_fnc_removeRespawnPosition}, [btc_player_side, _flag, _FOB_name] call BIS_fnc_addRespawnPosition] call CBA_fnc_addBISEventHandler; -_structure addEventHandler ["Killed", btc_fnc_fob_killed]; +_structure addEventHandler ["Killed", btc_fob_fnc_killed]; [_marker, _structure, _flag] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/dismantle_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/dismantle_s.sqf index d249434a9..a50664566 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/dismantle_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/dismantle_s.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_fob_dismantle_s +Function: btc_fob_fnc_dismantle_s Description: Dismantle server side the FOB. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorTarget] call btc_fnc_fob_dismantle_s; + [cursorTarget] call btc_fob_fnc_dismantle_s; (end) Author: @@ -32,7 +32,7 @@ params [ private _pos = getPosASL _flag; private _element = (btc_fobs select 2) find _flag; - [(btc_fobs select 1) select _element, objNull, objNull, true, true] call btc_fnc_fob_killed; + [(btc_fobs select 1) select _element, objNull, objNull, true, true] call btc_fob_fnc_killed; - [btc_fob_mat, _pos, surfaceNormal _pos] call btc_fnc_log_create_s; + [btc_fob_mat, _pos, surfaceNormal _pos] call btc_log_fnc_create_s; }, [_flag], 10] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/killed.sqf index 3ab0d0643..abfbf6bfc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/killed.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_fob_killed +Function: btc_fob_fnc_killed Description: Delete FOB from the btc_fobs array and remove the flag. @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - _result = [btc_fobs select 1 select 0] call btc_fnc_fob_killed; + _result = [btc_fobs select 1 select 0] call btc_fob_fnc_killed; (end) Author: @@ -38,7 +38,7 @@ params [ private _fob_index = (_fobs select 1) find _struc; if (btc_debug || btc_debug_log) then { - [format ["named %1", (_fobs select 0) select _fob_index], __FILE__, [btc_debug, btc_debug_log]] call btc_fnc_debug_message; + [format ["named %1", (_fobs select 0) select _fob_index], __FILE__, [btc_debug, btc_debug_log]] call btc_debug_fnc_message; }; deleteMarker ((_fobs select 0) deleteAt _fob_index); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/rallypointAssemble.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/rallypointAssemble.sqf index 33e356c8f..73763aa22 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/rallypointAssemble.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/rallypointAssemble.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_fob_rallypointAssemble +Function: btc_fob_fnc_rallypointAssemble Description: Handle assembling and disassembling of BI rallypoint. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - ["WeaponAssembled", [player, cursorObject]] call btc_fnc_fob_rallypointAssemble; + ["WeaponAssembled", [player, cursorObject]] call btc_fob_fnc_rallypointAssemble; (end) Author: @@ -34,7 +34,7 @@ switch (_nameEH) do { ]; if !(_rallyPoint isKindOf "Camping_base_F") exitWith {_this}; - _rallyPoint remoteExecCall ["btc_fnc_fob_rallypointTimer", 2]; + _rallyPoint remoteExecCall ["btc_fob_fnc_rallypointTimer", 2]; [ [format [localize "STR_BTC_HAM_O_FOB_SELFDESTRUCTION", btc_p_rallypointTimer]], [""] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/rallypointTimer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/rallypointTimer.sqf index 4cef9f9ae..4fa34189f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/rallypointTimer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/rallypointTimer.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_fob_rallypointTimer +Function: btc_fob_fnc_rallypointTimer Description: Create a timer and when timer is up, trigger self destruction. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_fob_rallypointTimer; + [cursorObject] call btc_fob_fnc_rallypointTimer; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf index 304077450..7cdd23b97 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_fob_redeploy +Function: btc_fob_fnc_redeploy Description: Create child statement to redeploy. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_fob_redeploy; + [] call btc_fob_fnc_redeploy; (end) Author: @@ -33,7 +33,7 @@ private _actions = []; private _childStatement = { params ["_target", "_player", "_params"]; - if ([] call btc_fnc_fob_redeployCheck) then {[_player, _params, false] call BIS_fnc_moveToRespawnPosition}; + if ([] call btc_fob_fnc_redeployCheck) then {[_player, _params, false] call BIS_fnc_moveToRespawnPosition}; }; if (_params isEqualTo "") then { // Redeploy on marker like rallypoints diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf index eea89ce91..418e93109 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_fob_redeployCheck +Function: btc_fob_fnc_redeployCheck Description: Check if player can redeploy. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_fob_redeployCheck; + [] call btc_fob_fnc_redeployCheck; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf index e28f4ca2b..1ce9c2add 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_hideout_create +Function: btc_hideout_fnc_create Description: Create hideout randomnly or with defined position. @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_hideout_create; + [] call btc_hideout_fnc_create; (end) (begin example) selectMin (btc_hideouts apply { @@ -80,12 +80,12 @@ _city setVariable ["ho_pos", _pos]; if (btc_debug) then {deleteMarker format ["loc_%1", _id];}; deleteVehicle (_city getVariable ["trigger_player_side", objNull]); -[_pos, btc_hideouts_radius, _city, _city getVariable "occupied", _city getVariable "name", _city getVariable "type", _city getVariable "id"] call btc_fnc_city_trigger_player_side; +[_pos, btc_hideouts_radius, _city, _city getVariable "occupied", _city getVariable "name", _city getVariable "type", _city getVariable "id"] call btc_city_fnc_trigger_player_side; [{ (_this select 0) findEmptyPositionReady (_this select 1) }, {}, [_pos, [0, _city getVariable ["radius", 100]]], 5 * 60] call CBA_fnc_waitUntilAndExecute; -private _hideout = [_pos] call btc_fnc_hideout_create_composition; +private _hideout = [_pos] call btc_hideout_fnc_create_composition; clearWeaponCargoGlobal _hideout; clearItemCargoGlobal _hideout; clearMagazineCargoGlobal _hideout; @@ -96,7 +96,7 @@ _hideout setVariable ["rinf_time", _rinf_time]; _hideout setVariable ["cap_time", _cap_time]; _hideout setVariable ["assigned_to", _city]; -_hideout addEventHandler ["HandleDamage", btc_fnc_hideout_hd]; +_hideout addEventHandler ["HandleDamage", btc_hideout_fnc_hd]; private _markers = []; { @@ -121,7 +121,7 @@ if (btc_debug) then { }; if (btc_debug_log) then { - [format ["_this = %1 ; POS %2 ID %3", _this, _pos, btc_hideouts_id], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_this = %1 ; POS %2 ID %3", _this, _pos, btc_hideouts_id], __FILE__, [false]] call btc_debug_fnc_message; }; btc_hideouts_id = btc_hideouts_id + 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create_composition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create_composition.sqf index 04152ba1d..bf4df0acf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create_composition.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create_composition.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_hideout_create_composition +Function: btc_hideout_fnc_create_composition Description: Create a random hideout composition. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [getPos (allPlayers#0)] call btc_fnc_hideout_create_composition; + _result = [getPos (allPlayers#0)] call btc_hideout_fnc_create_composition; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf index e96eeba91..863f8fdcc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_hideout_hd +Function: btc_hideout_fnc_hd Description: Fill me when you edit me ! @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_hideout_hd; + _result = [] call btc_hideout_fnc_hd; (end) Author: @@ -40,15 +40,15 @@ private _explosive = getNumber(configFile >> "cfgAmmo" >> _ammo >> "explosive") if ( _explosive && - {!(_hideout getVariable ["btc_fnc_mil_hd_hideout_fired", false])} && + {!(_hideout getVariable ["btc_mil_fnc_hd_hideout_fired", false])} && {_damage > 0.6} ) then { - _hideout setVariable ["btc_fnc_mil_hd_hideout_fired", true]; + _hideout setVariable ["btc_mil_fnc_hd_hideout_fired", true]; btc_hideouts deleteAt (btc_hideouts find _hideout); publicVariable "btc_hideouts"; - [btc_rep_bonus_hideout, _instigator] call btc_fnc_rep_change; + [btc_rep_bonus_hideout, _instigator] call btc_rep_fnc_change; private _id = _hideout getVariable "id"; private _marker = createMarker [format ["btc_hideout_%1_destroyed", _id], getPos _hideout]; @@ -73,7 +73,7 @@ if ( //Notification [2, count btc_hideouts] remoteExecCall ["btc_fnc_show_hint", 0]; if (btc_debug_log) then { - [format ["_this = %1 ; POS %2 ID %3", _this, getPos _hideout, _id], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_this = %1 ; POS %2 ID %3", _this, getPos _hideout, _id], __FILE__, [false]] call btc_debug_fnc_message; }; } else { 0 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/allahu_akbar.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/allahu_akbar.sqf index a00a46dc6..dc47f90db 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/allahu_akbar.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/allahu_akbar.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_allahu_akbar +Function: btc_ied_fnc_allahu_akbar Description: Play song and trigger suicider bomb if suicider is alive and awake. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [trigger] call btc_fnc_ied_allahu_akbar; + [trigger] call btc_ied_fnc_allahu_akbar; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/belt.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/belt.sqf index 8462ca55d..7a5cfcc19 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/belt.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/belt.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_belt +Function: btc_ied_fnc_belt Description: Arrange three objects in upper direction. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [object1, object2, object3] call btc_fnc_ied_belt; + [object1, object2, object3] call btc_ied_fnc_belt; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/boom.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/boom.sqf index bbf70bbd5..54c1634a6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/boom.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/boom.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_boom +Function: btc_ied_fnc_boom Description: Create the boom and the visual effect player side. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [wreck, ied] call btc_fnc_ied_boom; + [wreck, ied] call btc_ied_fnc_boom; (end) Author: @@ -27,7 +27,7 @@ params [ ]; if (btc_debug_log) then { - [format ["%1 - POS %2", [_wreck, _ied], getPos _wreck], __FILE__, [false]] call btc_fnc_debug_message; + [format ["%1 - POS %2", [_wreck, _ied], getPos _wreck], __FILE__, [false]] call btc_debug_fnc_message; }; private _pos = getPos _ied; @@ -35,6 +35,6 @@ deleteVehicle _ied; "Bo_GBU12_LGB_MI10" createVehicle _pos; deleteVehicle _wreck; -[_pos] call btc_fnc_deaf_earringing; -[_pos] remoteExecCall ["btc_fnc_ied_effects", [0, -2] select isDedicated]; +[_pos] call btc_deaf_fnc_earringing; +[_pos] remoteExecCall ["btc_ied_fnc_effects", [0, -2] select isDedicated]; ["btc_ied_boom", [_pos]] call CBA_fnc_localEvent; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf index e9383c82f..0919b4942 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf @@ -1,9 +1,9 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_check +Function: btc_ied_fnc_check Description: - Contantly check if player is around by calling btc_fnc_ied_checkLoop. If yes, trigger the explosion. + Contantly check if player is around by calling btc_ied_fnc_checkLoop. If yes, trigger the explosion. Parameters: _city - City where IED has been created. [Object] @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [_city, _ieds] call btc_fnc_ied_check; + [_city, _ieds] call btc_ied_fnc_check; (end) Author: @@ -27,15 +27,15 @@ params [ private _array = _city getVariable ["ieds", []]; if (_array isEqualTo []) exitWith {}; -private _ieds = _array apply {_x call btc_fnc_ied_create}; +private _ieds = _array apply {_x call btc_ied_fnc_create}; if (btc_debug) then { - [format ["START CITY ID %1", _city getVariable "id"], __FILE__, [btc_debug, false]] call btc_fnc_debug_message; + [format ["START CITY ID %1", _city getVariable "id"], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; }; if (btc_debug_log) then { - [format ["START CITY ID %1", _city getVariable "id"], __FILE__, [false]] call btc_fnc_debug_message; + [format ["START CITY ID %1", _city getVariable "id"], __FILE__, [false]] call btc_debug_fnc_message; }; private _ieds_check = _ieds select {(_x select 2) isNotEqualTo objNull}; -[_city, _ieds, _ieds_check] call btc_fnc_ied_checkLoop; +[_city, _ieds, _ieds_check] call btc_ied_fnc_checkLoop; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf index f3e6221e1..53981fc5a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_checkLoop +Function: btc_ied_fnc_checkLoop Description: Loop over IED and check if player is around. If yes, trigger the explosion. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [_city, _ieds, _ieds_check] call btc_fnc_ied_checkLoop; + [_city, _ieds, _ieds_check] call btc_ied_fnc_checkLoop; (end) Author: @@ -41,9 +41,9 @@ Author: speed _x > 5 } }) then { - [_wreck, _ied] call btc_fnc_ied_boom; + [_wreck, _ied] call btc_ied_fnc_boom; if (0.5 < random 1) then { - [getPos _wreck] call btc_fnc_rep_call_militia; + [getPos _wreck] call btc_rep_fnc_call_militia; }; }; } forEach (_ied nearEntities ["allvehicles", 10]); @@ -51,7 +51,7 @@ Author: _ieds_check = _ieds_check - [_ied]; }; } forEach _ieds_check; - [_city, _ieds, _ieds_check] call btc_fnc_ied_checkLoop; + [_city, _ieds, _ieds_check] call btc_ied_fnc_checkLoop; }; private _data = []; @@ -69,10 +69,10 @@ Author: _city setVariable ["ieds", _data]; if (btc_debug) then { - [format ["END CITY ID %1", _city getVariable "id"], __FILE__, [btc_debug, false]] call btc_fnc_debug_message; + [format ["END CITY ID %1", _city getVariable "id"], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; }; if (btc_debug_log) then { - [format ["END CITY ID %1", _city getVariable "id"], __FILE__, [false]] call btc_fnc_debug_message; + [format ["END CITY ID %1", _city getVariable "id"], __FILE__, [false]] call btc_debug_fnc_message; }; }, _this, 1] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/create.sqf index 197fba5b0..d330a812e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_create +Function: btc_ied_fnc_create Description: Create wreck and add an IED when it is not a fake. True IED is added to the btc_ied_list to check if player is around. @@ -19,7 +19,7 @@ Returns: Examples: (begin example) - [_wreck, _type, _ied] = [[0,0,0], "a3\armor_f_beta\apc_tracked_01\apc_tracked_01_rcws_f.p3d", 90, true] call btc_fnc_ied_create; + [_wreck, _type, _ied] = [[0,0,0], "a3\armor_f_beta\apc_tracked_01\apc_tracked_01_rcws_f.p3d", 90, true] call btc_ied_fnc_create; (end) Author: @@ -36,7 +36,7 @@ params [ ]; if (btc_debug_log) then { - [format ["%1", _this], __FILE__, [false]] call btc_fnc_debug_message; + [format ["%1", _this], __FILE__, [false]] call btc_debug_fnc_message; }; private _wreck = createSimpleObject [_type, _pos]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/deleteLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/deleteLoop.sqf index ffeb03d89..b17d31146 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/deleteLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/deleteLoop.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_deleteLoop +Function: btc_ied_fnc_deleteLoop Description: Remove wreck generated around IED. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [vehicle player] call btc_fnc_ied_deleteLoop; + [vehicle player] call btc_ied_fnc_deleteLoop; (end) Author: @@ -60,7 +60,7 @@ btc_ied_deleteOn = [{ ) then { private _pos = getPosATL _ied; _ied call CBA_fnc_deleteEntity; - [btc_rep_bonus_IEDCleanUp, player] remoteExecCall ["btc_fnc_rep_change", 2]; + [btc_rep_bonus_IEDCleanUp, player] remoteExecCall ["btc_rep_fnc_change", 2]; ["btc_ied_deleted", [_pos, player]] call CBA_fnc_serverEvent; }; }, 1, [_vehicle, (_maxWidth max _maxLength) / 2]] call CBA_fnc_addPerFrameHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/droneLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/droneLoop.sqf index d31778b44..91f5fbe83 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/droneLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/droneLoop.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_droneLoop +Function: btc_ied_fnc_droneLoop Description: Search for soldier around the drone during a patrol. If soldier are in range, activate the drone. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [_driver_drone, _rpos, _area, _trigger] call btc_fnc_ied_droneLoop; + [_driver_drone, _rpos, _area, _trigger] call btc_ied_fnc_droneLoop; (end) Author: @@ -37,7 +37,7 @@ Author: }; } else { if (_trigger isEqualTo []) then { - _trigger pushBack ([_driver_drone] call btc_fnc_ied_drone_active); + _trigger pushBack ([_driver_drone] call btc_ied_fnc_drone_active); }; if (btc_debug) then { @@ -45,13 +45,13 @@ Author: }; (vehicle _driver_drone) doMove (ASLtoAGL getPosASL (_array select 0)); }; - _this call btc_fnc_ied_droneLoop; + _this call btc_ied_fnc_droneLoop; } else { deleteVehicle (_trigger deleteAt 0); _group setVariable ["btc_ied_drone", false]; if (btc_debug_log) then { - [format ["_driver_drone = %1 POS %2 END LOOP", _driver_drone, getPos _driver_drone], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_driver_drone = %1 POS %2 END LOOP", _driver_drone, getPos _driver_drone], __FILE__, [false]] call btc_debug_fnc_message; }; }; }, _this, 5] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf index af23210e9..b12ef21cb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_drone_active +Function: btc_ied_fnc_drone_active Description: Create a trigger to allow drone to fire on player side presence. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _trigger = [driver] call btc_fnc_ied_drone_active; + _trigger = [driver] call btc_ied_fnc_drone_active; (end) Author: @@ -30,13 +30,13 @@ params [ private _trigger = createTrigger ["EmptyDetector", getPos _driver_drone, false]; _trigger setTriggerArea [10, 10, 0, false, -60]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", true]; -_trigger setTriggerStatements ["this", "[thisTrigger] call btc_fnc_ied_drone_fire;", ""]; +_trigger setTriggerStatements ["this", "[thisTrigger] call btc_ied_fnc_drone_fire;", ""]; _trigger setVariable ["btc_ied_drone", _driver_drone]; _trigger attachTo [vehicle _driver_drone, [0, 0, 0]]; if (btc_debug_log) then { - [format ["_driver_drone = %1 POS %2 START LOOP", _driver_drone, getPos _driver_drone], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_driver_drone = %1 POS %2 START LOOP", _driver_drone, getPos _driver_drone], __FILE__, [false]] call btc_debug_fnc_message; }; (group _driver_drone) setBehaviour "CARELESS"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf index d7b2b3ed9..bf4ece4d4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_drone_create +Function: btc_ied_fnc_drone_create Description: Create a drone in a city under a random area. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - _leader = [allplayers select 0, 100] call btc_fnc_ied_drone_create; + _leader = [allplayers select 0, 100] call btc_ied_fnc_drone_create; (end) Author: @@ -30,7 +30,7 @@ params [ ]; if (btc_debug_log) then { - [format ["_name = %1 _area %2", _city getVariable ["name", "name"], _area], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_name = %1 _area %2", _city getVariable ["name", "name"], _area], __FILE__, [false]] call btc_debug_fnc_message; }; if (_rpos isEqualTo []) then { @@ -47,6 +47,6 @@ _group setVariable ["btc_ied_drone", true]; [_group, _rpos, _area, 4] call CBA_fnc_taskPatrol; _drone flyInHeight 10; -[driver _drone, _rpos, _area, []] call btc_fnc_ied_droneLoop; +[driver _drone, _rpos, _area, []] call btc_ied_fnc_droneLoop; leader _group diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_fire.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_fire.sqf index a7fb954dd..c2daf483d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_fire.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_fire.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_drone_fire +Function: btc_ied_fnc_drone_fire Description: Fire bomb of the drone. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [_trigger] call btc_fnc_ied_drone_fire; + [_trigger] call btc_ied_fnc_drone_fire; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf index d927bd79f..aa02beaf9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_effect_blurEffect +Function: btc_ied_fnc_effect_blurEffect Description: Add blur effect on player camera. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [getPos player, player] call btc_fnc_ied_effect_blurEffect; + [getPos player, player] call btc_ied_fnc_effect_blurEffect; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_color_smoke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_color_smoke.sqf index 42f6f4191..d690738f7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_color_smoke.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_color_smoke.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_effect_color_smoke +Function: btc_ied_fnc_effect_color_smoke Description: Add colored smoke effect. @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - [getPos player, getPosASL player, "sand"] call btc_fnc_ied_effect_color_smoke; + [getPos player, getPosASL player, "sand"] call btc_ied_fnc_effect_color_smoke; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_rocks.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_rocks.sqf index 9018e7346..fc152a24a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_rocks.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_rocks.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_effect_rocks +Function: btc_ied_fnc_effect_rocks Description: Add rocks effect, some rock fall from the sky. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [player] call btc_fnc_ied_effect_rocks; + [player] call btc_ied_fnc_effect_rocks; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_shock_wave.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_shock_wave.sqf index 3f6a96281..2c208aa16 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_shock_wave.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_shock_wave.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_effect_shock_wave +Function: btc_ied_fnc_effect_shock_wave Description: Create a shock wave. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [getPos player] call btc_fnc_ied_effect_shock_wave; + [getPos player] call btc_ied_fnc_effect_shock_wave; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_smoke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_smoke.sqf index b9eb00301..a2eedb170 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_smoke.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_smoke.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_effect_smoke +Function: btc_ied_fnc_effect_smoke Description: Create a smoke effect. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [getPos player] call btc_fnc_ied_effect_smoke; + [getPos player] call btc_ied_fnc_effect_smoke; (end) Author: @@ -34,7 +34,7 @@ _posASL = [_x, _y, getTerrainHeightASL _pos]; private _smokePlu = selectRandom [6, 8, 10]; for "_i" from 0 to (_smokePlu -1) do { private _selection = selectRandom ["sand", "gray", "brown"]; - [_pos, _posASL, _selection] spawn btc_fnc_ied_effect_color_smoke; + [_pos, _posASL, _selection] spawn btc_ied_fnc_effect_color_smoke; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effects.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effects.sqf index 487b3b14f..49063060f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effects.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effects.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_effects +Function: btc_ied_fnc_effects Description: Create effects on player (smoke, rock, shock wave ...). @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_ied_effects; + _result = [] call btc_ied_fnc_effects; (end) Author: @@ -26,7 +26,7 @@ params [ ["_caller", player, [objNull]] ]; -[_pos, _caller] spawn btc_fnc_ied_effect_blurEffect; -[_pos] spawn btc_fnc_ied_effect_smoke; -[_pos] spawn btc_fnc_ied_effect_rocks; -[_pos] spawn btc_fnc_ied_effect_shock_wave; +[_pos, _caller] spawn btc_ied_fnc_effect_blurEffect; +[_pos] spawn btc_ied_fnc_effect_smoke; +[_pos] spawn btc_ied_fnc_effect_rocks; +[_pos] spawn btc_ied_fnc_effect_shock_wave; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/fired_near.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/fired_near.sqf index 01833b429..866060d74 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/fired_near.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/fired_near.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_fired_near +Function: btc_ied_fnc_fired_near Description: This check if bullets/grenade are trow around IED created during the mission and trigger them. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _PFH_id = [btc_ied_list] call btc_fnc_ied_fired_near; + _PFH_id = [btc_ied_list] call btc_ied_fnc_fired_near; (end) Author: @@ -54,9 +54,9 @@ private _cfgAmmo = configFile >> "cfgAmmo"; params ["_wreck", "_ied", "_bullet", "_detected_grenade"]; if (alive _ied) then { - [_wreck, _ied] call btc_fnc_ied_boom; + [_wreck, _ied] call btc_ied_fnc_boom; if (0.5 < random 1) then { - [getPos _wreck] call btc_fnc_rep_call_militia; + [getPos _wreck] call btc_rep_fnc_call_militia; }; }; { @@ -72,9 +72,9 @@ private _cfgAmmo = configFile >> "cfgAmmo"; private _caliber = getNumber (_cfgAmmo >> _bullet_type >> "caliber") > 1.6; if (_explosive || _caliber) then { if (alive _ied) then { - [_wreck, _ied] call btc_fnc_ied_boom; + [_wreck, _ied] call btc_ied_fnc_boom; if (0.5 < random 1) then { - [getPos _wreck] call btc_fnc_rep_call_militia; + [getPos _wreck] call btc_rep_fnc_call_militia; }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/initArea.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/initArea.sqf index 26c9ef7ff..86012caec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/initArea.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/initArea.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_initArea +Function: btc_ied_fnc_initArea Description: Initialize positions of IEDS. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_ied_initArea; + _result = [] call btc_ied_fnc_initArea; (end) Author: @@ -40,7 +40,7 @@ private _array = _city getVariable ["ieds", []]; if (_roads isEqualTo []) then { _sel_pos = [_sel_pos, 0, 100, 1, false] call btc_fnc_findsafepos; } else { - private _arr = (selectRandom _roads) call btc_fnc_ied_randomRoadPos; + private _arr = (selectRandom _roads) call btc_ied_fnc_randomRoadPos; _sel_pos = _arr select 0; _dir = _arr select 1; }; @@ -55,7 +55,7 @@ private _array = _city getVariable ["ieds", []]; _marker setMarkerSize [0.8, 0.8]; }; if (btc_debug_log) then { - [format ["_this = %1 POS %2 N %3(%4)", _this, _sel_pos, _i, _n], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_this = %1 POS %2 N %3(%4)", _this, _sel_pos, _i, _n], __FILE__, [false]] call btc_debug_fnc_message; }; }; } forEach [true, false]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/randomRoadPos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/randomRoadPos.sqf index ae6edc312..16c1f9574 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/randomRoadPos.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/randomRoadPos.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_randomRoadPos +Function: btc_ied_fnc_randomRoadPos Description: Find a position on a road based on the road width. @@ -16,7 +16,7 @@ Returns: Examples: (begin example) - _result = [(player nearRoads 20)#0] call btc_fnc_ied_randomRoadPos; + _result = [(player nearRoads 20)#0] call btc_ied_fnc_randomRoadPos; player setPos _result#0; player setDir _result#1; (end) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suiciderLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suiciderLoop.sqf index 63dc45d93..97c512aae 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suiciderLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suiciderLoop.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_suiciderLoop +Function: btc_ied_fnc_suiciderLoop Description: Search for soldier around and when found, activate the suicider. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [_suicider] call btc_fnc_ied_suiciderLoop; + [_suicider] call btc_ied_fnc_suiciderLoop; (end) Author: @@ -25,8 +25,8 @@ Author: if (alive _suicider && !isNull _suicider) then { if ((_suicider nearEntities [btc_player_type, 25]) isNotEqualTo []) exitWith { - _suicider call btc_fnc_ied_suicider_active; + _suicider call btc_ied_fnc_suicider_active; }; - _this call btc_fnc_ied_suiciderLoop; + _this call btc_ied_fnc_suiciderLoop; }; }, _this, 5] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf index 11c38076a..679a596f4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_suicider_active +Function: btc_ied_fnc_suicider_active Description: Activate the suicider by adding explosive charge around his pelvis and force suicider to move in the direction of soldier. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [_suicider] call btc_fnc_ied_suicider_active; + [_suicider] call btc_ied_fnc_suicider_active; (end) Author: @@ -33,7 +33,7 @@ _group setVariable ["suicider", true]; private _trigger = createTrigger ["EmptyDetector", getPos _suicider, false]; _trigger setTriggerArea [5, 5, 0, false]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", false]; -_trigger setTriggerStatements ["this", "thisTrigger call btc_fnc_ied_allahu_akbar;", ""]; +_trigger setTriggerStatements ["this", "thisTrigger call btc_ied_fnc_allahu_akbar;", ""]; _trigger setVariable ["suicider", _suicider]; _trigger attachTo [_suicider, [0, 0, 0]]; @@ -49,7 +49,7 @@ _expl2 attachTo [_suicider, [0, 0.15, 0.15], "Pelvis"]; private _expl3 = "DemoCharge_Remote_Ammo" createVehicle (position _suicider); _expl3 attachTo [_suicider, [0.1, 0.1, 0.15], "Pelvis"]; -[_expl1, _expl2, _expl3] remoteExecCall ["btc_fnc_ied_belt", 0]; +[_expl1, _expl2, _expl3] remoteExecCall ["btc_ied_fnc_belt", 0]; _suicider addEventHandler ["Killed", { params ["_unit", "_killer"]; @@ -63,7 +63,7 @@ _suicider addEventHandler ["Killed", { (group _suicider) setSpeedMode "FULL"; if (btc_debug_log) then { - [format ["_suicider = %1 POS %2 START LOOP", _suicider, getPos _suicider], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_suicider = %1 POS %2 START LOOP", _suicider, getPos _suicider], __FILE__, [false]] call btc_debug_fnc_message; }; -[_suicider, _trigger] call btc_fnc_ied_suicider_activeLoop; +[_suicider, _trigger] call btc_ied_fnc_suicider_activeLoop; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_activeLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_activeLoop.sqf index 21e778a09..c032d7900 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_activeLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_activeLoop.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_suicider_activeLoop +Function: btc_ied_fnc_suicider_activeLoop Description: Detect and force the suicider to run in the direction of the soldier nearby. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [_suicider, _trigger] call btc_fnc_ied_suicider_activeLoop; + [_suicider, _trigger] call btc_ied_fnc_suicider_activeLoop; (end) Author: @@ -29,13 +29,13 @@ Author: if (_array isNotEqualTo []) then { _suicider doMove (position (_array select 0)); }; - _this call btc_fnc_ied_suicider_activeLoop; + _this call btc_ied_fnc_suicider_activeLoop; } else { deleteVehicle _trigger; group _suicider setVariable ["suicider", false]; if (btc_debug_log) then { - [format ["_suicider = %1 POS %2 END LOOP", _suicider, getPos _suicider], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_suicider = %1 POS %2 END LOOP", _suicider, getPos _suicider], __FILE__, [false]] call btc_debug_fnc_message; }; }; }, _this, 0.5] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf index f064b69cd..3a63dbe9b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_ied_suicider_create +Function: btc_ied_fnc_suicider_create Description: Create a suicider in a city under a random area. @@ -16,7 +16,7 @@ Returns: Examples: (begin example) - _suicider = [allplayers select 0, 100] call btc_fnc_ied_suicider_create; + _suicider = [allplayers select 0, 100] call btc_ied_fnc_suicider_create; (end) Author: @@ -32,7 +32,7 @@ params [ ]; if (btc_debug_log) then { - [format ["_name = %1 _area %2", _city getVariable ["name", "name"], _area], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_name = %1 _area %2", _city getVariable ["name", "name"], _area], __FILE__, [false]] call btc_debug_fnc_message; }; if (_rpos isEqualTo []) then { @@ -46,9 +46,9 @@ private _group = createGroup [civilian, true]; _group setVariable ["btc_city", _city]; private _suicider = _group createUnit [_type_units, _rpos, [], 0, "CAN_COLLIDE"]; -[_group] call btc_fnc_civ_addWP; +[_group] call btc_civ_fnc_addWP; _group setVariable ["suicider", true]; -[_suicider] call btc_fnc_ied_suiciderLoop; +[_suicider] call btc_ied_fnc_suiciderLoop; _suicider diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask.sqf index 8cd43f3c4..a5e98126f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_ask +Function: btc_info_fnc_ask Description: Ask information to an IA. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_info_ask; + [cursorObject] call btc_info_fnc_ask; (end) Author: @@ -55,7 +55,7 @@ if ((round random 3) >= 2 || !_isInterrogate) then { //NO < 200 . FAKE < 600 . REAL > 600 btc_int_ask_data = nil; -["btc_global_reputation"] remoteExecCall ["btc_fnc_int_ask_var", 2]; +["btc_global_reputation"] remoteExecCall ["btc_int_fnc_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; @@ -83,14 +83,14 @@ private _info = selectRandomWeighted [ _info_type = _info_type isEqualTo "REAL"; switch (_info) do { case "TROOPS" : { - [_man, _info_type] call btc_fnc_info_troops; + [_man, _info_type] call btc_info_fnc_troops; }; case "HIDEOUT" : { - [name _man, _info_type] call btc_fnc_info_hideout_asked; + [name _man, _info_type] call btc_info_fnc_hideout_asked; }; case "CACHE" : { [name _man, localize "STR_BTC_HAM_CON_INFO_ASK_CACHEMAP"] call btc_fnc_showSubtitle; sleep 2; - [_info_type] remoteExecCall ["btc_fnc_info_cache", 2]; + [_info_type] remoteExecCall ["btc_info_fnc_cache", 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf index de5da75e1..8f1a741be 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_ask_reputation +Function: btc_info_fnc_ask_reputation Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_info_ask_reputation; + _result = [] call btc_info_fnc_ask_reputation; (end) Author: @@ -29,7 +29,7 @@ if !(player getVariable ["interpreter", false]) exitWith { }; btc_int_ask_data = nil; -["btc_global_reputation"] remoteExecCall ["btc_fnc_int_ask_var", 2]; +["btc_global_reputation"] remoteExecCall ["btc_int_fnc_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cache.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cache.sqf index d39724c96..02c91f7cc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cache.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cache.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_cache +Function: btc_info_fnc_cache Description: Create cache intel with marker or picture. @@ -17,7 +17,7 @@ Returns: Examples: (begin example) btc_cache_info = 100; - [true] call btc_fnc_info_cache; + [true] call btc_info_fnc_cache; (end) Author: @@ -49,7 +49,7 @@ if (_cache_info < _info_cache_ratio) then { _classnames = _classnames - (btc_cache_pictures select 0); if (_classnames isEqualTo []) exitWith { - [[_cache_obj, _info_cache_ratio] call CBA_fnc_randPos, _info_cache_ratio] call btc_fnc_info_cacheMarker; + [[_cache_obj, _info_cache_ratio] call CBA_fnc_randPos, _info_cache_ratio] call btc_info_fnc_cacheMarker; }; private _classname_object = selectRandom _classnames; @@ -61,14 +61,14 @@ if (_cache_info < _info_cache_ratio) then { _classname_object, _cache_n, _is_building_with_the_cache - ] remoteExecCall ["btc_fnc_info_cachePicture", [0, -2] select isDedicated, true]); + ] remoteExecCall ["btc_info_fnc_cachePicture", [0, -2] select isDedicated, true]); _intelId = [ [15, 14] select _is_building_with_the_cache, _classname_object ] } else { - btc_cache_info = [[_cache_obj, _cache_info] call CBA_fnc_randPos, _cache_info] call btc_fnc_info_cacheMarker; + btc_cache_info = [[_cache_obj, _cache_info] call CBA_fnc_randPos, _cache_info] call btc_info_fnc_cacheMarker; }; _intelId remoteExecCall ["btc_fnc_show_hint", [0, -2] select isDedicated]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cacheMarker.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cacheMarker.sqf index a54ed6134..935c8a8c3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cacheMarker.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cacheMarker.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_cacheMarker +Function: btc_info_fnc_cacheMarker Description: Create intel marker. @@ -17,7 +17,7 @@ Returns: Examples: (begin example) [[btc_cache_pos, btc_cache_info] call CBA_fnc_randPos, - btc_cache_info] call btc_fnc_info_cacheMarker; + btc_cache_info] call btc_info_fnc_cacheMarker; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cachePicture.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cachePicture.sqf index 20335bd8e..159d8b174 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cachePicture.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cachePicture.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_cachePicture +Function: btc_info_fnc_cachePicture Description: Add picture to the diary. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [typeOf player, 0] call btc_fnc_info_cachePicture; + [typeOf player, 0] call btc_info_fnc_cachePicture; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/give_intel.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/give_intel.sqf index c5dfbf154..a53fea970 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/give_intel.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/give_intel.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_give_intel +Function: btc_info_fnc_give_intel Description: Give intel to the player. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _intelType = [player] call btc_fnc_info_give_intel; + _intelType = [player] call btc_info_fnc_give_intel; (end) Author: @@ -31,15 +31,15 @@ if (btc_hideouts isEqualTo []) then {_intelType = (btc_info_intel_type select 0) switch (true) do { case (_intelType < (btc_info_intel_type select 0)) : { //cache - [true] call btc_fnc_info_cache; + [true] call btc_info_fnc_cache; }; case (_intelType > (btc_info_intel_type select 1) && _intelType < 101) : { //both - [true] call btc_fnc_info_cache; - [] call btc_fnc_info_hideout; + [true] call btc_info_fnc_cache; + [] call btc_info_fnc_hideout; [5] remoteExecCall ["btc_fnc_show_hint", _asker]; }; case (_intelType > (btc_info_intel_type select 0) && _intelType < (btc_info_intel_type select 1)) : { //hd - [] call btc_fnc_info_hideout; + [] call btc_info_fnc_hideout; [5] remoteExecCall ["btc_fnc_show_hint", _asker]; }; default { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf index 9b61ceefb..699348d30 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_has_intel +Function: btc_info_fnc_has_intel Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject, player] remoteExecCall ["btc_fnc_info_has_intel", 2]; + [cursorObject, player] remoteExecCall ["btc_info_fnc_has_intel", 2]; (end) Author: @@ -27,15 +27,15 @@ params [ ]; if (btc_debug_log) then { - [format ["%1", _body getVariable "intel"], __FILE__, [false]] call btc_fnc_debug_message; + [format ["%1", _body getVariable "intel"], __FILE__, [false]] call btc_debug_fnc_message; }; if (_body getVariable ["intel", false] && !(_body getVariable ["btc_already_interrogated", false])) then { _body setVariable ["intel", false]; if (isServer) then { - [_asker] call btc_fnc_info_give_intel; + [_asker] call btc_info_fnc_give_intel; } else { - [_asker] remoteExecCall ["btc_fnc_info_give_intel", 2]; + [_asker] remoteExecCall ["btc_info_fnc_give_intel", 2]; }; } else { [3] remoteExecCall ["btc_fnc_show_hint", _asker]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout.sqf index 26c146838..dcb8c94e4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_hideout +Function: btc_info_fnc_hideout Description: Add an random intel marker for the current hideout. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_info_hideout; + [] call btc_info_fnc_hideout; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf index 9da035e98..c7304fdf1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_hideout_asked +Function: btc_info_fnc_hideout_asked Description: Fill me when you edit me ! @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_info_hideout_asked; + _result = [] call btc_info_fnc_hideout_asked; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/path.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/path.sqf index 100882049..d3b69b6f3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/path.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/path.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_path +Function: btc_info_fnc_path Description: Show path of a patrol to set an amboush. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [group player, [0, 0, 0], "playerPath"] call btc_fnc_info_path; + [group player, [0, 0, 0], "playerPath"] call btc_info_fnc_path; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf index de9a1468c..1c358c356 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_search_for_intel +Function: btc_info_fnc_search_for_intel Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_info_search_for_intel; + _result = [] call btc_info_fnc_search_for_intel; (end) Author: @@ -32,7 +32,7 @@ private _onFinish = { params ["_args"]; _args params ["_target", "_player"]; - [_target, _player] remoteExecCall ["btc_fnc_info_has_intel", 2]; + [_target, _player] remoteExecCall ["btc_info_fnc_has_intel", 2]; }; private _condition = { params ["_args"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf index 3aaa8b94e..5654b98af 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_troops +Function: btc_info_fnc_troops Description: Show troops information. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_info_troops; + [] call btc_info_fnc_troops; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index ac788156b..3e928bce8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_add_actions +Function: btc_int_fnc_add_actions Description: Fill me when you edit me ! @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_int_add_actions; + _result = [] call btc_int_fnc_add_actions; (end) Author: @@ -24,17 +24,17 @@ Author: private _action = ["Database", localize "STR_BTC_HAM_ACTION_DATA_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\D_ca.paa", {}, {(call BIS_fnc_admin) == 2 || !isMultiplayer}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToObject; -_action = ["request_save", localize "str_3den_display3den_menubar_missionsave_text", "\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa", {[] remoteExecCall ["btc_fnc_db_save", 2]}, {true}] call ace_interact_menu_fnc_createAction; +_action = ["request_save", localize "str_3den_display3den_menubar_missionsave_text", "\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa", {[] remoteExecCall ["btc_db_fnc_save", 2]}, {true}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "Database"], _action] call ace_interact_menu_fnc_addActionToObject; -_action = ["request_delete", localize "STR_3DEN_Delete", "\A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa", {[] remoteExecCall ["btc_fnc_db_delete", 2]}, {true}] call ace_interact_menu_fnc_createAction; +_action = ["request_delete", localize "STR_3DEN_Delete", "\A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa", {[] remoteExecCall ["btc_db_fnc_delete", 2]}, {true}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "Database"], _action] call ace_interact_menu_fnc_addActionToObject; //Intel _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title", "\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa", { - [btc_fnc_info_search_for_intel, [_target]] call CBA_fnc_execNextFrame; + [btc_info_fnc_search_for_intel, [_target]] call CBA_fnc_execNextFrame; }, {!alive _target}] call ace_interact_menu_fnc_createAction; {[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} forEach (btc_type_units + btc_type_divers); -_action = ["Interrogate_intel", localize "STR_BTC_HAM_ACTION_INTEL_INTERROGATE", "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa", {[_target,true] spawn btc_fnc_info_ask;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && captive _target}] call ace_interact_menu_fnc_createAction; +_action = ["Interrogate_intel", localize "STR_BTC_HAM_ACTION_INTEL_INTERROGATE", "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa", {[_target,true] spawn btc_info_fnc_ask;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && captive _target}] call ace_interact_menu_fnc_createAction; {[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} forEach (btc_type_units + btc_type_divers); //Log point @@ -45,38 +45,38 @@ _action = ["Interrogate_intel", localize "STR_BTC_HAM_ACTION_INTEL_INTERROGATE", [_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Require_object", localize "STR_BTC_HAM_ACTION_LOGPOINT_REQOBJ", "\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa", { params ["", "", "_params"]; - _params spawn btc_fnc_log_create + _params spawn btc_log_fnc_create }, {true}, {}, [_helipad], [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Repair_wreck", localize "STR_BTC_HAM_ACTION_LOGPOINT_REPWRECK", "\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa", { params ["", "", "_params"]; - _params call btc_fnc_log_repair_wreck + _params call btc_log_fnc_repair_wreck }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Refuel", localize "STR_BTC_HAM_ACTION_LOGPOINT_REFUELSOURCE", "\A3\ui_f\data\igui\cfg\simpleTasks\types\refuel_ca.paa", { params ["", "", "_params"]; - _params call btc_fnc_log_refuelSource + _params call btc_log_fnc_refuelSource }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Require_veh", localize "STR_BTC_HAM_ACTION_LOGPOINT_REQVEH", "\A3\ui_f\data\map\vehicleicons\iconCar_ca.paa", { params ["", "", "_params"]; - _params spawn btc_fnc_arsenal_garage}, {(serverCommandAvailable "#logout" || !isMultiplayer) and btc_p_garage}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; + _params spawn btc_arsenal_fnc_garage}, {(serverCommandAvailable "#logout" || !isMultiplayer) and btc_p_garage}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Tool", localize "str_3den_display3den_menubar_tools_text", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\T_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Copy", localize "STR_BTC_HAM_ACTION_COPYPASTE_COPY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa", { params ["", "", "_params"]; - _params call btc_fnc_log_copy + _params call btc_log_fnc_copy }, {true}, {}, [_helipad], [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Tool"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Paste", localize "STR_BTC_HAM_ACTION_COPYPASTE_PASTE", "\A3\ui_f\data\igui\cfg\simpleTasks\types\upload_ca.paa", { params ["", "", "_params"]; - [btc_copy_container, _params] call btc_fnc_log_paste + [btc_copy_container, _params] call btc_log_fnc_paste }, {!isNil "btc_copy_container"}, {}, _helipad, [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Tool"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Require_delete", localize "STR_3DEN_Delete", "\z\ace\addons\arsenal\data\iconClearContainer.paa", { params ["", "", "_params"]; - _params call btc_fnc_log_delete + _params call btc_log_fnc_delete }, {true}, {}, [_helipad], [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; } forEach [[btc_create_object, btc_create_object_point]]; @@ -84,7 +84,7 @@ _action = ["Interrogate_intel", localize "STR_BTC_HAM_ACTION_INTEL_INTERROGATE", //Logistic _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; {[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} forEach btc_log_def_loadable; -_action = ["Place", localize "STR_ACE_Dragging_Carry", "\z\ace\addons\dragging\UI\icons\box_carry.paa", {_target call btc_fnc_log_place}, {!btc_log_placing}] call ace_interact_menu_fnc_createAction; +_action = ["Place", localize "STR_ACE_Dragging_Carry", "\z\ace\addons\dragging\UI\icons\box_carry.paa", {_target call btc_log_fnc_place}, {!btc_log_placing}] call ace_interact_menu_fnc_createAction; {[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} forEach btc_log_def_placeable; //Shower @@ -98,36 +98,36 @@ _action = ["Shower_act", getText(configfile >> "CfgVehicles" >> "DeconShower_02_ } forEach ["DeconShower_01_F", "DeconShower_02_F"]; //FOB -_action = ["Mount_FOB", localize "STR_BTC_HAM_ACTION_FOB_MOUNT", "\A3\Ui_f\data\Map\Markers\NATO\b_hq.paa", {_target spawn btc_fnc_fob_create}, {!btc_log_placing}] call ace_interact_menu_fnc_createAction; +_action = ["Mount_FOB", localize "STR_BTC_HAM_ACTION_FOB_MOUNT", "\A3\Ui_f\data\Map\Markers\NATO\b_hq.paa", {_target spawn btc_fob_fnc_create}, {!btc_log_placing}] call ace_interact_menu_fnc_createAction; [btc_fob_mat, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; -_action = ["Dismantle_FOB", localize "STR_BTC_HAM_ACTION_FOB_DISMANTLE", "", {_target remoteExecCall ["btc_fnc_fob_dismantle_s", 2]}, {true}, {}, [], [0, 0, -2], 5] call ace_interact_menu_fnc_createAction; +_action = ["Dismantle_FOB", localize "STR_BTC_HAM_ACTION_FOB_DISMANTLE", "", {_target remoteExecCall ["btc_fob_fnc_dismantle_s", 2]}, {true}, {}, [], [0, 0, -2], 5] call ace_interact_menu_fnc_createAction; [btc_fob_flag, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; //Orders _action = ["Civil_Orders", localize "STR_BTC_HAM_ACTION_ORDERS_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToObject; -_action = ["Civil_Stop", localize "STR_BTC_HAM_ACTION_ORDERS_STOP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk3_ca.paa", {[1] call btc_fnc_int_orders;}, {vehicle player isEqualTo player}] call ace_interact_menu_fnc_createAction; +_action = ["Civil_Stop", localize "STR_BTC_HAM_ACTION_ORDERS_STOP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk3_ca.paa", {[1] call btc_int_fnc_orders;}, {vehicle player isEqualTo player}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToObject; -_action = ["Civil_Get_down", localize "STR_BTC_HAM_ACTION_ORDERS_GETDOWN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk2_ca.paa", {[2] call btc_fnc_int_orders;}, {vehicle player isEqualTo player}] call ace_interact_menu_fnc_createAction; +_action = ["Civil_Get_down", localize "STR_BTC_HAM_ACTION_ORDERS_GETDOWN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk2_ca.paa", {[2] call btc_int_fnc_orders;}, {vehicle player isEqualTo player}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToObject; -_action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk1_ca.paa", {[3] call btc_fnc_int_orders;}, {vehicle player isEqualTo player}] call ace_interact_menu_fnc_createAction; +_action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk1_ca.paa", {[3] call btc_int_fnc_orders;}, {vehicle player isEqualTo player}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToObject; { //Actions attachted to AI _action = ["Civil_Orders", localize "STR_BTC_HAM_ACTION_ORDERS_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Civil_taxi", localize "STR_BTC_HAM_ACTION_ORDERS_TAXI", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk4_ca.paa", {[4, _target] call btc_fnc_int_orders;}, {(alive _target) && (vehicle _target) isNotEqualTo _target}] call ace_interact_menu_fnc_createAction; + _action = ["Civil_taxi", localize "STR_BTC_HAM_ACTION_ORDERS_TAXI", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk4_ca.paa", {[4, _target] call btc_int_fnc_orders;}, {(alive _target) && (vehicle _target) isNotEqualTo _target}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions", "Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Civil_Stop", localize "STR_BTC_HAM_ACTION_ORDERS_STOP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk3_ca.paa", {[1, _target] call btc_fnc_int_orders;}, {alive _target}] call ace_interact_menu_fnc_createAction; + _action = ["Civil_Stop", localize "STR_BTC_HAM_ACTION_ORDERS_STOP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk3_ca.paa", {[1, _target] call btc_int_fnc_orders;}, {alive _target}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions", "Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Civil_Get_down", localize "STR_BTC_HAM_ACTION_ORDERS_GETDOWN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk2_ca.paa", {[2, _target] call btc_fnc_int_orders;}, {alive _target}] call ace_interact_menu_fnc_createAction; + _action = ["Civil_Get_down", localize "STR_BTC_HAM_ACTION_ORDERS_GETDOWN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk2_ca.paa", {[2, _target] call btc_int_fnc_orders;}, {alive _target}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions", "Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk1_ca.paa", {[3, _target] call btc_fnc_int_orders;}, {alive _target}] call ace_interact_menu_fnc_createAction; + _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk1_ca.paa", {[3, _target] call btc_int_fnc_orders;}, {alive _target}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions", "Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Ask_Info", localize "STR_BTC_HAM_ACTION_ORDERS_ASKINFO", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target,false] spawn btc_fnc_info_ask;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; + _action = ["Ask_Info", localize "STR_BTC_HAM_ACTION_ORDERS_ASKINFO", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target,false] spawn btc_info_fnc_ask;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Ask_Reputation", localize "STR_BTC_HAM_ACTION_ORDERS_ASKREP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target] spawn btc_fnc_info_ask_reputation;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; + _action = ["Ask_Reputation", localize "STR_BTC_HAM_ACTION_ORDERS_ASKREP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target] spawn btc_info_fnc_ask_reputation;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; //remove ace3 "get down" order @@ -139,9 +139,9 @@ _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui //Side missions _action = ["side_mission", localize "STR_BTC_HAM_DOC_SIDEMISSION_TITLE", "\A3\ui_f\data\igui\cfg\simpleTasks\types\whiteboard_ca.paa", {}, {player getVariable ["side_mission", false]}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToObject; -_action = ["side_mission_abort", localize "STR_BTC_HAM_ACTION_SIDEMISSION_ABORT", "\A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa", {[player call BIS_fnc_taskCurrent] call btc_fnc_task_abort}, {player getVariable ["side_mission", false]}] call ace_interact_menu_fnc_createAction; +_action = ["side_mission_abort", localize "STR_BTC_HAM_ACTION_SIDEMISSION_ABORT", "\A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa", {[player call BIS_fnc_taskCurrent] call btc_task_fnc_abort}, {player getVariable ["side_mission", false]}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "side_mission"], _action] call ace_interact_menu_fnc_addActionToObject; -_action = ["side_mission_request", localize "STR_BTC_HAM_ACTION_SIDEMISSION_REQ", "\A3\ui_f\data\igui\cfg\simpleTasks\types\default_ca.paa", {[] remoteExec ["btc_fnc_side_create", 2]}, {player getVariable ["side_mission", false]}] call ace_interact_menu_fnc_createAction; +_action = ["side_mission_request", localize "STR_BTC_HAM_ACTION_SIDEMISSION_REQ", "\A3\ui_f\data\igui\cfg\simpleTasks\types\default_ca.paa", {[] remoteExec ["btc_side_fnc_create", 2]}, {player getVariable ["side_mission", false]}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "side_mission"], _action] call ace_interact_menu_fnc_addActionToObject; //Debug @@ -155,16 +155,16 @@ if (btc_debug) then { //Re-deploy private _actions = []; _actions pushBack ["redeploy", localize "STR_BTC_HAM_ACTION_BIRESPAWN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa", { - if ([] call btc_fnc_fob_redeployCheck) then { + if ([] call btc_fob_fnc_redeployCheck) then { player setPos [10, 10, 10]; player hideObject true; forceRespawn player; }; }, {!btc_log_placing}]; _actions pushBack ["base", localize "STR_BTC_HAM_ACTION_REDEPLOYBASE", getText (configfile >> "CfgMarkers" >> getMarkerType "btc_base" >> "icon"), { - if ([] call btc_fnc_fob_redeployCheck) then {[_player, btc_respawn_marker, false] call BIS_fnc_moveToRespawnPosition}; -}, {!btc_log_placing}, {_this call btc_fnc_fob_redeploy}, "Base"]; -_actions pushBack ["rallypoints", localize "STR_BTC_HAM_ACTION_REDEPLOYRALLY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\wait_ca.paa", {}, {!btc_log_placing}, {_this call btc_fnc_fob_redeploy}, ""]; + if ([] call btc_fob_fnc_redeployCheck) then {[_player, btc_respawn_marker, false] call BIS_fnc_moveToRespawnPosition}; +}, {!btc_log_placing}, {_this call btc_fob_fnc_redeploy}, "Base"]; +_actions pushBack ["rallypoints", localize "STR_BTC_HAM_ACTION_REDEPLOYRALLY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\wait_ca.paa", {}, {!btc_log_placing}, {_this call btc_fob_fnc_redeploy}, ""]; _actions pushBack ["FOB", localize "STR_BTC_HAM_ACTION_REDEPLOYFOB", "\A3\Ui_f\data\Map\Markers\NATO\b_hq.paa", {}, {!btc_log_placing}]; { private _action = _x call ace_interact_menu_fnc_createAction; @@ -176,7 +176,7 @@ _actions pushBack ["FOB", localize "STR_BTC_HAM_ACTION_REDEPLOYFOB", "\A3\Ui_f\d { _x params ["_cardinal", "_degrees"]; - _action = ["FOB" + _cardinal, localize _cardinal, "\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa", {}, {true}, {_this call btc_fnc_fob_redeploy}, _degrees] call ace_interact_menu_fnc_createAction; + _action = ["FOB" + _cardinal, localize _cardinal, "\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa", {}, {true}, {_this call btc_fob_fnc_redeploy}, _degrees] call ace_interact_menu_fnc_createAction; [btc_gear_object, 0, ["ACE_MainActions", "FOB"], _action] call ace_interact_menu_fnc_addActionToObject; if (btc_p_respawn_fromFOBToBase) then { [btc_fob_flag, 0, ["ACE_MainActions", "FOB"], _action] call ace_interact_menu_fnc_addActionToClass; @@ -195,4 +195,4 @@ if (btc_p_arsenal_Type > 0) then { btc_gear_object addAction [localize "STR_BTC_HAM_ACTION_ARSENAL_OPEN_ACE", "[btc_gear_object, player] call ace_arsenal_fnc_openBox;"]; }; }; -if (btc_p_arsenal_Restrict isNotEqualTo 0) then {[btc_gear_object, btc_p_arsenal_Type, btc_p_arsenal_Restrict, btc_custom_arsenal] call btc_fnc_arsenal_data;}; +if (btc_p_arsenal_Restrict isNotEqualTo 0) then {[btc_gear_object, btc_p_arsenal_Type, btc_p_arsenal_Restrict, btc_custom_arsenal] call btc_arsenal_fnc_data;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf index 2e955cce0..b51a6cdf3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_ask_var +Function: btc_int_fnc_ask_var Description: Fill me when you edit me ! @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_int_ask_var; + _result = [] call btc_int_fnc_ask_var; (end) Author: @@ -29,7 +29,7 @@ params [ ]; private _data = switch (_id) do { - case 9 : {[_target] call btc_fnc_db_saveObjectStatus;}; + case 9 : {[_target] call btc_db_fnc_saveObjectStatus;}; case 10 : { private _units = allUnits select {alive _x}; _units append entities [["Car", "Tank", "Ship", "Air"], []]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf index 4570efe62..fdf867c5a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_orders +Function: btc_int_fnc_orders Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_int_orders; + _result = [] call btc_int_fnc_orders; (end) Author: @@ -37,12 +37,12 @@ private _units = (_pos nearEntities [["Car", "Civilian_F"] + btc_civ_type_units, if (_units isEqualTo []) exitWith {true}; if (isNull _unit) then { - [_units, _dir, _order] remoteExecCall ["btc_fnc_int_orders_give", 2]; + [_units, _dir, _order] remoteExecCall ["btc_int_fnc_orders_give", 2]; } else { if (_order isEqualTo 4) then { btc_int_ask_data = nil; - ["btc_global_reputation"] remoteExecCall ["btc_fnc_int_ask_var", 2]; + ["btc_global_reputation"] remoteExecCall ["btc_int_fnc_ask_var", 2]; [{!(isNil "btc_int_ask_data")}, { private _rep = btc_int_ask_data; @@ -54,7 +54,7 @@ if (isNull _unit) then { if (surfaceIsWater _pos) then { [name (_this select 4), localize "STR_BTC_HAM_CON_INT_ORDERS_ONLAND"] call btc_fnc_showSubtitle; } else { - [[_this select 4], 0, 4, _pos] remoteExecCall ["btc_fnc_int_orders_give", _this select 4]; + [[_this select 4], 0, 4, _pos] remoteExecCall ["btc_int_fnc_orders_give", _this select 4]; ["1", "onMapSingleClick"] call BIS_fnc_removeStackedEventHandler; openMap false; private _textMap = selectRandom [ @@ -80,6 +80,6 @@ if (isNull _unit) then { }; }, [_unit, _pos]] call CBA_fnc_waitUntilAndExecute; } else { - [[_unit], _dir, _order] remoteExecCall ["btc_fnc_int_orders_give", _unit]; + [[_unit], _dir, _order] remoteExecCall ["btc_int_fnc_orders_give", _unit]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf index 1a61076bc..c522d62d9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_orders_behaviour +Function: btc_int_fnc_orders_behaviour Description: Fill me when you edit me ! @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_int_orders_behaviour; + _result = [] call btc_int_fnc_orders_behaviour; (end) Author: @@ -80,5 +80,5 @@ _unit setUnitPos "AUTO"; _unit enableAI "PATH"; if (_unit isEqualTo vehicle _unit) then { - [_group] call btc_fnc_civ_addWP; + [_group] call btc_civ_fnc_addWP; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_give.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_give.sqf index 79c10fcbc..a5f8e1c85 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_give.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_give.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_orders_give +Function: btc_int_fnc_orders_give Description: Fill me when you edit me ! @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_int_orders_give; + _result = [] call btc_int_fnc_orders_give; (end) Author: @@ -38,7 +38,7 @@ _units = _units select {!(group _x getVariable ["suicider", false]) && ((side _x } else { _wp_pos }; - [_x, _order, _wp_pos_i] remoteExec ["btc_fnc_int_orders_behaviour", _x]; + [_x, _order, _wp_pos_i] remoteExec ["btc_int_fnc_orders_behaviour", _x]; } forEach _units; true diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/shortcuts.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/shortcuts.sqf index 0fc0acc0e..e4dfcad39 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/shortcuts.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/shortcuts.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_shortcuts +Function: btc_int_fnc_shortcuts Description: Fill me when you edit me ! @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_int_shortcuts; + _result = [] call btc_int_fnc_shortcuts; (end) Author: @@ -26,7 +26,7 @@ Author: //Order Stop ["Hearts and Minds: Mission", "btc_HaM_Action_civStop", [localize "STR_BTC_HAM_O_SHORTC_STOP_TITLE", localize "STR_BTC_HAM_O_SHORTC_STOP_NOTE"], { //"Civil Order: Stop", "Order a civilian to stop" if (isNull objectParent player) then { - [1] call btc_fnc_int_orders; + [1] call btc_int_fnc_orders; if (BTC_PLAY_FBSOUND) then { playSound BTC_FBSOUND; }; @@ -36,7 +36,7 @@ Author: //Order Get down ["Hearts and Minds: Mission", "btc_HaM_Action_civGetDown", [localize "STR_BTC_HAM_O_SHORTC_GETDOWN_TITLE", localize "STR_BTC_HAM_O_SHORTC_GETDOWN_NOTE"], { //"Civil Order: Get down", "Order a civilian to get down" if (isNull objectParent player) then { - [2] call btc_fnc_int_orders; + [2] call btc_int_fnc_orders; if (BTC_PLAY_FBSOUND) then { playSound BTC_FBSOUND; }; @@ -46,7 +46,7 @@ Author: //Order Go away ["Hearts and Minds: Mission", "btc_HaM_Action_civGoAway", [localize "STR_BTC_HAM_O_SHORTC_GOAWAY_TITLE", localize "STR_BTC_HAM_O_SHORTC_GOAWAY_NOTE"], { //"Civil Order: Go Away", "Order a civilian to go away" if (isNull objectParent player) then { - [3] call btc_fnc_int_orders; + [3] call btc_int_fnc_orders; if (BTC_PLAY_FBSOUND) then { playSound BTC_FBSOUND; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/terminal.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/terminal.sqf index 5f6013ae5..ce1edfd90 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/terminal.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/terminal.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_terminal +Function: btc_int_fnc_terminal Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_int_terminal; + _result = [] call btc_int_fnc_terminal; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/check.sqf index db50f26ec..5dc14becf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/check.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_lift_check +Function: btc_lift_fnc_check Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_lift_check; + _result = [] call btc_lift_fnc_check; (end) Author: @@ -26,7 +26,7 @@ params [ if (!(_chopper isKindOf "Helicopter" || (_chopper isKindOf "Ship")) || !isNull ((_chopper) getVariable ["cargo", objNull])) exitWith {false}; -private _array = [_chopper] call btc_fnc_lift_getLiftable; +private _array = [_chopper] call btc_lift_fnc_getLiftable; if (_array isEqualTo []) exitWith {false}; private _cargo_array = nearestObjects [_chopper, _array, 30]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf index 2664e61ec..b1f864cc6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_lift_deployRopes +Function: btc_lift_fnc_deployRopes Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_lift_deployRopes; + _result = [] call btc_lift_fnc_deployRopes; (end) Author: @@ -37,10 +37,10 @@ btc_lift_action_hud = player addAction ["" + (localize "STR btc_lift_hud = false; } else { btc_lift_hud = true; - [] call btc_fnc_lift_hud; + [] call btc_lift_fnc_hud; }; }, [], -8, false, false, "", "true"]; //"" + ("Hud On\Off") + "" -btc_lift_action = player addAction ["" + (localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK") + "",{[] call btc_fnc_lift_hook}, [], 9, true, false, "", "[] call btc_fnc_lift_check"]; //"" + ("Hook") + "" +btc_lift_action = player addAction ["" + (localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK") + "",{[] call btc_lift_fnc_hook}, [], 9, true, false, "", "[] call btc_lift_fnc_check"]; //"" + ("Hook") + "" waitUntil {sleep 5; (vehicle player isEqualTo player)}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/destroyRopes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/destroyRopes.sqf index b27725bb8..6e8774640 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/destroyRopes.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/destroyRopes.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_lift_destroyRopes +Function: btc_lift_fnc_destroyRopes Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_lift_destroyRopes; + _result = [] call btc_lift_fnc_destroyRopes; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf index 1397d4078..f2d6d143e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_lift_hook +Function: btc_lift_fnc_hook Description: Hook a cargo in a diameter of 30m. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_lift_hook; + [] call btc_lift_fnc_hook; (end) Author: @@ -24,7 +24,7 @@ params [ ["_chopper", vehicle player, [objNull]] ]; -private _array = [_chopper] call btc_fnc_lift_getLiftable; +private _array = [_chopper] call btc_lift_fnc_getLiftable; private _cargo_array = nearestObjects [_chopper, _array, 30]; _cargo_array = _cargo_array - [_chopper]; _cargo_array = _cargo_array select { @@ -53,7 +53,7 @@ if ((_bbr isEqualTo []) OR (_ropes_check select {!isNull _x} isEqualTo [])) then if (abs((_bbr select 0) select 0) > 5) then { _rope_length = 10 + abs((_bbr select 0) select 0); }; - ([_cargo] call btc_fnc_log_get_corner_points) params [ + ([_cargo] call btc_log_fnc_get_corner_points) params [ "_rearCorner", "_rearCorner2", "_frontCorner", @@ -63,7 +63,7 @@ if ((_bbr isEqualTo []) OR (_ropes_check select {!isNull _x} isEqualTo [])) then private _support = _cargo; private _bbr_z = 0; if (!alive _cargo) then { - _support = [btc_fnc_lift_hookFake, [_cargo, _chopper]] call CBA_fnc_directCall; + _support = [btc_lift_fnc_hookFake, [_cargo, _chopper]] call CBA_fnc_directCall; _bbr_z = _support distance _cargo; sleep 0.3; }; @@ -75,7 +75,7 @@ if ((_bbr isEqualTo []) OR (_ropes_check select {!isNull _x} isEqualTo [])) then }; if (btc_debug) then { - [format ["boundingBoxReal : %1 rope length : %2", _bbr, _rope_length], __FILE__, [btc_debug, false]] call btc_fnc_debug_message; + [format ["boundingBoxReal : %1 rope length : %2", _bbr, _rope_length], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; }; private _max_cargo = getNumber (configOf _chopper >> "slingLoadMaxCargoMass"); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hookFake.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hookFake.sqf index eaea617bd..a55a154dc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hookFake.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hookFake.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_lift_hookFake +Function: btc_lift_fnc_hookFake Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_lift_hookFake; + _result = [] call btc_lift_fnc_hookFake; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hud.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hud.sqf index 192df97c7..918a04e5f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hud.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hud.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_lift_hud +Function: btc_lift_fnc_hud Description: Fill me when you edit me ! @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_lift_hud; + _result = [] call btc_lift_fnc_hud; (end) Author: @@ -39,6 +39,6 @@ private _arrow_down = "\A3\ui_f\data\igui\cfg\actions\arrow_down_gs.paa"; private _complete = "\A3\ui_f\data\map\markers\nato\b_unknown.paa"; private _incomplete = "\A3\ui_f\data\map\markers\nato\b_unknown.paa"; -[btc_fnc_lift_hudLoop, 0, +[btc_lift_fnc_hudLoop, 0, [_arrow_up, _arrow_down, _complete, _incomplete, _obj_img, _obj_pic, _arrow, _obj_name, _obj_alt] ] call CBA_fnc_addPerFrameHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hudLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hudLoop.sqf index 43cf59a12..81ce65cbc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hudLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hudLoop.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_lift_hudLoop +Function: btc_lift_fnc_hudLoop Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_lift_hudLoop; + _result = [] call btc_lift_fnc_hudLoop; (end) Author: @@ -35,7 +35,7 @@ if !((alive player && vehicle player != player) && btc_lift_hud) then { }; private _chopper = vehicle player; -private _array = [_chopper] call btc_fnc_lift_getLiftable; +private _array = [_chopper] call btc_lift_fnc_getLiftable; private _cargo_array = nearestObjects [_chopper, _array, 30]; if (_array isEqualTo []) then {_cargo_array = [];}; _cargo_array = _cargo_array - [_chopper]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf index 6df1fc4f8..5921ba628 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_copy +Function: btc_log_fnc_copy Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_copy; + _result = [] call btc_log_fnc_copy; (end) Author: @@ -31,7 +31,7 @@ private _objects = nearestObjects [_create_object_point, _containers_mat, 3]; if (_objects isEqualTo []) exitWith {(localize "STR_BTC_HAM_O_COPY_NOCONTAINER") call CBA_fnc_notify}; btc_int_ask_data = nil; -[9, _objects select 0] remoteExecCall ["btc_fnc_int_ask_var", 2]; +[9, _objects select 0] remoteExecCall ["btc_int_fnc_ask_var", 2]; [{!(isNil "btc_int_ask_data")}, { btc_copy_container = +btc_int_ask_data; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf index 84ca8624b..7501f9db8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_create +Function: btc_log_fnc_create Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_create; + _result = [] call btc_log_fnc_create; (end) Author: @@ -35,7 +35,7 @@ createDialog "btc_log_dlg_create"; waitUntil {dialog}; -call btc_fnc_log_create_load; +call btc_log_fnc_create_load; private _class = lbData [72, lbCurSel 72]; private _selected = _class; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 73f47703f..20e3aa020 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_createVehicle +Function: btc_log_fnc_createVehicle Description: Creates an empty object of given classname type. @@ -23,7 +23,7 @@ Returns: Examples: (begin example) - _veh = ["vehicle_class_name", getPos player] call btc_fnc_log_createVehicle; + _veh = ["vehicle_class_name", getPos player] call btc_log_fnc_createVehicle; (end) Author: @@ -53,7 +53,7 @@ _veh setPosASL _pos; [_veh, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; if (_EDENinventory isNotEqualTo []) then { _veh setVariable ["btc_EDENinventory", _EDENinventory]; - [_veh, _EDENinventory] call btc_fnc_log_setCargo; + [_veh, _EDENinventory] call btc_log_fnc_setCargo; }; _veh setVariable ["btc_dont_delete", true]; @@ -71,6 +71,6 @@ if (_allHitPointsDamage isNotEqualTo []) then { }; }; -_veh call btc_fnc_db_add_veh; +_veh call btc_db_fnc_add_veh; _veh diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf index 9c995ec62..a6ff5b8cb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_create_apply +Function: btc_log_fnc_create_apply Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_create_apply; + _result = [] call btc_log_fnc_create_apply; (end) Author: @@ -38,9 +38,9 @@ params [ [selectRandom _food, selectRandom _water] apply {[_x, "", [[[], []], [[], []], [[], []]]]}, [[[], []], [[], []], [[], []]], [vectorDir _create_object_point, vectorUp _create_object_point] - ]] remoteExecCall ["btc_fnc_db_loadObjectStatus", 2]; + ]] remoteExecCall ["btc_db_fnc_loadObjectStatus", 2]; } else { - [_class, getPosASL _create_object_point] remoteExecCall ["btc_fnc_log_create_s", 2]; + [_class, getPosASL _create_object_point] remoteExecCall ["btc_log_fnc_create_s", 2]; }; }, [lbData [72, lbCurSel 72], _create_object_point], 0.2] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf index 3f9720dd3..9f9fecd72 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_create_change_target +Function: btc_log_fnc_create_change_target Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_create_change_target; + _result = [] call btc_log_fnc_create_change_target; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_load.sqf index 25e1b22dd..e7d5b215d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_load.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_create_load +Function: btc_log_fnc_create_load Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_create_load; + _result = [] call btc_log_fnc_create_load; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf index 8d9825a02..a2106860f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_create_s +Function: btc_log_fnc_create_s Description: Fill me when you edit me ! @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_create_s; + _result = [] call btc_log_fnc_create_s; (end) Author: @@ -41,4 +41,4 @@ if (unitIsUAV _obj) then { createVehicleCrew _obj; }; -[_obj] call btc_fnc_log_init; +[_obj] call btc_log_fnc_init; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf index 33f1591a5..e4fad1b45 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_delete +Function: btc_log_fnc_delete Description: Delete object created by logistic point. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [btc_create_object_point] call btc_fnc_log_delete; + [btc_create_object_point] call btc_log_fnc_delete; (end) Author: @@ -38,4 +38,4 @@ if (_array isEqualTo []) exitWith { ] call CBA_fnc_notify; }; -[_array select 0] remoteExecCall ["btc_fnc_log_server_delete", [2]]; +[_array select 0] remoteExecCall ["btc_log_fnc_server_delete", [2]]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/dlg.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/dlg.hpp index c82267511..df1ca551e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/dlg.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/dlg.hpp @@ -8,7 +8,7 @@ class btc_log_dlg_create { class btc_log_dlg_Apply : btc_dlg_button { idc = -1; text = $STR_ui_debug_but_apply; //Apply - action = "[] call btc_fnc_log_create_apply"; + action = "[] call btc_log_fnc_create_apply"; x = 0 * safezoneW + safezoneX; y = 0.25 * safezoneH + safezoneY; default = true; @@ -23,7 +23,7 @@ class btc_log_dlg_create { }; class btc_log_dlg_main_class : btc_dlg_comboBox { idc = 71; - onLBSelChanged = "[] call btc_fnc_log_create_change_target"; + onLBSelChanged = "[] call btc_log_fnc_create_change_target"; x = 0 * safezoneW + safezoneX; y = 0 * safezoneH + safezoneY; w = 0.4 * safezoneW; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf index 5d9ddc165..8eb79f3e7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_getRearmMagazines +Function: btc_log_fnc_getRearmMagazines Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_getRearmMagazines; + _result = [] call btc_log_fnc_getRearmMagazines; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_cc.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_cc.sqf index e8041782c..08f422340 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_cc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_cc.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_get_cc +Function: btc_log_fnc_get_cc Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_get_cc; + _result = [] call btc_log_fnc_get_cc; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_corner_points.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_corner_points.sqf index ae56a6a6d..98cfb736f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_corner_points.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_corner_points.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_get_corner_points +Function: btc_log_fnc_get_corner_points Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [cursorObject] call btc_fnc_log_get_corner_points; + _result = [cursorObject] call btc_log_fnc_get_corner_points; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_rc.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_rc.sqf index db201002e..a11301641 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_rc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_rc.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_get_rc +Function: btc_log_fnc_get_rc Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_get_rc; + _result = [] call btc_log_fnc_get_rc; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf index 0e1aa17c3..880b2383f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_init +Function: btc_log_fnc_init Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_init; + _result = [] call btc_log_fnc_init; (end) Author: @@ -37,20 +37,20 @@ if ( private _type = typeOf _obj; if (_type in btc_log_def_loadable || {_type in btc_log_def_rc}) then { if (_type in btc_log_def_rc || {getNumber (configFile >> "CfgVehicles" >> _type >> "ace_cargo_canLoad") isEqualTo 0}) then { - [_obj, [_obj] call btc_fnc_log_get_rc] call ace_cargo_fnc_setSize; + [_obj, [_obj] call btc_log_fnc_get_rc] call ace_cargo_fnc_setSize; if (btc_debug_log) then { - [format ["ace_cargo_fnc_setSize to %1", _obj], __FILE__, [false]] call btc_fnc_debug_message; + [format ["ace_cargo_fnc_setSize to %1", _obj], __FILE__, [false]] call btc_debug_fnc_message; }; }; }; if (_type in btc_log_def_can_load || {_type in btc_log_def_cc}) then { if (_type in btc_log_def_cc || {getNumber (configFile >> "CfgVehicles" >> _type >> "ace_cargo_hasCargo") isEqualTo 0}) then { - [_obj, [_obj] call btc_fnc_log_get_cc] call ace_cargo_fnc_setSpace; + [_obj, [_obj] call btc_log_fnc_get_cc] call ace_cargo_fnc_setSpace; if (btc_debug_log) then { - [format ["ace_cargo_fnc_setSpace to %1", _obj], __FILE__, [false]] call btc_fnc_debug_message; + [format ["ace_cargo_fnc_setSpace to %1", _obj], __FILE__, [false]] call btc_debug_fnc_message; }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/paste.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/paste.sqf index 979c77746..7cd393c89 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/paste.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/paste.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_paste +Function: btc_log_fnc_paste Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_paste; + _result = [] call btc_log_fnc_paste; (end) Author: @@ -30,4 +30,4 @@ if ([_create_object_point] call btc_fnc_checkArea) exitWith {}; if (isNil "_copy_container") exitWith {(localize "STR_BTC_HAM_O_PASTE_NOCOPIED") call CBA_fnc_notify}; -[_copy_container] remoteExecCall ["btc_fnc_db_loadObjectStatus", 2]; +[_copy_container] remoteExecCall ["btc_db_fnc_loadObjectStatus", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place.sqf index 9a9ea4fa5..ea77f0348 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_place +Function: btc_log_fnc_place Description: Carry and place an object with keys. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_log_place; + [cursorObject] call btc_log_fnc_place; (end) Author: @@ -50,7 +50,7 @@ private _actionEH = [player, "DefaultAction", {true}, {btc_log_placing = false;} [localize "STR_BTC_HAM_LOG_PLACE_RELEASE", ""] call ace_interaction_fnc_showMouseHint; //add actions to keys -private _place_EH_keydown = (findDisplay 46) displayAddEventHandler ["KeyDown", btc_fnc_log_place_key_down]; +private _place_EH_keydown = (findDisplay 46) displayAddEventHandler ["KeyDown", btc_log_fnc_place_key_down]; [player] call ace_weaponselect_fnc_putWeaponAway; player forceWalk true; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf index bb153d043..881691105 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_place_create_camera +Function: btc_log_fnc_place_create_camera Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_place_create_camera; + _result = [] call btc_log_fnc_place_create_camera; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf index 202e78f6e..88fa18624 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_place_destroy_camera +Function: btc_log_fnc_place_destroy_camera Description: Fill me when you edit me ! @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_place_destroy_camera; + _result = [] call btc_log_fnc_place_destroy_camera; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_key_down.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_key_down.sqf index da11b4a43..cf375e060 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_key_down.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_key_down.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_place_key_down +Function: btc_log_fnc_place_key_down Description: https://community.bistudio.com/wiki/DIK_KeyCodes @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_place_key_down; + _result = [] call btc_log_fnc_place_key_down; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf index 0ae8037da..0f779cf9b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_refuelSource +Function: btc_log_fnc_refuelSource Description: Refuel a fuel source. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_log_refuelSource; + [] call btc_log_fnc_refuelSource; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf index 391fb1667..ba75bd3c3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_repair_wreck +Function: btc_log_fnc_repair_wreck Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_log_repair_wreck; + _result = [] call btc_log_fnc_repair_wreck; (end) Author: @@ -33,4 +33,4 @@ if (_array isEqualTo []) exitWith {(localize "STR_BTC_HAM_LOG_RWRECK_NOWRECK") c if (damage (_array select 0) != 1) exitWith {(localize "STR_BTC_HAM_LOG_RWRECK_NOTWRECK") call CBA_fnc_notify}; -[_array select 0] remoteExecCall ["btc_fnc_log_server_repair_wreck", 2]; +[_array select 0] remoteExecCall ["btc_log_fnc_server_repair_wreck", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_delete.sqf index 4d8436dee..2e5dca2f0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_delete.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_server_delete +Function: btc_log_fnc_server_delete Description: Delete object created by logistic point. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_log_server_delete; + [cursorObject] call btc_log_fnc_server_delete; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index b6a356248..8b9eb55e8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_server_repair_wreck +Function: btc_log_fnc_server_repair_wreck Description: Repair wreck. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _veh = [my_vehicle] spawn btc_fnc_log_server_repair_wreck; + _veh = [my_vehicle] spawn btc_log_fnc_server_repair_wreck; (end) Author: @@ -53,5 +53,5 @@ if ((getVehicleCargo _veh) isNotEqualTo []) then { }, _veh] call CBA_fnc_execNextFrame; [{ - _this call btc_fnc_log_createVehicle; + _this call btc_log_fnc_createVehicle; }, [_type, [_x, _y, 0.5 + _z], _dir] + _vehProperties + [_EDENinventory], 1] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf index 04753ffa5..1bbb7c2c8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setCargo.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_setCargo +Function: btc_log_fnc_setCargo Description: Clear cargo of all item weapon. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [vehicle player] call btc_fnc_log_setCargo; + [vehicle player] call btc_log_fnc_setCargo; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf index 478bfd858..145d47b8b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_addWP +Function: btc_mil_fnc_addWP Description: Add waypoint to allready created units. @@ -16,7 +16,7 @@ Returns: Examples: (begin example) - [group cursorObject, btc_city_all select 0, 200] call btc_fnc_mil_addWP; + [group cursorObject, btc_city_all select 0, 200] call btc_mil_fnc_addWP; (end) Author: @@ -52,7 +52,7 @@ switch (true) do { }; case (_wp > _wp_sentry_probability) : { [_group] call CBA_fnc_clearWaypoints; - [_group, _rpos, -1, "SENTRY", "AWARE", "RED", "UNCHANGED", "WEDGE", "(group this) call btc_fnc_data_add_group;", [18000, 36000, 54000]] call CBA_fnc_addWaypoint; + [_group, _rpos, -1, "SENTRY", "AWARE", "RED", "UNCHANGED", "WEDGE", "(group this) call btc_data_fnc_add_group;", [18000, 36000, 54000]] call CBA_fnc_addWaypoint; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/ammoUsage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/ammoUsage.sqf index ec26d8baa..b1ff0445d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/ammoUsage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/ammoUsage.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_ammoUsage +Function: btc_mil_fnc_ammoUsage Description: Check if a type of unit use a certain type of ammo base on item type and aiAmmoUsageFlags (Tells the AI how to use this Ammo.). @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [typeOf player, ["AssaultRifle", "", [false, "Rifle_Long_Base_F"]]] call btc_fnc_mil_ammoUsage; + [typeOf player, ["AssaultRifle", "", [false, "Rifle_Long_Base_F"]]] call btc_mil_fnc_ammoUsage; (end) Author: @@ -28,10 +28,10 @@ params [ ]; private _weapons = getArray (configFile >> "CfgVehicles" >> _typeof_unit >> "weapons"); -private _weapons_ammoUsage = [_weapons, _itemType_ammo_usageAllowed] call btc_fnc_arsenal_ammoUsage; +private _weapons_ammoUsage = [_weapons, _itemType_ammo_usageAllowed] call btc_arsenal_fnc_ammoUsage; if (btc_debug_log) then { - [format ["%1 Weapons: %2 isAmmoUsage: %3", _typeof_unit, _weapons, _weapons_ammoUsage], __FILE__, [false]] call btc_fnc_debug_message; + [format ["%1 Weapons: %2 isAmmoUsage: %3", _typeof_unit, _weapons, _weapons_ammoUsage], __FILE__, [false]] call btc_debug_fnc_message; }; _weapons_ammoUsage isNotEqualTo [] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf index 424940cbf..c7f4f33a0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_check_cap +Function: btc_mil_fnc_check_cap Description: Capture city around with a time cooler. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_mil_check_cap; + [] call btc_mil_fnc_check_cap; (end) Author: @@ -28,7 +28,7 @@ private _cap_to = btc_hideouts select {time - (_x getVariable ["cap_time", time] if (_cap_to isEqualTo []) exitWith { btc_hideout_cap_checking = false; if (btc_debug_log) then { - ["exit cap time", __FILE__, [false]] call btc_fnc_debug_message; + ["exit cap time", __FILE__, [false]] call btc_debug_fnc_message; }; }; @@ -39,25 +39,25 @@ if (_cap_to isEqualTo []) exitWith { if (_in_range isEqualTo []) exitWith { btc_hideout_cap_checking = false; if (btc_debug_log) then { - [format ["exit no in range = %1", _hd getVariable "id"], __FILE__, [false]] call btc_fnc_debug_message; + [format ["exit no in range = %1", _hd getVariable "id"], __FILE__, [false]] call btc_debug_fnc_message; }; }; private _closest = [_hd, _in_range, true] call btc_fnc_find_closecity; if (btc_debug_log) then { - [format ["_in_range = %1", _in_range], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_in_range = %1", _in_range], __FILE__, [false]] call btc_debug_fnc_message; }; if (_closest isEqualTo []) exitWith { btc_hideout_cap_checking = false; if (btc_debug_log) then { - [format ["exit null _closest = %1", _hd getVariable "id"], __FILE__, [false]] call btc_fnc_debug_message; + [format ["exit null _closest = %1", _hd getVariable "id"], __FILE__, [false]] call btc_debug_fnc_message; }; }; if (btc_debug_log) then { - [format ["SEND FROM = %1 TO %2 [int %3]", _hd getVariable "id", _closest getVariable ["name", "error"], _closest getVariable ["initialized", false]], __FILE__, [false]] call btc_fnc_debug_message; + [format ["SEND FROM = %1 TO %2 [int %3]", _hd getVariable "id", _closest getVariable ["name", "error"], _closest getVariable ["initialized", false]], __FILE__, [false]] call btc_debug_fnc_message; }; _hd setVariable ["cap_time", time]; @@ -65,7 +65,7 @@ if (_cap_to isEqualTo []) exitWith { if (_closest getVariable ["initialized", false]) then { for "_i" from 0 to (2 + (round random 3)) do { [{ - _this call btc_fnc_mil_send; + _this call btc_mil_fnc_send; }, [_hd, _closest, 0], _i * 2 + 1] call CBA_fnc_waitAndExecute; }; } else { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf index ecb78a576..0ff676a82 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_class +Function: btc_mil_fnc_class Description: Find class name from a specific faction. @@ -24,7 +24,7 @@ Returns: Examples: (begin example) - [["IND_F"]] call btc_fnc_mil_class; + [["IND_F"]] call btc_mil_fnc_class; (end) Author: @@ -68,7 +68,7 @@ _enemy_side = [east, west, independent, civilian] select getNumber (_cfgFactionC //Prevent selecting same side as player side if (_enemy_side isEqualTo btc_player_side) exitWith { - [["IND_G_F"], _en_AA, _en_tank] call btc_fnc_mil_class; + [["IND_G_F"], _en_AA, _en_tank] call btc_mil_fnc_class; }; { @@ -81,7 +81,7 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { }; //Units - _divers = _allclass_f select {[_x, ["AssaultRifle", "64 + 32"]] call btc_fnc_mil_ammoUsage}; + _divers = _allclass_f select {[_x, ["AssaultRifle", "64 + 32"]] call btc_mil_fnc_ammoUsage}; if (_divers isEqualTo []) then { _divers = if (_enemy_side isEqualTo east) then { ["O_diver_F", "O_diver_exp_F", "O_diver_TL_F"] @@ -120,7 +120,7 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { //Final filter unwanted units type if !(_en_AA) then { //Remove Anti-Air Units - _type_units = _type_units select {!([_x, ["MissileLauncher", "256"]] call btc_fnc_mil_ammoUsage)}; + _type_units = _type_units select {!([_x, ["MissileLauncher", "256"]] call btc_mil_fnc_ammoUsage)}; }; _type_units = _type_units select { (getText (_cfgVehicles >> _x >> "role") isNotEqualTo "Crewman") && diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf index ee00f4d85..4b72cec7e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_createUnits +Function: btc_mil_fnc_createUnits Description: Fill me when you edit me ! @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_mil_createUnits; + _result = [] call btc_mil_fnc_createUnits; (end) Author: @@ -41,7 +41,7 @@ for "_i" from 1 to _number do { selectRandom _type_units; }; - [_group, _unit_type, _pos] call btc_fnc_delay_createUnit; + [_group, _unit_type, _pos] call btc_delay_fnc_createUnit; }; _group diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createVehicle.sqf index 058a57482..191092a81 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createVehicle.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_createVehicle +Function: btc_mil_fnc_createVehicle Description: Create a vehicle with desired crews. @@ -20,10 +20,10 @@ Returns: Examples: (begin example) - [createGroup [btc_enemy_side, true], player getPos [10, direction player]] call btc_fnc_mil_createVehicle; + [createGroup [btc_enemy_side, true], player getPos [10, direction player]] call btc_mil_fnc_createVehicle; (end) (begin example) - [createGroup [btc_enemy_side, true], player getPos [10, direction player], "O_G_Van_02_vehicle_F"] call btc_fnc_mil_createVehicle; + [createGroup [btc_enemy_side, true], player getPos [10, direction player], "O_G_Van_02_vehicle_F"] call btc_mil_fnc_createVehicle; (end) Author: @@ -31,7 +31,7 @@ Author: ---------------------------------------------------------------------------- */ -if (canSuspend) exitWith {[btc_fnc_mil_createVehicle, _this] call CBA_fnc_directCall}; +if (canSuspend) exitWith {[btc_mil_fnc_createVehicle, _this] call CBA_fnc_directCall}; params [ ["_group", grpNull, [grpNull]], @@ -57,4 +57,4 @@ for "_i" from _crewSeats to (_totalSeats - 1) do { _units_type pushBack selectRandom _type_units; }; -[_group, _veh_type, _units_type, _pos, _dir, 1, _surfaceNormal] call btc_fnc_delay_createVehicle +[_group, _veh_type, _units_type, _pos, _dir, 1, _surfaceNormal] call btc_delay_fnc_createVehicle diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 64a097ca3..035b32967 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_create_group +Function: btc_mil_fnc_create_group Description: Fill me when you edit me ! @@ -20,7 +20,7 @@ Returns: Examples: (begin example) - [player, 50, 1, (btc_p_mil_wp_ratios#0) - 0.1] call btc_fnc_mil_create_group; + [player, 50, 1, (btc_p_mil_wp_ratios#0) - 0.1] call btc_mil_fnc_create_group; (end) Author: @@ -41,10 +41,10 @@ params [ ]; _wp_ratios params ["_wp_house_probability", "_wp_sentry_probability"]; -([_city, _area] call btc_fnc_city_findPos) params ["_rpos", "_pos_iswater"]; +([_city, _area] call btc_city_fnc_findPos) params ["_rpos", "_pos_iswater"]; private _group_structure = [1, objNull]; if (_wp <= _wp_house_probability) then { // Find building - ([_rpos, _n] call btc_fnc_mil_getBuilding) params ["_numberOfGroup", "_structure"]; + ([_rpos, _n] call btc_mil_fnc_getBuilding) params ["_numberOfGroup", "_structure"]; if (_structure isNotEqualTo "") then { _group_structure = [_numberOfGroup, _structure]; } else { @@ -76,11 +76,11 @@ for "_i" from 1 to _numberOfGroup do { }; }; - [_group, _rpos, _n, _pos_iswater] call btc_fnc_mil_createUnits; + [_group, _rpos, _n, _pos_iswater] call btc_mil_fnc_createUnits; }; if (btc_debug_log) then { - [format ["_this = %1 ; POS %2 UNITS N %3 _wp_ratios %4", _this, _rpos, _n, _wp_ratios], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_this = %1 ; POS %2 UNITS N %3 _wp_ratios %4", _this, _rpos, _n, _wp_ratios], __FILE__, [false]] call btc_debug_fnc_message; }; _groups diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf index 5801b0feb..2566cd1c1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_create_patrol +Function: btc_mil_fnc_create_patrol Description: Fill me when you edit me ! @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [2, (allPlayers#0), btc_patrol_area] call btc_fnc_mil_create_patrol; + [2, (allPlayers#0), btc_patrol_area] call btc_mil_fnc_create_patrol; (end) Author: @@ -37,11 +37,11 @@ if (_random isEqualTo 0) then { }; if (btc_debug_log) then { - [format ["_random = %1 _active_city %2 _area %3 btc_patrol_active = %4", _random, _active_city, _area, count btc_patrol_active], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_random = %1 _active_city %2 _area %3 btc_patrol_active = %4", _random, _active_city, _area, count btc_patrol_active], __FILE__, [false]] call btc_debug_fnc_message; }; //Remove if too far from player -if ([_active_city, grpNull, _area] call btc_fnc_patrol_playersInAreaCityGroup) exitWith { +if ([_active_city, grpNull, _area] call btc_patrol_fnc_playersInAreaCityGroup) exitWith { _group call CBA_fnc_deleteEntity; false }; @@ -76,7 +76,7 @@ private _delay = switch (_random) do { case 1 : { _pos = [_pos, 0, 150, 10, false] call btc_fnc_findsafepos; - [_group, _pos, 5 + (round random 8)] call btc_fnc_mil_createUnits; + [_group, _pos, 5 + (round random 8)] call btc_mil_fnc_createUnits; 0 }; case 2 : { @@ -94,12 +94,12 @@ private _delay = switch (_random) do { _pos = getPos selectRandom _roads; }; }; - [_group, _pos, _veh_type] call btc_fnc_mil_createVehicle + [_group, _pos, _veh_type] call btc_mil_fnc_createVehicle }; }; [{ - _this call btc_fnc_patrol_init; + _this call btc_patrol_fnc_init; [[_this select 0]] call btc_fnc_set_groupsOwner; }, [_group, [_start_city, _active_city], _area, _pos_isWater], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_static.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_static.sqf index d4e96c17d..f1c53a161 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_static.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_static.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_create_static +Function: btc_mil_fnc_create_static Description: Create a static. @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - _static = [getPosATL player] call btc_fnc_mil_create_static; + _static = [getPosATL player] call btc_mil_fnc_create_static; (end) Author: @@ -36,11 +36,11 @@ params [ private _group = createGroup btc_enemy_side; _group setVariable ["btc_city", _city]; [_group] call CBA_fnc_clearWaypoints; -[_group, _pos, selectRandom _statics_type, _dir, _surfaceNormal] call btc_fnc_mil_createVehicle; +[_group, _pos, selectRandom _statics_type, _dir, _surfaceNormal] call btc_mil_fnc_createVehicle; _group setBehaviour "COMBAT"; _group setCombatMode "RED"; if (btc_debug_log) then { - [format ["POS %1", _pos], __FILE__, [false]] call btc_fnc_debug_message; + [format ["POS %1", _pos], __FILE__, [false]] call btc_debug_fnc_message; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf index 94bc4f40b..a03bbcadb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_create_staticOnRoof +Function: btc_mil_fnc_create_staticOnRoof Description: Create static on roof. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [[position player, 30] call btc_fnc_getHouses, 3] call btc_fnc_mil_create_staticOnRoof; + _result = [[position player, 30] call btc_fnc_getHouses, 3] call btc_mil_fnc_create_staticOnRoof; (end) Author: @@ -43,7 +43,7 @@ while { ([_house] call btc_fnc_roof) params ["_spawnPos", "_surfaceNormal"]; if (acos (_surfaceNormal vectorCos [0, 0, 1]) < 30) then { - [ASLToATL _spawnPos, btc_type_mg + btc_type_gl, (_house getDir _spawnPos) + (random [-15, 0, 15]), _surfaceNormal, _city] call btc_fnc_mil_create_static; + [ASLToATL _spawnPos, btc_type_mg + btc_type_gl, (_house getDir _spawnPos) + (random [-15, 0, 15]), _surfaceNormal, _city] call btc_mil_fnc_create_static; _i = _i + 1; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf index 093ab440d..930c0b456 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_getBuilding +Function: btc_mil_fnc_getBuilding Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_mil_getBuilding; + _result = [] call btc_mil_fnc_getBuilding; (end) Author: @@ -27,7 +27,7 @@ params [ ]; private _structure = objNull; -private _structures = [_rpos, 70] call btc_fnc_mil_getStructures; +private _structures = [_rpos, 70] call btc_mil_fnc_getStructures; if (_structures isEqualTo []) then { private _houses = [_rpos, 50] call btc_fnc_getHouses; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf index 9fa848059..02cc7857f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_getStructures +Function: btc_mil_fnc_getStructures Description: Fill me when you edit me ! @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_mil_getStructures; + _result = [] call btc_mil_fnc_getStructures; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf index 8a1ecc1f6..8bc671af4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf @@ -1,9 +1,9 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_send +Function: btc_mil_fnc_send Description: - Send a group of units to a location then call btc_fnc_data_add_group. If player is around, initiate patrol around the destination, ifnot save in database and delete units. + Send a group of units to a location then call btc_data_fnc_add_group. If player is around, initiate patrol around the destination, ifnot save in database and delete units. Parameters: _start - Starting point. [Object] @@ -17,7 +17,7 @@ Returns: Examples: (begin example) - [allPlayers#0, getPos (allPlayers#0), 1, selectRandom btc_type_motorized] call btc_fnc_mil_send + [allPlayers#0, getPos (allPlayers#0), 1, selectRandom btc_type_motorized] call btc_mil_fnc_send (end) Author: @@ -39,7 +39,7 @@ private _group = grpNull; private _delay = 0; switch (_typeOf_patrol) do { case 0 : { - _group = ([_pos, 150, 3 + round random 6, 1] call btc_fnc_mil_create_group) select 0; + _group = ([_pos, 150, 3 + round random 6, 1] call btc_mil_fnc_create_group) select 0; _group setVariable ["no_cache", true]; [_group] call CBA_fnc_clearWaypoints; }; @@ -51,7 +51,7 @@ switch (_typeOf_patrol) do { if (_veh_type isEqualTo "") then {_veh_type = selectRandom btc_type_motorized}; private _return_pos = [_pos, 10, 500, 13, false] call btc_fnc_findsafepos; - _delay = [_group, _return_pos, _veh_type] call btc_fnc_mil_createVehicle; + _delay = [_group, _return_pos, _veh_type] call btc_mil_fnc_createVehicle; }; }; @@ -60,10 +60,10 @@ switch (_typeOf_patrol) do { switch (_typeOf_patrol) do { case 0 : { - [_group, _dest, -1, "MOVE", "AWARE", "RED", "FULL", _infFormation, "(group this) call btc_fnc_data_add_group;", nil, 60] call CBA_fnc_addWaypoint; + [_group, _dest, -1, "MOVE", "AWARE", "RED", "FULL", _infFormation, "(group this) call btc_data_fnc_add_group;", nil, 60] call CBA_fnc_addWaypoint; }; case 1 : { - [_group, _dest, -1, "MOVE", "AWARE", "RED", "NORMAL", "NO CHANGE", "(group this) call btc_fnc_data_add_group;", nil, 60] call CBA_fnc_addWaypoint; + [_group, _dest, -1, "MOVE", "AWARE", "RED", "NORMAL", "NO CHANGE", "(group this) call btc_data_fnc_add_group;", nil, 60] call CBA_fnc_addWaypoint; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/set_skill.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/set_skill.sqf index 83bd8652d..9e9ad2a13 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/set_skill.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/set_skill.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_set_skill +Function: btc_mil_fnc_set_skill Description: Set skills to a unit. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_mil_set_skill; + [cursorObject] call btc_mil_fnc_set_skill; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf index 8df2f9045..eefb45be8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_mil_unit_killed +Function: btc_mil_fnc_unit_killed Description: Fill me when you edit me ! @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_mil_unit_killed; + _result = [] call btc_mil_fnc_unit_killed; (end) Author: @@ -31,5 +31,5 @@ if (random 100 > btc_info_intel_chance) then { }; if (isPlayer _instigator) then { - [btc_rep_bonus_mil_killed, _instigator] call btc_fnc_rep_change; + [btc_rep_bonus_mil_killed, _instigator] call btc_rep_fnc_change; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/WPCheck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/WPCheck.sqf index 6294758ca..287ce8765 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/WPCheck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/WPCheck.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_patrol_WPCheck +Function: btc_patrol_fnc_WPCheck Description: Check if the waypoint has been completed and initialise a new patrol. @@ -16,7 +16,7 @@ Returns: Examples: (begin example) - [group cursorTarget, 1000, getPos player, [0, 1, 2]] call btc_fnc_patrol_WPCheck; + [group cursorTarget, 1000, getPos player, [0, 1, 2]] call btc_patrol_fnc_WPCheck; (end) Author: @@ -48,14 +48,14 @@ private _active_city = btc_city_all select _active_cityID; private _end_city = btc_city_all select _end_cityID; //Remove if too far from player -if ([_active_city, _group, _area] call btc_fnc_patrol_playersInAreaCityGroup) exitWith { - [_group] call btc_fnc_patrol_eh; +if ([_active_city, _group, _area] call btc_patrol_fnc_playersInAreaCityGroup) exitWith { + [_group] call btc_patrol_fnc_eh; }; //Sometimes the waypoint is completed but too far due to obstacle (water for island etc) if ((leader _group) distance _last_wp_pos > 100) then { if (btc_debug || btc_debug_log) then { - [format ["Patrol ID: %1, %2 inaccessible (end city ID: %3)", _group getVariable ["btc_patrol_id", "Missing patrol ID"], _end_city getVariable ["name", "no name"], _end_city getVariable ["id", 0]], __FILE__, [btc_debug, btc_debug_log]] call btc_fnc_debug_message; + [format ["Patrol ID: %1, %2 inaccessible (end city ID: %3)", _group getVariable ["btc_patrol_id", "Missing patrol ID"], _end_city getVariable ["name", "no name"], _end_city getVariable ["id", 0]], __FILE__, [btc_debug, btc_debug_log]] call btc_debug_fnc_message; }; //Dynamically create a balcklist of cities inaccessible from the starting city @@ -66,4 +66,4 @@ if ((leader _group) distance _last_wp_pos > 100) then { _end_city = _start_city; }; -[_group, [_end_city, _active_city], _area, _isBoat] call btc_fnc_patrol_init; +[_group, [_end_city, _active_city], _area, _isBoat] call btc_patrol_fnc_init; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addEH.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addEH.sqf index b8ab18a49..7a5959eb0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addEH.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addEH.sqf @@ -1,5 +1,5 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_patrol_addEH +Function: btc_patrol_fnc_addEH Description: Add events link to the patrol system. @@ -28,7 +28,7 @@ if ( ) exitWith {}; _veh setVariable ["btc_crews", _group]; -[_veh, "Fuel", btc_fnc_patrol_eh] call CBA_fnc_addBISEventHandler; +[_veh, "Fuel", btc_patrol_fnc_eh] call CBA_fnc_addBISEventHandler; if (side _group isEqualTo civilian) then { - [_veh, "GetOut", btc_fnc_patrol_eh] call CBA_fnc_addBISEventHandler; + [_veh, "GetOut", btc_patrol_fnc_eh] call CBA_fnc_addBISEventHandler; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf index e3c5fa0d2..f7d96ec86 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_patrol_addWP +Function: btc_patrol_fnc_addWP Description: Add waypoint to the end city. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [group cursorTarget, getPos player, "[group this, 1000, [0, 0, 0], [0, 1, 2], false] call btc_fnc_patrol_WPCheck;"] call btc_fnc_patrol_addWP; + [group cursorTarget, getPos player, "[group this, 1000, [0, 0, 0], [0, 1, 2], false] call btc_patrol_fnc_WPCheck;"] call btc_patrol_fnc_addWP; (end) Author: @@ -29,7 +29,7 @@ params [ ]; if (isNull _group) exitWith { - [format ["_group isNull %1, waypointStatements = %2 ", isNull _group, _waypointStatements], __FILE__] call btc_fnc_debug_message; + [format ["_group isNull %1, waypointStatements = %2 ", isNull _group, _waypointStatements], __FILE__] call btc_debug_fnc_message; }; private _vehicle = vehicle leader _group; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/disabled.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/disabled.sqf index 4515e763b..bb3e16403 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/disabled.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/disabled.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_patrol_disabled +Function: btc_patrol_fnc_disabled Description: Delete vehicle disabled due to a high impact. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [veh] call btc_fnc_patrol_disabled; + [veh] call btc_patrol_fnc_disabled; (end) Author: @@ -26,14 +26,14 @@ params [ ["_damage", 0.2, [0]] ]; -if (_veh getVariable ["btc_fnc_patrol_disabled_fired", false]) exitWith {}; +if (_veh getVariable ["btc_patrol_fnc_disabled_fired", false]) exitWith {}; if (_damage > 0.1) then { - _veh setVariable ["btc_fnc_patrol_disabled_fired", true, true]; + _veh setVariable ["btc_patrol_fnc_disabled_fired", true, true]; if (isServer) then { - [_veh] call btc_fnc_patrol_eh; + [_veh] call btc_patrol_fnc_eh; } else { - [_veh] remoteExecCall ["btc_fnc_patrol_eh", 2]; + [_veh] remoteExecCall ["btc_patrol_fnc_eh", 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/eh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/eh.sqf index 2e1c9e234..cb6990f29 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/eh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/eh.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_patrol_eh +Function: btc_patrol_fnc_eh Description: Remove events and delete entity. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorTarget] call btc_fnc_patrol_eh; + [cursorTarget] call btc_patrol_fnc_eh; (end) Author: @@ -24,11 +24,11 @@ params [ ["_veh", objNull, [objNull, grpNull]] ]; -if (_veh getVariable ["btc_fnc_patrol_eh_fired", false]) exitWith {}; -_veh setVariable ["btc_fnc_patrol_eh_fired", true, true]; +if (_veh getVariable ["btc_patrol_fnc_eh_fired", false]) exitWith {}; +_veh setVariable ["btc_patrol_fnc_eh_fired", true, true]; if (btc_debug_log) then { - [format ["%1, isRE %2", _veh, isRemoteExecuted], __FILE__, [false]] call btc_fnc_debug_message; + [format ["%1, isRE %2", _veh, isRemoteExecuted], __FILE__, [false]] call btc_debug_fnc_message; }; private _group = if (_veh isEqualType grpNull) then { @@ -50,6 +50,6 @@ if (_veh isEqualType objNull) then { [[], [_veh, _group]] call btc_fnc_delete; } else { private _vehicle = (assignedVehicle leader _veh); - _vehicle setVariable ["btc_fnc_patrol_eh_fired", true, true]; + _vehicle setVariable ["btc_patrol_fnc_eh_fired", true, true]; [[], [_vehicle, _veh]] call btc_fnc_delete; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/init.sqf index 1986cf783..971ab8a47 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/init.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_patrol_init +Function: btc_patrol_fnc_init Description: Initialise patrol between two city. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [group cursorTarget, [selectRandom btc_city_all, selectRandom btc_city_all]] call btc_fnc_patrol_init; + [group cursorTarget, [selectRandom btc_city_all, selectRandom btc_city_all]] call btc_patrol_fnc_init; (end) Author: @@ -38,7 +38,7 @@ if !(isGroupDeletedWhenEmpty _group) then { _group deleteGroupWhenEmpty true; }; -private _end_city = selectRandom ([[_start_city, _active_city], _area, _isBoat] call btc_fnc_patrol_usefulCity); +private _end_city = selectRandom ([[_start_city, _active_city], _area, _isBoat] call btc_patrol_fnc_usefulCity); private _pos = getPos _end_city; if (_isBoat) then { @@ -49,12 +49,12 @@ if (_isBoat) then { private _start_cityID = _start_city getVariable ["id", 0]; private _active_cityID = _active_city getVariable ["id", 0]; private _end_cityID = _end_city getVariable ["id", 0]; -private _waypointStatements = format ["[group this, %1, %2, %3, %4] call btc_fnc_patrol_WPCheck;", _area, _pos, [_start_cityID, _active_cityID, _end_cityID], _isBoat]; +private _waypointStatements = format ["[group this, %1, %2, %3, %4] call btc_patrol_fnc_WPCheck;", _area, _pos, [_start_cityID, _active_cityID, _end_cityID], _isBoat]; -[_group, _pos, _waypointStatements] call btc_fnc_patrol_addWP; +[_group, _pos, _waypointStatements] call btc_patrol_fnc_addWP; if (btc_debug_log) then { if (!isNil {_group getVariable "btc_patrol_id"}) then { - [format ["ID: %1, End city ID: %2", _group getVariable ["btc_patrol_id", "Missing patrol ID"], _end_cityID], __FILE__, [false]] call btc_fnc_debug_message; + [format ["ID: %1, End city ID: %2", _group getVariable ["btc_patrol_id", "Missing patrol ID"], _end_cityID], __FILE__, [false]] call btc_debug_fnc_message; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/playersInAreaCityGroup.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/playersInAreaCityGroup.sqf index 467cfe32e..bb5aa8a90 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/playersInAreaCityGroup.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/playersInAreaCityGroup.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_patrol_playersInAreaCityGroup +Function: btc_patrol_fnc_playersInAreaCityGroup Description: Check if player is around the active city or leader of the patrol. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [selectRandom btc_city_all, group cursorTarget] call btc_fnc_patrol_playersInAreaCityGroup; + [selectRandom btc_city_all, group cursorTarget] call btc_patrol_fnc_playersInAreaCityGroup; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf index 8b2e9401f..b67ebe971 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_patrol_usefulCity +Function: btc_patrol_fnc_usefulCity Description: Return useful city based on starting city and activated city by player. Prefer cities in the opposite side of the active city relatively to the starting city. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [[selectRandom btc_city_all, selectRandom btc_city_all]] call btc_fnc_patrol_usefulCity; + [[selectRandom btc_city_all, selectRandom btc_city_all]] call btc_patrol_fnc_usefulCity; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/buildingchanged.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/buildingchanged.sqf index 32fd8e5b1..77c814636 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/buildingchanged.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/buildingchanged.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_buildingchanged +Function: btc_rep_fnc_buildingchanged Description: Change reputation on building damage. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_rep_buildingchanged; + _result = [] call btc_rep_fnc_buildingchanged; (end) Author: @@ -57,7 +57,7 @@ if (!_skipCategories) then { }; if (btc_debug) then { - [format ["%1 to %2. Malus: %3", typeOf _from, typeOf _to, _malus], __FILE__, [btc_debug, false]] call btc_fnc_debug_message; + [format ["%1 to %2. Malus: %3", typeOf _from, typeOf _to, _malus], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; }; -_malus call btc_fnc_rep_change; +_malus call btc_rep_fnc_change; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf index 0cc8e0e3d..24d0073ea 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_call_militia +Function: btc_rep_fnc_call_militia Description: Call militia to a position. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [getPos player] call btc_fnc_rep_call_militia; + [getPos player] call btc_rep_fnc_call_militia; (end) Author: @@ -37,7 +37,7 @@ if (_hideouts isNotEqualTo []) then { }; if (btc_debug_log) then { - [format ["_start_pos : %1 (HIDEOUTS)", _start_pos], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_start_pos : %1 (HIDEOUTS)", _start_pos], __FILE__, [false]] call btc_debug_fnc_message; }; if (_start_pos isEqualTo objNull) then { @@ -51,19 +51,19 @@ if (_start_pos isEqualTo objNull) then { private _ratio = if (_pos distance _start_pos > 1000) then {0.2} else {0.6}; if (btc_debug_log) then { - [format ["POS : %1 STARTPOS : %2 - RATIO = %3", _pos, _start_pos, _ratio], __FILE__, [false]] call btc_fnc_debug_message; + [format ["POS : %1 STARTPOS : %2 - RATIO = %3", _pos, _start_pos, _ratio], __FILE__, [false]] call btc_debug_fnc_message; }; if ((random 1) > _ratio) then { //MOT - [_start_pos, _pos, 1] call btc_fnc_mil_send; + [_start_pos, _pos, 1] call btc_mil_fnc_send; if (btc_debug_log) then { - [format ["MOT %1 POS %2", _group, _pos], __FILE__, [false]] call btc_fnc_debug_message; + [format ["MOT %1 POS %2", _group, _pos], __FILE__, [false]] call btc_debug_fnc_message; }; } else { //INF - [_start_pos, _pos, 0, "", "WEDGE"] call btc_fnc_mil_send; + [_start_pos, _pos, 0, "", "WEDGE"] call btc_mil_fnc_send; if (btc_debug_log) then { - [format ["INF %1", _group], __FILE__, [false]] call btc_fnc_debug_message; + [format ["INF %1", _group], __FILE__, [false]] call btc_debug_fnc_message; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf index 6f1ca457e..9a7079877 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_change +Function: btc_rep_fnc_change Description: Change reputation level. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [-10, player] call btc_fnc_rep_change; + [-10, player] call btc_rep_fnc_change; (end) Author: @@ -27,7 +27,7 @@ params [ ]; if (btc_debug || btc_debug_log) then { - [format ["GLOBAL %1 - CHANGE %2", btc_global_reputation, _reputation], __FILE__, [btc_debug, btc_debug_log]] call btc_fnc_debug_message; + [format ["GLOBAL %1 - CHANGE %2", btc_global_reputation, _reputation], __FILE__, [btc_debug, btc_debug_log]] call btc_debug_fnc_message; }; btc_global_reputation = btc_global_reputation + _reputation; @@ -38,9 +38,9 @@ if (btc_p_rep_notify) then { [{ abs(btc_rep_delayed select 0) > 3 }, { - btc_rep_delayed call btc_fnc_rep_notify; + btc_rep_delayed call btc_rep_fnc_notify; }, [], 10 * 60, { - btc_rep_delayed call btc_fnc_rep_notify; + btc_rep_delayed call btc_rep_fnc_notify; }] call CBA_fnc_waitUntilAndExecute; }, [], 0.5] call CBA_fnc_waitAndExecute; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/eh_effects.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/eh_effects.sqf index 0ee500de8..9387aac08 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/eh_effects.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/eh_effects.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_eh_effects +Function: btc_rep_fnc_eh_effects Description: Add effects when player do bad things (call militia, take weapons/grenade). @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [getPos player] call btc_fnc_rep_eh_effects; + [getPos player] call btc_rep_fnc_eh_effects; (end) Author: @@ -33,19 +33,19 @@ if (_random <= 3) exitWith {}; if (time > (btc_rep_militia_called + btc_rep_militia_call_time)) then { if (_random > 3) then { //CALL MILITIA - [_pos] call btc_fnc_rep_call_militia; + [_pos] call btc_rep_fnc_call_militia; }; }; if (btc_global_reputation < 300) then { if (_random > 4) then { //GET WEAPONS - [btc_fnc_civ_get_weapons, [_pos, 300], 5] call CBA_fnc_waitAndExecute; + [btc_civ_fnc_get_weapons, [_pos, 300], 5] call CBA_fnc_waitAndExecute; }; } else { if (_random > 1) then { //GET GRENADE - [btc_fnc_civ_get_grenade, [_pos, 300], 5] call CBA_fnc_waitAndExecute; + [btc_civ_fnc_get_grenade, [_pos, 300], 5] call CBA_fnc_waitAndExecute; }; }; if (btc_debug_log) then { - [format ["REP = %1 - RANDOM = %2 - RINF TIME = %3 - MILITIA/WEAPONS = %4/%5", _rep, _random, time > (btc_rep_militia_called + btc_rep_militia_call_time), _random > 3, _random > 4], __FILE__, [false]] call btc_fnc_debug_message; + [format ["REP = %1 - RANDOM = %2 - RINF TIME = %3 - MILITIA/WEAPONS = %4/%5", _rep, _random, time > (btc_rep_militia_called + btc_rep_militia_call_time), _random > 3, _random > 4], __FILE__, [false]] call btc_debug_fnc_message; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/explosives_defuse.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/explosives_defuse.sqf index fc70ee8de..90fac4f4f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/explosives_defuse.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/explosives_defuse.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_explosives_defuse +Function: btc_rep_fnc_explosives_defuse Description: Change reputation when an explosive has been defused. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_rep_explosives_defuse; + _result = [] call btc_rep_fnc_explosives_defuse; (end) Author: @@ -28,5 +28,5 @@ params [ private _type_ied = typeOf _ied; if ((_type_ied select [0, _type_ied find "_"]) in (btc_type_ieds_ace apply {_x select [0, _x find "_"]})) then { - [btc_rep_bonus_disarm, _unit] call btc_fnc_rep_change; + [btc_rep_bonus_disarm, _unit] call btc_rep_fnc_change; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf index 0df54fec1..be9ea2767 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_hd +Function: btc_rep_fnc_hd Description: Handle damage. @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - [cursorObject, "body", 0.1, player] call btc_fnc_rep_hd; + [cursorObject, "body", 0.1, player] call btc_rep_fnc_hd; (end) Author: @@ -48,18 +48,18 @@ if ( ) exitWith {_dam}; if (!isServer) exitWith { - _this remoteExecCall ["btc_fnc_rep_hd", 2]; + _this remoteExecCall ["btc_rep_fnc_hd", 2]; _dam }; [ [btc_rep_malus_civ_hd, btc_rep_malus_animal_hd] select _isAgent, _instigator -] call btc_fnc_rep_change; -if (btc_global_reputation < 600) then {[getPos _unit] call btc_fnc_rep_eh_effects;}; +] call btc_rep_fnc_change; +if (btc_global_reputation < 600) then {[getPos _unit] call btc_rep_fnc_eh_effects;}; if (btc_debug_log) then { - [format ["REP HD = GREP %1 THIS = %2", btc_global_reputation, _this], __FILE__, [false]] call btc_fnc_debug_message; + [format ["REP HD = GREP %1 THIS = %2", btc_global_reputation, _this], __FILE__, [false]] call btc_debug_fnc_message; }; _dam diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hh.sqf index f920d6cd7..6b5053f89 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hh.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_hh +Function: btc_rep_fnc_hh Description: Change reputation when a player heal. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [player] call btc_fnc_rep_hh; + [player] call btc_rep_fnc_hh; (end) Author: @@ -25,9 +25,9 @@ params [ ]; if (isPlayer _healer) then { - [btc_rep_bonus_civ_hh, _healer] call btc_fnc_rep_change; + [btc_rep_bonus_civ_hh, _healer] call btc_rep_fnc_change; if (btc_debug_log) then { - [format ["GREP %1 THIS = %2", btc_global_reputation, _this], __FILE__, [false]] call btc_fnc_debug_message; + [format ["GREP %1 THIS = %2", btc_global_reputation, _this], __FILE__, [false]] call btc_debug_fnc_message; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf index 67c4e3751..549bfc3f3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_killed +Function: btc_rep_fnc_killed Description: Change reputation when a player kill a unit. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject, player] call btc_fnc_rep_killed; + [cursorObject, player] call btc_rep_fnc_killed; (end) Author: @@ -33,9 +33,9 @@ if (isPlayer _instigator) then { [ [btc_rep_malus_civ_killed, btc_rep_malus_animal_killed] select _isAgent, _instigator - ] call btc_fnc_rep_change; + ] call btc_rep_fnc_change; if (btc_global_reputation < 600) then { - [getPos _unit] call btc_fnc_rep_eh_effects; + [getPos _unit] call btc_rep_fnc_eh_effects; }; if !(_isAgent) then { @@ -48,6 +48,6 @@ if (isPlayer _instigator) then { }; if (btc_debug_log) then { - [format ["GREP %1 THIS = %2", btc_global_reputation, _this], __FILE__, [false]] call btc_fnc_debug_message; + [format ["GREP %1 THIS = %2", btc_global_reputation, _this], __FILE__, [false]] call btc_debug_fnc_message; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/notify.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/notify.sqf index 4c949e5ba..e763802d6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/notify.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/notify.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_notify +Function: btc_rep_fnc_notify Description: Show reputation change with a picture and color nuance. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [-10] call btc_fnc_rep_notify; + [-10] call btc_rep_fnc_notify; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/suppressed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/suppressed.sqf index 93511487b..4ccd638d5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/suppressed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/suppressed.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_suppressed +Function: btc_rep_fnc_suppressed Description: Detect if player is firing. Then add a random panic animation. If player fire in direction of a civilian without enemies around, punish him by applying reputation effect and reduce reputation. @@ -16,7 +16,7 @@ Returns: Examples: (begin example) - [cursorObject, objNull, player distance cursorObject, "", "", "", "", player] call btc_fnc_rep_suppressed; + [cursorObject, objNull, player distance cursorObject, "", "", "", "", player] call btc_rep_fnc_suppressed; (end) Author: @@ -32,15 +32,15 @@ params [ ["_ammoObject", objNull, [objNull]] ]; -if (_civ getVariable ["btc_fnc_rep_suppressed_fired", false] isEqualTo 2) exitWith {}; +if (_civ getVariable ["btc_rep_fnc_suppressed_fired", false] isEqualTo 2) exitWith {}; if (_ammoObject isKindOf "SmokeShell") exitWith {}; -if (side group _civ isNotEqualTo civilian) exitWith {_civ setVariable ["btc_fnc_rep_suppressed_fired", 2]}; +if (side group _civ isNotEqualTo civilian) exitWith {_civ setVariable ["btc_rep_fnc_suppressed_fired", 2]}; if ( - _civ getVariable ["btc_fnc_rep_suppressed_fired", 0] isEqualTo 0 && + _civ getVariable ["btc_rep_fnc_suppressed_fired", 0] isEqualTo 0 && {random 3 < 1} ) then { - _civ setVariable ["btc_fnc_rep_suppressed_fired", 1]; + _civ setVariable ["btc_rep_fnc_suppressed_fired", 1]; [_civ, selectRandom ["ApanPknlMstpSnonWnonDnon_G01", "ApanPknlMstpSnonWnonDnon_G02", "ApanPknlMstpSnonWnonDnon_G03", "ApanPpneMstpSnonWnonDnon_G01", "ApanPpneMstpSnonWnonDnon_G02", "ApanPpneMstpSnonWnonDnon_G03"], 1] call ace_common_fnc_doAnimation; }; @@ -51,14 +51,14 @@ if ( {abs((_shooter getDir _civ) - getDir _shooter) < 150/(_shooter distance _civ)} ) then { if (isServer) then { - [btc_rep_malus_civ_suppressed, _shooter] call btc_fnc_rep_change; - [getPos _civ] call btc_fnc_rep_eh_effects; + [btc_rep_malus_civ_suppressed, _shooter] call btc_rep_fnc_change; + [getPos _civ] call btc_rep_fnc_eh_effects; } else { - [btc_rep_malus_civ_suppressed, _shooter] remoteExecCall ["btc_fnc_rep_change", 2]; - [getPos _civ] remoteExecCall ["btc_fnc_rep_eh_effects", 2]; + [btc_rep_malus_civ_suppressed, _shooter] remoteExecCall ["btc_rep_fnc_change", 2]; + [getPos _civ] remoteExecCall ["btc_rep_fnc_eh_effects", 2]; }; if (btc_debug_log) then { - [format ["GREP %1 THIS = %2", btc_global_reputation, _this], __FILE__, [false]] call btc_fnc_debug_message; + [format ["GREP %1 THIS = %2", btc_global_reputation, _this], __FILE__, [false]] call btc_debug_fnc_message; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/treatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/treatment.sqf index a35ca9a8c..098155781 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/treatment.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/treatment.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_treatment +Function: btc_rep_fnc_treatment Description: Change reputation when a caller is healing a civilian. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_rep_treatment; + _result = [] call btc_rep_fnc_treatment; (end) Author: @@ -36,5 +36,5 @@ if ( side group _target isEqualTo civilian && !(_className in ["CheckPulse", "CheckBloodPressure", "CheckResponse"]) ) then { - _this remoteExecCall ["btc_fnc_rep_hh", 2]; + _this remoteExecCall ["btc_rep_fnc_hh", 2]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf index 56e94250f..21991485b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_EMP +Function: btc_side_fnc_EMP Description: Find and destroy EMP station. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_EMP"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_EMP"] spawn btc_side_fnc_create; (end) Author: @@ -25,10 +25,10 @@ params [ ]; private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; -[_taskID, 36, [objNull, getPos _city] select (btc_p_spect), _city getVariable "name"] call btc_fnc_task_create; +[_taskID, 36, [objNull, getPos _city] select (btc_p_spect), _city getVariable "name"] call btc_task_fnc_create; _city setVariable ["spawn_more", true]; @@ -72,13 +72,13 @@ for "_i" from 0 to (1 + round random 2) do { if (random 1 > 0.5) then { private _direction = random 360; private _statics = btc_type_gl + btc_type_mg; - [_pos getPos [5, _direction], _statics, _direction] call btc_fnc_mil_create_static; + [_pos getPos [5, _direction], _statics, _direction] call btc_mil_fnc_create_static; }; }; private _destroy_taskID = _taskID + "dt" + str _i; _tasksID pushBack _destroy_taskID; - [[_destroy_taskID, _taskID], 37, [_box, objNull] select (btc_p_spect), _composition_station select 0 select 0, false, false] call btc_fnc_task_create; + [[_destroy_taskID, _taskID], 37, [_box, objNull] select (btc_p_spect), _composition_station select 0 select 0, false, false] call btc_task_fnc_create; [_box, "HandleDamage", { params [ @@ -124,6 +124,6 @@ waitUntil {sleep 5;( if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; -80 call btc_fnc_rep_change; +80 call btc_rep_fnc_change; -[_taskID, "SUCCEEDED"] call btc_fnc_task_setState; +[_taskID, "SUCCEEDED"] call btc_task_fnc_setState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 78f4268a7..0bcd189a5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_capture_officer +Function: btc_side_fnc_capture_officer Description: Thanks DAP for inspiration. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_capture_officer"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_capture_officer"] spawn btc_side_fnc_create; (end) Author: @@ -26,25 +26,25 @@ params [ //// Choose two Cities \\\\ private _usefuls = btc_city_all select {!(isNull _x) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && !(_x getVariable ["occupied", false])}; -if (_usefuls isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city2 = selectRandom _usefuls; private _area = (getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize"))/4; private _cities = btc_city_all select {!(isNull _x) && _x distance _city2 > _area}; _usefuls = _cities select {!((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && (_x getVariable ["occupied", false])}; -if (_usefuls isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city1 = selectRandom _usefuls; //// Find Road \\\\ private _radius = (_city1 getVariable ["radius", 0])/2; private _roads = _city1 nearRoads (_radius * 2); _roads = _roads select {(_x distance _city1 > _radius) && isOnRoad _x}; -if (_roads isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_roads isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _road = selectRandom _roads; private _pos1 = getPosATL _road; private _pos2 = getPos _city2; -[_taskID, 14, _pos2, _city2 getVariable "name"] call btc_fnc_task_create; +[_taskID, 14, _pos2, _city2 getVariable "name"] call btc_task_fnc_create; //// Create markers \\\\ private _marker1 = createMarker [format ["sm_2_%1", _pos1], _pos1]; @@ -68,7 +68,7 @@ private _markers = [_marker1, _marker2, _area]; /// Show info path\\\ private _veh_types = btc_civ_type_veh select {!(_x isKindOf "air")}; -private _agent = [btc_fnc_info_path, [_pos1, _pos2, _taskID, _veh_types select 0]] call CBA_fnc_directCall; +private _agent = [btc_info_fnc_path, [_pos1, _pos2, _taskID, _veh_types select 0]] call CBA_fnc_directCall; private _startingPath = time; waitUntil { @@ -94,7 +94,7 @@ reverse _listPositions; private _delay = 0; for "_i" from 1 to _convoyLength do { private _pos = _listPositions deleteAt 0; - _delay = _delay + ([_group, ASLToAGL _pos, selectRandom _veh_types, (_listPositions select 0) getDir _pos] call btc_fnc_mil_createVehicle); + _delay = _delay + ([_group, ASLToAGL _pos, selectRandom _veh_types, (_listPositions select 0) getDir _pos] call btc_mil_fnc_createVehicle); }; [{ @@ -120,7 +120,7 @@ for "_i" from 1 to _convoyLength do { btc_curator addCuratorEditableObjects [_vehs arrayIntersect _vehs, false]; private _surrender_taskID = _taskID + "su"; - [[_surrender_taskID, _taskID], 24, objNull, typeOf _captive] call btc_fnc_task_create; + [[_surrender_taskID, _taskID], 24, objNull, typeOf _captive] call btc_task_fnc_create; private _handcuff_taskID = _taskID + "hc"; private _back_taskID = _taskID + "bk"; @@ -129,7 +129,7 @@ for "_i" from 1 to _convoyLength do { _trigger setVariable ["captive", _captive]; _trigger setTriggerArea [15, 15, 0, false]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", true]; - _trigger setTriggerStatements ["this", format ["_captive = thisTrigger getVariable 'captive'; deleteVehicle thisTrigger; doStop _captive; [_captive, true] call ace_captives_fnc_setSurrendered; ['%1', 'SUCCEEDED'] call BIS_fnc_taskSetState; [['%2', '%4'], 29, _captive] call btc_fnc_task_create; [['%3', '%4'], 21, btc_create_object_point, typeOf btc_create_object_point] call btc_fnc_task_create;", _surrender_taskID, _handcuff_taskID, _back_taskID, _taskID], ""]; + _trigger setTriggerStatements ["this", format ["_captive = thisTrigger getVariable 'captive'; deleteVehicle thisTrigger; doStop _captive; [_captive, true] call ace_captives_fnc_setSurrendered; ['%1', 'SUCCEEDED'] call BIS_fnc_taskSetState; [['%2', '%4'], 29, _captive] call btc_task_fnc_create; [['%3', '%4'], 21, btc_create_object_point, typeOf btc_create_object_point] call btc_task_fnc_create;", _surrender_taskID, _handcuff_taskID, _back_taskID, _taskID], ""]; _trigger attachTo [_captive, [0, 0, 0]]; ["ace_captiveStatusChanged", { @@ -150,14 +150,14 @@ for "_i" from 1 to _convoyLength do { !alive (_this select 0) || isNull (_this select 0) }, { - [_this select 1, "FAILED"] call btc_fnc_task_setState; + [_this select 1, "FAILED"] call btc_task_fnc_setState; }, [_captive, _taskID]] call CBA_fnc_waitUntilAndExecute; [{ (_this select 0) inArea [getPosWorld btc_create_object_point, 100, 100, 0, false] || isNull (_this select 0) }, { - [_this select 1, "SUCCEEDED"] call btc_fnc_task_setState; + [_this select 1, "SUCCEEDED"] call btc_task_fnc_setState; }, [_captive, _taskID]] call CBA_fnc_waitUntilAndExecute; }, [ _group, @@ -179,7 +179,7 @@ if (_taskID call BIS_fnc_taskState isEqualTo "FAILED") exitWith { { private _group = createGroup btc_enemy_side; (crew _x) joinSilent _group; - [btc_fnc_data_add_group, _group] call CBA_fnc_directCall; + [btc_data_fnc_add_group, _group] call CBA_fnc_directCall; } forEach _vehs; [_markers] call btc_fnc_delete; }; @@ -188,4 +188,4 @@ if (_taskID call BIS_fnc_taskState isEqualTo "FAILED") exitWith { if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; -50 call btc_fnc_rep_change; \ No newline at end of file +50 call btc_rep_fnc_change; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf index 870e68fe8..65c91b9f7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_checkpoint +Function: btc_side_fnc_checkpoint Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_checkpoint"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_checkpoint"] spawn btc_side_fnc_create; (end) Author: @@ -26,11 +26,11 @@ params [ //// Choose an occupied City \\\\ private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = getPos _city; -[_taskID, 9, objNull, _city getVariable "name"] call btc_fnc_task_create; +[_taskID, 9, objNull, _city getVariable "name"] call btc_task_fnc_create; _city setVariable ["spawn_more", true]; @@ -79,10 +79,10 @@ for "_i" from 1 to (1 + round random 2) do { //// Create checkpoint with static at _pos \\\\ _pos params ["_x", "_y", "_z"]; private _posStatic = [_x -2.39185*cos(-_direction) - 2.33984*sin(-_direction), _y + 2.33984 *cos(-_direction) -2.39185*sin(-_direction), _z]; - [_posStatic, _statics, _direction + 180] call btc_fnc_mil_create_static; + [_posStatic, _statics, _direction + 180] call btc_mil_fnc_create_static; private _posStatic = [_x + 2.72949*cos(-_direction) - -2.03857*sin(-_direction), _y -2.03857*cos(-_direction) +2.72949*sin(-_direction), _z]; - [_posStatic, _statics, _direction] call btc_fnc_mil_create_static; + [_posStatic, _statics, _direction] call btc_mil_fnc_create_static; _composition append ([_pos, _direction, _composition_checkpoint] call btc_fnc_create_composition); @@ -90,7 +90,7 @@ for "_i" from 1 to (1 + round random 2) do { _boxe setVariable ["ace_cookoff_enable", false, true]; _boxe setVariable ["ace_cookoff_enableAmmoCookoff", false, true]; private _destroy_taskID = _taskID + "dt" + str _i; - [[_destroy_taskID, _taskID], 23, _boxe, _type_box, false, false] call btc_fnc_task_create; + [[_destroy_taskID, _taskID], 23, _boxe, _type_box, false, false] call btc_task_fnc_create; [_boxe, _destroy_taskID] spawn { params ["_boxe", "_destroy_taskID"]; @@ -116,6 +116,6 @@ waitUntil {sleep 5; ( if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; -80 call btc_fnc_rep_change; +80 call btc_rep_fnc_change; -[_taskID, "SUCCEEDED"] call btc_fnc_task_setState; +[_taskID, "SUCCEEDED"] call btc_task_fnc_setState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf index facd4ab5d..a713806b1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_chemicalLeak +Function: btc_side_fnc_chemicalLeak Description: Some containers has been broken and drop some contaminated objects. Clean up those contaminated objects under a big shower. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_chemicalLeak"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_chemicalLeak"] spawn btc_side_fnc_create; (end) Author: @@ -30,7 +30,7 @@ if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)}) private _city = selectRandom _useful; private _pos = [getPos _city, 0, _city getVariable ["radius", 100], 30, false] call btc_fnc_findsafepos; -[_taskID, 30, getPos _city, _city getVariable "name"] call btc_fnc_task_create; +[_taskID, 30, getPos _city, _city getVariable "name"] call btc_task_fnc_create; private _distance_between_fences = 3; private _number_of_fences = 2 * (3 + floor random 2); @@ -144,7 +144,7 @@ for "_i" from 1 to (5 + round random 5) do { private _hazmat = createVehicle [selectRandom btc_type_hazmat, _m_pos, [], 2, "NONE"]; _hazmat setDir random 360; _hazmat setVectorUp [random 1, random 1, random [-1, 0, 1]]; - [_hazmat] call btc_fnc_log_init; + [_hazmat] call btc_log_fnc_init; _chemical pushBack _hazmat; if (_i < 3 || random 1 > 0.5) then { btc_chem_contaminated pushBack _hazmat; @@ -154,7 +154,7 @@ for "_i" from 1 to (5 + round random 5) do { }; private _bring_taskID = _taskID + "br"; -[[_bring_taskID, _taskID], 31, _pos, btc_containers_mat select 0] call btc_fnc_task_create; +[[_bring_taskID, _taskID], 31, _pos, btc_containers_mat select 0] call btc_task_fnc_create; waitUntil {sleep 5; ( _taskID call BIS_fnc_taskCompleted || @@ -165,12 +165,12 @@ if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {[[], _composi [_bring_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; -[getPos _city, _pos getPos [_area_size * 2.5, _pos getDir _city]] call btc_fnc_civ_evacuate; +[getPos _city, _pos getPos [_area_size * 2.5, _pos getDir _city]] call btc_civ_fnc_evacuate; private _locate_taskID = _taskID + "lc"; -[[_locate_taskID, _taskID], 32, _pos, typeOf((_chemical arrayIntersect btc_chem_contaminated) select 0)] call btc_fnc_task_create; +[[_locate_taskID, _taskID], 32, _pos, typeOf((_chemical arrayIntersect btc_chem_contaminated) select 0)] call btc_task_fnc_create; private _clean_taskID = _taskID + "cl"; -[[_clean_taskID, _taskID], 33, btc_bigShower, typeOf btc_bigShower] call btc_fnc_task_create; +[[_clean_taskID, _taskID], 33, btc_bigShower, typeOf btc_bigShower] call btc_task_fnc_create; waitUntil {sleep 5; ( _taskID call BIS_fnc_taskCompleted || @@ -181,6 +181,6 @@ waitUntil {sleep 5; ( if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; -50 call btc_fnc_rep_change; +50 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf index 4ce541eb5..3084b750d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_civtreatment +Function: btc_side_fnc_civtreatment Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_fnc_side_civtreatment; + [] spawn btc_side_fnc_civtreatment; (end) Author: @@ -26,7 +26,7 @@ params [ //// Choose a clear City \\\\ private _useful = btc_city_all select {!(isNull _x) && !(_x getVariable ["occupied", false]) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = getPos _city; @@ -36,7 +36,7 @@ private _vehpos = []; if ( _r < 1) then { private _roads = _pos nearRoads 200; _roads = _roads select {isOnRoad _x}; - if (_roads isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; + if (_roads isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; _pos = getPos (selectRandom _roads); _vehpos = [_pos, 10] call btc_fnc_randomize_pos; } else { @@ -78,7 +78,7 @@ _unit setBehaviour "CARELESS"; _unit setDir (random 360); _unit setUnitPos "DOWN"; -[_taskID, 8, _unit, [_city getVariable "name", _unit_type]] call btc_fnc_task_create; +[_taskID, 8, _unit, [_city getVariable "name", _unit_type]] call btc_task_fnc_create; sleep 1; @@ -95,7 +95,7 @@ if !(alive _unit) exitWith { [_taskID, "FAILED"] call BIS_fnc_taskSetState; }; -10 call btc_fnc_rep_change; +10 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf index c2fc8c9d8..7fd10727c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_civtreatment_boat +Function: btc_side_fnc_civtreatment_boat Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_fnc_side_civtreatment_boat; + [] spawn btc_side_fnc_civtreatment_boat; (end) Author: @@ -27,7 +27,7 @@ params [ //// Choose a Marine location \\\\ private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["type", ""] isEqualTo "NameMarine" || _x getVariable ["hasbeach", false]}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = getPos _city; @@ -50,7 +50,7 @@ private _index = 1 + floor (random (_veh emptyPositions "cargo")); _unit assignAsCargoIndex [_veh, _index]; _unit moveinCargo [_veh, _index]; -[_taskID, 10, _unit, [_city getVariable "name", _veh_type]] call btc_fnc_task_create; +[_taskID, 10, _unit, [_city getVariable "name", _veh_type]] call btc_task_fnc_create; sleep 1; waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || playableUnits inAreaArray [getPosWorld _unit, 5000, 5000] isNotEqualTo [])}; @@ -66,6 +66,6 @@ if !(alive _unit) exitWith { [_taskID, "FAILED"] call BIS_fnc_taskSetState; }; -10 call btc_fnc_rep_change; +10 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf index a6e4bb876..0d84222b8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_convoy +Function: btc_side_fnc_convoy Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_convoy"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_convoy"] spawn btc_side_fnc_create; (end) Author: @@ -26,25 +26,25 @@ params [ //// Choose two Cities \\\\ private _usefuls = btc_city_all select {!(isNull _x) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && !(_x getVariable ["occupied", false])}; -if (_usefuls isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city2 = selectRandom _usefuls; private _area = (getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize"))/4; private _cities = btc_city_all select {!(isNull _x) && _x distance _city2 > _area}; _usefuls = _cities select {!((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && (_x getVariable ["occupied", false])}; -if (_usefuls isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city1 = selectRandom _usefuls; //// Find Road \\\\ private _radius = (_city1 getVariable ["radius", 0])/2; private _roads = _city1 nearRoads (_radius * 2); _roads = _roads select {(_x distance _city1 > _radius) && isOnRoad _x}; -if (_roads isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_roads isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _road = selectRandom _roads; private _pos1 = getPosATL _road; private _pos2 = getPos _city2; -[_taskID, 12, _pos1, _city1 getVariable "name"] call btc_fnc_task_create; +[_taskID, 12, _pos1, _city1 getVariable "name"] call btc_task_fnc_create; //// Create markers \\\\ private _marker1 = createMarker [format ["sm_2_%1", _pos1], _pos1]; @@ -68,7 +68,7 @@ private _markers = [_marker1, _marker2, _area]; /// Show info path\\\ private _veh_types = btc_type_motorized select {!(_x isKindOf "air")}; -private _agent = [btc_fnc_info_path, [_pos1, _pos2, _taskID, _veh_types select 0]] call CBA_fnc_directCall; +private _agent = [btc_info_fnc_path, [_pos1, _pos2, _taskID, _veh_types select 0]] call CBA_fnc_directCall; private _startingPath = time; waitUntil { @@ -94,7 +94,7 @@ reverse _listPositions; private _delay = 0; for "_i" from 1 to _convoyLength do { private _pos = _listPositions deleteAt 0; - _delay = _delay + ([_group, ASLToAGL _pos, selectRandom _veh_types, (_listPositions select 0) getDir _pos] call btc_fnc_mil_createVehicle); + _delay = _delay + ([_group, ASLToAGL _pos, selectRandom _veh_types, (_listPositions select 0) getDir _pos] call btc_mil_fnc_createVehicle); }; [{ @@ -130,7 +130,7 @@ if (_taskID call BIS_fnc_taskState isEqualTo "FAILED") exitWith { { private _group = createGroup btc_enemy_side; (crew _x) joinSilent _group; - [btc_fnc_data_add_group, _group] call CBA_fnc_directCall; + [btc_data_fnc_add_group, _group] call CBA_fnc_directCall; } forEach _vehs; [_markers] call btc_fnc_delete; }; @@ -139,6 +139,6 @@ if (_taskID call BIS_fnc_taskState isEqualTo "FAILED") exitWith { if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; -50 call btc_fnc_rep_change; +50 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/create.sqf index 18bdd75d4..fcff81e86 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_create +Function: btc_side_fnc_create Description: Create side mission inside the H&M task system. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_supply"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_supply"] spawn btc_side_fnc_create; (end) Author: @@ -30,17 +30,17 @@ if (_side_fnc_name isEqualTo "") then { if (btc_side_list_use isEqualTo []) then { btc_side_list_use = btc_side_list call BIS_fnc_arrayShuffle; }; - _side_fnc_name = format ["btc_fnc_side_%1", btc_side_list_use deleteAt 0]; + _side_fnc_name = format ["btc_side_fnc_%1", btc_side_list_use deleteAt 0]; }; btc_side_ID = btc_side_ID + 1; private _tskID = format ["btc_tsk_%1", btc_side_ID]; if ([_tskID] call BIS_fnc_taskExists) exitWith { - _this call btc_fnc_side_create; + _this call btc_side_fnc_create; }; [_tskID] call (missionNamespace getVariable [_side_fnc_name, {}]); if (_cycle) then { - [true] spawn btc_fnc_side_create; + [true] spawn btc_side_fnc_create; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf index a6de750e2..6ee626b67 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_get_city +Function: btc_side_fnc_get_city Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_fnc_side_get_city; + [] spawn btc_side_fnc_get_city; (end) Author: @@ -25,12 +25,12 @@ params [ ]; private _useful = btc_city_all select {!(isNull _x) && (_x getVariable ["occupied", false]) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = getPos _city; -[_taskID, 6, _pos, _city getVariable "name"] call btc_fnc_task_create; +[_taskID, 6, _pos, _city getVariable "name"] call btc_task_fnc_create; _city setVariable ["spawn_more", true]; @@ -38,6 +38,6 @@ waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !(_city getVariable [ if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; -80 call btc_fnc_rep_change; +80 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf index 267057e29..4757d0068 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_hack +Function: btc_side_fnc_hack Description: https://forums.bistudio.com/forums/topic/186316-how-to-open-the-land_dataterminal_01_f-data-terminal-nexus-update/ @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_hack"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_hack"] spawn btc_side_fnc_create; (end) Author: @@ -28,15 +28,15 @@ params [ private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; private _house = selectRandom ([_pos, 100] call btc_fnc_getHouses); -if (isNil "_house") exitWith {[] spawn btc_fnc_side_create;}; +if (isNil "_house") exitWith {[] spawn btc_side_fnc_create;}; _pos = selectRandom (_house buildingPos -1); -[_taskID, 16, getPos _city, _city getVariable "name"] call btc_fnc_task_create; +[_taskID, 16, getPos _city, _city getVariable "name"] call btc_task_fnc_create; _city setVariable ["spawn_more",true]; @@ -46,11 +46,11 @@ private _terminal = createVehicle [_terminalType, [_pos, ASLToATL _pos] select s _pos = [[_pos, 100] call btc_fnc_randomize_pos, 50, 500, 30, 0, 60 * (pi / 180), 0] call BIS_fnc_findSafePos; private _launchsite = createVehicle ["Land_PenBlack_F", _pos, [], 0, "FLY"]; private _terminal_taskID = _taskID + "ter"; -[[_terminal_taskID, _taskID], 17, _terminal, _terminalType] call btc_fnc_task_create; +[[_terminal_taskID, _taskID], 17, _terminal, _terminalType] call btc_task_fnc_create; //// Add interaction on Terminal \\\\ _terminal setVariable ["btc_terminal_taskID", _terminal_taskID, true]; -[_terminal] remoteExecCall ["btc_fnc_int_terminal", [0, -2] select isDedicated, _terminal]; +[_terminal] remoteExecCall ["btc_int_fnc_terminal", [0, -2] select isDedicated, _terminal]; waitUntil {sleep 5; (_terminal_taskID call BIS_fnc_taskCompleted)}; if (_terminal_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { @@ -58,19 +58,19 @@ if (_terminal_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { }; private _defend_taskID = _taskID + "df"; -[[_defend_taskID, _taskID], 22, _terminal, _terminalType, true] call btc_fnc_task_create; +[[_defend_taskID, _taskID], 22, _terminal, _terminalType, true] call btc_task_fnc_create; private _groups = []; private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; for "_i" from 1 to (2 + round random 1) do { - _groups pushBack ([btc_fnc_mil_send, [_closest, getPos _terminal, 1, selectRandom btc_type_motorized]] call CBA_fnc_directCall); + _groups pushBack ([btc_mil_fnc_send, [_closest, getPos _terminal, 1, selectRandom btc_type_motorized]] call CBA_fnc_directCall); }; { _x setBehaviour "CARELESS" } forEach _groups; -[_terminal, _launchsite modelToWorld [0, 100, 10]] remoteExecCall ["btc_fnc_log_place_create_camera", [0, -2] select isDedicated]; +[_terminal, _launchsite modelToWorld [0, 100, 10]] remoteExecCall ["btc_log_fnc_place_create_camera", [0, -2] select isDedicated]; waitUntil {sleep 5; (_defend_taskID call BIS_fnc_taskCompleted || (grpNull in _groups) || !(_city getVariable ["active", false]))}; @@ -79,7 +79,7 @@ if (_defend_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { }; if !(_city getVariable ["active", false]) exitWith { - [_taskID, "FAILED"] call btc_fnc_task_setState; + [_taskID, "FAILED"] call btc_task_fnc_setState; [[], [_terminal]] call btc_fnc_delete; }; @@ -97,6 +97,6 @@ _fx attachTo [_rocket, [0, 0, 0]]; [[], [_rocket, _terminal, _fx]] call btc_fnc_delete; -80 call btc_fnc_rep_change; +80 call btc_rep_fnc_change; -[_taskID, "SUCCEEDED"] call btc_fnc_task_setState; +[_taskID, "SUCCEEDED"] call btc_task_fnc_setState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf index d0ee4ade3..b664df2bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_hostage +Function: btc_side_fnc_hostage Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_fnc_side_hostage; + [] spawn btc_side_fnc_hostage; (end) Author: @@ -27,13 +27,13 @@ params [ //// Choose an occupied City \\\\ private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; //// Randomise position \\\\ private _houses = [getPos _city, 100] call btc_fnc_getHouses; -if (_houses isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_houses isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; _houses = _houses apply {[count (_x buildingPos -1), _x]}; _houses sort false; private _house = objNull; @@ -57,7 +57,7 @@ waitUntil {local _captive}; [_captive, true] call ACE_captives_fnc_setHandcuffed; //// Data side mission -[_taskID, 15, _captive, [_city getVariable "name", _civType]] call btc_fnc_task_create; +[_taskID, 15, _captive, [_city getVariable "name", _civType]] call btc_task_fnc_create; private _group = []; { @@ -100,6 +100,6 @@ if !(alive _captive) exitWith { [[], _group + [_group_civ, _trigger, _mine]] call btc_fnc_delete; }; -40 call btc_fnc_rep_change; +40 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf index bfee6c11b..c50ec9a07 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_kill +Function: btc_side_fnc_kill Description: Your objective is to assassinate a man and bring his dogtag to base for identification. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_kill"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_kill"] spawn btc_side_fnc_create; (end) Author: @@ -27,13 +27,13 @@ params [ //// Choose an occupied City \\\\ private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; //// Randomise position \\\\ private _houses = [getPos _city, 100] call btc_fnc_getHouses; -if (_houses isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_houses isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; _houses = _houses apply {[count (_x buildingPos -1), _x]}; _houses sort false; @@ -57,9 +57,9 @@ private _officer = _group_officer createUnit [_officerType, _pos, [], 0, "CAN_CO //// Data side mission private _officerName = name _officer; -[_taskID, 25, objNull, [_officerName, _city getVariable "name"]] call btc_fnc_task_create; +[_taskID, 25, objNull, [_officerName, _city getVariable "name"]] call btc_task_fnc_create; private _kill_taskID = _taskID + "ki"; -[[_kill_taskID, _taskID], 26, _officer, [_officerName, _city getVariable "name", _officerType]] call btc_fnc_task_create; +[[_kill_taskID, _taskID], 26, _officer, [_officerName, _city getVariable "name", _officerType]] call btc_task_fnc_create; private _ehDeleted = [_officer, "Deleted", { params [ @@ -68,7 +68,7 @@ private _ehDeleted = [_officer, "Deleted", { _thisArgs params ["_taskID"]; _officer removeEventHandler [_thisType, _thisID]; - [_taskID, "FAILED"] call btc_fnc_task_setState; + [_taskID, "FAILED"] call btc_task_fnc_setState; }, [_taskID]] call CBA_fnc_addBISEventHandler; private _group = []; @@ -95,7 +95,7 @@ if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { [_kill_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; private _dogTag_taskID = _taskID + "dt"; -[[_dogTag_taskID, _taskID], 27, _officer, _officerName] call btc_fnc_task_create; +[[_dogTag_taskID, _taskID], 27, _officer, _officerName] call btc_task_fnc_create; private _officer_dogtagData = [_officer] call ace_dogtags_fnc_getDogtagData; private _globalVariableName = format ["btc_%1", _dogTag_taskID]; @@ -108,9 +108,9 @@ private _globalVariableName = format ["btc_%1", _dogTag_taskID]; _officer removeEventHandler ["Deleted", _ehDeleted]; [_dogTag_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; - [[_taskID + "bs", _taskID], 28, btc_create_object_point, [_officer_dogtagData select 0, typeOf btc_create_object_point]] call btc_fnc_task_create; + [[_taskID + "bs", _taskID], 28, btc_create_object_point, [_officer_dogtagData select 0, typeOf btc_create_object_point]] call btc_task_fnc_create; missionNamespace setVariable [_globalVariableName, _dogTag]; - [_dogTag, _taskID] remoteExecCall ["btc_fnc_eh_trackItem", [0, -2] select isDedicated, _officer]; + [_dogTag, _taskID] remoteExecCall ["btc_eh_fnc_trackItem", [0, -2] select isDedicated, _officer]; }; }, [_officer_dogtagData, _dogTag_taskID, _taskID, _globalVariableName, _officer, _ehDeleted]] call CBA_fnc_addEventHandlerArgs; @@ -133,7 +133,7 @@ private _IDEH_HandleDisconnect = [missionNamespace, "HandleDisconnect", { if ((missionNamespace getVariable [_globalVariableName, ""]) in items _player) then { removeMissionEventHandler [_thisType, _thisID]; - [_taskID, "FAILED"] call btc_fnc_task_setState; + [_taskID, "FAILED"] call btc_task_fnc_setState; }; }, [_globalVariableName, _taskID]] call CBA_fnc_addBISEventHandler; @@ -153,8 +153,8 @@ _group_officer setVariable ["no_cache", false]; [[], _toDelete] call btc_fnc_delete; removeMissionEventHandler ["HandleDisconnect", _IDEH_HandleDisconnect]; -if ((_taskID call BIS_fnc_taskState) in ["CANCELED", "FAILED"]) exitWith {[_taskID, _taskID call BIS_fnc_taskState] call btc_fnc_task_setState}; +if ((_taskID call BIS_fnc_taskState) in ["CANCELED", "FAILED"]) exitWith {[_taskID, _taskID call BIS_fnc_taskState] call btc_task_fnc_setState}; -40 call btc_fnc_rep_change; +40 call btc_rep_fnc_change; -[_taskID, "SUCCEEDED"] call btc_fnc_task_setState; +[_taskID, "SUCCEEDED"] call btc_task_fnc_setState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf index 7d85f2d3b..e9ddbef9b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_mines +Function: btc_side_fnc_mines Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_fnc_side_mines; + [] spawn btc_side_fnc_mines; (end) Author: @@ -29,9 +29,9 @@ if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)}) private _city = selectRandom _useful; private _pos = [getPos _city, 0, _city getVariable ["radius", 100], 30, false] call btc_fnc_findsafepos; -if (_pos select 2 > 50) exitWith {[] spawn btc_fnc_side_create;}; +if (_pos select 2 > 50) exitWith {[] spawn btc_side_fnc_create;}; -[_taskID, 4, _pos, _city getVariable "name"] call btc_fnc_task_create; +[_taskID, 4, _pos, _city getVariable "name"] call btc_task_fnc_create; private _distance_between_fences = 8.1; private _number_of_fences = 3 + floor random 4; @@ -109,7 +109,7 @@ waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || playableUnits inAreaA private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; for "_i" from 1 to (round random 2) do { - [btc_fnc_mil_send, [_closest, _pos, 1, selectRandom btc_type_motorized]] call CBA_fnc_directCall; + [btc_mil_fnc_send, [_closest, _pos, 1, selectRandom btc_type_motorized]] call CBA_fnc_directCall; }; waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || (_mines select {!isNull _x} isEqualTo []))}; @@ -118,6 +118,6 @@ waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || (_mines select {!isNu if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; -30 call btc_fnc_rep_change; +30 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf index 5fc201c52..b81ffc7af 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_removeRubbish +Function: btc_side_fnc_removeRubbish Description: Remove rubbish on road in city with Nemmera. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_removeRubbish"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_removeRubbish"] spawn btc_side_fnc_create; (end) Author: @@ -36,7 +36,7 @@ private _useful = btc_city_all select { } count (_city getVariable ["ieds", []])) >= _minNumberOfSubTask } }; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _ieds = (_city getVariable ["ieds", []]) select { isOnRoad (_x select 0) || @@ -44,7 +44,7 @@ private _ieds = (_city getVariable ["ieds", []]) select { }; private _extra_ied = round random (((count _ieds) - _minNumberOfSubTask) min 2); -[_taskID, 38, objNull, _city getVariable "name"] call btc_fnc_task_create; +[_taskID, 38, objNull, _city getVariable "name"] call btc_task_fnc_create; private _tasksID = []; for "_i" from 0 to (_minNumberOfSubTask + _extra_ied - 1) do { @@ -52,7 +52,7 @@ for "_i" from 0 to (_minNumberOfSubTask + _extra_ied - 1) do { _tasksID pushBack _clear_taskID; private _selectedIED = _ieds select _i; - [[_clear_taskID, _taskID], 39, _selectedIED select 0, btc_type_ieds select (btc_model_ieds find (_selectedIED select 1)), false, false] call btc_fnc_task_create; + [[_clear_taskID, _taskID], 39, _selectedIED select 0, btc_type_ieds select (btc_model_ieds find (_selectedIED select 1)), false, false] call btc_task_fnc_create; ["btc_ied_deleted", { params ["_posDeleted_ied"]; @@ -61,7 +61,7 @@ for "_i" from 0 to (_minNumberOfSubTask + _extra_ied - 1) do { if (!(_clear_taskID call BIS_fnc_taskCompleted) && {_pos_ied distance _posDeleted_ied < 5}) then { [_clear_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; if (0.5 < random 1) then { - [_posDeleted_ied] call btc_fnc_rep_call_militia; + [_posDeleted_ied] call btc_rep_fnc_call_militia; }; }; }, [_clear_taskID, _selectedIED select 0]] call CBA_fnc_addEventHandlerArgs; @@ -85,6 +85,6 @@ if !("SUCCEEDED" in (_tasksID apply {_x call BIS_fnc_taskState})) exitWith { [_taskID, "FAILED"] call BIS_fnc_taskSetState; }; -2 call btc_fnc_rep_change; +2 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index 507860c81..074ed815e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_rescue +Function: btc_side_fnc_rescue Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_rescue"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_rescue"] spawn btc_side_fnc_create; (end) Author: @@ -27,7 +27,7 @@ params [ //// Choose an occupied City \\\\ private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; @@ -65,9 +65,9 @@ _group setVariable ["no_cache", true]; private _crew = getText (configfile >> "CfgVehicles" >> _heli_type >> "crew"); _crew createUnit [_pos, _group]; -[_taskID, 13, getPos _city, _city getVariable "name"] call btc_fnc_task_create; +[_taskID, 13, getPos _city, _city getVariable "name"] call btc_task_fnc_create; private _find_taskID = _taskID + "mv"; -[[_find_taskID, _taskID], 20, objNull, _crew] call btc_fnc_task_create; +[[_find_taskID, _taskID], 20, objNull, _crew] call btc_task_fnc_create; private _back_taskID = _taskID + "bk"; private _units = []; @@ -84,7 +84,7 @@ private _triggers = []; _trigger setVariable ["unit", _x]; _trigger setTriggerArea [50, 50, 0, false, 10]; _trigger setTriggerActivation [str btc_player_side, "PRESENT", false]; - _trigger setTriggerStatements ["this", format ["_unit = thisTrigger getVariable 'unit'; [_unit] join (thisList select 0); _unit setUnitPos 'UP'; ['%1', 'SUCCEEDED'] call BIS_fnc_taskSetState; [['%2', '%3'], 21, btc_create_object_point, typeOf btc_create_object_point, true] call btc_fnc_task_create;", _find_taskID, _back_taskID, _taskID], ""]; + _trigger setTriggerStatements ["this", format ["_unit = thisTrigger getVariable 'unit'; [_unit] join (thisList select 0); _unit setUnitPos 'UP'; ['%1', 'SUCCEEDED'] call BIS_fnc_taskSetState; [['%2', '%3'], 21, btc_create_object_point, typeOf btc_create_object_point, true] call btc_task_fnc_create;", _find_taskID, _back_taskID, _taskID], ""]; _trigger attachTo [_x, [0, 0, 0]]; _triggers pushBack _trigger; } forEach units _group; @@ -107,11 +107,11 @@ if (_units select {alive _x} isEqualTo []) then { _thisArgs params ["_taskID"]; if (_unit inArea [[-5000, -5000, 0], 10, 10, 0, false]) exitWith {}; // Detect if the body is inside a bodybag (https://github.com/acemod/ACE3/blob/44050df98b00e579e5b5a79c0d76d4d1138b4baa/addons/medical_treatment/functions/fnc_placeInBodyBag.sqf#L40) - [_taskID, "FAILED"] call btc_fnc_task_setState; + [_taskID, "FAILED"] call btc_task_fnc_setState; }, [_taskID]] call CBA_fnc_addBISEventHandler; private _unitBodyBag_taskID = _bodyBag_taskID + str(_forEachIndex); - [[_unitBodyBag_taskID, _taskID], 34, _x, [([_x] call ace_dogtags_fnc_getDogtagData) select 0, typeOf _x]] call btc_fnc_task_create; + [[_unitBodyBag_taskID, _taskID], 34, _x, [([_x] call ace_dogtags_fnc_getDogtagData) select 0, typeOf _x]] call btc_task_fnc_create; ["ace_placedInBodyBag", { params ["_patient", "_bodyBag"]; _thisArgs params ["_unit", "_unitBodyBag_taskID", "_taskID", "_IDDeleted"]; @@ -123,7 +123,7 @@ if (_units select {alive _x} isEqualTo []) then { [_unitBodyBag_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; private _base_taskID = _taskID + "bs"; - [[_base_taskID, _taskID], 35, btc_create_object_point, [([_patient] call ace_dogtags_fnc_getDogtagData) select 0, typeOf btc_create_object_point]] call btc_fnc_task_create; + [[_base_taskID, _taskID], 35, btc_create_object_point, [([_patient] call ace_dogtags_fnc_getDogtagData) select 0, typeOf btc_create_object_point]] call btc_task_fnc_create; [_bodyBag, "Deleted", { params [ @@ -132,7 +132,7 @@ if (_units select {alive _x} isEqualTo []) then { _thisArgs params ["_taskID"]; if (_taskID call BIS_fnc_taskCompleted) exitWith {}; - [_taskID, "FAILED"] call btc_fnc_task_setState; + [_taskID, "FAILED"] call btc_task_fnc_setState; }, [_taskID]] call CBA_fnc_addBISEventHandler; }; _this @@ -157,6 +157,6 @@ if (_units select {alive _x} isEqualTo []) then { if (_taskID call BIS_fnc_taskState in ["CANCELED", "FAIL"]) exitWith {}; -_rep call btc_fnc_rep_change; +_rep call btc_rep_fnc_change; -[_taskID, "SUCCEEDED"] call btc_fnc_task_setState; +[_taskID, "SUCCEEDED"] call btc_task_fnc_setState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf index 5dbe2863a..b0f8c797d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_supply +Function: btc_side_fnc_supply Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [false, "btc_fnc_side_supply"] spawn btc_fnc_side_create; + [false, "btc_side_fnc_supply"] spawn btc_side_fnc_create; (end) Author: @@ -32,9 +32,9 @@ private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; _pos = [_pos, 0, _city getVariable ["radius", 100], 20, false] call btc_fnc_findsafepos; -[_taskID, 3, getPos _city, _city getVariable "name"] call btc_fnc_task_create; +[_taskID, 3, getPos _city, _city getVariable "name"] call btc_task_fnc_create; private _move_taskID = _taskID + "mv"; -[[_move_taskID, _taskID], 18, _pos, btc_supplies_cargo] call btc_fnc_task_create; +[[_move_taskID, _taskID], 18, _pos, btc_supplies_cargo] call btc_task_fnc_create; private _area = createMarker [format ["sm_%1", _pos], _pos]; _area setMarkerShape "ELLIPSE"; @@ -100,10 +100,10 @@ if (_move_taskID call BIS_fnc_taskState isNotEqualTo "CANCELED") then { [_drop_taskID, _taskID], 19, (nearestObjects [_pos, [btc_supplies_cargo] + _food + _water, 30]) select 0, selectRandom(_food + _water), true - ] call btc_fnc_task_create; + ] call btc_task_fnc_create; }; -[getPos _city, _pos getPos [10, _direction_composition]] call btc_fnc_civ_evacuate; +[getPos _city, _pos getPos [10, _direction_composition]] call btc_civ_fnc_evacuate; waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || (count (nearestObjects [_pos, _food + _water, 30]) >= 2))}; @@ -111,8 +111,8 @@ if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { [[_area], _composition_objects] call btc_fnc_delete; }; -50 call btc_fnc_rep_change; +50 call btc_rep_fnc_change; -[_taskID, "SUCCEEDED"] call btc_fnc_task_setState; +[_taskID, "SUCCEEDED"] call btc_task_fnc_setState; [[_area], _composition_objects + nearestObjects [_pos, _food + _water + [btc_supplies_cargo], 30]] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf index 8521134ce..ec35a5b2b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_tower +Function: btc_side_fnc_tower Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - ["btc_9999"] spawn btc_fnc_side_tower; + ["btc_9999"] spawn btc_side_fnc_tower; (end) Author: @@ -25,13 +25,13 @@ params [ ]; private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; private _roads = _pos nearRoads 100; _roads = _roads select {isOnRoad _x}; -if (_roads isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_roads isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _road = selectRandom _roads; _pos = getPos _road; @@ -52,13 +52,13 @@ private _btc_composition_tower = [ //// Create tower with static at _pos \\\\ private _statics = btc_type_gl + btc_type_mg; -[_pos getPos [5, _direction], _statics, _direction] call btc_fnc_mil_create_static; -[_pos getPos [- 5, _direction], _statics, _direction + 180] call btc_fnc_mil_create_static; +[_pos getPos [5, _direction], _statics, _direction] call btc_mil_fnc_create_static; +[_pos getPos [- 5, _direction], _statics, _direction + 180] call btc_mil_fnc_create_static; private _btc_composition = [_pos, _direction, _btc_composition_tower] call btc_fnc_create_composition; private _tower = _btc_composition select ((_btc_composition apply {typeOf _x}) find _tower_type); -[_taskID, 7, _tower, [_city getVariable "name", _tower_type]] call btc_fnc_task_create; +[_taskID, 7, _tower, [_city getVariable "name", _tower_type]] call btc_task_fnc_create; waitUntil {sleep 5; (!alive _tower || _taskID call BIS_fnc_taskCompleted)}; @@ -66,6 +66,6 @@ waitUntil {sleep 5; (!alive _tower || _taskID call BIS_fnc_taskCompleted)}; if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; -80 call btc_fnc_rep_change; +80 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf index c3f643763..8555929b5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_underwater_generator +Function: btc_side_fnc_underwater_generator Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_fnc_side_underwater_generator; + [] spawn btc_side_fnc_underwater_generator; (end) Author: @@ -26,7 +26,7 @@ params [ //// Choose a Marine location occupied \\\\ private _useful = btc_city_all select {!(isNull _x) && (_x getVariable ["occupied", false]) && (_x getVariable ["type", ""] isEqualTo "NameMarine")}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; @@ -60,10 +60,10 @@ private _generator = (selectRandom btc_type_generator) createVehicle _pos; _pos params ["_x", "_y", "_z"]; private _storagebladder = (selectRandom btc_type_storagebladder) createVehicle [_x + 5, _y, _z]; -[_taskID, 11, _generator, [_city getVariable "name", typeOf _generator]] call btc_fnc_task_create; +[_taskID, 11, _generator, [_city getVariable "name", typeOf _generator]] call btc_task_fnc_create; -private _group = [_pos, 8, 1 + round random 5,0.8] call btc_fnc_mil_create_group; -[_pos, 20, 2 + round random 4, 0.5] call btc_fnc_mil_create_group; +private _group = [_pos, 8, 1 + round random 5,0.8] call btc_mil_fnc_create_group; +[_pos, 20, 2 + round random 4, 0.5] call btc_mil_fnc_create_group; _pos = getPosASL _generator; (leader (_group select 0)) setPosASL [_x, _y, _z + 1 + random 1]; @@ -74,6 +74,6 @@ waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !alive _generator)}; if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; -80 call btc_fnc_rep_change; +80 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf index a3cf6d9d4..d63fe9c64 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_side_vehicle +Function: btc_side_fnc_vehicle Description: Fill me when you edit me ! @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_fnc_side_vehicle; + [] spawn btc_side_fnc_vehicle; (end) Author: @@ -25,7 +25,7 @@ params [ ]; private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["type", ""] != "NameMarine"}; -if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; @@ -38,7 +38,7 @@ _veh setDir (random 360); _veh setDamage 0.7; _veh setHit ["wheel_1_1_steering", 1]; -[_taskID, 5, _veh, [_city getVariable "name", _veh_type]] call btc_fnc_task_create; +[_taskID, 5, _veh, [_city getVariable "name", _veh_type]] call btc_task_fnc_create; waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || (_veh getHit "wheel_1_1_steering" < 1) || !alive _veh)}; @@ -49,6 +49,6 @@ if (!alive _veh) exitWith { [_taskID, "FAILED"] call BIS_fnc_taskSetState; }; -15 call btc_fnc_rep_change; +15 call btc_rep_fnc_change; [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/checkLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/checkLoop.sqf index 248a45758..ae4af579e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/checkLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/checkLoop.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_spect_checkLoop +Function: btc_spect_fnc_checkLoop Description: Loop over EMP and create electronic failure to vehicles. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_spect_checkLoop; + [] call btc_spect_fnc_checkLoop; (end) Author: @@ -33,5 +33,5 @@ if !(btc_p_spect) exitWith {}; _vehiclesAround append (_vehiclesOn inAreaArray [getPosWorld _x, _range, _range]); } forEach _emp; - [_vehiclesAround] call btc_fnc_spect_electronicFailure; + [_vehiclesAround] call btc_spect_fnc_electronicFailure; }, 10, [btc_spect_emp, btc_spect_range / 2]] call CBA_fnc_addPerFrameHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/disableDevice.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/disableDevice.sqf index 29d75d490..2e56f0fd9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/disableDevice.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/disableDevice.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_spect_disableDevice +Function: btc_spect_fnc_disableDevice Description: Disable spectrum device. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_spect_disableDevice; + [] call btc_spect_fnc_disableDevice; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/electronicFailure.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/electronicFailure.sqf index 54d6f7a0f..1ae85f8f1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/electronicFailure.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/electronicFailure.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_spect_electronicFailure +Function: btc_spect_fnc_electronicFailure Description: Apply electronic failure. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [[vehicle (allPlayers select 0)]] call btc_fnc_spect_electronicFailure; + [[vehicle (allPlayers select 0)]] call btc_spect_fnc_electronicFailure; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/frequencies.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/frequencies.sqf index 58770e698..4094608dd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/frequencies.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/frequencies.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_spect_frequencies +Function: btc_spect_fnc_frequencies Description: Generate an array of frequency and amplitude based on object netID and position. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [player, allUnitsUAV] call btc_fnc_spect_frequencies; + [player, allUnitsUAV] call btc_spect_fnc_frequencies; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/updateDevice.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/updateDevice.sqf index cf50a78c4..6d64e5ad1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/updateDevice.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/updateDevice.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_spect_updateDevice +Function: btc_spect_fnc_updateDevice Description: Refresh spectrum device depend on UAV and EMP distance and angle. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [player, currentWeapon player] call btc_fnc_spect_updateDevice; + [player, currentWeapon player] call btc_spect_fnc_updateDevice; (end) Author: @@ -64,11 +64,11 @@ btc_spect_updateOn = [{ ]; if (((_player weaponAccessories currentWeapon _player) select 0) isNotEqualTo _accessorie) exitWith { - [] call btc_fnc_spect_disableDevice; - [_player, currentWeapon _player] call btc_fnc_spect_updateDevice; + [] call btc_spect_fnc_disableDevice; + [_player, currentWeapon _player] call btc_spect_fnc_updateDevice; }; - private _signalFrequencies = [_player, allUnitsUAV] call btc_fnc_spect_frequencies; - _signalFrequencies append ([_player, btc_spect_emp select {damage _x < 1}, [78, 89]] call btc_fnc_spect_frequencies); + private _signalFrequencies = [_player, allUnitsUAV] call btc_spect_fnc_frequencies; + _signalFrequencies append ([_player, btc_spect_emp select {damage _x < 1}, [78, 89]] call btc_spect_fnc_frequencies); missionNamespace setVariable ["#EM_Values", _signalFrequencies]; }, 1, [_accessorie]] call CBA_fnc_addPerFrameHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/create.sqf index 17d828f69..19bc1d754 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_tag_create +Function: btc_tag_fnc_create Description: Create tag stored in city namespace under "data_tags". @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_tag_create; + _result = [] call btc_tag_fnc_create; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/eh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/eh.sqf index 1e6135de3..713e5e7fc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/eh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/eh.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_tag_eh +Function: btc_tag_fnc_eh Description: Store texture for city de_activation, check if player try to remove a tag or store player tag to database. @@ -37,7 +37,7 @@ if (_unit in btc_city_all) then { [ [btc_rep_bonus_removeTagLetter, btc_rep_bonus_removeTag] select (_tagToRemove isKindOf "Graffiti_base_F"), _unit - ] call btc_fnc_rep_change; + ] call btc_rep_fnc_change; }; deleteVehicle _tagToRemove; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf index ef3cb9d42..077b327b1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_tag_initArea +Function: btc_tag_fnc_initArea Description: Initialize positions of tags. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [] call btc_fnc_tag_initArea; + _result = [] call btc_tag_fnc_initArea; (end) Author: @@ -48,7 +48,7 @@ for "_i" from 1 to (_n * 1.5) do { } else { private _connected = roadsConnectedTo _road; if (_connected isEqualTo []) then { - _sel_pos = ([_road, -1] call btc_fnc_ied_randomRoadPos) select 0; + _sel_pos = ([_road, -1] call btc_ied_fnc_randomRoadPos) select 0; _road = objNull; } else { _sel_dir = _road getDir (_connected select 0); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/abort.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/abort.sqf index 8bcc0c39c..56693d09e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/abort.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/abort.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_task_abort +Function: btc_task_fnc_abort Description: Abort a side mission. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - ["btc_dft"] call btc_fnc_task_abort; + ["btc_dft"] call btc_task_fnc_abort; (end) Author: @@ -32,4 +32,4 @@ if (_task_id in ["btc_m", "btc_dty", "btc_dft"]) exitWith { localize "STR_BTC_HAM_O_TASK_NOTASIDE" call CBA_fnc_notify; }; -[_task_id, "CANCELED"] remoteExecCall ["btc_fnc_task_setState", 2]; +[_task_id, "CANCELED"] remoteExecCall ["btc_task_fnc_setState", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf index 9d8bcc2e9..01d7bf95d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_task_create +Function: btc_task_fnc_create Description: Create the task server side and add description to each client and JIP client. @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - [["btc_dft", "btc_m"], 0] call btc_fnc_task_create; + [["btc_dft", "btc_m"], 0] call btc_task_fnc_create; (end) Author: @@ -36,4 +36,4 @@ params [ ]; [btc_player_side, _task_ids, nil, _destination, ["CREATED", "ASSIGNED" ] select _isCurrent] call BIS_fnc_taskCreate; -[_task_ids, btc_player_side, _description, _destination, 2, _showNotification, _location] remoteExecCall ["btc_fnc_task_setDescription", [0, -2] select isDedicated, true]; +[_task_ids, btc_player_side, _description, _destination, 2, _showNotification, _location] remoteExecCall ["btc_task_fnc_setDescription", [0, -2] select isDedicated, true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setDescription.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setDescription.sqf index d0711f49a..24f0fb93e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setDescription.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setDescription.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_task_setDescription +Function: btc_task_fnc_setDescription Description: Set description to created task accordingly to player language. @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - ["btc_1", btc_player_side, -1] remoteExecCall ["btc_fnc_task_setDescription", [0, -2] select isDedicated, true]; + ["btc_1", btc_player_side, -1] remoteExecCall ["btc_task_fnc_setDescription", [0, -2] select isDedicated, true]; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setState.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setState.sqf index 89367a8ef..62ce16951 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setState.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setState.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_task_setState +Function: btc_task_fnc_setState Description: Set state to task and subtasks (children). @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - ["btc_dft", "CANCELED"] call btc_fnc_task_setState; + ["btc_dft", "CANCELED"] call btc_task_fnc_setState; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf index 9f007dbe0..abcf49242 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_tow_ViV +Function: btc_tow_fnc_ViV Description: Move selected vehicle in the tower cargo with an hiden vehicle. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [btc_tow_vehicleSelected, cursorObject] call btc_fnc_tow_ViV; + [btc_tow_vehicleSelected, cursorObject] call btc_tow_fnc_ViV; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf index 108c66e14..fe0bb8de8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_tow_check +Function: btc_tow_fnc_check Description: _tower ----rope--- (hook)_towed, Show feedback message when trying to tow a vehicle. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _canTow = [cursorObject, btc_tow_vehicleSelected] call btc_fnc_tow_check; + _canTow = [cursorObject, btc_tow_vehicleSelected] call btc_tow_fnc_check; (end) Author: @@ -27,20 +27,20 @@ params [ ["_towed", objNull, [objNull]] ]; -private _array = [_tower] call btc_fnc_log_get_nottowable; +private _array = [_tower] call btc_log_fnc_get_nottowable; if ((_array findIf {_towed isKindOf _x}) != -1) exitWith { private _string_array = ""; { _string_array = _string_array + ", " + _x; - } forEach (([_tower] call btc_fnc_log_get_nottowable) - ["Truck_F"]); + } forEach (([_tower] call btc_log_fnc_get_nottowable) - ["Truck_F"]); (format [localize "STR_BTC_HAM_TOW_CANT", _string_array]) call CBA_fnc_notify; false }; -private _model_rear_tower = ([_tower] call btc_fnc_tow_hitch_points) select 1; -private _model_front_towed = ([_towed] call btc_fnc_tow_hitch_points) select 0; +private _model_rear_tower = ([_tower] call btc_tow_fnc_hitch_points) select 1; +private _model_front_towed = ([_towed] call btc_tow_fnc_hitch_points) select 0; private _pos_rearTower = _tower modelToWorld _model_rear_tower; private _pos_frontTowed = _towed modelToWorld _model_front_towed; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/hitch_points.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/hitch_points.sqf index ade4242e0..ad3ed07ad 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/hitch_points.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/hitch_points.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_tow_hitch_points +Function: btc_tow_fnc_hitch_points Description: Get point to attach rope. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorOject] call btc_fnc_tow_hitch_points; + [cursorOject] call btc_tow_fnc_hitch_points; (end) Author: @@ -25,7 +25,7 @@ params [ ["_vehicle", objNull, [objNull]] ]; -([_vehicle] call btc_fnc_log_get_corner_points) params [ +([_vehicle] call btc_log_fnc_get_corner_points) params [ "_rearCorner", "_rearCorner2", "_frontCorner", diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeBreak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeBreak.sqf index 25782f113..d466c5b36 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeBreak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeBreak.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_tow_ropeBreak +Function: btc_tow_fnc_ropeBreak Description: Handle towing rope when they break. diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf index e8f63ecf3..0a2167e4e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_tow_ropeCreate +Function: btc_tow_fnc_ropeCreate Description: Tow a vehicle. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_tow_ropeCreate; + [cursorObject] call btc_tow_fnc_ropeCreate; (end) Author: @@ -26,7 +26,7 @@ params [ ["_vehicleSelected", btc_tow_vehicleSelected, [objNull]] ]; -if !([_tower, _vehicleSelected] call btc_fnc_tow_check) exitWith {}; +if !([_tower, _vehicleSelected] call btc_tow_fnc_check) exitWith {}; private _alreadyLoaded = (getVehicleCargo _tower) findIf {isObjectHidden _x} isEqualTo -1; if ( _alreadyLoaded && @@ -40,7 +40,7 @@ if (_alreadyLoaded) then { deleteVehicle _fakeVehicle; }; if (_canViV_wreck) exitWith { - [_vehicleSelected, _tower] remoteExecCall ["btc_fnc_tow_ViV", 2]; + [_vehicleSelected, _tower] remoteExecCall ["btc_tow_fnc_ViV", 2]; btc_tow_vehicleSelected = objNull; }; @@ -55,13 +55,13 @@ private _attachTo = [ ]; _vehicleSelected attachTo [_tower, _attachTo]; -private _model_rear_tower = ([_tower] call btc_fnc_tow_hitch_points) select 1; -private _model_front_selected = ([_vehicleSelected] call btc_fnc_tow_hitch_points) select 0; +private _model_rear_tower = ([_tower] call btc_tow_fnc_hitch_points) select 1; +private _model_front_selected = ([_vehicleSelected] call btc_tow_fnc_hitch_points) select 0; private _selected_front_relativeToTower = _tower worldToModel (_vehicleSelected modelToWorld _model_front_selected); private _rope1 = ropeCreate [_tower, _model_rear_tower, _tower, _selected_front_relativeToTower vectorAdd [-0.4, 0, 0]]; private _rope2 = ropeCreate [_tower, _model_rear_tower, _tower, _selected_front_relativeToTower vectorAdd [0.4, 0, 0]]; -[_tower, "RopeBreak", {[_this, _thisArgs] call btc_fnc_tow_ropeBreak}, +[_tower, "RopeBreak", {[_this, _thisArgs] call btc_tow_fnc_ropeBreak}, [_vehicleSelected, [_rope1, _rope2]] ] remoteExecCall ["CBA_fnc_addBISEventHandler", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/unhook.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/unhook.sqf index 5e5ab762b..b31e8944d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/unhook.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/unhook.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_tow_unhook +Function: btc_tow_fnc_unhook Description: Unhook the current tower/towed vehicle. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_tow_unhook; + [cursorObject] call btc_tow_fnc_unhook; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 461f1d44a..b3965cf4b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_veh_addRespawn +Function: btc_veh_fnc_addRespawn Description: Add a vehicle to the respawn system and save vehicle parameters. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [cursorObject, 30] call btc_fnc_veh_addRespawn; + [cursorObject, 30] call btc_veh_fnc_addRespawn; (end) Author: @@ -48,7 +48,7 @@ _vehicle addMPEventHandler ["MPKilled", { {_unit getVariable ["btc_killed", true]} // https://feedback.bistudio.com/T149510 ) then { _unit setVariable ["btc_killed", false]; - _this call btc_fnc_veh_respawn; + _this call btc_veh_fnc_respawn; }; }]; if (btc_p_respawn_location > 0) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index e4ad29770..511f0932c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_veh_init +Function: btc_veh_fnc_init Description: Add custom ACE interaction depends one vehicle type (static weapon, land vehicle, helicopter and ship). @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - ["B_Truck_01_fuel_F"] call btc_fnc_veh_init; + ["B_Truck_01_fuel_F"] call btc_veh_fnc_init; (end) Author: @@ -33,20 +33,20 @@ switch true do { case (_type isKindOf "LandVehicle" || {_type isKindOf "Ship"}) : { private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {isNull isVehicleCargo attachedto _target && isNull isVehicleCargo _target}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_tow", localize "STR_BTC_HAM_ACTION_VEHINIT_TOW", "\z\ace\addons\attach\UI\attach_ca.paa", {_target call btc_fnc_tow_ropeCreate;}, {!isNull btc_tow_vehicleSelected && {btc_tow_vehicleSelected != _target}}] call ace_interact_menu_fnc_createAction; + _action = ["log_tow", localize "STR_BTC_HAM_ACTION_VEHINIT_TOW", "\z\ace\addons\attach\UI\attach_ca.paa", {_target call btc_tow_fnc_ropeCreate;}, {!isNull btc_tow_vehicleSelected && {btc_tow_vehicleSelected != _target}}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK", "\z\ace\addons\attach\UI\attach_ca.paa", {btc_tow_vehicleSelected = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, {true}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_fnc_tow_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; + _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; }; case (_type isKindOf "Helicopter") : { private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; //Lift - _action = ["Deploy_ropes", localize "STR_ACE_Fastroping_Interaction_deployRopes", "\A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa", {[] spawn btc_fnc_lift_deployRopes;}, {!btc_ropes_deployed && {(driver vehicle player) isEqualTo player} && {(getPosATL player) select 2 > 4}}] call ace_interact_menu_fnc_createAction; + _action = ["Deploy_ropes", localize "STR_ACE_Fastroping_Interaction_deployRopes", "\A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa", {[] spawn btc_lift_fnc_deployRopes;}, {!btc_ropes_deployed && {(driver vehicle player) isEqualTo player} && {(getPosATL player) select 2 > 4}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - _action = ["Cut_ropes", localize "STR_ACE_Fastroping_Interaction_cutRopes", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", {[] call btc_fnc_lift_destroyRopes;}, {btc_ropes_deployed && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; + _action = ["Cut_ropes", localize "STR_ACE_Fastroping_Interaction_cutRopes", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", {[] call btc_lift_fnc_destroyRopes;}, {btc_ropes_deployed && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf index 0f18fc7ac..4b83dc46a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_veh_killed +Function: btc_veh_fnc_killed Description: Create marker wreck and change reputation on vehicle destruction. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [btc_veh_12] call btc_fnc_veh_killed; + [btc_veh_12] call btc_veh_fnc_killed; (end) Author: @@ -38,8 +38,8 @@ _marker setMarkerColor "ColorRed"; _vehicle setVariable ["marker", _marker]; if (_allowRepChange) then { if (isServer) then { - [btc_rep_malus_veh_killed, _killer] call btc_fnc_rep_change; + [btc_rep_malus_veh_killed, _killer] call btc_rep_fnc_change; } else { - [btc_rep_malus_veh_killed, _killer] remoteExecCall ["btc_fnc_rep_change", 2]; + [btc_rep_malus_veh_killed, _killer] remoteExecCall ["btc_rep_fnc_change", 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index 458e487e2..9a02c6db5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_veh_respawn +Function: btc_veh_fnc_respawn Description: Respawn the vehicle passed in parameter. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_veh_respawn; + [cursorObject] call btc_veh_fnc_respawn; (end) Author: @@ -70,15 +70,15 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); [_vehicle, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; if (_EDENinventory isNotEqualTo []) then { _vehicle setVariable ["btc_EDENinventory", _EDENinventory]; - [_vehicle, _EDENinventory] call btc_fnc_log_setCargo; + [_vehicle, _EDENinventory] call btc_log_fnc_setCargo; }; - [_vehicle, _time] call btc_fnc_veh_addRespawn; + [_vehicle, _time] call btc_veh_fnc_addRespawn; }, _data, 1] call CBA_fnc_waitAndExecute; }, [_vehicle, _data], _data select 3] call CBA_fnc_waitAndExecute; if (isServer) then { - [btc_rep_malus_veh_killed, _instigator] call btc_fnc_rep_change; + [btc_rep_malus_veh_killed, _instigator] call btc_rep_fnc_change; } else { - [btc_rep_malus_veh_killed, _instigator] remoteExecCall ["btc_fnc_rep_change", 2]; + [btc_rep_malus_veh_killed, _instigator] remoteExecCall ["btc_rep_fnc_change", 2]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_headless.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_headless.sqf index 4ffb05693..071ffd1ed 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_headless.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_headless.sqf @@ -1,4 +1,4 @@ -[] call btc_fnc_eh_headless; +[] call btc_eh_fnc_headless; //Move btc_patrol_active group to HC [] remoteExecCall ["btc_fnc_set_groupsOwner", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index c48f3a668..9a33c1bb0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -6,7 +6,7 @@ if !(isNil "btc_custom_loc") then { _location setText _cityName; } forEach btc_custom_loc; }; -btc_intro_done = [] spawn btc_fnc_intro; +btc_intro_done = [] spawn btc_int_fncro; [{!isNull player}, { [] call compileScript ["core\doc.sqf"]; @@ -15,14 +15,14 @@ btc_intro_done = [] spawn btc_fnc_intro; player addRating 9999; ["InitializePlayer", [player]] call BIS_fnc_dynamicGroups; - [player] call btc_fnc_eh_player; + [player] call btc_eh_fnc_player; - private _arsenal_trait = player call btc_fnc_arsenal_trait; + private _arsenal_trait = player call btc_arsenal_fnc_trait; if (btc_p_arsenal_Restrict isEqualTo 3) then { - [_arsenal_trait select 1] call btc_fnc_arsenal_weaponsFilter; + [_arsenal_trait select 1] call btc_arsenal_fnc_weaponsFilter; }; - [] call btc_fnc_int_add_actions; - [] call btc_fnc_int_shortcuts; + [] call btc_int_fnc_add_actions; + [] call btc_int_fnc_shortcuts; if (player getVariable ["interpreter", false]) then { player createDiarySubject ["btc_diarylog", localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_DIARYLOG"]; @@ -30,7 +30,7 @@ btc_intro_done = [] spawn btc_fnc_intro; switch (btc_p_autoloadout) do { case 1: { - player setUnitLoadout ([_arsenal_trait select 0] call btc_fnc_arsenal_loadout); + player setUnitLoadout ([_arsenal_trait select 0] call btc_arsenal_fnc_loadout); }; case 2: { removeAllWeapons player; @@ -44,7 +44,7 @@ btc_intro_done = [] spawn btc_fnc_intro; player allowDamage false; [{!isNull (findDisplay 12)}, { - ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", btc_fnc_debug_marker]; + ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", btc_debug_fnc_marker]; }] call CBA_fnc_waitUntilAndExecute; }; }] call CBA_fnc_waitUntilAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 0e2142cc7..bda9248d8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -3,9 +3,9 @@ ["Initialize"] call BIS_fnc_dynamicGroups; setTimeMultiplier btc_p_acctime; -["btc_m", -1, objNull, "", false, false] call btc_fnc_task_create; -[["btc_dft", "btc_m"], 0] call btc_fnc_task_create; -[["btc_dty", "btc_m"], 1] call btc_fnc_task_create; +["btc_m", -1, objNull, "", false, false] call btc_task_fnc_create; +[["btc_dft", "btc_m"], 0] call btc_task_fnc_create; +[["btc_dty", "btc_m"], 1] call btc_task_fnc_create; if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldName], false]}) then { if ((profileNamespace getVariable [format ["btc_hm_%1_version", worldName], 1.13]) in [btc_version select 1, 20.1]) then { @@ -14,8 +14,8 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN [] call compileScript ["core\fnc\db\load_old.sqf"]; }; } else { - for "_i" from 1 to btc_hideout_n do {[] call btc_fnc_hideout_create;}; - [] call btc_fnc_cache_init; + for "_i" from 1 to btc_hideout_n do {[] call btc_hideout_fnc_create;}; + [] call btc_cache_fnc_init; private _date = date; _date set [3, btc_p_time]; @@ -23,32 +23,32 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN { _x setVariable ["btc_EDENinventory", [getWeaponCargo _x, getMagazineCargo _x, getItemCargo _x, getBackpackCargo _x]]; - _x call btc_fnc_db_add_veh; + _x call btc_db_fnc_add_veh; } forEach btc_vehicles; }; -[] call btc_fnc_eh_server; -[btc_ied_list] call btc_fnc_ied_fired_near; -[] call btc_fnc_chem_checkLoop; -[] call btc_fnc_chem_handleShower; -[] call btc_fnc_spect_checkLoop; +[] call btc_eh_fnc_server; +[btc_ied_list] call btc_ied_fnc_fired_near; +[] call btc_chem_fnc_checkLoop; +[] call btc_chem_fnc_handleShower; +[] call btc_spect_fnc_checkLoop; if (btc_p_db_autoRestart > 0) then { [{ [19] remoteExecCall ["btc_fnc_show_hint", [0, -2] select isDedicated]; [{ - [] call btc_fnc_db_autoRestart; + [] call btc_db_fnc_autoRestart; }, [], 5 * 60] call CBA_fnc_waitAndExecute; }, [], btc_p_db_autoRestartTime * 60 * 60 - 5 * 60] call CBA_fnc_waitAndExecute; }; { _x setVariable ["btc_EDENinventory", [getWeaponCargo _x, getMagazineCargo _x, getItemCargo _x, getBackpackCargo _x]]; - [_x, 30] call btc_fnc_veh_addRespawn; + [_x, 30] call btc_veh_fnc_addRespawn; } forEach btc_helo; if (btc_p_side_mission_cycle > 0) then { for "_i" from 1 to btc_p_side_mission_cycle do { - [true] spawn btc_fnc_side_create; + [true] spawn btc_side_fnc_create; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 585796bad..8e2c29d5b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -1171,7 +1171,7 @@ class Mission position[]={8255.6289,55.908749,9942.9063}; }; name="btc_curator"; - init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_fnc_eh_CuratorObjectPlaced}];"; + init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_eh_fnc_CuratorObjectPlaced}];"; id=71; type="ModuleCurator_F"; class CustomAttributes diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index be874a64c..f65197b87 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -1069,7 +1069,7 @@ class Mission angles[]={6.104322,0,6.2176785}; }; name="btc_curator"; - init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_fnc_eh_CuratorObjectPlaced}];"; + init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_eh_fnc_CuratorObjectPlaced}];"; id=71; type="ModuleCurator_F"; class CustomAttributes diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index a1dd09a81..b90505d6f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -1073,7 +1073,7 @@ class Mission angles[]={0.023993526,0,0.47951955}; }; name="btc_curator"; - init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_fnc_eh_CuratorObjectPlaced}];"; + init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_eh_fnc_CuratorObjectPlaced}];"; id=71; type="ModuleCurator_F"; class CustomAttributes From f9564c263e208235d2104776ee2b9c130bd8a508 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 1 May 2021 22:16:52 +0200 Subject: [PATCH 078/354] Fix wrong function rename --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf index 51071578e..3a5c2891d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_int_fncro +Function: btc_fnc_intro Description: Introduction camera. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [] call btc_int_fncro; + [] call btc_fnc_intro; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 942e38853..0ff498ffc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -260,7 +260,7 @@ if (!isDedicated) then { btc_fnc_end_mission = compileScript ["core\fnc\common\end_mission.sqf"]; btc_fnc_get_cardinal = compileScript ["core\fnc\common\get_cardinal.sqf"]; btc_fnc_show_hint = compileScript ["core\fnc\common\show_hint.sqf"]; - btc_int_fncro = compileScript ["core\fnc\common\intro.sqf"]; + btc_fnc_intro = compileScript ["core\fnc\common\intro.sqf"]; btc_fnc_set_markerTextLocal = compileScript ["core\fnc\common\set_markerTextLocal.sqf"]; btc_fnc_showSubtitle = compileScript ["core\fnc\common\showSubtitle.sqf"]; btc_fnc_get_composition = compileScript ["core\fnc\common\get_composition.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index 9a33c1bb0..b63229445 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -6,7 +6,7 @@ if !(isNil "btc_custom_loc") then { _location setText _cityName; } forEach btc_custom_loc; }; -btc_intro_done = [] spawn btc_int_fncro; +btc_intro_done = [] spawn btc_fnc_intro; [{!isNull player}, { [] call compileScript ["core\doc.sqf"]; From 63e3ee3f0e27a80268271d04a157980231d7fdec Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 2 May 2021 11:47:39 +0200 Subject: [PATCH 079/354] Reduce lag on first city activation --- .../core/fnc/city/findPos.sqf | 48 ------------------- .../core/fnc/civ/populate.sqf | 2 +- .../core/fnc/compile.sqf | 1 - .../core/fnc/delay/createUnit.sqf | 6 +-- .../core/fnc/delay/createVehicle.sqf | 2 +- .../core/fnc/mil/create_group.sqf | 15 +++++- 6 files changed, 19 insertions(+), 55 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf deleted file mode 100644 index 3917ac4ca..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf +++ /dev/null @@ -1,48 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_fnc_city_findPos - -Description: - Find a random and safe position in a city (not inside rock). - -Parameters: - _city - City object or position search for a random and safe position. [Object, Array] - _area - Size of the area to search. [Number] - _p_sea - Allow position in water. [Boolean] - -Returns: - _rpos - [Array] - _pos_iswater - [Boolean] - -Examples: - (begin example) - _results = [[0, 0, 0], 100, true] call btc_fnc_city_findPos; - (end) - -Author: - Giallustio - ----------------------------------------------------------------------------- */ - -params [ - ["_city", objNull, [objNull, []]], - ["_area", 300, [0]], - ["_p_sea", btc_p_sea, [true]] -]; - -if (_city isEqualType objNull) then { - _city = position _city; -}; - -private _rpos = [_city, _area, _p_sea] call btc_fnc_randomize_pos; - -private _pos_iswater = surfaceIsWater _rpos; -if !(_pos_iswater) then { - private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; - if (_newpos isNotEqualTo []) then { - _rpos = _newpos; - }; - _rpos = [_rpos] call btc_fnc_findPosOutsideRock; -}; - -[_rpos, _pos_iswater] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf index a602228a9..faf1eeb3c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf @@ -38,6 +38,6 @@ for "_i" from 1 to _n do { private _group = createGroup civilian; _group setVariable ["btc_city", _city]; _group setVariable ["btc_data_inhouse", [_pos]]; - [_group, _pos] call btc_fnc_civ_addWP; + [[_group, _pos], btc_fnc_civ_addWP] call btc_fnc_delay_exec; [_group, selectRandom btc_civ_type_units, _pos] call btc_fnc_delay_createUnit; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 9712d78e4..e9890c319 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -39,7 +39,6 @@ if (isServer) then { btc_fnc_city_de_activate = compileScript ["core\fnc\city\de_activate.sqf"]; btc_fnc_city_set_clear = compileScript ["core\fnc\city\set_clear.sqf"]; btc_fnc_city_trigger_player_side = compileScript ["core\fnc\city\trigger_player_side.sqf"]; - btc_fnc_city_findPos = compileScript ["core\fnc\city\findPos.sqf"]; btc_fnc_city_cleanUp = compileScript ["core\fnc\city\cleanUp.sqf"]; btc_fnc_city_trigger_free_condition = compileScript ["core\fnc\city\trigger_free_condition.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf index 6abf1514e..14f85d644 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf @@ -24,7 +24,7 @@ Author: ---------------------------------------------------------------------------- */ -btc_delay_createUnit = btc_delay_createUnit + 0.3; +btc_delay_createUnit = btc_delay_createUnit + 0.2; [{ params [ @@ -37,7 +37,7 @@ btc_delay_createUnit = btc_delay_createUnit + 0.3; if (isNull _group) exitWith { [format ["isNull _group _this = %1", _this], __FILE__, [btc_debug, btc_debug_log, true]] call btc_fnc_debug_message; - btc_delay_createUnit = btc_delay_createUnit - 0.3; + btc_delay_createUnit = btc_delay_createUnit - 0.2; }; private _unit = _group createUnit [_unit_type, _pos, [], 0, _special]; @@ -47,5 +47,5 @@ btc_delay_createUnit = btc_delay_createUnit + 0.3; _unit moveInAny _vehicle; }; - btc_delay_createUnit = btc_delay_createUnit - 0.3; + btc_delay_createUnit = btc_delay_createUnit - 0.2; }, _this, btc_delay_createUnit - 0.01] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf index 455b67ec5..370f3626c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf @@ -86,4 +86,4 @@ btc_delay_createUnit = btc_delay_createUnit + 0.3; btc_delay_createUnit = btc_delay_createUnit - 0.3; }, _this, btc_delay_createUnit - 0.01] call CBA_fnc_waitAndExecute; -count (_this select 2) * 0.3 +count (_this select 2) * 0.2 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 64a097ca3..820a4b6bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -41,7 +41,7 @@ params [ ]; _wp_ratios params ["_wp_house_probability", "_wp_sentry_probability"]; -([_city, _area] call btc_fnc_city_findPos) params ["_rpos", "_pos_iswater"]; +private _rpos = [_city call CBA_fnc_getPos, _area, _p_sea] call btc_fnc_randomize_pos; private _group_structure = [1, objNull]; if (_wp <= _wp_house_probability) then { // Find building ([_rpos, _n] call btc_fnc_mil_getBuilding) params ["_numberOfGroup", "_structure"]; @@ -53,6 +53,19 @@ if (_wp <= _wp_house_probability) then { // Find building }; _group_structure params ["_numberOfGroup", "_structure"]; +private _time = serverTime; +private _pos_iswater = surfaceIsWater _rpos; +if (_structure isNotEqualTo "") then { + if !(_pos_iswater) then { + private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; + if (_newpos isNotEqualTo []) then { + _rpos = _newpos; + }; + _rpos = [_rpos] call btc_fnc_findPosOutsideRock; + }; +}; +format ["%1 %2", -1, (serverTime - _time) * 1000] remoteExecCall ["systemChat", 0]; + private _groups = []; for "_i" from 1 to _numberOfGroup do { private _group = createGroup _enemy_side; From 98fec37efb41912d4aafbd55ae0293be86b12be1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 2 May 2021 12:16:57 +0200 Subject: [PATCH 080/354] Remove debug and simplify if --- .../core/fnc/mil/create_group.sqf | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 820a4b6bc..156ee6809 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -53,18 +53,17 @@ if (_wp <= _wp_house_probability) then { // Find building }; _group_structure params ["_numberOfGroup", "_structure"]; -private _time = serverTime; private _pos_iswater = surfaceIsWater _rpos; -if (_structure isNotEqualTo "") then { - if !(_pos_iswater) then { - private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; - if (_newpos isNotEqualTo []) then { - _rpos = _newpos; - }; - _rpos = [_rpos] call btc_fnc_findPosOutsideRock; +if ( + _structure isNotEqualTo "" && + {!_pos_iswater} +) then { + private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; + if (_newpos isNotEqualTo []) then { + _rpos = _newpos; }; + _rpos = [_rpos] call btc_fnc_findPosOutsideRock; }; -format ["%1 %2", -1, (serverTime - _time) * 1000] remoteExecCall ["systemChat", 0]; private _groups = []; for "_i" from 1 to _numberOfGroup do { From f746c84d14b00109bd9adabe6919c19859404660 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 2 May 2021 14:03:30 +0200 Subject: [PATCH 081/354] Delay find position --- .../core/fnc/delay/createUnit.sqf | 5 ++- .../core/fnc/mil/createUnits.sqf | 2 +- .../core/fnc/mil/create_group.sqf | 40 ++++++++++++------- .../core/fnc/mil/getBuilding.sqf | 4 +- 4 files changed, 32 insertions(+), 19 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf index 14f85d644..866fe9ce9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf @@ -30,7 +30,7 @@ btc_delay_createUnit = btc_delay_createUnit + 0.2; params [ ["_group", grpNull, [grpNull]], ["_unit_type", "", [""]], - ["_pos", [0, 0, 0], [[]]], + ["_pos", [0, 0, 0], [[], createHashMap]], ["_special", "CARGO", [""]], ["_vehicle", objNull, [objNull]] ]; @@ -40,6 +40,9 @@ btc_delay_createUnit = btc_delay_createUnit + 0.2; btc_delay_createUnit = btc_delay_createUnit - 0.2; }; + if !(_pos isEqualType []) then { + _pos = _pos get "_pos"; + }; private _unit = _group createUnit [_unit_type, _pos, [], 0, _special]; [_unit] joinSilent _group; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf index ee00f4d85..eb948c0ec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf @@ -27,7 +27,7 @@ Author: params [ ["_group", grpNull, [grpNull]], - ["_pos", [0, 0, 0], [[]]], + ["_pos", [0, 0, 0], [[], createHashMap]], ["_number", 0, [0]], ["_pos_iswater", false, [false]], ["_type_units", btc_type_units, [[]]], diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 156ee6809..6174e0264 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -41,11 +41,11 @@ params [ ]; _wp_ratios params ["_wp_house_probability", "_wp_sentry_probability"]; -private _rpos = [_city call CBA_fnc_getPos, _area, _p_sea] call btc_fnc_randomize_pos; +private _pos = [_city call CBA_fnc_getPos, _area, _p_sea] call btc_fnc_randomize_pos; private _group_structure = [1, objNull]; if (_wp <= _wp_house_probability) then { // Find building - ([_rpos, _n] call btc_fnc_mil_getBuilding) params ["_numberOfGroup", "_structure"]; - if (_structure isNotEqualTo "") then { + ([_pos, _n] call btc_fnc_mil_getBuilding) params ["_numberOfGroup", "_structure"]; + if (_structure isNotEqualTo objNull) then { _group_structure = [_numberOfGroup, _structure]; } else { _wp = _wp_sentry_probability; // Handle the case there is no building @@ -53,16 +53,22 @@ if (_wp <= _wp_house_probability) then { // Find building }; _group_structure params ["_numberOfGroup", "_structure"]; -private _pos_iswater = surfaceIsWater _rpos; +private _pos_iswater = surfaceIsWater _pos; +private _hashMapGroup = createHashMap; +_hashMapGroup set ["_pos", _pos]; if ( - _structure isNotEqualTo "" && + _structure isEqualTo objNull && {!_pos_iswater} ) then { - private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; - if (_newpos isNotEqualTo []) then { - _rpos = _newpos; - }; - _rpos = [_rpos] call btc_fnc_findPosOutsideRock; + [_hashMapGroup, { + private _pos = _this get "_pos"; + private _newPos = _pos findEmptyPosition [0, 40, "B_soldier_AR_F"]; + if (_newPos isNotEqualTo []) then { + _pos = _newPos; + }; + _pos = [_pos] call btc_fnc_findPosOutsideRock; + _this set ["_pos", _pos]; + }] call btc_fnc_delay_exec; }; private _groups = []; @@ -80,19 +86,25 @@ for "_i" from 1 to _numberOfGroup do { _group setVariable ["btc_inHouse", typeOf _structure]; }; case (_wp > _wp_house_probability && _wp <= _wp_sentry_probability) : { - [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; + [{ + params ["_group", "_hashMapGroup", "_area"]; + [_group, _hashMapGroup get "_pos", _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; + }, [_group, _hashMapGroup, _area], btc_delay_createUnit] call CBA_fnc_waitAndExecute; }; case (_wp > _wp_sentry_probability) : { [_group] call CBA_fnc_clearWaypoints; - [_group, _rpos, -1, "SENTRY", "AWARE", "RED"] call CBA_fnc_addWaypoint; + [{ + params ["_group", "_hashMapGroup"]; + [_group, _hashMapGroup get "_pos", -1, "SENTRY", "AWARE", "RED"] call CBA_fnc_addWaypoint; + }, [_group, _hashMapGroup], btc_delay_createUnit] call CBA_fnc_waitAndExecute; }; }; - [_group, _rpos, _n, _pos_iswater] call btc_fnc_mil_createUnits; + [_group, _hashMapGroup, _n, _pos_iswater] call btc_fnc_mil_createUnits; }; if (btc_debug_log) then { - [format ["_this = %1 ; POS %2 UNITS N %3 _wp_ratios %4", _this, _rpos, _n, _wp_ratios], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_this = %1 ; POS %2 UNITS N %3 _wp_ratios %4", _this, _pos, _n, _wp_ratios], __FILE__, [false]] call btc_fnc_debug_message; }; _groups diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf index 093ab440d..6bcf5f51e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf @@ -31,9 +31,7 @@ private _structures = [_rpos, 70] call btc_fnc_mil_getStructures; if (_structures isEqualTo []) then { private _houses = [_rpos, 50] call btc_fnc_getHouses; - if (_houses isEqualTo []) then { - _structure = ""; - } else { + if (_houses isNotEqualTo []) then { _structure = selectRandom _houses; _n = 1; }; From afbd640ebd087a18b85bcfccbbb601a563c1f518 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 4 May 2021 18:36:54 +0200 Subject: [PATCH 082/354] Check if there is house available --- .../core/fnc/city/activate.sqf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 324d25deb..3d29e9ce2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -282,19 +282,20 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { }; [_city, btc_fnc_tag_create] call btc_fnc_delay_exec; - if ( !(_type in ["Hill", "NameMarine"]) && _city getVariable ["btc_city_houses", []] isEqualTo [] ) then { [[_city, _spawningRadius/3], btc_fnc_city_getHouses] call btc_fnc_delay_exec; }; -[_city, btc_fnc_door_lock] call btc_fnc_delay_exec; -[_city, btc_fnc_info_createIntels] call btc_fnc_delay_exec; +if (_city getVariable ["btc_city_houses", []] isNotEqualTo []) then { + [_city, btc_fnc_door_lock] call btc_fnc_delay_exec; + [_city, btc_fnc_info_createIntels] call btc_fnc_delay_exec; +}; private _civKilled = _city getVariable ["btc_rep_civKilled", []]; -if !(_civKilled isEqualTo []) then { +if (_civKilled isNotEqualTo []) then { [[_city, _civKilled], btc_fnc_civ_createFlower] call btc_fnc_delay_exec; }; From 70f19c44fc44cfbe94ca4c29f457243da7a5053f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 4 May 2021 19:41:14 +0200 Subject: [PATCH 083/354] Add density for intel in house --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 6 ++++++ .../core/fnc/city/activate.sqf | 5 ++++- .../core/fnc/info/createIntels.sqf | 3 ++- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 3 +++ 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 52b3c6048..41ba67809 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -35,6 +35,7 @@ private _hideout_n = "btc_p_hideout_n" call BIS_fnc_getParamValue; private _cache_info_def = "btc_p_cache_info_def" call BIS_fnc_getParamValue; private _cache_info_ratio = "btc_p_cache_info_ratio" call BIS_fnc_getParamValue; private _info_chance = "btc_p_info_chance" call BIS_fnc_getParamValue; +btc_p_info_houseDensity = "btc_p_info_houseDensity" call BIS_fnc_getParamValue; //<< Skill options >> btc_p_set_skill = ("btc_p_set_skill" call BIS_fnc_getParamValue) isEqualTo 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 7f097b9d6..df42c727a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -233,6 +233,12 @@ class Params { texts[]={"100 %","90 %","80 %","70 %","60 %","50 %","40 %","30 %","20 %","10 %","0 %"}; default = 70; }; + class btc_p_info_houseDensity { // Density of intel in house: + title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_CACHE_HOUSEINFO"]); + values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; + texts[]={"0%","1%","2%","3%","4%","5%","6%","7%","8%","9%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"}; + default = 5; + }; class btc_p_skill_title { // << A3 Skill options >> title = $STR_BTC_HAM_PARAM_SKILL_TITLE; values[]={0}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 3d29e9ce2..95ea46ee1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -291,7 +291,10 @@ if ( if (_city getVariable ["btc_city_houses", []] isNotEqualTo []) then { [_city, btc_fnc_door_lock] call btc_fnc_delay_exec; - [_city, btc_fnc_info_createIntels] call btc_fnc_delay_exec; + + if (btc_p_info_houseDensity > 0) then { + [_city, btc_fnc_info_createIntels] call btc_fnc_delay_exec; + }; }; private _civKilled = _city getVariable ["btc_rep_civKilled", []]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf index d590a251b..71fe9e902 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf @@ -26,7 +26,8 @@ params [ private _houses = +(_city getVariable ["btc_city_houses", []]); -_houses = _houses select [0, count _houses]; +private _numberOfHouses = count _houses; +_houses = _houses select [0, round (_numberOfHouses * btc_p_info_houseDensity / 100)]; private _intels = _houses apply { createVehicle [selectRandom btc_info_intels, ASLToATL AGLToASL selectRandom (_x buildingPos -1), [], 0, "CAN_COLLIDE"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 83ac79d91..d4bd3b60f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -540,6 +540,9 @@ 敌军尸体携带情报的几率: Chance de trouver des intel sur les corps: + + Density of intel in house: + From 6241f7897a35a185ce750b4057826c1e2e265c56 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 4 May 2021 20:49:10 +0200 Subject: [PATCH 084/354] Add documentation --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 4 ++-- docs/InGame-documentation.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index d4bd3b60f..b0ea9ea73 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -184,12 +184,12 @@ - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Intel can be retrieved in the following ways:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Searching dead bodies<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interrogate prisoner<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Talking to civilians<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Keep in mind that only the interpreter can talk to civilians and they can lie if your reputation level is low.<br/><br/> When you find an intel from a dead body or interrogate a prisoner, a marker will appear in the map. Remember, prisoner have a random number of intel more or less interesting.<br/> There are two types of intel:<br/> - Red question mark (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>) and pictures under diary log map menu: ammo cache intel<br/> - Red exclamation mark (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): hideout intel<br/><br/><br/> When you destroy an hideout or an ammo cache, all the markers related to it will be deleted.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Intel can be retrieved in the following ways:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Searching dead bodies<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interrogate prisoner<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Talking to civilians<br/>- <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Searching house for camera<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Keep in mind that only the interpreter can talk to civilians and they can lie if your reputation level is low.<br/><br/> When you find an intel from a dead body or interrogate a prisoner, a marker will appear in the map. Remember, prisoner have a random number of intel more or less interesting.<br/> There are two types of intel:<br/> - Red question mark (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>) and pictures under diary log map menu: ammo cache intel<br/> - Red exclamation mark (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): hideout intel<br/><br/><br/> When you destroy an hideout or an ammo cache, all the markers related to it will be deleted.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> La Inteligencia se puede recuperar de las siguientes maneras:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Registrando cadáveres<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interrogando prisioneros<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Conversando con Civiles<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Tenga en cuenta que sólo el intérprete puede hablar con civiles y ellos pueden mentir si su nivel de reputación es bajo.<br/><br/> Cuando encuentres una información de un cadáver o interrogues a un prisionero, aparecerá un marcador en el mapa. Recuerda, los prisioneros tienen un número aleatorio de información más o menos interesante.<br/> Hay 2 tipos de marcas:<br/> - Signo de interrogacion rojo (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): intel sobre cache de municion<br/> - Signo de exclamacion rojo (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): intel sobre escondite<br/><br/><br/> Cuando destruyes un escondite o una caché de munición, todos los marcadores relacionados con él se borrarán.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Informationen kann man auf verschiedene Arten erhalten:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Durchsuchen von toten Personen<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Verhören von Gefangenen<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Mit Zivilisten reden<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Nur der Dolmetscher kann sich mit Zivilisten unterhalten. Wenn ihr Ansehen bei der Bevölkerunge niedrig ist, so kann es auch mal vorkommen das manche Zivilisten sie belügen.<br/><br/> Wenn Sie Information erhalten, erscheint eine Markierung auf der Karte. Zur Erinnerung: Gefangene habe mal mehr und mal weniger interessante Informationen.<br/> Es gibt zwei Arten von Markierungen:<br/> - Ein rotes Fragezeichen (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): Information über ein Waffenlager <br/> - Ein rotes Ausrufezeichen (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): Information über ein Versteck <br/><br/><br/> Wenn Sie ein Versteck oder ein Waffenlager zersört haben, so werden alle relevanten Markierungen automatisch gelöscht.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Informações podem ser obtidas de diferentes maneiras:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Procurando nos corpos dos mortos<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interrogando prisioneiros<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Falando com civis<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Somente o intérprete pode conversar com os civis. Se a reputação entre a população é baixa, pode acontecer de alguns civis passarem informações mentirosas.<br/><br/> Quando você encontrar uma informação em um cadáver ou interrogando um prisioneiro, uma marcação aparecerá no mapa. Lembre-se, os prisioneiros possuem um número aleatório de informações que são mais ou menos importante.<br/> Existem dois tipos de marcação:<br/> - Interrogação em Vermelho (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): Informações sobre depósito de armas<br/> - Exclamação em Vermelho (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): Informações sobre um esconderijo<br/><br/><br/> Quando você destroí um esconderijo ou depósito de munição, o marcador será excluído.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> 可以通过以下方式获取情报:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> 搜查尸体<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> 审问俘虏<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> 询问平民<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> 请谨记: 只有翻译员可以与平民交谈, 而且如果你的声誉低, 他们也会说谎。<br/><br/> 当通过搜查尸体或审问俘虏得到情报时, 地图上会出现标记。记住, 俘虏所持情报的数量和价值都是随机的。<br/> 情报标记有两类:<br/> - 红色问号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): 武器箱情报<br/> - 红色叹号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): 藏匿点情报<br/><br/><br/> 当你摧毁了藏匿点或武器箱时, 与之相关的所有标记将被删除。<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Les intel peuvent être récupérés des manières suivantes:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Recherche de cadavres<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interroger des prisonniers<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Parler aux civils<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Gardez à l'esprit que seul l'interprète peut parler aux civils et qu'ils peuvent mentir si votre réputation est faible.<br/><br/> Lorsque vous trouvez une information sur un cadavre ou interrogez un prisonnier, un marqueur apparaît sur la carte. Rappelez-vous, les prisonniers ont un nombre aléatoire d'informations plus ou moins intéressantes.<br/> Il existe deux types d'informations:<br/> - Point d'interrogation rouge (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>) et images dans le menu de la carte du journal: cache d'arme intel<br/> - Point d'exclamation rouge (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): information sur les planques<br/><br/><br/> Lorsque vous détruisez une planque ou un cache d'arme, tous les marqueurs qui y sont liés seront supprimés.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Les intel peuvent être récupérés des manières suivantes:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Recherche de cadavres<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interroger des prisonniers<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Parler aux civils<br/>- <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Rechercher une caméra dans les maisons <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Gardez à l'esprit que seul l'interprète peut parler aux civils et qu'ils peuvent mentir si votre réputation est faible.<br/><br/> Lorsque vous trouvez une information sur un cadavre ou interrogez un prisonnier, un marqueur apparaît sur la carte. Rappelez-vous, les prisonniers ont un nombre aléatoire d'informations plus ou moins intéressantes.<br/> Il existe deux types d'informations:<br/> - Point d'interrogation rouge (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>) et images dans le menu de la carte du journal: cache d'arme intel<br/> - Point d'exclamation rouge (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): information sur les planques<br/><br/><br/> Lorsque vous détruisez une planque ou un cache d'arme, tous les marqueurs qui y sont liés seront supprimés.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index 33fecf89b..2c4a2818a 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -108,6 +108,7 @@ Intel can be retrieved in the following: - Searching dead bodies - Interrogate prisoner - Talking to civilians +- Search house for camera Keep in mind that only the interpreter can talk to civilians and they can lie if your reputation level is low. When you find an intel from a dead body or interrogate a prisoner, a marker will appear in the map. Remember, prisoner have a random number of intel more or less interesting. From e5eb831c94de759d2ef89ce650218249135ccc2c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 6 May 2021 13:25:28 +0200 Subject: [PATCH 085/354] use random syntaxe --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 9d999644a..52895432b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -120,7 +120,7 @@ if (_data_units isNotEqualTo []) then { if (_has_en) then { for "_i" from 1 to (round (_p_mil_group_ratio * (1 + random _max_number_group))) do { - [_city, _spawningRadius, 1 + round random [0, 1, 2], random 1] call btc_fnc_mil_create_group; + [_city, _spawningRadius, 1 + round random 2, random 1] call btc_fnc_mil_create_group; }; }; From 4f0e411b8d01bd9be7cd54e33eee80c2b72ddc7e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 6 May 2021 14:00:07 +0200 Subject: [PATCH 086/354] Door not lock after game saved --- .../core/fnc/city/activate.sqf | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 95ea46ee1..2693a3b9e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -289,13 +289,11 @@ if ( [[_city, _spawningRadius/3], btc_fnc_city_getHouses] call btc_fnc_delay_exec; }; -if (_city getVariable ["btc_city_houses", []] isNotEqualTo []) then { - [_city, btc_fnc_door_lock] call btc_fnc_delay_exec; +[_city, btc_fnc_door_lock] call btc_fnc_delay_exec; - if (btc_p_info_houseDensity > 0) then { - [_city, btc_fnc_info_createIntels] call btc_fnc_delay_exec; - }; -}; +if (btc_p_info_houseDensity > 0) then { + [_city, btc_fnc_info_createIntels] call btc_fnc_delay_exec; +}; private _civKilled = _city getVariable ["btc_rep_civKilled", []]; if (_civKilled isNotEqualTo []) then { From 45b6276c9b288c889dac39ef337a7d4841645d1e Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Fri, 7 May 2021 10:19:59 +0800 Subject: [PATCH 087/354] Add: Simplified Chinese translation for #957 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index b0ea9ea73..715ca2b90 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -91,7 +91,7 @@ <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> Esta mision usa automaticamente un Headless client si está disponible .<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> Esta misión tiene un sistema de base de datos. Se guardan unidades enemigas, ciudades, escondites, caché, objetos creados por jugadores o Zeus, vehículos, marcadores de jugadores (no líneas) en el canal global. Todos los administradores pueden guardar el progreso de la misión en cualquier momento con su clave de auto interacción.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> Sollte ein Headless Client vorhanden sein, so wird dieser durch die Mission automatisch genutzt.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> Diese Mission verfügt über ein eingenes Datenbanksystem, in welcher folgende Dinge gespeichert werden: feindliche Einheiten, Städte, Verstecke, feindliche Waffenlager, Fahrzeuge, vom Spieler oder vom Zeus erstelle Objecte und Marker (keine Linien) vom Spieler im Globalen-Channel. Jeder Admin kann zu jeder Zeit den Missionsfortschritt über das Eigen-Interaktionsmenü speichern.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> Esta missão usa automaticamente um cliente Headless quando disponível.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> Esta missão tem um sistema de banco de dados. Unidades inimigas, cidades, esconderijos, cache, objetos criados por jogadores ou Zeus, veículos, marcação de jogadores (sem linhas) no canal global são salvos. O administrador pode salvar o progresso da missão a qualquer momento usando botão de interação.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> - <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> 任务将自动使用一台可用的无头客户端。<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> 本任务内置独立的数据库系统。敌方单位、城市、藏匿点、武器箱、车辆、标记、玩家或宙斯创建的物体以及公共频道中的地图标记(不含划线标记)将被存储。每个管理员都可以通过自我互动菜单随时保存任务进度。<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> + <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> 任务自动使用一台可用的无头客户端。<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> 本任务内置数据库系统。敌方单位, 城镇, 藏匿点, 武器箱, 由玩家或宙斯创建的物体或组装的固定式武器, 载具, 被托运的载具, 涂鸦, 以及公共频道中的地图标记(不含划线标记)将被存储。每个管理员都可以通过自我互动菜单随时保存任务进度。<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> La mission utilise automatiquement le client headless quand il est disponible.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> La mission utilise une base de données. Unités ennemies, villes, planque, cache d'arme , objets créés ou armes statiques assemblées par des joueurs ou Zeus, véhicules, véhicule dans véhicule, tag, les marqueurs de joueurs sur le canal global sont enregistrés. Tous les administrateurs peuvent enregistrer la progression de la mission à tout moment avec sa touche d'auto-interaction.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> @@ -101,7 +101,7 @@ <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Cuando un vehículo es destruido no va a reaparecer en la base, es necesario remolcarlo o transportarlo de vuelta a la base y repararlo cerca del punto logístico (Interactuar con la caja roja). Los destrozos de helicópteros sólo pueden ser transportados por vía aérea.. <br/> El Chinook es la única excepción, reaparecerá después de 30 segundos..<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> También puede rearmarlos generando el calibre correspondiente en el punto logístico (Interactuar con la caja roja, seleccionar el tipo y calibre del vehículo). Lleva la munición creada e interactúa con el vehículo para rearmarlo. Esto sólo funciona si el rearme se está ajustando en todo el cargador o en una cantidad basada en el calibre (no para el ajuste de todo el vehículo).<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Wenn ein Fahrzeug zersört wurde, wird dies nicht Respawnen. Es muss durch Abschleppen oder Anheben(Sling-Load) zum Logisik-Punkt gebracht und dort repariert werden (mit der roten Box interagieren). Wracks von Hubschraubern können nur angehoben werden (Sling-Load). <br/> Die einzigste Ausnahme hierbei ist der Chinook. Er respawnt nach 30 Sekunden.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Aufmunitionieren:</marker><br/> Fahrzeuge können Aufmunitioniert werden, in dem man das entsprechende Kaliber am Logisik-Punk anfordert (mit der Roten Box interagieren: Fahzeug und Kaliber auswählen). Nun muss man nur noch die erstellte Munition zum Fahrzeug bringen und mit diesem interagieren um das aufmunitionieren zu beginnen.<br/>ANMERKUNG: Das funktioiert nur wenn die Aufmunitionierungseinstellung auf 'Gesamtes Magazin' oder 'Kalieberbasierte Anzahl' gestellt ist (get nicht für 'Gesamtes Fahrzeug').<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Quando um veículo é destruído ele não reaparecerá na base, você precisa rebocá-lo/levá-lo de volta à base e repará-lo perto do ponto logístico (Interagir com a caixa vermelha). Os destroços de helicóptero só podem ser levantados. <br/> O Chinook é a única exceção, ele reaparecerá depois de 30 segundos.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> Você também pode rearmar-los, gerando o calibre correspondente no ponto logístico (Interaja com a caixa vermelha, selecione o tipo de veículo e calibre). Leve a munição criada e interaja com o veículo para rearmar. Isso só funciona se o rearme estiver configurado em um depósito inteiro ou em um valor baseado em calibre (não para toda a configuração do veículo).<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> - <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> 载具重生:</marker><br/> 当载具损毁时, 它不会自行在基地重生。你需要采用车辆牵引或直升机吊挂的方式将其残骸运回基地, 并在后勤点对其进行维修(与后勤点的红色箱子进行互动)。直升机的残骸只能使用吊挂的方式运输。<br/> 支奴干(Chinook)是唯一的例外, 它会在损毁后30秒于基地重生<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' />。<br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> 弹药补给:</marker><br/> 你可以在后勤点生成对应口径的弹药, 对载具进行弹药补给。与红色箱子互动, 选择对应的载具类型及口径, 弹药箱将会生成。将生成的弹药箱搬到载具附近, 与载具互动, 即可执行补给。注意: 如需启用此功能, 需要将任务参数中的弹药补给选项设置为 "Total Magazine" 或 "Calibre Based Number" (而非 "Entire Vehicle")。<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> + <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> 载具重生:</marker><br/> 当载具损毁时, 它不会在基地自动重生。你需要采用牵引、托运或吊挂的方式将其残骸运回基地, 并在后勤点对其进行维修(与后勤点的红色箱子进行互动)。直升机的残骸只能使用吊挂的方式运输。<br/> 支奴干(Chinook)是唯一的例外, 它会在损毁后30秒于基地重生。<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> 弹药补给:</marker><br/> You can also rearm them by spawning the corresponding caliber at logistic point (Interact with the red box, select the vehicle type and caliber). Carry the ammo created and interact with the vehicle to rearm. This only works if rearming is setting on entire magazine or amount based on caliber (not for entire vehicle setting).你还可以在后勤点生成对应口径的弹药, 对载具进行弹药补给(与红色箱子互动, 选择对应的载具类型及口径)。搬起生成的弹药箱, 与载具互动, 即可执行补给。此功能仅在任务参数中的弹药补给选项设置为 "Total Magazine" 或 "Calibre Based Number"(而非 "Entire Vehicle")时有效。<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Réapparition:</marker><br/> Lorsqu'un véhicule est détruit, il ne réapparaîtra pas dans la base, vous devez le remorquer, utiliser le véhicule dans le véhicule ou le ramener à la base et le réparer près du point logistique (Interagissez avec la boîte rouge). Les épaves d'hélicoptères peuvent seulement être héliportés. <br/> Le Chinook est la seule exception, il réapparaîtra après 30 secondes.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Réarmement:</marker><br/> Vous pouvez également les réarmer en faisant apparaître le calibre correspondant au point logistique (interagissez avec la boîte rouge, sélectionnez le type de véhicule et le calibre). Transportez les munitions créées et interagissez avec le véhicule pour le réarmer. Cela ne fonctionne que si le réarmement est réglé sur tout le magasin ou sur le montant en fonction du calibre (pas pour le réglage complet du véhicule).<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> @@ -158,7 +158,7 @@ <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Cargo System:</marker><br/> Use ACE 3 Cargo system. <br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Towing system:</marker><br/> To tow a vehicle interact with it and select the option 'HOOK'.<br/>After that place the tow vehicle in front of it and select 'TOW' in the interaction menu.<br/> If the two vehicles are too far away or the vehicle can't tow that load (Car can't tow truck or tank), the option will be disabled.<br/> To unhook interact with one of the two vehicles and select the option 'UNHOOK'.<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\VehicleCargoIconOn2_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Vehicle in vehicle system:</marker><br/> BI Vehicle in Vehicle (ViV) system is extended to allow load of any vehicle in a vehicle. To move ViV use the towing system. To unload, move in driver seat of the tower vehicle and select in scroll menu "unload all objects".<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /><br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Place option:</marker><br/> With this option you can move heavy objects to build small outpost or base.<br/> When you select the option an hint will show all the keys required to move the object. <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Fracht-System:</marker><br/>Siehe ACE3 Dokumentation. <br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Abschleppsystem:</marker><br/> Um ein Fahrzeug abzuschleppen muss man mit diesem interagieren und 'EINHACKEN' auswählen.<br/>Als nächstes muss man das Zugfahrzeug vor das abzuschleppende Fahrzeug stellen und über das Interagtionsmenü die Option 'ABSCHLEPPEN' aktivieren.<br/> Zu beachten ist dabei, dass die beiden Fahrzeuge nicht zu weit von einander entfernt sein dürfen. Ebenso ist daruf zu achten, dass das Zugfahrzeug auch das andere Fahrzeug abschleppen kann (zB. Autos können keine Lkw/Panzer abschleppen).<br/> Um das Abschleppseil wieder zu entfernen muss man einen bei einem der beiden Fahrzeuge die Option 'AUSHACKEN' auswählen.<br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Platzierung von Objekten:</marker><br/> Mit dieser Option können Sie schwere Objekte bewegen, um einen kleinen Außenposten oder eine Basis zu bauen.<br/> Wenn Sie die Option auswählen, zeigt ein Hinweis alle Tasten an, die zum Verschieben des Objekts erforderlich sind.<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /> <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Cargo System:</marker><br/> Use ACE 3 Cargo system. <br/><br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Towing system:</marker><br/> Para rebocar um veículo, interaja com ele e selecione a opção "GANCHO".<br/> Depois disso, coloque o veículo de reboque na frente dele e selecione "REBOCAR" no menu de interação.<br/> Se os dois veículos estiverem muito distantes ou o veículo não puder rebocar essa carga (o carro não poderá rebocar o caminhão ou o tanque), a opção será desativada.<br/> Para desengatar, interaja com um dos dois veículos e selecione a opção "DESENGANCHAR".<br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Place option:</marker><br/> Com esta opção, você pode mover objetos pesados para construir um posto avançado ou uma base pequena.<br/> Quando você selecionar a opção, uma dica mostrará todas as ações necessárias para mover o objeto.<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /> - <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>货运系统:</marker><br/> 使用ACE3货运系统。<br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>牵引系统:</marker><br/> 如需牵引一辆载具, 与其互动并选择"启用牵引"。<br/>然后, 将牵引车辆(前车)置于被牵引车辆(后车)前方, 并在互动菜单中选择"牵引"。<br/> 如果两辆车的距离过远, 或前车无法牵引这一载荷(比如汽车(Car)无法牵引卡车(Truck)或坦克(Tank)), 则该选项不可用。<br/> 如需取消牵引, 与两车之一互动并选择"取消牵引"。<br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>物体放置:</marker><br/> 您可以使用该选项来移动重物, 从而建造一个小的前哨或基地。<br/> 选择该选项后, 移动对象所需键位的提示将会出现。<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /> + <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>货运系统:</marker><br/> 使用ACE3货运系统。<br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>牵引系统:</marker><br/> 如需牵引一辆载具, 与其互动并选择"启用牵引"。<br/>然后, 将牵引车辆(前车)置于被牵引车辆(后车)前方, 并在互动菜单中选择"牵引"。<br/> 如果两辆车的距离过远, 或前车无法牵引这一载荷(比如汽车(Car)无法牵引卡车(Truck)或坦克(Tank)), 则该选项不可用。<br/> 如需取消牵引, 与两车之一互动并选择"取消牵引"。<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\VehicleCargoIconOn2_ca.paa' width='20' height='20'/> <marker name='blufor_base'>托运系统:</marker><br/> 本任务扩展了BI内置的托运(ViV)系统, 使其支持托运任何类型的载具。通过和牵引系统相同的方式来使用载具托运功能。如需取消托运, 进入托运车辆(前车)的驾驶员座位, 选择滚轮菜单中的"卸载货物"。<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /><br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>物体放置:</marker><br/> 您可以使用该选项来移动重物, 从而建造一个小的前哨或基地。<br/> 选择该选项后, 移动对象所需键位的提示将会出现。 <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système de cargaison:</marker><br/> Utilisez le système ACE 3 Cargo. <br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système de remorquage:</marker><br/> Pour remorquer un véhicule, interagissez avec lui et sélectionnez l'option «ACCROCHER».<br/>Ensuite, placez le véhicule remorqueur devant lui et sélectionnez «REMORQUER» dans le menu d'interaction.<br/> Si les deux véhicules sont trop éloignés ou si le véhicule ne peut pas remorquer cette charge (la voiture ne peut pas dépanner ou remorquer le réservoir), l'option sera désactivée.<br/> Pour décrocher interagissez avec l'un des deux véhicules et sélectionnez l'option «DÉCROCHER».<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\VehicleCargoIconOn2_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Vehicle in vehicle system:</marker><br/> Le système BI Vehicle in Vehicle (ViV) est étendu pour permettre le chargement de n'importe quel véhicule dans un véhicule. Pour déplacer ViV, utilisez le système de remorquage. Pour décharger, placez-vous dans le siège conducteur du véhicule tour et sélectionnez dans le menu déroulant «décharger tous les objets».<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /><br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Place option:</marker><br/> Avec cette option, vous pouvez déplacer des objets lourds pour construire un petit avant-poste ou une base.<br/> Lorsque vous sélectionnez l'option, un indice affichera toutes les touches nécessaires pour déplacer l'objet. From 9cd63a5ef6998a28696cfdc76d3891986550972d Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Fri, 7 May 2021 13:19:39 +0800 Subject: [PATCH 088/354] Add: Simplified Chinese translation for #1076 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 715ca2b90..a05adc464 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -796,7 +796,7 @@ Show reputation change above of: - 显示声誉变化: + 显示声誉变化, 当声誉变化大于: Afficher un changement de réputation au dessus de: From 0e5bacf87b3f1d9f8ce89b6ef7d7db7ef2e51c4c Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Fri, 7 May 2021 17:37:42 +0800 Subject: [PATCH 089/354] Add: Simplified Chinese translation for #1067 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index a05adc464..166429f2e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -206,7 +206,7 @@ <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> La reputación se puede solicitar a los civiles<br/> Las malas acciones causan malos efectos sobre la reputacion.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ayudar a la población local luchando contra los Oplitas y desarmando los artefactos explosivos improvisados aumentará tu reputación; matar civiles, mutilar civiles vivos/muertos, disparar cerca de civiles sin razón alguna, disparar a vehículos civiles, dañar/destruir edificios, perder vehículos, respawns de jugadores disminuirá tu reputación. Al principio tienes un nivel de reputación muy bajo, por lo que los civiles no te ayudarán a revelar información importante sobre los Oplitas, es probable que mientan en su lugar.<br/> Abortar una misión secundaria no afecta a la reputación. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Ihr Ansehen bei der Bevölkerung können Sie bei Zivilisten erfragen <br/> Schlechte bzw. böse Handlungen habe zur Folge das ihr Ansehen sinkt. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Das Unterstützen der lokalen Bevölkerung, das Entschärfen von IEDs und der aktive Kampf gegen die Oplitas wird sich positiv auf ihr Ansehen auswirken. Negative Aktionen wie zb. das Töten oder verstümmeln von Zivlisten, das grundlose Abfeueren einer Waffe in der Nähe von Zivilisten, das Zerstören oder Beschädigen von Gebäuden, der Angriff auf zivile Fahrzeuge, der Verlust von Fahrzeugen im Allgemeinen oder das Respawnen haben hingegen einen nicht so guten Effekt. Zu Beginn ist Ihr Ansehen nur recht gering, weshalb es sein kann das Zivlisten eher zruückhaltend mit Informationen sind. In manchen Fällen werden die Zivilisten Sie auch einfach belügen.<br/> Das Abbrechen von Nebenaufgaben hat keine Auswirkung auf Ihr Ansehen. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> A Reputação entre a população é obtida por meio dos civis <br/> Ações ruins ou más fazem a reputação diminuir. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ajudar a população local combatendo os inimigos e desarmando os IED's aumentará sua reputação. Matar civis, mutilar civis vivos/mortos, atirar perto de civis sem motivo, atirar nos veículos civis, danificar/destruir prédios, perder veículos civis, respawns de jogadores diminuirão a reputação. No começo, o nível de reputação é muito baixo, então, os civis não irão ajudá-lo a revelar informações importantes sobre os inimigos ou provavelmente irão mentir.<br/> Cancelar tarefas secundárias não afeta a reputação. - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> 在任务开始时, 你只有很低的声誉, 所以平民不会向你展示关于Oplitas的重要信息, 他们更倾向于说谎。可以通过询问平民来获知声誉状况。<br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>善举:</marker><br/> 帮助当地居民反抗Oplitas, 拆除IED, 救助平民, 使用红色喷漆去除涂鸦, 完成支线任务和摧毁武器箱/藏匿点将会提升你的声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>恶行:</marker><br/> 恶行将会酿成恶果: 击杀或残害平民/动物、毫无理由地向平民身边射击、攻击民用车辆、毁坏或摧毁建筑物、损失我方载具和玩家重生均会降低声誉。中止支线任务不会影响声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>系统:</marker><br/> 在任务开始时, 你只有很低的声誉, 所以平民不会向你展示关于Oplitas的重要信息, 他们更倾向于说谎。可以通过询问平民来获知声誉状况。<br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>善举:</marker><br/> 帮助当地居民反抗Oplitas, 拆除IED, 救助平民, 使用红色喷漆去除涂鸦, 完成支线任务和摧毁武器箱/藏匿点将会提升你的声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>恶行:</marker><br/> 恶行将会酿成恶果: 击杀或残害平民/动物, 毫无理由地向平民身边射击, 攻击平民车辆, 毁坏或摧毁建筑物, 损失我方载具和玩家重生均会降低声誉。中止支线任务不会影响声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, tirer sur une voiture civile, endommager / détruire des bâtiments, casser les serrures des portes, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> @@ -268,9 +268,11 @@ Door locked Porte verrouillée + 上锁的门 <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>House doors:</marker><br/> Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. <br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Break locked door:</marker><br/> You can still enter by breaking door lock with a wirecutter. <img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>屋门:</marker><br/> 平民居住的房屋可能会锁门。基于声誉水平,平民将会锁上他们的屋门并待在屋里。在声誉低时,所有屋门均会上锁,在声誉一般时,所有屋门均不会上锁。<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>撬锁:</marker><br/> 你仍然可以使用剪线钳来撬锁,从而进入房屋。<img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> @@ -1734,6 +1736,7 @@ Break door lock Casser la serrure + 撬锁 @@ -2353,10 +2356,12 @@ No door Aucune porte + 附近没有门 Breaking door lock... Casser la serrure ... + 正在撬锁... From ec36e8dcfd5037b9c85a0a8b39d4ce56eb3f6aa9 Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Fri, 7 May 2021 17:49:14 +0800 Subject: [PATCH 090/354] Add: Simplified Chinese translation for #1066 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 166429f2e..baea8c95b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -188,7 +188,7 @@ <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> La Inteligencia se puede recuperar de las siguientes maneras:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Registrando cadáveres<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interrogando prisioneros<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Conversando con Civiles<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Tenga en cuenta que sólo el intérprete puede hablar con civiles y ellos pueden mentir si su nivel de reputación es bajo.<br/><br/> Cuando encuentres una información de un cadáver o interrogues a un prisionero, aparecerá un marcador en el mapa. Recuerda, los prisioneros tienen un número aleatorio de información más o menos interesante.<br/> Hay 2 tipos de marcas:<br/> - Signo de interrogacion rojo (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): intel sobre cache de municion<br/> - Signo de exclamacion rojo (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): intel sobre escondite<br/><br/><br/> Cuando destruyes un escondite o una caché de munición, todos los marcadores relacionados con él se borrarán.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Informationen kann man auf verschiedene Arten erhalten:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Durchsuchen von toten Personen<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Verhören von Gefangenen<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Mit Zivilisten reden<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Nur der Dolmetscher kann sich mit Zivilisten unterhalten. Wenn ihr Ansehen bei der Bevölkerunge niedrig ist, so kann es auch mal vorkommen das manche Zivilisten sie belügen.<br/><br/> Wenn Sie Information erhalten, erscheint eine Markierung auf der Karte. Zur Erinnerung: Gefangene habe mal mehr und mal weniger interessante Informationen.<br/> Es gibt zwei Arten von Markierungen:<br/> - Ein rotes Fragezeichen (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): Information über ein Waffenlager <br/> - Ein rotes Ausrufezeichen (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): Information über ein Versteck <br/><br/><br/> Wenn Sie ein Versteck oder ein Waffenlager zersört haben, so werden alle relevanten Markierungen automatisch gelöscht.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Informações podem ser obtidas de diferentes maneiras:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Procurando nos corpos dos mortos<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interrogando prisioneiros<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Falando com civis<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Somente o intérprete pode conversar com os civis. Se a reputação entre a população é baixa, pode acontecer de alguns civis passarem informações mentirosas.<br/><br/> Quando você encontrar uma informação em um cadáver ou interrogando um prisioneiro, uma marcação aparecerá no mapa. Lembre-se, os prisioneiros possuem um número aleatório de informações que são mais ou menos importante.<br/> Existem dois tipos de marcação:<br/> - Interrogação em Vermelho (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): Informações sobre depósito de armas<br/> - Exclamação em Vermelho (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): Informações sobre um esconderijo<br/><br/><br/> Quando você destroí um esconderijo ou depósito de munição, o marcador será excluído.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> 可以通过以下方式获取情报:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> 搜查尸体<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> 审问俘虏<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> 询问平民<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> 请谨记: 只有翻译员可以与平民交谈, 而且如果你的声誉低, 他们也会说谎。<br/><br/> 当通过搜查尸体或审问俘虏得到情报时, 地图上会出现标记。记住, 俘虏所持情报的数量和价值都是随机的。<br/> 情报标记有两类:<br/> - 红色问号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): 武器箱情报<br/> - 红色叹号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): 藏匿点情报<br/><br/><br/> 当你摧毁了藏匿点或武器箱时, 与之相关的所有标记将被删除。<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> 可以通过以下方式获取情报:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> 搜查尸体<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> 审问俘虏<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> 询问平民<br/>- <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> 在房屋内寻找照相机<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> 请谨记,只有翻译员可以与平民交谈, 而且如果你的声誉低, 平民可能会说谎。<br/><br/> 当你通过搜查尸体或审问俘虏得到情报时, 地图上会出现标记。记住, 俘虏所持情报的数量和价值都是随机的。<br/> 情报有两类:<br/> - 红色问号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>) 和地图界面日志菜单中的图片: 武器箱情报<br/> - 红色叹号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): 藏匿点情报<br/><br/><br/> 当你摧毁了藏匿点或武器箱时, 与之相关的所有标记将被删除。<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Les intel peuvent être récupérés des manières suivantes:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Recherche de cadavres<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interroger des prisonniers<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Parler aux civils<br/>- <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Rechercher une caméra dans les maisons <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Gardez à l'esprit que seul l'interprète peut parler aux civils et qu'ils peuvent mentir si votre réputation est faible.<br/><br/> Lorsque vous trouvez une information sur un cadavre ou interrogez un prisonnier, un marqueur apparaît sur la carte. Rappelez-vous, les prisonniers ont un nombre aléatoire d'informations plus ou moins intéressantes.<br/> Il existe deux types d'informations:<br/> - Point d'interrogation rouge (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>) et images dans le menu de la carte du journal: cache d'arme intel<br/> - Point d'exclamation rouge (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): information sur les planques<br/><br/><br/> Lorsque vous détruisez une planque ou un cache d'arme, tous les marqueurs qui y sont liés seront supprimés.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> @@ -544,6 +544,7 @@ Density of intel in house: + 房屋内的情报密度: From cb55bef3f412149fcd87dbde62b3a2069d43e56a Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Fri, 7 May 2021 17:50:31 +0800 Subject: [PATCH 091/354] Fix: Use English comma instead of Chinese one --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index baea8c95b..3732de7d7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -188,7 +188,7 @@ <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> La Inteligencia se puede recuperar de las siguientes maneras:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Registrando cadáveres<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interrogando prisioneros<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Conversando con Civiles<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Tenga en cuenta que sólo el intérprete puede hablar con civiles y ellos pueden mentir si su nivel de reputación es bajo.<br/><br/> Cuando encuentres una información de un cadáver o interrogues a un prisionero, aparecerá un marcador en el mapa. Recuerda, los prisioneros tienen un número aleatorio de información más o menos interesante.<br/> Hay 2 tipos de marcas:<br/> - Signo de interrogacion rojo (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): intel sobre cache de municion<br/> - Signo de exclamacion rojo (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): intel sobre escondite<br/><br/><br/> Cuando destruyes un escondite o una caché de munición, todos los marcadores relacionados con él se borrarán.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Informationen kann man auf verschiedene Arten erhalten:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Durchsuchen von toten Personen<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Verhören von Gefangenen<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Mit Zivilisten reden<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Nur der Dolmetscher kann sich mit Zivilisten unterhalten. Wenn ihr Ansehen bei der Bevölkerunge niedrig ist, so kann es auch mal vorkommen das manche Zivilisten sie belügen.<br/><br/> Wenn Sie Information erhalten, erscheint eine Markierung auf der Karte. Zur Erinnerung: Gefangene habe mal mehr und mal weniger interessante Informationen.<br/> Es gibt zwei Arten von Markierungen:<br/> - Ein rotes Fragezeichen (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): Information über ein Waffenlager <br/> - Ein rotes Ausrufezeichen (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): Information über ein Versteck <br/><br/><br/> Wenn Sie ein Versteck oder ein Waffenlager zersört haben, so werden alle relevanten Markierungen automatisch gelöscht.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Informações podem ser obtidas de diferentes maneiras:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Procurando nos corpos dos mortos<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interrogando prisioneiros<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Falando com civis<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Somente o intérprete pode conversar com os civis. Se a reputação entre a população é baixa, pode acontecer de alguns civis passarem informações mentirosas.<br/><br/> Quando você encontrar uma informação em um cadáver ou interrogando um prisioneiro, uma marcação aparecerá no mapa. Lembre-se, os prisioneiros possuem um número aleatório de informações que são mais ou menos importante.<br/> Existem dois tipos de marcação:<br/> - Interrogação em Vermelho (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>): Informações sobre depósito de armas<br/> - Exclamação em Vermelho (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): Informações sobre um esconderijo<br/><br/><br/> Quando você destroí um esconderijo ou depósito de munição, o marcador será excluído.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> 可以通过以下方式获取情报:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> 搜查尸体<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> 审问俘虏<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> 询问平民<br/>- <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> 在房屋内寻找照相机<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> 请谨记,只有翻译员可以与平民交谈, 而且如果你的声誉低, 平民可能会说谎。<br/><br/> 当你通过搜查尸体或审问俘虏得到情报时, 地图上会出现标记。记住, 俘虏所持情报的数量和价值都是随机的。<br/> 情报有两类:<br/> - 红色问号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>) 和地图界面日志菜单中的图片: 武器箱情报<br/> - 红色叹号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): 藏匿点情报<br/><br/><br/> 当你摧毁了藏匿点或武器箱时, 与之相关的所有标记将被删除。<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> 可以通过以下方式获取情报:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> 搜查尸体<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> 审问俘虏<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> 询问平民<br/>- <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> 在房屋内寻找照相机<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> 请谨记, 只有翻译员可以与平民交谈, 而且如果你的声誉低, 平民可能会说谎。<br/><br/> 当你通过搜查尸体或审问俘虏得到情报时, 地图上会出现标记。记住, 俘虏所持情报的数量和价值都是随机的。<br/> 情报有两类:<br/> - 红色问号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>) 和地图界面日志菜单中的图片: 武器箱情报<br/> - 红色叹号标记 (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): 藏匿点情报<br/><br/><br/> 当你摧毁了藏匿点或武器箱时, 与之相关的所有标记将被删除。<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa' width='20' height='20'/> Les intel peuvent être récupérés des manières suivantes:<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Recherche de cadavres<br/> - <img image='\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa' width='13' height='13'/> Interroger des prisonniers<br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='13' height='13'/> Parler aux civils<br/>- <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa' width='13' height='13'/> Rechercher une caméra dans les maisons <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Gardez à l'esprit que seul l'interprète peut parler aux civils et qu'ils peuvent mentir si votre réputation est faible.<br/><br/> Lorsque vous trouvez une information sur un cadavre ou interrogez un prisonnier, un marqueur apparaît sur la carte. Rappelez-vous, les prisonniers ont un nombre aléatoire d'informations plus ou moins intéressantes.<br/> Il existe deux types d'informations:<br/> - Point d'interrogation rouge (<img image='\A3\ui_f\data\map\markers\handdrawn\unknown_CA.paa' width='13' height='13' color='#ff0000'/>) et images dans le menu de la carte du journal: cache d'arme intel<br/> - Point d'exclamation rouge (<img image='\A3\ui_f\data\map\markers\handdrawn\warning_CA.paa' width='13' height='13' color='#ff0000'/>): information sur les planques<br/><br/><br/> Lorsque vous détruisez une planque ou un cache d'arme, tous les marqueurs qui y sont liés seront supprimés.<br/><br/> <img image='\a3\data_f_argo\Logos\arma3_argo_artwork.jpg' width=362' height='512 /> @@ -272,7 +272,7 @@ <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>House doors:</marker><br/> Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. <br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Break locked door:</marker><br/> You can still enter by breaking door lock with a wirecutter. <img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>屋门:</marker><br/> 平民居住的房屋可能会锁门。基于声誉水平,平民将会锁上他们的屋门并待在屋里。在声誉低时,所有屋门均会上锁,在声誉一般时,所有屋门均不会上锁。<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>撬锁:</marker><br/> 你仍然可以使用剪线钳来撬锁,从而进入房屋。<img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>屋门:</marker><br/> 平民居住的房屋可能会锁门。基于声誉水平, 平民将会锁上他们的屋门并待在屋里。在声誉低时, 所有屋门均会上锁, 在声誉一般时, 所有屋门均不会上锁。<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>撬锁:</marker><br/> 你仍然可以使用剪线钳来撬锁, 从而进入房屋。<img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> From b03516909880f1088aecf63316096b2d72f4ccc1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 May 2021 20:54:36 +0200 Subject: [PATCH 092/354] Count the number of banana removed --- .../core/fnc/rep/foodRemoved.sqf | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index 3546a78f2..343dedac0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -9,12 +9,13 @@ Parameters: _caller - Caller (player). [Object] _unit - Target. [Object] _listOfItemsToRemove - Classnames. [Array] + _listOfTextItems - Array of number of removed items. [Array] Returns: Examples: (begin example) - [player, cursorObject, ["ACE_Banana"]] call btc_fnc_rep_foodRemoved; + [player, cursorObject, ["ACE_Banana"], ["2"]] call btc_fnc_rep_foodRemoved; (end) Author: @@ -22,15 +23,20 @@ Author: ---------------------------------------------------------------------------- */ -params ["_caller", "_target", "_listOfItemsToRemove"]; +params ["_caller", "_target", "_listOfItemsToRemove", + ["_listOfTextItems", ["2"], [[]]] +]; if ( (side group _target) isEqualTo civilian && {"ACE_Banana" in _listOfItemsToRemove} ) then { + private _cfgWeapons = configFile >> "CfgWeapons"; + private _posItemInArray = _listOfItemsToRemove findIf {_x isKindOf ["ACE_Banana", _cfgWeapons]}; + private _repChange = btc_rep_bonus_removeFood * parseNumber (_listOfTextItems select _posItemInArray); if (isServer) then { - [btc_rep_bonus_removeFood, _caller] call btc_fnc_rep_change; + [_repChange, _caller] call btc_fnc_rep_change; } else { - [btc_rep_bonus_removeFood, _caller] remoteExecCall ["btc_fnc_rep_change", 2]; + [_repChange, _caller] remoteExecCall ["btc_fnc_rep_change", 2]; }; }; From a7f9964ece9ebbbbfa882fd236cf4ea765a56baf Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 May 2021 22:30:15 +0200 Subject: [PATCH 093/354] Change name convention --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf | 2 +- .../core/fnc/rep/foodRemoved.sqf | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 573e000d9..5e3882389 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -691,7 +691,7 @@ btc_rep_bonus_mil_killed = 0.25; btc_rep_bonus_IEDCleanUp = 10; btc_rep_bonus_removeTag = 3; btc_rep_bonus_removeTagLetter = 0.5; -btc_rep_bonus_giveFood = 0.5; +btc_rep_bonus_foodGive = 0.5; btc_rep_malus_civ_hd = - 2; btc_rep_malus_animal_hd = - 1; @@ -702,7 +702,7 @@ btc_rep_malus_player_respawn = - 10; btc_rep_malus_veh_killed = - 25; btc_rep_malus_building_damaged = - 2.5; btc_rep_malus_building_destroyed = - 5; -btc_rep_bonus_removeFood = - btc_rep_bonus_giveFood; +btc_rep_malus_foodRemove = - btc_rep_bonus_foodGive; //Skill btc_AI_skill = _p_skill; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf index 7baf7d1ff..bfefeb888 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf @@ -38,6 +38,6 @@ if ( [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "STR_BTC_HAM_CON_INT_ALRGIVEFOOD"] select _isInterpreter)] call btc_fnc_showSubtitle; } else { [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "str_a3_rscdisplaywelcome_kart_pard_footer2"] select _isInterpreter)] call btc_fnc_showSubtitle; - [btc_rep_bonus_giveFood, _player] remoteExecCall ["btc_fnc_rep_change", 2]; + [btc_rep_bonus_foodGive, _player] remoteExecCall ["btc_fnc_rep_change", 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index 343dedac0..199e569de 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -33,7 +33,7 @@ if ( ) then { private _cfgWeapons = configFile >> "CfgWeapons"; private _posItemInArray = _listOfItemsToRemove findIf {_x isKindOf ["ACE_Banana", _cfgWeapons]}; - private _repChange = btc_rep_bonus_removeFood * parseNumber (_listOfTextItems select _posItemInArray); + private _repChange = btc_rep_malus_removeFood * parseNumber (_listOfTextItems select _posItemInArray); if (isServer) then { [_repChange, _caller] call btc_fnc_rep_change; } else { From 9a4a09d55531af5610c1ea5d23a2173c2b70355a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 13 May 2021 11:17:47 +0200 Subject: [PATCH 094/354] also patch the load_old fnc --- .../core/fnc/db/load_old.sqf | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 17ff7ac48..3f9441b5e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -127,42 +127,44 @@ btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep", _ btc_vehicles = []; private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]); -{ - [_x] call { - params [ - ["_object_data", [], [[]]] - ]; - _object_data params [ - "_type", - "_posWorld", - "_dir", - "_magClass", - "_cargo", - "_inventory", - "_vectorPos", - ["_isContaminated", false, [false]] - ]; - - private _obj = _type createVehicle _posWorld; - - _obj setDir _dir; - _obj setPosWorld _posWorld; - _obj setVectorDirAndUp _vectorPos; - - if (_isContaminated) then { - if ((btc_chem_contaminated pushBackUnique _obj) > -1) then { - publicVariable "btc_chem_contaminated"; +[{ // Can't use ace_cargo for objects created during first frame. + { + [_x] call { + params [ + ["_object_data", [], [[]]] + ]; + _object_data params [ + "_type", + "_posWorld", + "_dir", + "_magClass", + "_cargo", + "_inventory", + "_vectorPos", + ["_isContaminated", false, [false]] + ]; + + private _obj = _type createVehicle _posWorld; + + _obj setDir _dir; + _obj setPosWorld _posWorld; + _obj setVectorDirAndUp _vectorPos; + + if (_isContaminated) then { + if ((btc_chem_contaminated pushBackUnique _obj) > -1) then { + publicVariable "btc_chem_contaminated"; + }; + }; + if (_magClass isNotEqualTo "") then {_obj setVariable ["ace_rearm_magazineClass", _magClass, true]}; + if (unitIsUAV _obj) then { + createVehicleCrew _obj; }; - }; - if (_magClass isNotEqualTo "") then {_obj setVariable ["ace_rearm_magazineClass", _magClass, true]}; - if (unitIsUAV _obj) then { - createVehicleCrew _obj; - }; - [_obj] call btc_fnc_log_init; - [_obj, _cargo, _inventory] call btc_fnc_db_loadCargo; - }; -} forEach _objs; + [_obj] call btc_fnc_log_init; + [_obj, _cargo, _inventory] call btc_fnc_db_loadCargo; + }; + } forEach _this; +}, _objs] call CBA_fnc_execNextFrame; //VEHICLES private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name], []]); From a745ec6e442dd7a3bf8e64014fbd5ee04096c183 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 13 May 2021 12:14:02 +0200 Subject: [PATCH 095/354] Add fnc to migrate old inventory to new improve naming --- .../core/fnc/db/load.sqf | 4 +- .../core/fnc/db/load_old.sqf | 43 +++++++++++++++++-- .../core/fnc/db/loadcargo.sqf | 4 +- .../core/fnc/db/saveObjectStatus.sqf | 4 +- 4 files changed, 45 insertions(+), 10 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index d2af5c42f..99b4145a1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -146,7 +146,7 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] "_veh_fuel", "_veh_AllHitPointsDamage", "_veh_cargo", - "_veh_cont", + "_veh_inventory", "_customization", ["_isMedicalVehicle", false, [false]], ["_isRepairVehicle", false, [false]], @@ -167,7 +167,7 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] _veh setVectorDirAndUp _vectorPos; _veh setFuel _veh_fuel; - [_veh, _veh_cargo, _veh_cont] call btc_fnc_db_loadCargo; + [_veh, _veh_cargo, _veh_inventory] call btc_fnc_db_loadCargo; if !(alive _veh) then { [_veh, objNull, objNull, false] call btc_fnc_veh_killed; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 3f9441b5e..30a42d6c2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -126,6 +126,43 @@ btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep", _ {deleteVehicle _x} forEach btc_vehicles; btc_vehicles = []; +private _fnc_migrateOldToNew_inventory = { + params [ + ["_weap_obj", [[],[]], [[]]], + ["_mags_obj", [], [[]]], + ["_items_obj", [], [[]]], + ["_backpack_obj", [], [[]]] + ]; + + private _weaponsItemsCargo = []; + { + for "_i" from 1 to (_weap_obj select 1 select _forEachindex) do { + _weaponsItemsCargo pushBack [_x,"","","",[],[],""]; + }; + } forEach (_weap_obj select 0); + + private _itemCargo = []; + { + for "_i" from 1 to (_items_obj select 1 select _forEachindex) do { + _itemCargo pushBack _x; + }; + } forEach (_items_obj select 0); + + private _everyContainer = []; + { + for "_i" from 1 to (_backpack_obj select 1 select _forEachindex) do { + _everyContainer pushBack [_x,[[[],[]],[],[],[]]; + }; + } forEach (_backpack_obj select 0); + + [ + _mags_obj, + _weaponsItemsCargo, + _itemCargo, + _everyContainer + ] +}; + private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]); [{ // Can't use ace_cargo for objects created during first frame. { @@ -161,7 +198,7 @@ private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name] }; [_obj] call btc_fnc_log_init; - [_obj, _cargo, _inventory] call btc_fnc_db_loadCargo; + [_obj, _cargo, _inventory call _fnc_migrateOldToNew_inventory] call btc_fnc_db_loadCargo; }; } forEach _this; }, _objs] call CBA_fnc_execNextFrame; @@ -194,11 +231,11 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] [format ["_veh = %1", _x], __FILE__, [false]] call btc_fnc_debug_message; }; - private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory, _veh_AllHitPointsDamage] call btc_fnc_log_createVehicle; + private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory call _fnc_migrateOldToNew_inventory, _veh_AllHitPointsDamage] call btc_fnc_log_createVehicle; _veh setVectorDirAndUp _vectorPos; _veh setFuel _veh_fuel; - [_veh, _veh_cargo, _veh_cont] call btc_fnc_db_loadCargo; + [_veh, _veh_cargo, _veh_cont call _fnc_migrateOldToNew_inventory] call btc_fnc_db_loadCargo; if !(alive _veh) then { [_veh, objNull, objNull, false] call btc_fnc_veh_killed; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index 01870522e..b80e8b6b0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -27,7 +27,7 @@ Author: //handle cargo { - _x params ["_type", "_magClass", "_cargo_obj", ["_isContaminated", false, [false]]]; + _x params ["_type", "_magClass", "_inventory", ["_isContaminated", false, [false]]]; private _l = createVehicle [_type, getPosATL _obj, [], 0, "CAN_COLLIDE"]; [_l] call btc_fnc_log_init; @@ -40,7 +40,7 @@ Author: _l setVariable ["ace_rearm_magazineClass", _magClass, true] }; - [_l, _cargo_obj] call btc_fnc_log_setInventory; + [_l, _inventory] call btc_fnc_log_setInventory; if (_isContaminated) then { btc_chem_contaminated pushBack _l; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 5a6498834..c8817b81a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -45,9 +45,7 @@ private _cargo = []; }); } forEach (_object getVariable ["ace_cargo_loaded", []]); _data pushBack _cargo; -//Inventory -private _cont = _x call btc_fnc_log_getInventory; -_data pushBack _cont; +_data pushBack (_object call btc_fnc_log_getInventory); _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); From d2708877cd31ff24614661b9727b9089a7d5283e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 13 May 2021 13:23:47 +0200 Subject: [PATCH 096/354] Make a global function to warp old inventory --- .../core/fnc/db/load_old.sqf | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 30a42d6c2..adb20e37a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -126,7 +126,7 @@ btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep", _ {deleteVehicle _x} forEach btc_vehicles; btc_vehicles = []; -private _fnc_migrateOldToNew_inventory = { +btc_load_fnc_migrateOldToNew_inventory = { params [ ["_weap_obj", [[],[]], [[]]], ["_mags_obj", [], [[]]], @@ -151,7 +151,7 @@ private _fnc_migrateOldToNew_inventory = { private _everyContainer = []; { for "_i" from 1 to (_backpack_obj select 1 select _forEachindex) do { - _everyContainer pushBack [_x,[[[],[]],[],[],[]]; + _everyContainer pushBack [_x,[[[],[]],[],[],[]]]; }; } forEach (_backpack_obj select 0); @@ -198,7 +198,10 @@ private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name] }; [_obj] call btc_fnc_log_init; - [_obj, _cargo, _inventory call _fnc_migrateOldToNew_inventory] call btc_fnc_db_loadCargo; + { + _x set [2, (_x select 2) call btc_load_fnc_migrateOldToNew_inventory]; + } forEach _cargo; + [_obj, _cargo, _inventory call btc_load_fnc_migrateOldToNew_inventory] call btc_fnc_db_loadCargo; }; } forEach _this; }, _objs] call CBA_fnc_execNextFrame; @@ -231,11 +234,14 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] [format ["_veh = %1", _x], __FILE__, [false]] call btc_fnc_debug_message; }; - private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory call _fnc_migrateOldToNew_inventory, _veh_AllHitPointsDamage] call btc_fnc_log_createVehicle; + private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory call btc_load_fnc_migrateOldToNew_inventory, _veh_AllHitPointsDamage] call btc_fnc_log_createVehicle; _veh setVectorDirAndUp _vectorPos; _veh setFuel _veh_fuel; - [_veh, _veh_cargo, _veh_cont call _fnc_migrateOldToNew_inventory] call btc_fnc_db_loadCargo; + { + _x set [2, (_x select 2) call btc_load_fnc_migrateOldToNew_inventory]; + } forEach _veh_cargo; + [_veh, _veh_cargo, _veh_cont call btc_load_fnc_migrateOldToNew_inventory] call btc_fnc_db_loadCargo; if !(alive _veh) then { [_veh, objNull, objNull, false] call btc_fnc_veh_killed; From e7c37c003d971e5019750d11a8dee65da094f20c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 13 May 2021 13:42:50 +0200 Subject: [PATCH 097/354] Change naming --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf | 4 ++-- .../core/fnc/db/saveObjectStatus.sqf | 4 ++-- .../core/fnc/log/createVehicle.sqf | 2 +- .../core/fnc/log/{getInventory.sqf => inventoryGet.sqf} | 6 +++--- .../core/fnc/log/{setInventory.sqf => inventorySet.sqf} | 6 +++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/{getInventory.sqf => inventoryGet.sqf} (79%) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/{setInventory.sqf => inventorySet.sqf} (88%) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 23af7c493..d780fc198 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -180,13 +180,13 @@ if (isServer) then { btc_fnc_log_createVehicle = compileScript ["core\fnc\log\createVehicle.sqf"]; btc_fnc_log_getRearmMagazines = compileScript ["core\fnc\log\getRearmMagazines.sqf"]; btc_fnc_log_init = compileScript ["core\fnc\log\init.sqf"]; - btc_fnc_log_setInventory = compileScript ["core\fnc\log\setInventory.sqf"]; + btc_fnc_log_inventorySet = compileScript ["core\fnc\log\inventorySet.sqf"]; btc_fnc_log_server_delete = compileScript ["core\fnc\log\server_delete.sqf"]; btc_fnc_log_create_s = compileScript ["core\fnc\log\create_s.sqf"]; btc_fnc_log_get_cc = compileScript ["core\fnc\log\get_cc.sqf"]; btc_fnc_log_get_rc = compileScript ["core\fnc\log\get_rc.sqf"]; btc_fnc_log_server_repair_wreck = compileScript ["core\fnc\log\server_repair_wreck.sqf"]; - btc_fnc_log_getInventory = compileScript ["core\fnc\log\getInventory.sqf"]; + btc_fnc_log_inventoryGet = compileScript ["core\fnc\log\inventoryGet.sqf"]; //DEAF btc_fnc_deaf_earringing = compileScript ["core\fnc\deaf\earringing.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index b80e8b6b0..1c5925110 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -40,7 +40,7 @@ Author: _l setVariable ["ace_rearm_magazineClass", _magClass, true] }; - [_l, _inventory] call btc_fnc_log_setInventory; + [_l, _inventory] call btc_fnc_log_inventorySet; if (_isContaminated) then { btc_chem_contaminated pushBack _l; @@ -49,5 +49,5 @@ Author: } forEach _cargo; //set inventory content for weapons, magazines and items - [_obj, _inventory] call btc_fnc_log_setInventory; + [_obj, _inventory] call btc_fnc_log_inventorySet; }, _this] call CBA_fnc_execNextFrame; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index c8817b81a..8110c5ef1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -39,13 +39,13 @@ private _cargo = []; [ typeOf _x, _x getVariable ["ace_rearm_magazineClass", ""], - _x call btc_fnc_log_getInventory, + _x call btc_fnc_log_inventoryGet, _x in btc_chem_contaminated ] }); } forEach (_object getVariable ["ace_cargo_loaded", []]); _data pushBack _cargo; -_data pushBack (_object call btc_fnc_log_getInventory); +_data pushBack (_object call btc_fnc_log_inventoryGet); _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 0a10ff036..59b3247dd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -53,7 +53,7 @@ _veh setPosASL _pos; [_veh, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; if (_EDENinventory isNotEqualTo []) then { _veh setVariable ["btc_EDENinventory", _EDENinventory]; - [_veh, _EDENinventory] call btc_fnc_log_setInventory; + [_veh, _EDENinventory] call btc_fnc_log_inventorySet; }; _veh setVariable ["btc_dont_delete", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getInventory.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf similarity index 79% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getInventory.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf index b0eaba226..5c32f0053 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getInventory.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_getInventory +Function: btc_fnc_log_inventoryGet Description: Get inventory of an object. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_log_getInventory; + [cursorObject] call btc_fnc_log_inventoryGet; (end) Author: @@ -26,7 +26,7 @@ params [ private _everyContainer = everyContainer _object; { - _x set [1, (_x select 1) call btc_fnc_log_getInventory]; + _x set [1, (_x select 1) call btc_fnc_log_inventoryGet]; } forEach _everyContainer; [ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf similarity index 88% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf index 2ae78d1e8..1225b5023 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/setInventory.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_setInventory +Function: btc_fnc_log_inventorySet Description: Set inventory of an object. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject, [cursorObject] call btc_fnc_log_getInventory] call btc_fnc_log_setInventory; + [cursorObject, [cursorObject] call btc_fnc_log_inventoryGet] call btc_fnc_log_inventorySet; (end) Author: @@ -56,7 +56,7 @@ _inventory params [ }; private _newContainer = everyContainer _object; - [(_newContainer select (count _newContainer -1)) select 1, _x select 1] call btc_fnc_log_setInventory; + [(_newContainer select (count _newContainer -1)) select 1, _x select 1] call btc_fnc_log_inventorySet; } forEach _everyContainer; { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index fef8413bf..6e11f24d6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -70,7 +70,7 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); [_vehicle, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; if (_EDENinventory isNotEqualTo []) then { _vehicle setVariable ["btc_EDENinventory", _EDENinventory]; - [_vehicle, _EDENinventory] call btc_fnc_log_setInventory; + [_vehicle, _EDENinventory] call btc_fnc_log_inventorySet; }; [_vehicle, _time] call btc_fnc_veh_addRespawn; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index e5a56b5ee..1c83e2c62 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -22,7 +22,7 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN setDate _date; { - _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_getInventory]; + _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_inventoryGet]; _x call btc_fnc_db_add_veh; } forEach btc_vehicles; }; @@ -42,7 +42,7 @@ if (btc_p_db_autoRestart > 0) then { }; { - _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_getInventory]; + _x setVariable ["btc_EDENinventory", _x call btc_fnc_log_inventoryGet]; [_x, 30] call btc_fnc_veh_addRespawn; } forEach btc_helo; From 145420145a58eb081d02ad4ce11abb9753b33228 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 13 May 2021 18:35:44 +0200 Subject: [PATCH 098/354] Improve syntaxe --- .../core/fnc/db/saveObjectStatus.sqf | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 8110c5ef1..a8f68842c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -30,10 +30,8 @@ _data pushBack (typeOf _object); _data pushBack (getPosASL _object); _data pushBack (getDir _object); _data pushBack (_object getVariable ["ace_rearm_magazineClass", ""]); -//Cargo -private _cargo = []; -{ - _cargo pushBack (if (_x isEqualType "") then { +private _cargo = (_object getVariable ["ace_cargo_loaded", []]) apply { + if (_x isEqualType "") then { [_x, "", [[], [], []]] } else { [ @@ -42,8 +40,8 @@ private _cargo = []; _x call btc_fnc_log_inventoryGet, _x in btc_chem_contaminated ] - }); -} forEach (_object getVariable ["ace_cargo_loaded", []]); + }; +}; _data pushBack _cargo; _data pushBack (_object call btc_fnc_log_inventoryGet); _data pushBack [vectorDir _object, vectorUp _object]; From bb3872d3116d300ae1cda4e8a06303fa00c3c983 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 13 May 2021 18:58:46 +0200 Subject: [PATCH 099/354] Fix wrong variable name btc_rep_malus_removeFood --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index 199e569de..77e19fbcc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -33,7 +33,7 @@ if ( ) then { private _cfgWeapons = configFile >> "CfgWeapons"; private _posItemInArray = _listOfItemsToRemove findIf {_x isKindOf ["ACE_Banana", _cfgWeapons]}; - private _repChange = btc_rep_malus_removeFood * parseNumber (_listOfTextItems select _posItemInArray); + private _repChange = btc_rep_malus_foodRemove * parseNumber (_listOfTextItems select _posItemInArray); if (isServer) then { [_repChange, _caller] call btc_fnc_rep_change; } else { From d712de89bf254ca500a74de0839f8842ad70adff Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sat, 15 May 2021 09:28:30 +0800 Subject: [PATCH 100/354] Add Simplified Chinese translation for #1069 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index dda6fa350..bc31ee6ab 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -206,7 +206,7 @@ <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> La reputación se puede solicitar a los civiles<br/> Las malas acciones causan malos efectos sobre la reputacion.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ayudar a la población local luchando contra los Oplitas y desarmando los artefactos explosivos improvisados aumentará tu reputación; matar civiles, mutilar civiles vivos/muertos, disparar cerca de civiles sin razón alguna, disparar a vehículos civiles, dañar/destruir edificios, perder vehículos, respawns de jugadores disminuirá tu reputación. Al principio tienes un nivel de reputación muy bajo, por lo que los civiles no te ayudarán a revelar información importante sobre los Oplitas, es probable que mientan en su lugar.<br/> Abortar una misión secundaria no afecta a la reputación. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Ihr Ansehen bei der Bevölkerung können Sie bei Zivilisten erfragen <br/> Schlechte bzw. böse Handlungen habe zur Folge das ihr Ansehen sinkt. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Das Unterstützen der lokalen Bevölkerung, das Entschärfen von IEDs und der aktive Kampf gegen die Oplitas wird sich positiv auf ihr Ansehen auswirken. Negative Aktionen wie zb. das Töten oder verstümmeln von Zivlisten, das grundlose Abfeueren einer Waffe in der Nähe von Zivilisten, das Zerstören oder Beschädigen von Gebäuden, der Angriff auf zivile Fahrzeuge, der Verlust von Fahrzeugen im Allgemeinen oder das Respawnen haben hingegen einen nicht so guten Effekt. Zu Beginn ist Ihr Ansehen nur recht gering, weshalb es sein kann das Zivlisten eher zruückhaltend mit Informationen sind. In manchen Fällen werden die Zivilisten Sie auch einfach belügen.<br/> Das Abbrechen von Nebenaufgaben hat keine Auswirkung auf Ihr Ansehen. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> A Reputação entre a população é obtida por meio dos civis <br/> Ações ruins ou más fazem a reputação diminuir. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ajudar a população local combatendo os inimigos e desarmando os IED's aumentará sua reputação. Matar civis, mutilar civis vivos/mortos, atirar perto de civis sem motivo, atirar nos veículos civis, danificar/destruir prédios, perder veículos civis, respawns de jogadores diminuirão a reputação. No começo, o nível de reputação é muito baixo, então, os civis não irão ajudá-lo a revelar informações importantes sobre os inimigos ou provavelmente irão mentir.<br/> Cancelar tarefas secundárias não afeta a reputação. - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>系统:</marker><br/> 在任务开始时, 你只有很低的声誉, 所以平民不会向你展示关于Oplitas的重要信息, 他们更倾向于说谎。可以通过询问平民来获知声誉状况。<br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>善举:</marker><br/> 帮助当地居民反抗Oplitas, 拆除IED, 救助平民, 使用红色喷漆去除涂鸦, 完成支线任务和摧毁武器箱/藏匿点将会提升你的声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>恶行:</marker><br/> 恶行将会酿成恶果: 击杀或残害平民/动物, 毫无理由地向平民身边射击, 攻击平民车辆, 毁坏或摧毁建筑物, 损失我方载具和玩家重生均会降低声誉。中止支线任务不会影响声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>系统:</marker><br/> 在任务开始时, 你只有很低的声誉, 所以平民不会向你展示关于Oplitas的重要信息, 他们更倾向于说谎。可以通过询问平民来获知声誉状况。<br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>善举:</marker><br/> 帮助当地居民反抗Oplitas, 拆除IED, 救助平民, 把香蕉送给平民, 使用红色喷漆去除涂鸦, 完成支线任务和摧毁武器箱/藏匿点将会提升你的声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>恶行:</marker><br/> 恶行将会酿成恶果: 击杀或残害平民/动物, 毫无理由地向平民身边射击, 攻击平民车辆, 拿走平民的香蕉, 毁坏或摧毁建筑物, 损失我方载具和玩家重生均会降低声誉。中止支线任务不会影响声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, donner une banane, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, tirer sur une voiture civile, retirer une banane, endommager / détruire des bâtiments, casser les serrures des portes, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> @@ -1625,6 +1625,7 @@ Give a banana + 给他一根香蕉 @@ -1988,6 +1989,7 @@ Thank you but I already have food + 我已经有食物了, 谢谢 From eaa366a9fb4ea8b9c0341b1f59f9792a4814588c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 15 May 2021 14:58:30 +0200 Subject: [PATCH 101/354] Change name convention for new fnc --- .../core/fnc/city/activate.sqf | 6 +++--- .../core/fnc/city/getHouses.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf | 6 +++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf | 2 +- .../core/fnc/info/createIntels.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf | 4 ++-- .../core/fnc/mil/create_group.sqf | 2 +- .../core/fnc/rep/foodRemoved.sqf | 4 ++-- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 157a93587..820529624 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -286,13 +286,13 @@ if ( !(_type in ["Hill", "NameMarine"]) && _city getVariable ["btc_city_houses", []] isEqualTo [] ) then { - [[_city, _spawningRadius/3], btc_city_fnc_getHouses] call btc_fnc_delay_exec; + [[_city, _spawningRadius/3], btc_city_fnc_getHouses] call btc_delay_fnc_exec; }; -[_city, btc_fnc_door_lock] call btc_fnc_delay_exec; +[_city, btc_fnc_door_lock] call btc_delay_fnc_exec; if (btc_p_info_houseDensity > 0) then { - [_city, btc_info_fnc_createIntels] call btc_fnc_delay_exec; + [_city, btc_info_fnc_createIntels] call btc_delay_fnc_exec; }; private _civKilled = _city getVariable ["btc_rep_civKilled", []]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf index 219433797..b0d666cc5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_city_getHouses +Function: btc_city_fnc_getHouses Description: Get random open houses around a position. @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [player] call btc_fnc_city_getHouses; + [player] call btc_city_fnc_getHouses; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf index c91947862..5c19a0270 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf @@ -38,6 +38,6 @@ for "_i" from 1 to _n do { private _group = createGroup civilian; _group setVariable ["btc_city", _city]; _group setVariable ["btc_data_inhouse", [_pos]]; - [[_group, _pos], btc_fnc_civ_addWP] call btc_fnc_delay_exec; + [[_group, _pos], btc_fnc_civ_addWP] call btc_delay_fnc_exec; [_group, selectRandom btc_civ_type_units, _pos] call btc_delay_fnc_createUnit; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf index f1e84e40f..3f75a9e15 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_door_break +Function: btc_door_fnc_break Description: Break locked door action. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_door_break; + [] call btc_door_fnc_break; (end) Author: @@ -28,5 +28,5 @@ if (_door isEqualTo "") exitWith { [player, objNull, ["isnotinside"]] call ace_common_fnc_canInteractWith }, { params ["_args"]; - _args call btc_fnc_door_broke; + _args call btc_door_fnc_broke; }, {}, [_house, _door]] call CBA_fnc_progressBar; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf index 06eea5bc6..c07e2e5e0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_door_broke +Function: btc_door_fnc_broke Description: Unlock door. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - ([2] call ace_interaction_fnc_getDoor) call btc_fnc_door_broke; + ([2] call ace_interaction_fnc_getDoor) call btc_door_fnc_broke; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf index 58ed4c812..22c86ce85 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf @@ -41,4 +41,4 @@ Author: }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; -["ace_disarming_dropItems", btc_fnc_rep_foodRemoved] call CBA_fnc_addEventHandler; +["ace_disarming_dropItems", btc_rep_fnc_foodRemoved] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf index 71fe9e902..75cd2d208 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_info_createIntels +Function: btc_info_fnc_createIntels Description: Create intels in a city. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_info_createIntels; + [] call btc_info_fnc_createIntels; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf index bfefeb888..6f63f1a0a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_foodGive +Function: btc_int_fnc_foodGive Description: Give food to a unit. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [player, cursorObject] call btc_fnc_int_foodGive; + [player, cursorObject] call btc_int_fnc_foodGive; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 30ea73b66..c74cef4fe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -68,7 +68,7 @@ if ( }; _pos = [_pos] call btc_fnc_findPosOutsideRock; _this set ["_pos", _pos]; - }] call btc_fnc_delay_exec; + }] call btc_delay_fnc_exec; }; private _groups = []; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index 77e19fbcc..bdbaf61b8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_rep_foodRemoved +Function: btc_rep_fnc_foodRemoved Description: Change reputation if food is removed. @@ -15,7 +15,7 @@ Returns: Examples: (begin example) - [player, cursorObject, ["ACE_Banana"], ["2"]] call btc_fnc_rep_foodRemoved; + [player, cursorObject, ["ACE_Banana"], ["2"]] call btc_rep_fnc_foodRemoved; (end) Author: From b17b542063f0c4ae6da81dc49edd2e6067f65232 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 15 May 2021 15:17:38 +0200 Subject: [PATCH 102/354] Missing convention for door --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 820529624..5b697449d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -289,7 +289,7 @@ if ( [[_city, _spawningRadius/3], btc_city_fnc_getHouses] call btc_delay_fnc_exec; }; -[_city, btc_fnc_door_lock] call btc_delay_fnc_exec; +[_city, btc_door_fnc_lock] call btc_delay_fnc_exec; if (btc_p_info_houseDensity > 0) then { [_city, btc_info_fnc_createIntels] call btc_delay_fnc_exec; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 62257fba0..3644a745d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -73,7 +73,7 @@ if (isServer) then { btc_delay_fnc_exec = compileScript ["core\fnc\delay\exec.sqf"]; //DOOR - btc_fnc_door_lock = compileScript ["core\fnc\door\lock.sqf"]; + btc_door_fnc_lock = compileScript ["core\fnc\door\lock.sqf"]; //EH btc_eh_fnc_server = compileScript ["core\fnc\eh\server.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf index 823255130..2a15a1126 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_door_lock +Function: btc_door_fnc_lock Description: Lock door in a city. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [player] call btc_fnc_door_lock; + [player] call btc_door_fnc_lock; (end) Author: From 893836039f60663aae462860feb53773ee900e1c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 May 2021 12:01:29 +0200 Subject: [PATCH 103/354] Missing migrate to new name --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 2 +- .../core/fnc/db/saveObjectStatus.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf | 2 +- .../core/fnc/int/add_actions.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf | 2 +- .../core/fnc/log/inventoryGet.sqf | 6 +++--- .../core/fnc/log/inventorySet.sqf | 6 +++--- .../core/fnc/rep/foodRemoved.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 2 +- tools/add_header.py | 2 +- 11 files changed, 17 insertions(+), 17 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf index 5c19a0270..71e822c15 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf @@ -38,6 +38,6 @@ for "_i" from 1 to _n do { private _group = createGroup civilian; _group setVariable ["btc_city", _city]; _group setVariable ["btc_data_inhouse", [_pos]]; - [[_group, _pos], btc_fnc_civ_addWP] call btc_delay_fnc_exec; + [[_group, _pos], btc_civ_fnc_addWP] call btc_delay_fnc_exec; [_group, selectRandom btc_civ_type_units, _pos] call btc_delay_fnc_createUnit; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 54d4602a0..69850b2ae 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -139,7 +139,7 @@ private _vehiclesNotInCargo = _vehicles select { }; private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; { - (_x call btc_fnc_db_saveObjectStatus) params ["_type", "_pos", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated"]; + (_x call btc_db_fnc_saveObjectStatus) params ["_type", "_pos", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated"]; private _data = []; _data pushBack _type; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 02c7f22de..6cb5b7ccd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -37,13 +37,13 @@ private _cargo = (_object getVariable ["ace_cargo_loaded", []]) apply { [ typeOf _x, _x getVariable ["ace_rearm_magazineClass", ""], - _x call btc_fnc_log_inventoryGet, + _x call btc_log_fnc_inventoryGet, _x in btc_chem_contaminated ] }; }; _data pushBack _cargo; -_data pushBack (_object call btc_fnc_log_inventoryGet); +_data pushBack (_object call btc_log_fnc_inventoryGet); _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf index c07e2e5e0..7263076bb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf @@ -28,7 +28,7 @@ params [ _house setVariable [format ["bis_disabled_%1", _door], 0, true]; playSound3D ["\z\ace\addons\logistics_wirecutter\sound\wirecut.ogg", player]; -[btc_rep_malus_breakDoor, player] remoteExecCall ["btc_fnc_rep_change", 2]; +[btc_rep_malus_breakDoor, player] remoteExecCall ["btc_rep_fnc_change", 2]; private _getDoorAnimations = [_house, _door] call ace_interaction_fnc_getDoorAnimations; _getDoorAnimations params ["_animations"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index cb0bc79ad..6dc3bceab 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -37,7 +37,7 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title _action = ["Interrogate_intel", localize "STR_BTC_HAM_ACTION_INTEL_INTERROGATE", "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa", {[_target,true] spawn btc_info_fnc_ask;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && captive _target}] call ace_interact_menu_fnc_createAction; {[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} forEach (btc_type_units + btc_type_divers); _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title", "\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa", { - [btc_fnc_info_search_for_intel, [_target]] call CBA_fnc_execNextFrame; + [btc_info_fnc_search_for_intel, [_target]] call CBA_fnc_execNextFrame; }, {true}] call ace_interact_menu_fnc_createAction; {[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} forEach btc_info_intels; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf index 6f63f1a0a..09c73745a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf @@ -38,6 +38,6 @@ if ( [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "STR_BTC_HAM_CON_INT_ALRGIVEFOOD"] select _isInterpreter)] call btc_fnc_showSubtitle; } else { [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "str_a3_rscdisplaywelcome_kart_pard_footer2"] select _isInterpreter)] call btc_fnc_showSubtitle; - [btc_rep_bonus_foodGive, _player] remoteExecCall ["btc_fnc_rep_change", 2]; + [btc_rep_bonus_foodGive, _player] remoteExecCall ["btc_rep_fnc_change", 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf index 5c32f0053..1d457d743 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_inventoryGet +Function: btc_log_fnc_inventoryGet Description: Get inventory of an object. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_fnc_log_inventoryGet; + [cursorObject] call btc_log_fnc_inventoryGet; (end) Author: @@ -26,7 +26,7 @@ params [ private _everyContainer = everyContainer _object; { - _x set [1, (_x select 1) call btc_fnc_log_inventoryGet]; + _x set [1, (_x select 1) call btc_log_fnc_inventoryGet]; } forEach _everyContainer; [ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf index 1225b5023..8b6f37c61 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_log_inventorySet +Function: btc_log_fnc_inventorySet Description: Set inventory of an object. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [cursorObject, [cursorObject] call btc_fnc_log_inventoryGet] call btc_fnc_log_inventorySet; + [cursorObject, [cursorObject] call btc_log_fnc_inventoryGet] call btc_log_fnc_inventorySet; (end) Author: @@ -56,7 +56,7 @@ _inventory params [ }; private _newContainer = everyContainer _object; - [(_newContainer select (count _newContainer -1)) select 1, _x select 1] call btc_fnc_log_inventorySet; + [(_newContainer select (count _newContainer -1)) select 1, _x select 1] call btc_log_fnc_inventorySet; } forEach _everyContainer; { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index bdbaf61b8..392091948 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -35,8 +35,8 @@ if ( private _posItemInArray = _listOfItemsToRemove findIf {_x isKindOf ["ACE_Banana", _cfgWeapons]}; private _repChange = btc_rep_malus_foodRemove * parseNumber (_listOfTextItems select _posItemInArray); if (isServer) then { - [_repChange, _caller] call btc_fnc_rep_change; + [_repChange, _caller] call btc_rep_fnc_change; } else { - [_repChange, _caller] remoteExecCall ["btc_fnc_rep_change", 2]; + [_repChange, _caller] remoteExecCall ["btc_rep_fnc_change", 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index f2e02295f..51b6d37ce 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -43,7 +43,7 @@ if (btc_p_db_autoRestart > 0) then { { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; - [_x, 30] call btc_fnc_veh_addRespawn; + [_x, 30] call btc_veh_fnc_addRespawn; } forEach btc_helo; if (btc_p_side_mission_cycle > 0) then { diff --git a/tools/add_header.py b/tools/add_header.py index 530d1a9fa..d902add4e 100644 --- a/tools/add_header.py +++ b/tools/add_header.py @@ -5,7 +5,7 @@ import re def btc_fnc_generate_header(file_name, folder_name, parameters_array): - function_name = "btc_fnc_%s_%s" % (folder_name, file_name) + function_name = "btc_%s_fnc_%s" % (folder_name, file_name) parameters_string = '' for param in parameters_array: parameters_string = parameters_string + (''' %s - [%s]\n''' % (param[0], param[1])) From f159d9b5b932b29f629f90d0837df6d2336735b9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 May 2021 12:53:21 +0200 Subject: [PATCH 104/354] Wrong format for empty inventory --- .../core/fnc/log/create_apply.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf index 9c995ec62..2343f3cc5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf @@ -35,8 +35,8 @@ params [ btc_supplies_cargo, [_xx, _yy, _zz + 1.5], getDir _create_object_point, "", - [selectRandom _food, selectRandom _water] apply {[_x, "", [[[], []], [[], []], [[], []]]]}, - [[[], []], [[], []], [[], []]], + [selectRandom _food, selectRandom _water] apply {[_x, "", []]}, + [], [vectorDir _create_object_point, vectorUp _create_object_point] ]] remoteExecCall ["btc_fnc_db_loadObjectStatus", 2]; } else { From 8395587dba5cebbd7e2258751b4c22824629e86a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 May 2021 13:25:27 +0200 Subject: [PATCH 105/354] FIX: Missing compileScript --- .../core/fnc/eh/xeh_PreInit_EH.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/xeh_PreInit_EH.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/xeh_PreInit_EH.hpp index 40e07aba9..3efe14adf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/xeh_PreInit_EH.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/xeh_PreInit_EH.hpp @@ -1,3 +1,3 @@ class btc_hearts_and_minds { - init = "call compile preprocessFile 'core\fnc\compile.sqf';"; + init = "call compileScript ['core\fnc\compile.sqf'];"; }; From 9a7e729190573f3448c27f06854ec7b8bd6fd669 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 May 2021 13:37:45 +0200 Subject: [PATCH 106/354] Missing btc_veh_fnc_init for towing system --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 3 +++ .../core/fnc/eh/functions.hpp | 7 ------- =BTC=co@30_Hearts_and_Minds.Altis/description.ext | 1 - 3 files changed, 3 insertions(+), 8 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/functions.hpp diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 4ecbe202f..f9267458e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -260,6 +260,9 @@ btc_rep_fnc_foodRemoved = compileScript ["core\fnc\rep\foodRemoved.sqf"]; //ARSENAL btc_arsenal_fnc_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; +//VEH +btc_veh_fnc_init = compileScript ["core\fnc\veh\init.sqf"]; + /////////////////////CLIENT\\\\\\\\\\\\\\\\\\\\\ if (!isDedicated) then { //COMMON diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/functions.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/functions.hpp deleted file mode 100644 index 18695f7fb..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/functions.hpp +++ /dev/null @@ -1,7 +0,0 @@ -class btc { - class misc { - class veh_init { - file = "core\fnc\veh\init.sqf";//preInit = 1; - }; - }; -}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext index bf22ba339..c747e20f6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext +++ b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext @@ -28,7 +28,6 @@ class RscTitles { #include "core\fnc\task\taskTypes.hpp" class CfgFunctions { - #include "core\fnc\eh\functions.hpp" // add your own functions below }; From 98d8344b9ee6126aa1a6b6835825eca722f302ab Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 May 2021 14:51:42 +0200 Subject: [PATCH 107/354] FIX: Object are loaded twice --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 626db4542..d5dfbbb12 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -167,7 +167,6 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] _veh setVectorDirAndUp _vectorPos; _veh setFuel _veh_fuel; - [_veh, _veh_cargo, _veh_cont] call btc_db_fnc_loadCargo; [_veh, _veh_cargo, _veh_inventory] call btc_db_fnc_loadCargo; if !(alive _veh) then { From 1b408d76de062edea0628a1b453ab324e927e1cb Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 29 May 2021 19:21:45 +0200 Subject: [PATCH 108/354] Add pandemic side --- .../core/fnc/compile.sqf | 1 + .../core/fnc/side/pandemic.sqf | 99 +++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index f9267458e..664acb25d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -170,6 +170,7 @@ if (isServer) then { btc_side_fnc_chemicalLeak = compileScript ["core\fnc\side\chemicalLeak.sqf"]; btc_side_fnc_EMP = compileScript ["core\fnc\side\EMP.sqf"]; btc_side_fnc_removeRubbish = compileScript ["core\fnc\side\removeRubbish.sqf"]; + btc_side_fnc_pandemic = compileScript ["core\fnc\side\pandemic.sqf"]; //TAG btc_tag_fnc_initArea = compileScript ["core\fnc\tag\initArea.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf new file mode 100644 index 000000000..8b79df9a7 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf @@ -0,0 +1,99 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_side_fnc_pandemic + +Description: + Decontaminate civilian with a little shower. To localise civilian go to the subtask, follow red blood drop and use your chemical detector. + +Parameters: + _taskID - Unique task ID. [String] + +Returns: + +Examples: + (begin example) + [false, "btc_side_fnc_pandemic"] spawn btc_side_fnc_create; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_taskID", "btc_side", [""]] +]; + +private _minNumberOfSubTask = 2; +private _useful = btc_city_all select { + !(isNull _x) && + {_x getVariable ["type", ""] != "NameMarine"} && + { + private _city = _x; + ({ + (_x select 0) isEqualTo 6 && + {(_x select 3) isEqualTo civilian} + } count (_city getVariable ["data_units", []])) >= _minNumberOfSubTask + } +}; +if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; +private _city = selectRandom _useful; +private _dataCivilian = (_city getVariable ["data_units", []]) select { + (_x select 0) isEqualTo 6 && + {(_x select 3) isEqualTo civilian} +}; +private _extraCiv = round random (((count _dataCivilian) - _minNumberOfSubTask) min 2); + +[_taskID, 38, objNull, _city getVariable "name"] call btc_task_fnc_create; + +private _tasksID = []; +for "_i" from 0 to (_minNumberOfSubTask + _extraCiv - 1) do { + private _deconta_taskID = _taskID + "dc" + str _i; + _tasksID pushBack _deconta_taskID; + + private _selectedCiv = _dataCivilian select _i; + [[_deconta_taskID, _taskID], 15, _selectedCiv select 1 select 0, [_city getVariable "name", _selectedCiv select 2 select 0], false, false] call btc_task_fnc_create; + + [{ + params ["_city", "_civPos", "_civType"]; + _city getVariable ["active", false] && + {nearestObjects [_civPos, [_civType], 10] isNotEqualTo []} + }, { + params ["_city", "_civPos", "_civType", "_deconta_taskID"]; + private _civ = (nearestObjects [_civPos, [_civType], 10]) select 0; + btc_chem_contaminated pushBack _civ; + publicVariable "btc_chem_contaminated"; + + [{ + params ["_civ", "_deconta_taskID"]; + !alive _civ || + !(_civ in btc_chem_contaminated) + }, { + params ["_civ", "_deconta_taskID"]; + systemChat str _this; + if (_deconta_taskID call BIS_fnc_taskCompleted) exitWith {}; + if (!alive _civ) exitWith { + [_deconta_taskID, "FAILED"] call BIS_fnc_taskSetState; + }; + [_deconta_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; + }, [_civ, _deconta_taskID]] call CBA_fnc_waitUntilAndExecute; + }, [_city, _selectedCiv select 1 select 0, _selectedCiv select 2 select 0, _deconta_taskID]] call CBA_fnc_waitUntilAndExecute; +}; + +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + !(false in (_tasksID apply {_x call BIS_fnc_taskCompleted})) +}; + +if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; +if !("SUCCEEDED" in (_tasksID apply {_x call BIS_fnc_taskState})) exitWith { + [_taskID, "FAILED"] call BIS_fnc_taskSetState; +}; + +{ + if (_x call BIS_fnc_taskState isEqualTo "SUCCEEDED") then { + 15 call btc_rep_fnc_change; + }; +} forEach _tasksID; + +[_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; From 75facc479fb3533e9b4ed613e20920454e5281dd Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 30 May 2021 10:31:14 +0200 Subject: [PATCH 109/354] Change variable name for btc_delay_createUnit --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- .../core/fnc/city/activate.sqf | 2 +- .../core/fnc/city/cleanUp.sqf | 2 +- .../core/fnc/civ/create_patrol.sqf | 2 +- .../core/fnc/data/spawn_group.sqf | 2 +- .../core/fnc/debug/units.sqf | 4 ++-- .../core/fnc/delay/createAgent.sqf | 6 +++--- .../core/fnc/delay/createUnit.sqf | 10 +++++----- .../core/fnc/delay/createVehicle.sqf | 8 ++++---- .../core/fnc/delay/exec.sqf | 6 +++--- .../core/fnc/mil/create_group.sqf | 4 ++-- .../core/fnc/mil/create_patrol.sqf | 2 +- .../core/fnc/mil/send.sqf | 2 +- .../core/fnc/side/capture_officer.sqf | 4 ++-- .../core/fnc/side/convoy.sqf | 2 +- 15 files changed, 29 insertions(+), 29 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index f805559e7..1cfe03358 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -124,7 +124,7 @@ private _allClassSorted = _allClassVehicles select {getNumber (_cfgVehicles >> _ if (isServer) then { btc_final_phase = false; - btc_delay_createUnit = 0; + btc_delay_time = 0; //City btc_city_radius = _p_city_radius; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 5b697449d..cd75c1518 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -313,7 +313,7 @@ if (_civKilled isNotEqualTo []) then { }; _city setVariable ["activating", false]; -}, [_has_en, _city, _radius, _id], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; +}, [_has_en, _city, _radius, _id], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; //Patrol btc_patrol_active = btc_patrol_active - [grpNull]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/cleanUp.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/cleanUp.sqf index 04b919507..fa920340b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/cleanUp.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/cleanUp.sqf @@ -39,7 +39,7 @@ _toRemove append (allDead select { _toRemove call CBA_fnc_deleteEntity; -if (btc_delay_createUnit < 0.001) then { // Don't remove group during units creation. +if (btc_delay_time < 0.001) then { // Don't remove group during units creation. (allGroups select { units _x isEqualTo [] && !( diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf index 375fae7f9..ad76555d9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf @@ -70,6 +70,6 @@ private _delay = [_group, _veh_type, [selectRandom btc_civ_type_units], _safe_po [{ _this call btc_patrol_fnc_init; [[_this select 0]] call btc_fnc_set_groupsOwner; -}, [_group, [_start_city, _active_city], _area, _pos_isWater], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; +}, [_group, [_start_city, _active_city], _area, _pos_isWater], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; true diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf index 6d063c20c..b4379bf14 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf @@ -108,6 +108,6 @@ if (_type isEqualTo 1) then { [_group, _array_veh select 0] call btc_civ_fnc_addWP; _group setVariable ["btc_data_inhouse", _array_veh]; }; -}, [_data_unit, _group], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; +}, [_data_unit, _group], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; _delay diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/units.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/units.sqf index 71ab756d3..126d9d050 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/units.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/debug/units.sqf @@ -35,8 +35,8 @@ if (isNull _display || !btc_debug_graph) exitWith { [10, objNull, "btc_units_owners"] remoteExecCall ["btc_int_fnc_ask_var", 2]; ["btc_patrol_active", objNull, "btc_patrol_active"] remoteExecCall ["btc_int_fnc_ask_var", 2]; ["btc_civ_veh_active", objNull, "btc_civ_veh_active"] remoteExecCall ["btc_int_fnc_ask_var", 2]; -["btc_delay_createUnit", objNull, "btc_delay_createUnitDebug"] remoteExecCall ["btc_int_fnc_ask_var", 2]; +["btc_delay_time", objNull, "btc_delay_timeDebug"] remoteExecCall ["btc_int_fnc_ask_var", 2]; private _count_units = {(_x select 0) isKindOf "man"} count btc_units_owners; private _count_units_own = {((_x select 1) isEqualTo 2) && ((_x select 0) isKindOf "man")} count btc_units_owners; -_TXTunits ctrlSetText format ["DELAY:%1s UNITS:%2 NOT-ON-SERVER:%3 | GROUPS:%4 | Patrol:%5 Traffic:%6", [btc_delay_createUnitDebug, 0] select (btc_delay_createUnitDebug < 0.001), _count_units, _count_units - _count_units_own, count allGroups, count btc_patrol_active, count btc_civ_veh_active]; +_TXTunits ctrlSetText format ["DELAY:%1s UNITS:%2 NOT-ON-SERVER:%3 | GROUPS:%4 | Patrol:%5 Traffic:%6", [btc_delay_timeDebug, 0] select (btc_delay_timeDebug < 0.001), _count_units, _count_units - _count_units_own, count allGroups, count btc_patrol_active, count btc_civ_veh_active]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf index 1c54b5088..f5255974a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf @@ -23,7 +23,7 @@ Author: ---------------------------------------------------------------------------- */ -btc_delay_createUnit = btc_delay_createUnit + 0.1; +btc_delay_time = btc_delay_time + 0.1; [{ params [ @@ -35,5 +35,5 @@ btc_delay_createUnit = btc_delay_createUnit + 0.1; (createAgent [_agentType, _pos, [], 0, _special]) setVariable ["btc_city", _city]; - btc_delay_createUnit = btc_delay_createUnit - 0.1; -}, _this, btc_delay_createUnit - 0.01] call CBA_fnc_waitAndExecute; + btc_delay_time = btc_delay_time - 0.1; +}, _this, btc_delay_time - 0.01] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf index 1743e7f8c..2e14a77fe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf @@ -3,7 +3,7 @@ Function: btc_delay_fnc_createUnit Description: - Create unit when all previous units have been created. btc_delay_createUnit define the time (in second) when the unit will be created. + Create unit when all previous units have been created. btc_delay_time define the time (in second) when the unit will be created. Parameters: _group - Group to add unit. [Group] @@ -24,7 +24,7 @@ Author: ---------------------------------------------------------------------------- */ -btc_delay_createUnit = btc_delay_createUnit + 0.2; +btc_delay_time = btc_delay_time + 0.2; [{ params [ @@ -37,7 +37,7 @@ btc_delay_createUnit = btc_delay_createUnit + 0.2; if (isNull _group) exitWith { [format ["isNull _group _this = %1", _this], __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; - btc_delay_createUnit = btc_delay_createUnit - 0.2; + btc_delay_time = btc_delay_time - 0.2; }; if !(_pos isEqualType []) then { @@ -50,5 +50,5 @@ btc_delay_createUnit = btc_delay_createUnit + 0.2; _unit moveInAny _vehicle; }; - btc_delay_createUnit = btc_delay_createUnit - 0.2; -}, _this, btc_delay_createUnit - 0.01] call CBA_fnc_waitAndExecute; + btc_delay_time = btc_delay_time - 0.2; +}, _this, btc_delay_time - 0.01] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf index 76dd00a4b..d1022a29a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf @@ -3,7 +3,7 @@ Function: btc_delay_fnc_createVehicle Description: - Create vehicle and crew when all previous units have been created. btc_delay_createUnit define the time (in second) when the vehicle and crew will be created. + Create vehicle and crew when all previous units have been created. btc_delay_time define the time (in second) when the vehicle and crew will be created. Parameters: _group - Group to store crews. [Group] @@ -28,7 +28,7 @@ Author: ---------------------------------------------------------------------------- */ -btc_delay_createUnit = btc_delay_createUnit + 0.3; +btc_delay_time = btc_delay_time + 0.3; [{ params [ @@ -83,7 +83,7 @@ btc_delay_createUnit = btc_delay_createUnit + 0.3; }; ["btc_delay_vehicleInit", [_veh, _group]] call CBA_fnc_localEvent; - btc_delay_createUnit = btc_delay_createUnit - 0.3; -}, _this, btc_delay_createUnit - 0.01] call CBA_fnc_waitAndExecute; + btc_delay_time = btc_delay_time - 0.3; +}, _this, btc_delay_time - 0.01] call CBA_fnc_waitAndExecute; count (_this select 2) * 0.2 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf index cb33641a2..950466b7a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf @@ -21,7 +21,7 @@ Author: ---------------------------------------------------------------------------- */ -btc_delay_createUnit = btc_delay_createUnit + 0.2; +btc_delay_time = btc_delay_time + 0.2; [{ params [ @@ -31,5 +31,5 @@ btc_delay_createUnit = btc_delay_createUnit + 0.2; _parameters call _code; - btc_delay_createUnit = btc_delay_createUnit - 0.2; -}, _this, btc_delay_createUnit - 0.01] call CBA_fnc_waitAndExecute; + btc_delay_time = btc_delay_time - 0.2; +}, _this, btc_delay_time - 0.01] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index c74cef4fe..a7d2a9513 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -89,14 +89,14 @@ for "_i" from 1 to _numberOfGroup do { [{ params ["_group", "_hashMapGroup", "_area"]; [_group, _hashMapGroup get "_pos", _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; - }, [_group, _hashMapGroup, _area], btc_delay_createUnit] call CBA_fnc_waitAndExecute; + }, [_group, _hashMapGroup, _area], btc_delay_time] call CBA_fnc_waitAndExecute; }; case (_wp > _wp_sentry_probability) : { [_group] call CBA_fnc_clearWaypoints; [{ params ["_group", "_hashMapGroup"]; [_group, _hashMapGroup get "_pos", -1, "SENTRY", "AWARE", "RED"] call CBA_fnc_addWaypoint; - }, [_group, _hashMapGroup], btc_delay_createUnit] call CBA_fnc_waitAndExecute; + }, [_group, _hashMapGroup], btc_delay_time] call CBA_fnc_waitAndExecute; }; }; [_group, _hashMapGroup, _n, _pos_iswater] call btc_mil_fnc_createUnits; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf index 2566cd1c1..70bd42b81 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf @@ -101,6 +101,6 @@ private _delay = switch (_random) do { [{ _this call btc_patrol_fnc_init; [[_this select 0]] call btc_fnc_set_groupsOwner; -}, [_group, [_start_city, _active_city], _area, _pos_isWater], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; +}, [_group, [_start_city, _active_city], _area, _pos_isWater], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; true diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf index 8bc671af4..0fa7b9ae0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf @@ -70,6 +70,6 @@ switch (_typeOf_patrol) do { [[_group]] call btc_fnc_set_groupsOwner; _group deleteGroupWhenEmpty true; -}, [_group, _typeOf_patrol, _dest, _infFormation], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; +}, [_group, _typeOf_patrol, _dest, _infFormation], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; _group diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 0bcd189a5..6a8ecf0fd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -109,7 +109,7 @@ for "_i" from 1 to _convoyLength do { }, [ _group, _pos2, -1, "MOVE", "SAFE", "RED", "LIMITED", "COLUMN", format ["['%1', 'FAILED'] call BIS_fnc_taskSetState;", _taskID], [0, 0, 0], _radius/2 -], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; +], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; [{ params ["_group", "_taskID", "_trigger"]; @@ -162,7 +162,7 @@ for "_i" from 1 to _convoyLength do { }, [ _group, _taskID -], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; +], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf index 0d84222b8..763e48caa 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf @@ -109,7 +109,7 @@ for "_i" from 1 to _convoyLength do { }, [ _group, _pos2, -1, "MOVE", "SAFE", "RED", "LIMITED", "COLUMN", format ["['%1', 'FAILED'] call BIS_fnc_taskSetState;", _taskID], [0, 0, 0], _radius/2 -], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; +], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; waitUntil {sleep 5; ( _taskID call BIS_fnc_taskCompleted || From 507a1871eb85970e196c4804b817665b05677530 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 30 May 2021 11:18:40 +0200 Subject: [PATCH 110/354] Improve syntaxe of side --- .../core/fnc/hideout/create.sqf | 4 ++-- .../core/fnc/patrol/usefulCity.sqf | 4 ++-- .../core/fnc/rep/call_militia.sqf | 2 +- .../core/fnc/side/EMP.sqf | 10 +++++++--- .../core/fnc/side/capture_officer.sqf | 13 +++++++++--- .../core/fnc/side/checkpoint.sqf | 10 +++++++--- .../core/fnc/side/chemicalLeak.sqf | 18 +++++++++++------ .../core/fnc/side/civtreatment.sqf | 20 ++++++++++++++++--- .../core/fnc/side/civtreatment_boat.sqf | 20 ++++++++++++++++--- .../core/fnc/side/convoy.sqf | 17 +++++++++++----- .../core/fnc/side/get_city.sqf | 11 ++++++++-- .../core/fnc/side/hack.sqf | 12 +++++++++-- .../core/fnc/side/hostage.sqf | 12 +++++++++-- .../core/fnc/side/kill.sqf | 15 ++++++++++---- .../core/fnc/side/mines.sqf | 15 +++++++++++--- .../core/fnc/side/removeRubbish.sqf | 2 +- .../core/fnc/side/rescue.sqf | 14 ++++++++----- .../core/fnc/side/supply.sqf | 10 ++++++++-- .../core/fnc/side/tower.sqf | 11 ++++++++-- .../core/fnc/side/underwater_generator.sqf | 11 ++++++++-- .../core/fnc/side/vehicle.sqf | 11 ++++++++-- 21 files changed, 184 insertions(+), 58 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf index 1ce9c2add..eaff35fa1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf @@ -43,14 +43,14 @@ params [ private _city = objNull; if (_pos isEqualTo []) then { private _useful = btc_city_all select {( - !(isNull _x) && + !isNull _x && {!(_x getVariable ["active", false])} && {_x distance (getMarkerPos btc_respawn_marker) > btc_hideout_safezone} && {!(_x getVariable ["has_ho", false])} && {_x getVariable ["type", ""] in ["NameLocal", "Hill", "NameVillage", "Airport"]} )}; private _inHoRange = btc_city_all select { - !(isNull _x) && + !isNull _x && { private _city = _x; (selectMin (btc_hideouts apply {_x distance _city})) < btc_hideout_minRange diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf index b67ebe971..6fb0c1bc5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/usefulCity.sqf @@ -36,9 +36,9 @@ _cities params [ //Find a useful end city from the start city depending of vehicle type private _useful = []; if (_isBoat) then { - _useful = btc_city_all select {!(isNull _x) && { _x getVariable ["hasbeach", false]}}; + _useful = btc_city_all select {!isNull _x && { _x getVariable ["hasbeach", false]}}; } else { - _useful = btc_city_all select {!(isNull _x) && {_x getVariable ["type", ""] != "NameMarine"}}; + _useful = btc_city_all select {!isNull _x && {_x getVariable ["type", ""] != "NameMarine"}}; }; private _cities = _useful inAreaArray [getPosWorld _active_city, _area, _area]; private _cities = _cities - (_start_city getVariable ["btc_cities_inaccessible", []]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf index 24d0073ea..3c57b9ef4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf @@ -42,7 +42,7 @@ if (btc_debug_log) then { if (_start_pos isEqualTo objNull) then { _start_pos = [_pos, btc_city_all select { - !(isNull _x) && + !isNull _x && !(_x getVariable ["active", false]) && _x getVariable ["type", ""] != "NameMarine" }, false] call btc_fnc_find_closecity; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf index 21991485b..8fa24cfae 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf @@ -24,7 +24,11 @@ params [ ["_taskID", "btc_side", [""]] ]; -private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["occupied", false] && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; @@ -115,10 +119,10 @@ for "_i" from 0 to (1 + round random 2) do { }, [_destroy_taskID]] call CBA_fnc_addBISEventHandler; }; -waitUntil {sleep 5;( +waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || !(false in (_tasksID apply {_x call BIS_fnc_taskCompleted})) -)}; +}; [[], _composition] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 0bcd189a5..598f0fea5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -25,13 +25,20 @@ params [ ]; //// Choose two Cities \\\\ -private _usefuls = btc_city_all select {!(isNull _x) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && !(_x getVariable ["occupied", false])}; +private _usefuls = btc_city_all select { + !isNull _x && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && + !(_x getVariable ["occupied", false]) +}; if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city2 = selectRandom _usefuls; private _area = (getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize"))/4; -private _cities = btc_city_all select {!(isNull _x) && _x distance _city2 > _area}; -_usefuls = _cities select {!((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && (_x getVariable ["occupied", false])}; +private _cities = btc_city_all select {!isNull _x && _x distance _city2 > _area}; +_usefuls = _cities select { + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && + _x getVariable ["occupied", false] +}; if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city1 = selectRandom _usefuls; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf index 65c91b9f7..eec8a6ebd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf @@ -25,7 +25,11 @@ params [ ]; //// Choose an occupied City \\\\ -private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["occupied", false] && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = getPos _city; @@ -107,9 +111,9 @@ for "_i" from 1 to (1 + round random 2) do { _boxes pushBack _boxe; }; -waitUntil {sleep 5; ( +waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || - _boxes select {alive _x} isEqualTo []) + _boxes select {alive _x} isEqualTo [] }; [[], _boxes + _composition] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf index a713806b1..89e109a0e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf @@ -24,7 +24,11 @@ params [ ["_taskID", "btc_side", [""]] ]; -private _useful = btc_city_all select {!(isNull _x) && !(_x getVariable ["occupied", false]) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + !(_x getVariable ["occupied", false]) && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)});}; private _city = selectRandom _useful; @@ -156,12 +160,14 @@ for "_i" from 1 to (5 + round random 5) do { private _bring_taskID = _taskID + "br"; [[_bring_taskID, _taskID], 31, _pos, btc_containers_mat select 0] call btc_task_fnc_create; -waitUntil {sleep 5; ( +waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || (nearestObjects [_pos, btc_containers_mat, 200]) isNotEqualTo [] -)}; +}; -if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {[[], _composition_objects + _chemical] call btc_fnc_delete;}; +if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { + [[], _composition_objects + _chemical] call btc_fnc_delete; +}; [_bring_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; @@ -172,10 +178,10 @@ private _locate_taskID = _taskID + "lc"; private _clean_taskID = _taskID + "cl"; [[_clean_taskID, _taskID], 33, btc_bigShower, typeOf btc_bigShower] call btc_task_fnc_create; -waitUntil {sleep 5; ( +waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || (_chemical arrayIntersect btc_chem_contaminated) select {!isNull _x} isEqualTo [] -)}; +}; [[], _composition_objects + _chemical] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf index 3084b750d..14aded8e6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf @@ -25,7 +25,11 @@ params [ ]; //// Choose a clear City \\\\ -private _useful = btc_city_all select {!(isNull _x) && !(_x getVariable ["occupied", false]) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + !(_x getVariable ["occupied", false]) && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = getPos _city; @@ -82,11 +86,21 @@ _unit setUnitPos "DOWN"; sleep 1; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || playableUnits inAreaArray [getPosWorld _unit, 5000, 5000] isNotEqualTo [])}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + playableUnits inAreaArray [getPosWorld _unit, 5000, 5000] isNotEqualTo [] +}; [_unit] call btc_fnc_set_damage; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !alive _unit || {_unit call ace_medical_status_fnc_isInStableCondition && [_unit] call ace_common_fnc_isAwake})}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + !alive _unit || + { + _unit call ace_medical_status_fnc_isInStableCondition && + [_unit] call ace_common_fnc_isAwake + } +}; [[], [_veh, _fx, _group]] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf index 7fd10727c..7d2666eb7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf @@ -25,7 +25,11 @@ params [ ]; //// Choose a Marine location \\\\ -private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["type", ""] isEqualTo "NameMarine" || _x getVariable ["hasbeach", false]}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["type", ""] isEqualTo "NameMarine" || + _x getVariable ["hasbeach", false] +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; @@ -53,11 +57,21 @@ _unit moveinCargo [_veh, _index]; [_taskID, 10, _unit, [_city getVariable "name", _veh_type]] call btc_task_fnc_create; sleep 1; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || playableUnits inAreaArray [getPosWorld _unit, 5000, 5000] isNotEqualTo [])}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + playableUnits inAreaArray [getPosWorld _unit, 5000, 5000] isNotEqualTo [] +}; [_unit] call btc_fnc_set_damage; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !alive _unit || {_unit call ace_medical_status_fnc_isInStableCondition && [_unit] call ace_common_fnc_isAwake})}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + !alive _unit || + { + _unit call ace_medical_status_fnc_isInStableCondition && + [_unit] call ace_common_fnc_isAwake + } +}; [[], [_veh, _group]] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf index 0d84222b8..67fa45602 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf @@ -25,13 +25,20 @@ params [ ]; //// Choose two Cities \\\\ -private _usefuls = btc_city_all select {!(isNull _x) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && !(_x getVariable ["occupied", false])}; +private _usefuls = btc_city_all select { + !isNull _x && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && + !(_x getVariable ["occupied", false]) +}; if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city2 = selectRandom _usefuls; private _area = (getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize"))/4; -private _cities = btc_city_all select {!(isNull _x) && _x distance _city2 > _area}; -_usefuls = _cities select {!((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && (_x getVariable ["occupied", false])}; +private _cities = btc_city_all select {!isNull _x && _x distance _city2 > _area}; +_usefuls = _cities select { + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && + _x getVariable ["occupied", false] +}; if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city1 = selectRandom _usefuls; @@ -111,11 +118,11 @@ for "_i" from 1 to _convoyLength do { format ["['%1', 'FAILED'] call BIS_fnc_taskSetState;", _taskID], [0, 0, 0], _radius/2 ], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; -waitUntil {sleep 5; ( +waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || ((units _group) apply {assignedVehicle _x}) select {canMove _x} isEqualTo [] || isNull _group -)}; +}; _markers append (allMapMarkers select {(_x select [0, count _taskID]) isEqualTo _taskID}); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf index 6ee626b67..855d7fc15 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf @@ -24,7 +24,11 @@ params [ ["_taskID", "btc_side", [""]] ]; -private _useful = btc_city_all select {!(isNull _x) && (_x getVariable ["occupied", false]) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["occupied", false] && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; @@ -34,7 +38,10 @@ private _pos = getPos _city; _city setVariable ["spawn_more", true]; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !(_city getVariable ["occupied", false]))}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + !(_city getVariable ["occupied", false]) +}; if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf index 4757d0068..04c8f29e0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf @@ -26,7 +26,11 @@ params [ ["_taskID", "btc_side", [""]] ]; -private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["occupied", false] && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; @@ -72,7 +76,11 @@ for "_i" from 1 to (2 + round random 1) do { [_terminal, _launchsite modelToWorld [0, 100, 10]] remoteExecCall ["btc_log_fnc_place_create_camera", [0, -2] select isDedicated]; -waitUntil {sleep 5; (_defend_taskID call BIS_fnc_taskCompleted || (grpNull in _groups) || !(_city getVariable ["active", false]))}; +waitUntil {sleep 5; + _defend_taskID call BIS_fnc_taskCompleted || + grpNull in _groups || + !(_city getVariable ["active", false]) +}; if (_defend_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { [[], [_terminal]] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf index b664df2bc..6d42fcaf2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf @@ -25,7 +25,11 @@ params [ ]; //// Choose an occupied City \\\\ -private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["occupied", false] && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; @@ -80,7 +84,11 @@ if (random 1 > 0.5) then { _mine = createMine [selectRandom btc_type_mines, getPosATL _captive, [], 0]; }; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !(_captive getVariable ["ace_captives_isHandcuffed", false]) || !alive _captive)}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + !(_captive getVariable ["ace_captives_isHandcuffed", false]) || + !alive _captive +}; if (!(_captive getVariable ["ace_captives_isHandcuffed", false])) then { _mine setDamage 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf index c50ec9a07..ad64bab7f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf @@ -25,7 +25,11 @@ params [ ]; //// Choose an occupied City \\\\ -private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["occupied", false] && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; @@ -88,7 +92,10 @@ _trigger setTriggerStatements ["this", "private _group = thisTrigger getVariable private _toDelete = _group + [_group_officer, _trigger]; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !alive _officer)}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + !alive _officer +}; if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { [[], _toDelete] call btc_fnc_delete; }; @@ -137,13 +144,13 @@ private _IDEH_HandleDisconnect = [missionNamespace, "HandleDisconnect", { }; }, [_globalVariableName, _taskID]] call CBA_fnc_addBISEventHandler; -waitUntil {sleep 5; ( +waitUntil {sleep 5; true in ( ( allPlayers inAreaArray [getPosWorld btc_create_object_point, 100, 100] ) apply {(missionNamespace getVariable [_globalVariableName, ""]) in itemCargo vehicle _x} ) || - _taskID call BIS_fnc_taskCompleted) + _taskID call BIS_fnc_taskCompleted }; _group_officer setVariable ["no_cache", false]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf index e9ddbef9b..61d1dc21f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf @@ -24,7 +24,10 @@ params [ ["_taskID", "btc_side", [""]] ]; -private _useful = btc_city_all select {!(isNull _x) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)});}; private _city = selectRandom _useful; @@ -105,14 +108,20 @@ for "_i" from 1 to (5 + round random 5) do { }; }; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || playableUnits inAreaArray [_pos, 100, 100] isNotEqualTo [])}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + playableUnits inAreaArray [_pos, 100, 100] isNotEqualTo [] +}; private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; for "_i" from 1 to (round random 2) do { [btc_mil_fnc_send, [_closest, _pos, 1, selectRandom btc_type_motorized]] call CBA_fnc_directCall; }; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || (_mines select {!isNull _x} isEqualTo []))}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + _mines select {!isNull _x} isEqualTo [] +}; [[_area], _mines + _composition_objects] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf index b81ffc7af..b58ed4955 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf @@ -26,7 +26,7 @@ params [ private _minNumberOfSubTask = 2; private _useful = btc_city_all select { - !(isNull _x) && + !isNull _x && {_x getVariable ["type", ""] != "NameMarine"} && { private _city = _x; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index 074ed815e..2d6ab3a00 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -25,7 +25,11 @@ params [ ]; //// Choose an occupied City \\\\ -private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["occupied", false] && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; @@ -89,11 +93,11 @@ private _triggers = []; _triggers pushBack _trigger; } forEach units _group; -waitUntil {sleep 5; ( +waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || _units select {_x distance btc_create_object_point > 100} isEqualTo [] || _units select {alive _x} isEqualTo [] -)}; +}; private _rep = 50; if (_units select {alive _x} isEqualTo []) then { @@ -141,12 +145,12 @@ if (_units select {alive _x} isEqualTo []) then { private _dogTagList = _units apply {([_x] call ace_dogtags_fnc_getDogtagData) select 0}; - waitUntil {sleep 5; ( + waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || { (([_x] call ace_dogtags_fnc_getDogtagData) select 0) in _dogTagList } count (nearestObjects [btc_create_object_point, ["ACE_bodyBagObject"], 100]) >= count _units - )}; + }; _rep = 40; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf index b0f8c797d..9fd2870ab 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf @@ -24,7 +24,10 @@ params [ ["_taskID", "btc_side", [""]] ]; -private _useful = btc_city_all select {!(isNull _x) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])} ; +private _useful = btc_city_all select { + !isNull _x && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)});}; @@ -105,7 +108,10 @@ if (_move_taskID call BIS_fnc_taskState isNotEqualTo "CANCELED") then { [getPos _city, _pos getPos [10, _direction_composition]] call btc_civ_fnc_evacuate; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || (count (nearestObjects [_pos, _food + _water, 30]) >= 2))}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + count (nearestObjects [_pos, _food + _water, 30]) >= 2 +}; if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { [[_area], _composition_objects] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf index ec35a5b2b..c777af248 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf @@ -24,7 +24,11 @@ params [ ["_taskID", "btc_side", [""]] ]; -private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["occupied", false] && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"])}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["occupied", false] && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; @@ -60,7 +64,10 @@ private _tower = _btc_composition select ((_btc_composition apply {typeOf _x}) f [_taskID, 7, _tower, [_city getVariable "name", _tower_type]] call btc_task_fnc_create; -waitUntil {sleep 5; (!alive _tower || _taskID call BIS_fnc_taskCompleted)}; +waitUntil {sleep 5; + !alive _tower || + _taskID call BIS_fnc_taskCompleted +}; [[], _btc_composition] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf index 8555929b5..ad060bbbe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf @@ -25,7 +25,11 @@ params [ ]; //// Choose a Marine location occupied \\\\ -private _useful = btc_city_all select {!(isNull _x) && (_x getVariable ["occupied", false]) && (_x getVariable ["type", ""] isEqualTo "NameMarine")}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["occupied", false] && + _x getVariable ["type", ""] isEqualTo "NameMarine" +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; @@ -68,7 +72,10 @@ private _group = [_pos, 8, 1 + round random 5,0.8] call btc_mil_fnc_create_group _pos = getPosASL _generator; (leader (_group select 0)) setPosASL [_x, _y, _z + 1 + random 1]; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || !alive _generator)}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + !alive _generator +}; [[], [_generator, _storagebladder]] call btc_fnc_delete; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf index d63fe9c64..7c5016024 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf @@ -24,7 +24,10 @@ params [ ["_taskID", "btc_side", [""]] ]; -private _useful = btc_city_all select {!(isNull _x) && _x getVariable ["type", ""] != "NameMarine"}; +private _useful = btc_city_all select { + !isNull _x && + _x getVariable ["type", ""] != "NameMarine" +}; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; @@ -40,7 +43,11 @@ _veh setHit ["wheel_1_1_steering", 1]; [_taskID, 5, _veh, [_city getVariable "name", _veh_type]] call btc_task_fnc_create; -waitUntil {sleep 5; (_taskID call BIS_fnc_taskCompleted || (_veh getHit "wheel_1_1_steering" < 1) || !alive _veh)}; +waitUntil {sleep 5; + _taskID call BIS_fnc_taskCompleted || + _veh getHit "wheel_1_1_steering" < 1 || + !alive _veh +}; [[], [_veh]] call btc_fnc_delete; From b550829c873562acee8742d1003807ef5f6a6add Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 30 May 2021 13:19:44 +0200 Subject: [PATCH 111/354] Pourcentage of city occupied at mission start --- .../core/fnc/city/init.sqf | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf index 698ddc70f..fcb93824d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf @@ -26,17 +26,17 @@ params [ private _locations = configfile >> "cfgworlds" >> worldname >> "names"; -private _cities = ["NameVillage", "NameCity", "NameCityCapital", "NameLocal", "Hill", "Airport", "StrongpointArea", "BorderCrossing", "VegetationFir"]; -if (btc_p_sea) then {_cities pushBack "NameMarine";}; +private _citiesType = ["NameVillage", "NameCity", "NameCityCapital", "NameLocal", "Hill", "Airport", "StrongpointArea", "BorderCrossing", "VegetationFir"]; +if (btc_p_sea) then {_citiesType pushBack "NameMarine";}; btc_city_all = []; - +private _cities = []; for "_id" from 0 to (count _locations - 1) do { private _current = _locations select _id; private _type = getText (_current >> "type"); - if (_type in _cities) then { + if (_type in _citiesType) then { private _position = getArray (_current >> "position"); if ( surfaceIsWater _position && @@ -68,10 +68,20 @@ for "_id" from 0 to (count _locations - 1) do { if ((getMarkerPos "YOUR_MARKER_AREA") inArea [_position, 500, 500, 0, false]) exitWith {}; */ - [_position, _type, _name, _radius, random 1 > _is_free_probability, _id] call btc_city_fnc_create; + private _city = [_position, _type, _name, _radius, false, _id] call btc_city_fnc_create; + _cities pushBack _city; }; }; +[_cities, true] call CBA_fnc_shuffle; +private _numberOfCity = (round ((count _cities) * _is_free_probability)) - btc_hideout_n; +{ + _x setVariable ["occupied", true]; + if (btc_debug) then { + (format ["loc_%1", _x getVariable "id"]) setMarkerColor "colorRed"; + }; +} forEach (_cities select [0, _numberOfCity]); + if !(isNil "btc_custom_loc") then { {_x call btc_city_fnc_create;} forEach btc_custom_loc; }; From ab7549b17fb5814029863ef12547d359bea698fd Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 30 May 2021 14:12:09 +0200 Subject: [PATCH 112/354] Use less random to populate more reliable city --- .../core/fnc/city/activate.sqf | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 5b697449d..bfb18041f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -104,22 +104,22 @@ if (_data_units isNotEqualTo []) then { } forEach _data_units; } else { // Maximum number of enemy group - private _max_number_group = (switch _type do { - case "Hill" : {1}; - case "VegetationFir" : {1}; - case "BorderCrossing" : {2}; - case "NameLocal" : {2}; - case "StrongpointArea" : {3}; - case "NameVillage" : {3}; - case "NameCity" : {7}; - case "NameCityCapital" : {15}; - case "Airport" : {15}; - case "NameMarine" : {1}; + private _numberOfGroup = (switch _type do { + case "Hill" : {2}; + case "VegetationFir" : {2}; + case "BorderCrossing" : {3}; + case "NameLocal" : {3}; + case "StrongpointArea" : {4}; + case "NameVillage" : {4}; + case "NameCity" : {8}; + case "NameCityCapital" : {16}; + case "Airport" : {16}; + case "NameMarine" : {2}; default {0}; }); if (_has_en) then { - for "_i" from 1 to (round (_p_mil_group_ratio * (1 + random _max_number_group))) do { + for "_i" from 1 to (round (_p_mil_group_ratio * _numberOfGroup)) do { [_city, _spawningRadius, 1 + round random 2, random 1] call btc_mil_fnc_create_group; }; }; @@ -128,7 +128,7 @@ if (_data_units isNotEqualTo []) then { private _houses = [_city, _spawningRadius/3] call btc_city_fnc_getHouses; if (_has_en) then { - private _max_number_group = (switch _type do { + private _numberOfStatic = (switch _type do { case "VegetationFir" : {1}; case "BorderCrossing" : {2}; case "NameLocal" : {1}; @@ -139,11 +139,11 @@ if (_data_units isNotEqualTo []) then { case "Airport" : {2}; default {0}; }); - [+_houses, round (_p_mil_static_group_ratio * random _max_number_group), _city] call btc_mil_fnc_create_staticOnRoof; + [+_houses, round (_p_mil_static_group_ratio * _numberOfStatic), _city] call btc_mil_fnc_create_staticOnRoof; }; // Spawn civilians - private _max_number_group = (switch _type do { + private _numberOfCivi = (switch _type do { case "VegetationFir" : {1}; case "BorderCrossing" : {0}; case "NameLocal" : {3}; @@ -154,7 +154,7 @@ if (_data_units isNotEqualTo []) then { case "Airport" : {6}; default {2}; }); - [+_houses, round (_p_civ_group_ratio * _max_number_group), _city] call btc_civ_fnc_populate; + [+_houses, round (_p_civ_group_ratio * _numberOfCivi), _city] call btc_civ_fnc_populate; }; }; if (btc_p_animals_group_ratio > 0) then { @@ -164,7 +164,7 @@ if (btc_p_animals_group_ratio > 0) then { } forEach _data_animals; } else { // Spawn animals - private _max_number_animalsGroup = (switch _type do { + private _numberOfAnimalsGroup = (switch _type do { case "Hill" : {3}; case "VegetationFir" : {3}; case "NameLocal" : {3}; @@ -175,7 +175,7 @@ if (btc_p_animals_group_ratio > 0) then { case "NameMarine" : {0}; default {0}; }); - for "_i" from 1 to (round (random _max_number_animalsGroup)) do { + for "_i" from 1 to _numberOfAnimalsGroup do { private _pos = [_city, _spawningRadius/3] call CBA_fnc_randPos; for "_i" from 1 to (round (random 3)) do { [selectRandom btc_animals_type, [_pos, 6] call CBA_fnc_randPos, nil, _city] call btc_delay_fnc_createAgent; @@ -186,7 +186,7 @@ if (btc_p_animals_group_ratio > 0) then { if (_city getVariable ["spawn_more", false]) then { _city setVariable ["spawn_more", false]; - for "_i" from 1 to (round (_p_mil_group_ratio * (2 + random 3))) do { + for "_i" from 1 to (round (_p_mil_group_ratio * 5)) do { [_city, _spawningRadius, 4 + round random 3, random 1] call btc_mil_fnc_create_group; }; if (btc_p_veh_armed_spawn_more) then { From 4a377f2da4385fdf83b5eb655d8ef00a17094bab Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 3 Jun 2021 18:59:27 +0200 Subject: [PATCH 113/354] adjust patrol size --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 2 +- .../core/fnc/mil/create_patrol.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 11c663a3a..dc410335e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -165,7 +165,7 @@ class Params { title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_PATROL_MAX"]); values[]={0,1,2,3,4,5,6,7,8,9,10}; texts[]={"1","2","3","4","5","6","7","8","9","10"}; - default = 8; + default = 9; }; class btc_p_civ_max_veh { // Maximum number of civilian patrol: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_CIV_MAX_VEH"]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf index 2566cd1c1..4070ee1ca 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf @@ -76,7 +76,7 @@ private _delay = switch (_random) do { case 1 : { _pos = [_pos, 0, 150, 10, false] call btc_fnc_findsafepos; - [_group, _pos, 5 + (round random 8)] call btc_mil_fnc_createUnits; + [_group, _pos, 5 + (round random 4)] call btc_mil_fnc_createUnits; 0 }; case 2 : { From e8a8c29c0b4e9f6b889b46bc3297e59210ed5d28 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 5 Jun 2021 12:27:49 +0200 Subject: [PATCH 114/354] Add: change name of variable for city radius --- .../core/def/mission.sqf | 4 ++-- .../core/def/param.hpp | 2 +- .../core/fnc/cache/find_pos.sqf | 2 +- .../core/fnc/city/activate.sqf | 16 ++++++++-------- .../core/fnc/city/create.sqf | 12 ++++++------ .../core/fnc/city/de_activate.sqf | 8 ++++---- .../core/fnc/city/init.sqf | 6 +++--- .../core/fnc/city/trigger_player_side.sqf | 10 +++++----- .../core/fnc/common/final_phase.sqf | 4 ++-- .../core/fnc/hideout/create.sqf | 6 +++--- .../core/fnc/mil/create_patrol.sqf | 2 +- .../core/fnc/patrol/init.sqf | 2 +- .../core/fnc/side/EMP.sqf | 2 +- .../core/fnc/side/capture_officer.sqf | 2 +- .../core/fnc/side/checkpoint.sqf | 2 +- .../core/fnc/side/chemicalLeak.sqf | 2 +- .../core/fnc/side/convoy.sqf | 2 +- .../core/fnc/side/mines.sqf | 2 +- .../core/fnc/side/rescue.sqf | 2 +- .../core/fnc/side/supply.sqf | 2 +- 20 files changed, 45 insertions(+), 45 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 53abb18cc..87e93eaab 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -79,7 +79,7 @@ btc_p_autoloadout = "btc_p_autoloadout" call BIS_fnc_getParamValue; //<< Other options >> private _p_rep = "btc_p_rep" call BIS_fnc_getParamValue; btc_p_rep_notify = "btc_p_rep_notify" call BIS_fnc_getParamValue; -private _p_city_radius = ("btc_p_city_radius" call BIS_fnc_getParamValue) * 100; +private _p_city_radiusOffset = ("btc_p_city_radiusOffset" call BIS_fnc_getParamValue) * 100; btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) then { "this && (false in (thisList apply {_x isKindOf 'Plane'})) && (false in (thisList apply {(_x isKindOf 'Helicopter') && (speed _x > 190)}))" } else { @@ -127,7 +127,7 @@ if (isServer) then { btc_delay_createUnit = 0; //City - btc_city_radius = _p_city_radius; + btc_city_radiusOffset = _p_city_radiusOffset; btc_city_blacklist = [];//NAME FROM CFG //Civ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 11c663a3a..6a4f21a88 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -389,7 +389,7 @@ class Params { texts[]={$STR_DISABLED, 0, 1, 2, 3, 5, 10, 25, 50, 100, 200}; default = 3; }; - class btc_p_city_radius { // Spawn city radius offset: + class btc_p_city_radiusOffset { // Spawn city radius offset: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_SPAWNRAD"]); values[]={0,1,2,3,4,5,6,7,8}; texts[]={"0 m","100 m","200 m",$STR_BTC_HAM_PARAM_OTHER_SPAWNRAD_DEF,"400 m","500 m (Takistan)","600 m","700 m","800 m"}; // texts[]={"0 m","100 m","200 m","300 m","400 m","500 m (Takistan)","600 m","700 m","800 m"}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf index c398fef65..151fcc3a6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf @@ -36,7 +36,7 @@ if (_city getVariable ["type", ""] in ["NameLocal", "Hill", "NameMarine"]) exitW [] call btc_cache_fnc_find_pos; }; -private _radius = _city getVariable ["radius", 200]; +private _radius = _city getVariable ["cachingRadius", 200]; private _pos = [getPos _city, _radius] call btc_fnc_randomize_pos; private _houses = [_pos, 50] call btc_fnc_getHouses; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 5b697449d..fc67de092 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -53,11 +53,11 @@ _city setVariable ["active", true]; private _data_units = _city getVariable ["data_units", []]; private _data_animals = _city getVariable ["data_animals", []]; private _type = _city getVariable ["type", ""]; -private _radius = _city getVariable ["radius", 100]; +private _cachingRadius = _city getVariable ["cachingRadius", 100]; private _has_en = _city getVariable ["occupied", false]; private _has_ho = _city getVariable ["has_ho", false]; private _ieds = _city getVariable ["ieds", []]; -private _spawningRadius = _radius/2; +private _spawningRadius = _cachingRadius/2; if (!(_city getVariable ["initialized", false])) then { private _ratio = (switch _type do { @@ -201,7 +201,7 @@ if ( (btc_cache_pos isNotEqualTo []) && {!(btc_cache_obj getVariable ["btc_cache_unitsSpawned", false])} ) then { - if (_city inArea [btc_cache_pos, _radius, _radius, 0, false]) then { + if (_city inArea [btc_cache_pos, _cachingRadius, _cachingRadius, 0, false]) then { btc_cache_obj setVariable ["btc_cache_unitsSpawned", true]; [btc_cache_pos, 8, 3, _wp_house] call btc_mil_fnc_create_group; @@ -301,11 +301,11 @@ if (_civKilled isNotEqualTo []) then { }; [{ - params ["_has_en", "_city", "_radius", "_id"]; + params ["_has_en", "_city", "_cachingRadius", "_id"]; if (_has_en) then { private _trigger = createTrigger ["EmptyDetector", getPos _city, false]; - _trigger setTriggerArea [_radius, _radius, 0, false]; + _trigger setTriggerArea [_cachingRadius, _cachingRadius, 0, false]; _trigger setTriggerActivation [str btc_enemy_side, "PRESENT", false]; _trigger setTriggerStatements [btc_p_city_free_trigger_condition, format ["[%1, thisList] call btc_city_fnc_set_clear", _id], ""]; _trigger setTriggerInterval 2; @@ -313,7 +313,7 @@ if (_civKilled isNotEqualTo []) then { }; _city setVariable ["activating", false]; -}, [_has_en, _city, _radius, _id], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; +}, [_has_en, _city, _cachingRadius, _id], btc_delay_createUnit + _delay] call CBA_fnc_waitAndExecute; //Patrol btc_patrol_active = btc_patrol_active - [grpNull]; @@ -330,7 +330,7 @@ if (_numberOfPatrol < _p_patrol_max) then { private _group = createGroup btc_enemy_side; btc_patrol_active pushBack _group; _group setVariable ["no_cache", true]; - [[_group, 1 + round random 1, _city, _radius + btc_patrol_area], btc_mil_fnc_create_patrol] call btc_delay_fnc_exec; + [[_group, 1 + round random 1, _city, _cachingRadius + btc_patrol_area], btc_mil_fnc_create_patrol] call btc_delay_fnc_exec; }; }; //Traffic @@ -342,7 +342,7 @@ if (_numberOfCivVeh < _p_civ_max_veh) then { private _group = createGroup civilian; btc_civ_veh_active pushBack _group; _group setVariable ["no_cache", true]; - [[_group, _city, _radius + btc_patrol_area], btc_civ_fnc_create_patrol] call btc_delay_fnc_exec; + [[_group, _city, _cachingRadius + btc_patrol_area], btc_civ_fnc_create_patrol] call btc_delay_fnc_exec; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf index 3c28c8632..fa09b3241 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf @@ -9,7 +9,7 @@ Parameters: _position - The position where the city will be created. [Array] _type - Type of city. [String] _name - The name of the city. [String] - _radius - The city radius. [Number] + _cachingRadius - The city radius. [Number] _has_en - If the city is occupied by enemies. [Boolean] _id - ID of the city in the cfgworlds. [Number] @@ -30,7 +30,7 @@ params [ ["_position", [0, 0, 0], [[]]], ["_type", "", [""]], ["_name", "", [""]], - ["_radius", 0, [0]], + ["_cachingRadius", 0, [0]], ["_has_en", false, [false]], ["_id", count btc_city_all, [0]] ]; @@ -41,7 +41,7 @@ _city setVariable ["activating", false]; _city setVariable ["initialized", false]; _city setVariable ["id", _id]; _city setVariable ["name", _name]; -_city setVariable ["radius", _radius]; +_city setVariable ["cachingRadius", _cachingRadius]; _city setVariable ["active", false]; _city setVariable ["type", _type]; _city setVariable ["spawn_more", false]; @@ -50,14 +50,14 @@ _city setVariable ["data_animals", []]; _city setVariable ["occupied", _has_en]; if (btc_p_sea) then { - _city setVariable ["hasbeach", ((selectBestPlaces [_position, 0.8 * _radius, "sea", 10, 1]) select 0 select 1) isEqualTo 1]; + _city setVariable ["hasbeach", ((selectBestPlaces [_position, 0.8 * _cachingRadius, "sea", 10, 1]) select 0 select 1) isEqualTo 1]; }; [{ (_this select 0) findEmptyPositionReady (_this select 1) -}, {}, [_position, [0, _radius]], 5 * 60] call CBA_fnc_waitUntilAndExecute; +}, {}, [_position, [0, _cachingRadius]], 5 * 60] call CBA_fnc_waitUntilAndExecute; btc_city_all set [_id, _city]; -[_position, _radius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; +[_position, _cachingRadius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; _city diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf index d97e64639..db6ddae39 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf @@ -42,7 +42,7 @@ if !(_city getVariable ["active", false]) exitWith {}; }; //Save all and delete - private _radius = _city getVariable ["radius", 0]; + private _cachingRadius = _city getVariable ["cachingRadius", 0]; private _has_en = _city getVariable ["occupied", false]; if (_has_en) then { @@ -56,7 +56,7 @@ if !(_city getVariable ["active", false]) exitWith {}; private _has_suicider = false; { if ( - (leader _x) inArea [_pos_city, _radius, _radius, 0, false] && + (leader _x) inArea [_pos_city, _cachingRadius, _cachingRadius, 0, false] && {side _x != btc_player_side} && {!(_x getVariable ["no_cache", false])} && {_x getVariable ["btc_city", _city] in [_city, objNull]} @@ -72,7 +72,7 @@ if !(_city getVariable ["active", false]) exitWith {}; { private _agent = agent _x; if ( - _agent inArea [_pos_city, _radius, _radius, 0, false] && + _agent inArea [_pos_city, _cachingRadius, _cachingRadius, 0, false] && {alive _agent} && {!(_x getVariable ["no_cache", false])} && {_x getVariable ["btc_city", _city] in [_city, objNull]} @@ -98,7 +98,7 @@ if !(_city getVariable ["active", false]) exitWith {}; ]; _x call CBA_fnc_deleteEntity; }; - } forEach (btc_tags_server inAreaArray [_pos_city, _radius, _radius]); + } forEach (btc_tags_server inAreaArray [_pos_city, _cachingRadius, _cachingRadius]); btc_tags_server = btc_tags_server - [objNull]; (_city getVariable ["btc_city_intels", []]) call CBA_fnc_deleteEntity; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf index 698ddc70f..bfcdb52e9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf @@ -58,8 +58,8 @@ for "_id" from 0 to (count _locations - 1) do { }; }; private _name = getText(_current >> "name"); - private _radius = getNumber(_current >> "RadiusA") + getNumber(_current >> "RadiusB"); - _radius = (_radius max 160) min 800; + private _cachingRadius = getNumber(_current >> "RadiusA") + getNumber(_current >> "RadiusB"); + _cachingRadius = (_cachingRadius max 160) min 800; if (btc_city_blacklist find _name >= 0) exitWith {}; @@ -68,7 +68,7 @@ for "_id" from 0 to (count _locations - 1) do { if ((getMarkerPos "YOUR_MARKER_AREA") inArea [_position, 500, 500, 0, false]) exitWith {}; */ - [_position, _type, _name, _radius, random 1 > _is_free_probability, _id] call btc_city_fnc_create; + [_position, _type, _name, _cachingRadius, random 1 > _is_free_probability, _id] call btc_city_fnc_create; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf index 582cb242e..5c48ae1a9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf @@ -7,7 +7,7 @@ Description: Parameters: _position - Position where the trigger is created. [Array] - _radius - Radius of the location. [Number] + _cachingRadius - Radius of the location. [Number] _city - City object where the trigger will be stored. [Object] _has_en - City is occupied. [Boolean] _name - Name of the city. [String] @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - [_position, _radius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; + [_position, _cachingRadius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; (end) Author: @@ -28,7 +28,7 @@ Author: params [ ["_position", [0, 0, 0], [[]]], - ["_radius", 0, [0]], + ["_cachingRadius", 0, [0]], ["_city", objNull, [objNull]], ["_has_en", false, [false]], ["_name", "", [""]], @@ -37,7 +37,7 @@ params [ ]; private _trigger = createTrigger ["EmptyDetector", _position, false]; -_trigger setTriggerArea [_radius + btc_city_radius, _radius + btc_city_radius, 0, false]; +_trigger setTriggerArea [_cachingRadius + btc_city_radiusOffset, _cachingRadius + btc_city_radiusOffset, 0, false]; _trigger setTriggerActivation ["ANYPLAYER", "PRESENT", true]; _trigger setTriggerStatements [btc_p_trigger, format ["[%1] call btc_city_fnc_activate", _id], format ["[%1] call btc_city_fnc_de_activate", _id]]; _city setVariable ["trigger_player_side", _trigger]; @@ -46,7 +46,7 @@ if (btc_debug) then { private _marker = createMarker [format ["loc_%1", _id], _position]; _marker setMarkerShape "ELLIPSE"; _marker setMarkerBrush "SolidBorder"; - _marker setMarkerSize [_radius + btc_city_radius, _radius + btc_city_radius]; + _marker setMarkerSize [_cachingRadius + btc_city_radiusOffset, _cachingRadius + btc_city_radiusOffset]; _marker setMarkerAlpha 0.3; if (_has_en) then { _marker setMarkerColor "colorRed"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf index 85473917d..894f8aabf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf @@ -30,12 +30,12 @@ btc_city_remaining = []; if (_x getVariable ["marker", ""] != "") then { deleteMarker (_x getVariable ["marker", ""]); }; - private _radius = _x getVariable ["radius", 500]; + private _cachingRadius = _x getVariable ["cachingRadius", 500]; private _marker = createMarker [format ["city_%1", position _x], position _x]; _marker setMarkerShape "ELLIPSE"; _marker setMarkerBrush "SolidBorder"; - _marker setMarkerSize [_radius, _radius]; + _marker setMarkerSize [_cachingRadius, _cachingRadius]; _marker setMarkerAlpha 0.3; if (_x getVariable ["occupied", false]) then { _marker setMarkerColor "colorRed"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf index 1ce9c2add..e0ad785b5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf @@ -63,8 +63,8 @@ if (_pos isEqualTo []) then { _city = selectRandom _usefulRange; }; - private _radius = _city getVariable ["radius", 0]; - private _random_pos = [getPos _city, _radius/2] call btc_fnc_randomize_pos; + private _cachingRadius = _city getVariable ["cachingRadius", 0]; + private _random_pos = [getPos _city, _cachingRadius/2] call btc_fnc_randomize_pos; _pos = [_random_pos, 0, 100, 2, false] call btc_fnc_findsafepos; _id = _city getVariable ["id", 0]; @@ -83,7 +83,7 @@ deleteVehicle (_city getVariable ["trigger_player_side", objNull]); [_pos, btc_hideouts_radius, _city, _city getVariable "occupied", _city getVariable "name", _city getVariable "type", _city getVariable "id"] call btc_city_fnc_trigger_player_side; [{ (_this select 0) findEmptyPositionReady (_this select 1) -}, {}, [_pos, [0, _city getVariable ["radius", 100]]], 5 * 60] call CBA_fnc_waitUntilAndExecute; +}, {}, [_pos, [0, _city getVariable ["cachingRadius", 100]]], 5 * 60] call CBA_fnc_waitUntilAndExecute; private _hideout = [_pos] call btc_hideout_fnc_create_composition; clearWeaponCargoGlobal _hideout; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf index 2566cd1c1..edd80f088 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf @@ -58,7 +58,7 @@ if (_usefuls isEqualTo []) exitWith { private _start_city = selectRandom _usefuls; private _pos = []; if (_start_city getVariable ["hasbeach", false]) then { - _pos = [getPos _start_city, _start_city getVariable ["radius", 100], btc_p_sea] call btc_fnc_randomize_pos; + _pos = [getPos _start_city, _start_city getVariable ["cachingRadius", 100], btc_p_sea] call btc_fnc_randomize_pos; } else { _pos = getPos _start_city; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/init.sqf index 971ab8a47..9fb6691bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/init.sqf @@ -42,7 +42,7 @@ private _end_city = selectRandom ([[_start_city, _active_city], _area, _isBoat] private _pos = getPos _end_city; if (_isBoat) then { - ((selectBestPlaces [_pos, _end_city getVariable ["radius", 100], "sea", 10, 1]) select 0 select 0) params ["_x", "_y"]; + ((selectBestPlaces [_pos, _end_city getVariable ["cachingRadius", 100], "sea", 10, 1]) select 0 select 0) params ["_x", "_y"]; _pos = [_x, _y, 0]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf index 21991485b..abe96a415 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf @@ -32,7 +32,7 @@ private _city = selectRandom _useful; _city setVariable ["spawn_more", true]; -private _radius = _city getVariable ["radius", 0]; +private _radius = _city getVariable ["cachingRadius", 0]; private _composition = []; private _tasksID = []; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 0bcd189a5..8e5d43c6b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -36,7 +36,7 @@ if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city1 = selectRandom _usefuls; //// Find Road \\\\ -private _radius = (_city1 getVariable ["radius", 0])/2; +private _radius = (_city1 getVariable ["cachingRadius", 0])/2; private _roads = _city1 nearRoads (_radius * 2); _roads = _roads select {(_x distance _city1 > _radius) && isOnRoad _x}; if (_roads isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf index 65c91b9f7..7bc709afc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf @@ -35,7 +35,7 @@ private _pos = getPos _city; _city setVariable ["spawn_more", true]; private _statics = btc_type_gl + btc_type_mg; -private _radius = _city getVariable ["radius", 0]; +private _radius = _city getVariable ["cachingRadius", 0]; private _boxes = []; private _composition = []; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf index a713806b1..2b36a269d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf @@ -28,7 +28,7 @@ private _useful = btc_city_all select {!(isNull _x) && !(_x getVariable ["occupi if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)});}; private _city = selectRandom _useful; -private _pos = [getPos _city, 0, _city getVariable ["radius", 100], 30, false] call btc_fnc_findsafepos; +private _pos = [getPos _city, 0, _city getVariable ["cachingRadius", 100], 30, false] call btc_fnc_findsafepos; [_taskID, 30, getPos _city, _city getVariable "name"] call btc_task_fnc_create; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf index 0d84222b8..3b6d82349 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf @@ -36,7 +36,7 @@ if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city1 = selectRandom _usefuls; //// Find Road \\\\ -private _radius = (_city1 getVariable ["radius", 0])/2; +private _radius = (_city1 getVariable ["cachingRadius", 0])/2; private _roads = _city1 nearRoads (_radius * 2); _roads = _roads select {(_x distance _city1 > _radius) && isOnRoad _x}; if (_roads isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf index e9ddbef9b..d097c27a3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf @@ -28,7 +28,7 @@ private _useful = btc_city_all select {!(isNull _x) && !((_x getVariable ["type" if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)});}; private _city = selectRandom _useful; -private _pos = [getPos _city, 0, _city getVariable ["radius", 100], 30, false] call btc_fnc_findsafepos; +private _pos = [getPos _city, 0, _city getVariable ["cachingRadius", 100], 30, false] call btc_fnc_findsafepos; if (_pos select 2 > 50) exitWith {[] spawn btc_side_fnc_create;}; [_taskID, 4, _pos, _city getVariable "name"] call btc_task_fnc_create; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index 074ed815e..de6731ee6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -32,7 +32,7 @@ if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; //// Randomise position \\\\ -private _pos = [getPos _city, (_city getVariable ["radius", 0])/2 - 100] call btc_fnc_randomize_pos; +private _pos = [getPos _city, (_city getVariable ["cachingRadius", 0])/2 - 100] call btc_fnc_randomize_pos; _pos = [_pos, 0, 50, 13, 0, 60 * (pi / 180), 0] call btc_fnc_findsafepos; _city setVariable ["spawn_more", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf index b0f8c797d..f9facf91d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf @@ -30,7 +30,7 @@ if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)}) private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; -_pos = [_pos, 0, _city getVariable ["radius", 100], 20, false] call btc_fnc_findsafepos; +_pos = [_pos, 0, _city getVariable ["cachingRadius", 100], 20, false] call btc_fnc_findsafepos; [_taskID, 3, getPos _city, _city getVariable "name"] call btc_task_fnc_create; private _move_taskID = _taskID + "mv"; From d09ded3100449df74cee9de3f6b549a3cf14c213 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 6 Jun 2021 11:07:31 +0200 Subject: [PATCH 115/354] Enemy spawn inside house predictabaly --- .../core/def/mission.sqf | 8 +--- .../core/def/param.hpp | 4 +- .../core/fnc/city/activate.sqf | 37 ++++++++++++------- .../core/fnc/mil/create_group.sqf | 19 ++++------ .../core/fnc/mil/getBuilding.sqf | 3 +- .../core/fnc/mil/getStructures.sqf | 11 +++--- .../core/fnc/side/underwater_generator.sqf | 4 +- 7 files changed, 44 insertions(+), 42 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index f805559e7..a82ad0e53 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -58,7 +58,7 @@ btc_p_mil_group_ratio = ("btc_p_mil_group_ratio" call BIS_fnc_getParamValue)/100 btc_p_mil_static_group_ratio = ("btc_p_mil_static_group_ratio" call BIS_fnc_getParamValue)/100; btc_p_civ_group_ratio = ("btc_p_civ_group_ratio" call BIS_fnc_getParamValue)/100; btc_p_animals_group_ratio = ("btc_p_animals_group_ratio" call BIS_fnc_getParamValue)/100; -private _wp_house_probability = ("btc_p_wp_house_probability" call BIS_fnc_getParamValue)/100; +btc_p_mil_wp_houseDensity = ("btc_p_wp_houseDensity" call BIS_fnc_getParamValue)/100; btc_p_veh_armed_ho = ("btc_p_veh_armed_ho" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_veh_armed_spawn_more = ("btc_p_veh_armed_spawn_more" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_patrol_max = "btc_p_patrol_max" call BIS_fnc_getParamValue; @@ -161,12 +161,6 @@ if (isServer) then { btc_fobs = [[], [], []]; btc_fob_rallypointTimer = 60 * btc_p_rallypointTimer; - //MIL - btc_p_mil_wp_ratios = [_wp_house_probability, (1 - _wp_house_probability) / 1.5 + _wp_house_probability]; - if ((btc_p_mil_wp_ratios select 0) isEqualTo (btc_p_mil_wp_ratios select 1)) then { - btc_p_mil_wp_ratios set [1, 0.1 + (btc_p_mil_wp_ratios select 1)]; - }; - //Patrol btc_patrol_active = []; btc_patrol_area = 2500; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index dc410335e..fa0df13e9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -143,11 +143,11 @@ class Params { texts[]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"}; default = 100; }; - class btc_p_wp_house_probability { // Density of military in house: + class btc_p_wp_houseDensity { // Density of military in house: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_MIL_INHOUSE_DENSITY"]); values[]={0,10,20,30,40,50,60,70,80,90,100}; texts[]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"}; - default = 30; + default = 50; }; class btc_p_veh_armed_ho { // Add armed vehicles in Hideout: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPAWN_ARMEDHIDEOUT"]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index bfb18041f..f50491c6b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -13,7 +13,6 @@ Parameters: _p_animals_group_ratio - Animal density. [Number] _p_civ_max_veh - Maximum number of civilian patrol. [Number] _p_patrol_max - Maximum number of enemy patrol. [Number] - _wp_ratios - Ratio of spawned group in and out houses. [Array] Returns: @@ -34,10 +33,8 @@ params [ ["_p_civ_group_ratio", btc_p_civ_group_ratio, [0]], ["_p_animals_group_ratio", btc_p_animals_group_ratio, [0]], ["_p_civ_max_veh", btc_p_civ_max_veh, [0]], - ["_p_patrol_max", btc_p_patrol_max, [0]], - ["_wp_ratios", btc_p_mil_wp_ratios, [[]]] + ["_p_patrol_max", btc_p_patrol_max, [0]] ]; -_wp_ratios params ["_wp_house", "_wp_sentry"]; private _city = btc_city_all select _id; if (_city getVariable "activating") exitWith {}; @@ -119,8 +116,15 @@ if (_data_units isNotEqualTo []) then { }); if (_has_en) then { - for "_i" from 1 to (round (_p_mil_group_ratio * _numberOfGroup)) do { - [_city, _spawningRadius, 1 + round random 2, random 1] call btc_mil_fnc_create_group; + private _finalNumberOfGroup = _p_mil_group_ratio * _numberOfGroup; + private _numberOfHouseGroup = _finalNumberOfGroup * btc_p_mil_wp_houseDensity; + for "_i" from 1 to round _finalNumberOfGroup do { + [ + _city, + [_spawningRadius, _spawningRadius/3] select (_i <= _numberOfHouseGroup), + 2 + round random 1, + [[1,2] selectRandomWeighted [0.7, 0.3], 0] select (_i <= _numberOfHouseGroup) + ] call btc_mil_fnc_create_group; }; }; @@ -186,8 +190,15 @@ if (btc_p_animals_group_ratio > 0) then { if (_city getVariable ["spawn_more", false]) then { _city setVariable ["spawn_more", false]; - for "_i" from 1 to (round (_p_mil_group_ratio * 5)) do { - [_city, _spawningRadius, 4 + round random 3, random 1] call btc_mil_fnc_create_group; + private _finalNumberOfGroup = _p_mil_group_ratio * 5; + private _numberOfHouseGroup = _finalNumberOfGroup * btc_p_mil_wp_houseDensity; + for "_i" from 1 to round _finalNumberOfGroup do { + [ + _city, + [_spawningRadius, _spawningRadius/3] select (_i <= _numberOfHouseGroup), + 4 + round random 3, + [1, 0] select (_i <= _numberOfHouseGroup) + ] call btc_mil_fnc_create_group; }; if (btc_p_veh_armed_spawn_more) then { private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; @@ -204,8 +215,8 @@ if ( if (_city inArea [btc_cache_pos, _radius, _radius, 0, false]) then { btc_cache_obj setVariable ["btc_cache_unitsSpawned", true]; - [btc_cache_pos, 8, 3, _wp_house] call btc_mil_fnc_create_group; - [btc_cache_pos, 60, 4, _wp_sentry] call btc_mil_fnc_create_group; + [btc_cache_pos, 8, 3, 0] call btc_mil_fnc_create_group; + [btc_cache_pos, 60, 4, 2] call btc_mil_fnc_create_group; if (btc_p_veh_armed_spawn_more) then { private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; for "_i" from 1 to (1 + round random 3) do { @@ -218,9 +229,9 @@ if ( if (_has_ho && {!(_city getVariable ["ho_units_spawned", false])}) then { _city setVariable ["ho_units_spawned", true]; private _pos = _city getVariable ["ho_pos", getPos _city]; - [_pos, 20, 10 + round (_p_mil_group_ratio * random 6), 1.1] call btc_mil_fnc_create_group; - [_pos, 120, 1 + round random 2, _wp_sentry] call btc_mil_fnc_create_group; - [_pos, 120, 1 + round random 2, _wp_sentry] call btc_mil_fnc_create_group; + [_pos, 20, 10 + round (_p_mil_group_ratio * random 6), 2] call btc_mil_fnc_create_group; + [_pos, 120, 1 + round random 2, 2] call btc_mil_fnc_create_group; + [_pos, 120, 1 + round random 2, 2] call btc_mil_fnc_create_group; private _random = random 1; switch (true) do { case (_random <= 0.3) : {}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index c74cef4fe..d123248c7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -14,13 +14,12 @@ Parameters: _type_units - [Boolean] _p_sea - [Side] _enemy_side - [Array] - _wp_ratios - [] Returns: Examples: (begin example) - [player, 50, 1, (btc_p_mil_wp_ratios#0) - 0.1] call btc_mil_fnc_create_group; + [player, 50, 1, 1] call btc_mil_fnc_create_group; (end) Author: @@ -36,19 +35,17 @@ params [ ["_type_divers", btc_type_divers, [[]]], ["_type_units", btc_type_units, [[]]], ["_p_sea", btc_p_sea, [true]], - ["_enemy_side", btc_enemy_side, [east]], - ["_wp_ratios", btc_p_mil_wp_ratios, [[]]] + ["_enemy_side", btc_enemy_side, [east]] ]; -_wp_ratios params ["_wp_house_probability", "_wp_sentry_probability"]; private _pos = [_city call CBA_fnc_getPos, _area, _p_sea] call btc_fnc_randomize_pos; private _group_structure = [1, objNull]; -if (_wp <= _wp_house_probability) then { // Find building +if (_wp isEqualTo 0) then { // Find building ([_pos, _n] call btc_mil_fnc_getBuilding) params ["_numberOfGroup", "_structure"]; if (_structure isNotEqualTo objNull) then { _group_structure = [_numberOfGroup, _structure]; } else { - _wp = _wp_sentry_probability; // Handle the case there is no building + _wp = 1; // Handle the case there is no building }; }; @@ -79,19 +76,19 @@ for "_i" from 1 to _numberOfGroup do { _group setVariable ["btc_city", _city]; }; - switch (true) do { - case (_wp <= _wp_house_probability) : { + switch (_wp) do { + case (0) : { _n = 1; [_group, _structure] call btc_fnc_house_addWP; _group setVariable ["btc_inHouse", typeOf _structure]; }; - case (_wp > _wp_house_probability && _wp <= _wp_sentry_probability) : { + case (1) : { [{ params ["_group", "_hashMapGroup", "_area"]; [_group, _hashMapGroup get "_pos", _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; }, [_group, _hashMapGroup, _area], btc_delay_createUnit] call CBA_fnc_waitAndExecute; }; - case (_wp > _wp_sentry_probability) : { + case (2) : { [_group] call CBA_fnc_clearWaypoints; [{ params ["_group", "_hashMapGroup"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf index ac7797098..ae2d3b135 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf @@ -27,10 +27,9 @@ params [ ]; private _structure = objNull; -private _structures = [_rpos, 70] call btc_mil_fnc_getStructures; +([_rpos, 70] call btc_mil_fnc_getStructures) params ["_structures", "_houses"]; if (_structures isEqualTo []) then { - private _houses = [_rpos, 50] call btc_fnc_getHouses; if (_houses isNotEqualTo []) then { _structure = selectRandom _houses; _n = 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf index 02cc7857f..f52537320 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf @@ -26,11 +26,12 @@ params [ ["_radius", 100, [0]] ]; -private _structures = (nearestTerrainObjects [_pos, ["House", "BUNKER", "FORTRESS"], _radius]) select {getText(configOf _x >> "editorSubcategory") isEqualTo "EdSubcat_Military"}; - -private _useful = _structures select {( +private _objects = nearestTerrainObjects [_pos, ["House", "BUNKER", "FORTRESS", "TRANSMITTER"], _radius]; +private _objects = _objects select { (_x buildingPos -1) isNotEqualTo [] && {damage _x isEqualTo 0} -)}; +}; + +private _structures = _objects select {getText (configOf _x >> "editorSubcategory") isEqualTo "EdSubcat_Military"}; -_useful +[_structures, _objects] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf index 8555929b5..797271692 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf @@ -62,8 +62,8 @@ private _storagebladder = (selectRandom btc_type_storagebladder) createVehicle [ [_taskID, 11, _generator, [_city getVariable "name", typeOf _generator]] call btc_task_fnc_create; -private _group = [_pos, 8, 1 + round random 5,0.8] call btc_mil_fnc_create_group; -[_pos, 20, 2 + round random 4, 0.5] call btc_mil_fnc_create_group; +private _group = [_pos, 8, 1 + round random 5, 1] call btc_mil_fnc_create_group; +[_pos, 20, 2 + round random 4, 1] call btc_mil_fnc_create_group; _pos = getPosASL _generator; (leader (_group select 0)) setPosASL [_x, _y, _z + 1 + random 1]; From 9c4bede293497b06a13c1ecc102b2567c7140cc9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 10 Jun 2021 00:32:30 +0200 Subject: [PATCH 116/354] fix wrong fonction name --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 01125f4b9..57545d7f7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -197,7 +197,7 @@ private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name] createVehicleCrew _obj; }; - [_obj] call btc_fnc_log_init; + [_obj] call btc_log_fnc_init; { _x set [2, (_x select 2) call btc_load_fnc_migrateOldToNew_inventory]; } forEach _cargo; From 79c8457031329b6cdf9cdcf0b5dc7181fd6a0a1c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 22 Jun 2021 21:28:37 +0200 Subject: [PATCH 117/354] Update stringtable to fit new behavior #400 --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 4 ++-- .../core/fnc/city/init.sqf | 6 +++--- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 10 +++++----- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 8e50a7a3a..9c249d034 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -53,7 +53,7 @@ private _p_skill = [ ]; //<< Spawn options >> -btc_p_is_free_prob = ("btc_p_is_free_prob" call BIS_fnc_getParamValue)/100; +btc_p_density_of_occupiedCity = ("btc_p_density_of_occupiedCity" call BIS_fnc_getParamValue)/100; btc_p_mil_group_ratio = ("btc_p_mil_group_ratio" call BIS_fnc_getParamValue)/100; btc_p_mil_static_group_ratio = ("btc_p_mil_static_group_ratio" call BIS_fnc_getParamValue)/100; btc_p_civ_group_ratio = ("btc_p_civ_group_ratio" call BIS_fnc_getParamValue)/100; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 6a4f21a88..534ee6e1a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -113,8 +113,8 @@ class Params { texts[]={""}; default = 0; }; - class btc_p_is_free_prob { // Probability for a city to be free: - title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_ISFREE_PROB"]); + class btc_p_density_of_occupiedCity { // Density of city occupied: + title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_ISOCCUPIED_DENSITY"]); values[]={0,10,20,30,40,45,50,60,70,80,90,100}; texts[]={"0%","10%","20%","30%","40%","45%","50%","60%","70%","80%","90%","100%"}; default = 45; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf index 2c3b7a743..fa2d03b79 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf @@ -6,7 +6,7 @@ Description: Create cities all over the map and store those properties. Parameters: - _is_free_probability - Probability for a city to have military. [Number] + _density_of_occupiedCity - Density of occupied city. [Number] Returns: @@ -21,7 +21,7 @@ Author: ---------------------------------------------------------------------------- */ params [ - ["_is_free_probability", btc_p_is_free_prob, [0]] + ["_density_of_occupiedCity", btc_p_density_of_occupiedCity, [0]] ]; private _locations = configfile >> "cfgworlds" >> worldname >> "names"; @@ -74,7 +74,7 @@ for "_id" from 0 to (count _locations - 1) do { }; [_cities, true] call CBA_fnc_shuffle; -private _numberOfCity = (round ((count _cities) * _is_free_probability)) - btc_hideout_n; +private _numberOfCity = (round ((count _cities) * _density_of_occupiedCity)) - btc_hideout_n; { _x setVariable ["occupied", true]; if (btc_debug) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index bc31ee6ab..80ad40b4c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -378,11 +378,11 @@ << Opções de Spawn >> << Options de spawn >> - - Probability for a city to be free: - Wahrscheinlichkeit, dass eine Stadt unbesetzt ist: - 城市无人居住的几率: - Chance pour qu'une ville soit sans occupation ennemies: + + Density of occupied city: + Density of occupied city: + Density of occupied city: + Densité de villes occupées: Enemy density: From 511087fe9bb0711655f9f963c376965e728389ba Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 22 Jun 2021 21:34:56 +0200 Subject: [PATCH 118/354] Not all city is occupied when 100% is selected --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf index fa2d03b79..aa7e7f0d8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf @@ -74,7 +74,7 @@ for "_id" from 0 to (count _locations - 1) do { }; [_cities, true] call CBA_fnc_shuffle; -private _numberOfCity = (round ((count _cities) * _density_of_occupiedCity)) - btc_hideout_n; +private _numberOfCity = round ((count _cities) * _density_of_occupiedCity); { _x setVariable ["occupied", true]; if (btc_debug) then { From 36c9415b2b3955fc20f107ee801fde0bc42bf710 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 26 Jun 2021 18:13:27 +0200 Subject: [PATCH 119/354] Add documentation --- .../core/def/mission.sqf | 2 +- .../core/fnc/side/pandemic.sqf | 7 +++---- .../core/fnc/task/setDescription.sqf | 16 ++++++++++++++++ .../stringtable.xml | 14 ++++++++++++++ README.md | 2 +- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index f805559e7..714a65e27 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -219,7 +219,7 @@ if (isServer) then { btc_side_ID = 0; btc_side_list = ["supply", "mines", "vehicle", "get_city", "tower", "civtreatment", "checkpoint", "convoy", "rescue", "capture_officer", "hostage", "hack", "kill", "EMP", "removeRubbish"]; // On ground (Side "convoy" and "capture_officer" are not design for map with different islands. Start and end city can be on different islands.) if (btc_p_sea) then {btc_side_list append ["civtreatment_boat", "underwater_generator"]}; // On sea - if (btc_p_chem) then {btc_side_list pushBack "chemicalLeak"}; + if (btc_p_chem) then {btc_side_list append ["chemicalLeak", "pandemic"]}; btc_side_list_use = []; btc_type_tower = ["Land_Communication_F", "Land_TTowerBig_1_F", "Land_TTowerBig_2_F"]; btc_type_phone = ["Land_PortableLongRangeRadio_F", "Land_MobilePhone_smart_F", "Land_MobilePhone_old_F"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf index 8b79df9a7..c55fa9820 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf @@ -3,7 +3,7 @@ Function: btc_side_fnc_pandemic Description: - Decontaminate civilian with a little shower. To localise civilian go to the subtask, follow red blood drop and use your chemical detector. + Decontaminate civilian with a little shower. To locate civilian go to the subtask, follow red blood drop and use your chemical detector. Parameters: _taskID - Unique task ID. [String] @@ -44,7 +44,7 @@ private _dataCivilian = (_city getVariable ["data_units", []]) select { }; private _extraCiv = round random (((count _dataCivilian) - _minNumberOfSubTask) min 2); -[_taskID, 38, objNull, _city getVariable "name"] call btc_task_fnc_create; +[_taskID, 40, objNull, _city getVariable "name"] call btc_task_fnc_create; private _tasksID = []; for "_i" from 0 to (_minNumberOfSubTask + _extraCiv - 1) do { @@ -52,7 +52,7 @@ for "_i" from 0 to (_minNumberOfSubTask + _extraCiv - 1) do { _tasksID pushBack _deconta_taskID; private _selectedCiv = _dataCivilian select _i; - [[_deconta_taskID, _taskID], 15, _selectedCiv select 1 select 0, [_city getVariable "name", _selectedCiv select 2 select 0], false, false] call btc_task_fnc_create; + [[_deconta_taskID, _taskID], 41, _selectedCiv select 1 select 0, _selectedCiv select 2 select 0, false, false] call btc_task_fnc_create; [{ params ["_city", "_civPos", "_civType"]; @@ -70,7 +70,6 @@ for "_i" from 0 to (_minNumberOfSubTask + _extraCiv - 1) do { !(_civ in btc_chem_contaminated) }, { params ["_civ", "_deconta_taskID"]; - systemChat str _this; if (_deconta_taskID call BIS_fnc_taskCompleted) exitWith {}; if (!alive _civ) exitWith { [_deconta_taskID, "FAILED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setDescription.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setDescription.sqf index 24f0fb93e..b0ea917c1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setDescription.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/setDescription.sqf @@ -377,6 +377,22 @@ switch (_description) do { ]; _type = "move"; }; + case 40 : { + _description = [ + format [localize "STR_BTC_HAM_SIDE_PANDEMIC_DESC", _location] + (["DeconShower_01_F"] call btc_fnc_typeOfPreview), + format [localize "STR_BTC_HAM_SIDE_PANDEMIC_TITLE", _location], + format [localize "STR_BTC_HAM_SIDE_PANDEMIC_TITLE", _location] + ]; + _type = "danger"; + }; + case 41 : { + _description = [ + (localize "STR_BTC_HAM_SIDE_PANDEMIC_DECON_DESC") + ([_location] call btc_fnc_typeOfPreview), + localize "STR_BTC_HAM_SIDE_PANDEMIC_DECON_TITLE", + localize "STR_BTC_HAM_SIDE_PANDEMIC_DECON_TITLE" + ]; + _type = "search"; + }; }; [ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index bc31ee6ab..9057438d8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -1488,6 +1488,20 @@ Un civil a repéré ces déchets comme particulièrement ennuyeux en conduisant. + + + Contaminate civilians in %1 + + + Civilians get contaminated by a chemical agent around %1. They are requesting your help to decontaminate those civilans with a little shower. To locate civilians go to the subtask, follow red blood drop and use your chemical detector. + + + Decontaminate this civilian + + + Search and decontaminate this civilian. Follow red blood drop and use your chemical detector. + + diff --git a/README.md b/README.md index 2308faa76..6c9adbe9d 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Online [wiki available](http://vdauphin.github.io/HeartsAndMinds/). - Request a lift - Discussion ([interpreter](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation#intel)) - Fleeing - - More than 18 [side mission](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation#side-mission) + - More than 19 [side mission](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation#side-mission) - Deep ACE3 support - Use mainly ACE interaction - Rearm system From 822e6c9caaccbe598bcd583c7760d2929c3d9765 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 26 Jun 2021 18:46:22 +0200 Subject: [PATCH 120/354] Tweak max value of group for enemies --- .../core/def/param.hpp | 4 +-- .../core/fnc/city/activate.sqf | 36 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index fa0df13e9..d6de50dde 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -123,13 +123,13 @@ class Params { title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_ENEMY_DENSITY"]); values[]={0,10,20,30,40,50,60,70,80,90,100}; texts[]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"}; - default = 100; + default = 60; }; class btc_p_mil_static_group_ratio { // Enemy static density: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_ENEMY_STATIC_DENSITY"]); values[]={0,10,20,30,40,50,60,70,80,90,100}; texts[]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"}; - default = 100; + default = 50; }; class btc_p_civ_group_ratio { // Civilian density: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_CIVILIAN_DENSITY"]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index f50491c6b..71eff1449 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -102,16 +102,16 @@ if (_data_units isNotEqualTo []) then { } else { // Maximum number of enemy group private _numberOfGroup = (switch _type do { - case "Hill" : {2}; - case "VegetationFir" : {2}; - case "BorderCrossing" : {3}; - case "NameLocal" : {3}; - case "StrongpointArea" : {4}; - case "NameVillage" : {4}; - case "NameCity" : {8}; - case "NameCityCapital" : {16}; - case "Airport" : {16}; - case "NameMarine" : {2}; + case "Hill" : {3}; + case "VegetationFir" : {3}; + case "BorderCrossing" : {5}; + case "NameLocal" : {5}; + case "StrongpointArea" : {6}; + case "NameVillage" : {6}; + case "NameCity" : {12}; + case "NameCityCapital" : {24}; + case "Airport" : {24}; + case "NameMarine" : {3}; default {0}; }); @@ -133,14 +133,14 @@ if (_data_units isNotEqualTo []) then { if (_has_en) then { private _numberOfStatic = (switch _type do { - case "VegetationFir" : {1}; - case "BorderCrossing" : {2}; - case "NameLocal" : {1}; - case "StrongpointArea" : {2}; - case "NameVillage" : {2}; - case "NameCity" : {4}; - case "NameCityCapital" : {5}; - case "Airport" : {2}; + case "VegetationFir" : {2}; + case "BorderCrossing" : {4}; + case "NameLocal" : {2}; + case "StrongpointArea" : {4}; + case "NameVillage" : {4}; + case "NameCity" : {8}; + case "NameCityCapital" : {10}; + case "Airport" : {4}; default {0}; }); [+_houses, round (_p_mil_static_group_ratio * _numberOfStatic), _city] call btc_mil_fnc_create_staticOnRoof; From 1fcbd3ffef8e10c63aa353fcd9acfd15889b6b09 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 26 Jun 2021 18:52:13 +0200 Subject: [PATCH 121/354] Clean up random for IED --- .../core/fnc/city/activate.sqf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 71eff1449..2939123f9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -58,20 +58,20 @@ private _spawningRadius = _radius/2; if (!(_city getVariable ["initialized", false])) then { private _ratio = (switch _type do { - case "Hill" : {random 1}; - case "VegetationFir" : {random 1}; - case "BorderCrossing" : {random 2}; - case "NameLocal" : {random 2.5}; - case "StrongpointArea" : {random 3}; - case "NameVillage" : {random 3.5}; - case "NameCity" : {random 5}; - case "NameCityCapital" : {random 6}; + case "Hill" : {1}; + case "VegetationFir" : {1}; + case "BorderCrossing" : {2}; + case "NameLocal" : {2.5}; + case "StrongpointArea" : {3}; + case "NameVillage" : {3.5}; + case "NameCity" : {5}; + case "NameCityCapital" : {6}; case "Airport" : {0}; case "NameMarine" : {0}; default {0}; }); - private _ratio_ied = _ratio; + private _ratio_ied = random _ratio; if (_has_en) then { _ratio_ied = _ratio_ied * 1.5; } else { From 54e1864593a9fbdefa7f6b9e4a99d3cd49d57466 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 3 Jul 2021 12:09:57 +0200 Subject: [PATCH 122/354] FIX: This mission can't work if the current city is active --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf index c55fa9820..90b3f07fc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf @@ -28,6 +28,7 @@ private _minNumberOfSubTask = 2; private _useful = btc_city_all select { !(isNull _x) && {_x getVariable ["type", ""] != "NameMarine"} && + {!(_x getVariable ["active", false])} && { private _city = _x; ({ From a62cda0765dae0bd1571ad85979da726defa3346 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sun, 11 Jul 2021 20:27:59 +0800 Subject: [PATCH 123/354] Chinesesimp translation for #1109 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 80ad40b4c..58c71a4bf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -381,7 +381,7 @@ Density of occupied city: Density of occupied city: - Density of occupied city: + 被敌军占领城市的密度: Densité de villes occupées: From 9a91f6d2e1b2b5ca47423efba584ddcc62914127 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 14 Jul 2021 15:27:24 +0200 Subject: [PATCH 124/354] Add pain when player is contaminated --- .../core/fnc/chem/damage.sqf | 8 ++++++++ =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 2 +- docs/InGame-documentation.md | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf index be5d8fd45..af04d8f9a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf @@ -58,6 +58,14 @@ if ( _protection = _protection + 0.3; }; }; +if ( + isPlayer _unit && + {_protection isEqualTo 0} +) then { + if (_unit getVariable ["ace_medical_pain", 0] < 0.9) then { + [_unit, 0.01] call ace_medical_fnc_adjustPainLevel; + }; +}; if ( [ "B_SCBA_01_base_F", diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 3680567a9..b8ac3308d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -246,7 +246,7 @@ Guerre chimique - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Chemical agent:</marker><br/> A chemical agent can be found in the battlefield at cache location for example. When an object is contaminated, the chemical agent propagates to people around (in a circle of 3m). Those people will be hurt constantly until they died or found a decontaminating shower (available at the logistic point) to clean up their body. When they are contaminated, they can propagate it to other people around (in a circle of 1.5m) or vehicle if they get inside. Keep in mind, dead body stay contaminated but body bag will isolate it. Also, a contaminated object loaded as cargo will contaminate the container or vehicle. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/> Use CBRN gear (uniform, respirator mask and breather backpack) for full protection from the contamination effect. But, don't forget to take a shower for more than 5s before removing your CBRN gear. Be aware, even with a CBRN equipment you can propagate the agent to people or vehicle, you are just protected from the effect. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> Simple mask and simple uniform can reduce from 65% to 80% the probability to take damage.<img image='\A3\Data_F_Orange\Images\Respirator_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Decontaminate:</marker><br/> You can use a small shower to decontaminate units only. Use the big shower for objects, vehicles and objects loaded as cargo. To activate them, just stay under the shower. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Detection:</marker><br/> You can analyze an object, vehicle or man with ED-1E drone to determine if it is contaminated (Note: The drone will never be contaminated.). You can also check if you are in a contaminated area by using a chemical detector (THREAT from 0.1 to 0.9: contaminated objects are around, THREAT at 1: you are in the propagating range (you will be contaminated)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Chemical agent:</marker><br/> A chemical agent can be found in the battlefield at cache location for example. When an object is contaminated, the chemical agent propagates to people around (in a circle of 3m). Those people will be hurt constantly and get pain until they died or found a decontaminating shower (available at the logistic point) to clean up their body. When they are contaminated, they can propagate it to other people around (in a circle of 1.5m) or vehicle if they get inside. Keep in mind, dead body stay contaminated but body bag will isolate it. Also, a contaminated object loaded as cargo will contaminate the container or vehicle. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/> Use CBRN gear (uniform, respirator mask and breather backpack) for full protection from the contamination effect. But, don't forget to take a shower for more than 5s before removing your CBRN gear. Be aware, even with a CBRN equipment you can propagate the agent to people or vehicle, you are just protected from the effect. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> Simple mask and simple uniform can reduce from 65% to 80% the probability to take damage. The pain from breathing while contaminated can be avoid with a simple mask. <img image='\A3\Data_F_Orange\Images\Respirator_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Decontaminate:</marker><br/> You can use a small shower to decontaminate units only. Use the big shower for objects, vehicles and objects loaded as cargo. To activate them, just stay under the shower. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Detection:</marker><br/> You can analyze an object, vehicle or man with ED-1E drone to determine if it is contaminated (Note: The drone will never be contaminated.). You can also check if you are in a contaminated area by using a chemical detector (THREAT from 0.1 to 0.9: contaminated objects are around, THREAT at 1: you are in the propagating range (you will be contaminated)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Chemische Wirk- bzw. Kampfstoffe:</marker><br/> Chemische Wirk- bzw. Kampfstoffe werden immer mal wieder im Einsatz, zum Beispiel bei den Waffenkisten, gefunden. Wenn ein Objekt kontaminiert ist, dann verbreitet sich der chemische Wirkstoff auf Personen in der näheren Umgebung (in ein Umkreis von ca. 3m). Personen, welche sich ungeschützt einem solchen Objekt nähern, werden kontaminiert und erleiden Schaden, bis Sie sterben. Man kann sich mir Hilfe einer Dekontaminationsdusche (am Logistikpunkt erhältlich) von diesem Effekt befreien. Die Kontaminierung von Personen kann untereinander weitergegeben werden, wenn man nicht aufpasst (in einem Umkreis von ca. 1,5m). Das gilt auch für die Innenräume von Fahrzeugen. Denken Sie daran, dass Leichen kontaminiert bleiben, die Leichensäcke diese jedoch isolieren. Kontaminierte Objekte können beim Verladen auch den Container und das Fahrzeug verseuchen. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Schutz:</marker><br/> Verwenden Sie CBRN-Ausrüstung (auch ABC-Ausrüstung genannt, bestehend aus Uniform, Maske und Atemgerät), um sich vor Kontamination zu schützen. Vor dem ablegen der CBRN-Ausrüstung ist es wichtig, mindestens 5 Sekunden zu duschen, um sämtliche Verseuchungen zu entfernen. Beachten Sie, dass die CBRN-Ausrüstung nur Sie selbst vor den chemischen Kampfstoffen schütz. Sie können weiterhin andere Personen und Fahrzeuge kontaminieren. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Dekontaminierung:</marker><br/> Mit der kleinen Dekontaminationsdusche können Sie nur Personen dekontaminieren. Verwenden Sie die große Dusche für Objekte, Fahrzeuge und den Ladenraum von Fahrzeugen (oder Containern). Um die Duschen zu aktivieren, stellen Sie sich einfach darunter. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Erkennung:</marker><br/> Sie können ein Objekt, Fahrzeug oder eine Person mit einer ED-1E-Drohne analysieren, um festzustellen, ob es kontaminiert ist (Hinweis: Die Drohne wird niemals von einer Kontamination betroffen sein). Ebenso können Sie einen Chemischen Detektor nutzen um feststellen wie stark der nähere Bereich um Sie herum kontaminiert ist. (THREAT von 0.1 bis 0.9: kontaminierte Gegenstände sind in der Nähe, THREAT von 1: Sie befinden sich in einen verseuchten Bereich (Sie sind somit selbst kontaminiert)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>化学试剂:</marker><br/> 化学试剂会在战场上的武器箱等位置出现。当一个物体受到污染时, 这种化学试剂会传播它到周围的人身上(3米范围内)。这些人将持续受到伤害直至死亡, 或找到一个净化淋浴(位于在后勤点)来清理他们的身体。当这些人受到污染时, 他们会将污染传播给周围的其他人(1.5米范围内)或车辆(如果他们进入车辆的话)。记住, 尸体将保持受到污染的状态, 但尸体袋可以将其隔离。此外, 作为货物装载受污染物体将会污染集装箱或车辆。<img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/><br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>防护措施:</marker><br/> 使用CBRN(生化核辐)装备(服装、口罩、面具和呼吸器背包)可以保护您完全免受污染影响。但是, 在取下CBRN装备之前, 不要忘记进行至少5秒的净化淋浴。请注意, 即使穿戴了CBRN装备, 您也会向人员或车辆传播化学试剂, 只有你免受污染影响。普通的面具和制服会将受到伤害的可能性减免60%至80%。<img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>清除污染:</marker><br/> 小型淋浴器只能用来净化单兵单位。使用大型淋浴器来清洗物品、车辆和货物。要激活净化过程, 只需待在淋浴下即可。<img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/><br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>检测:</marker><br/> 你可以使用 ED-1E 无人机分析物体、车辆或人, 以测定其是否受到污染(注: 该无人机永远不会受到污染)。您也可以使用化学探测器检测您是否处于污染区域内(威胁度介于0.1至0.9之间: 附近存在受污染物体, 威胁度等于1: 您处于传播区域内(您将受到污染))。<img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Agent chimique:</marker><br/> Un agent chimique peut être trouvé sur le champ de bataille à l'emplacement d'une cache d'arme, par exemple. Lorsqu'un objet est contaminé, l'agent chimique se propage aux personnes autour (dans un cercle de 3 m). Ces personnes seront constamment blessées jusqu'à ce qu'elles meurent ou trouvent une douche décontaminante (disponible au point logistique) pour nettoyer leur corps. Lorsqu'ils sont contaminés, ils peuvent le propager à d'autres personnes autour (dans un cercle de 1,5 m) ou à un véhicule s'ils pénètrent à l'intérieur. Gardez à l'esprit que les cadavres restent contaminés, mais le sac mortuaire l'isolera. De plus, un objet contaminé placé dans la cargaison d'un conteneur ou d'un véhicule le contaminera. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/> Utilisez un équipement CBRN (uniforme, masque respiratoire et sac à dos) pour une protection complète contre l'effet de contamination. Mais n'oubliez pas de prendre une douche pendant plus de 5 secondes avant de retirer votre équipement CBRN. Sachez que même avec un équipement CBRN, vous pouvez propager l'agent à des personnes ou à un véhicule, vous êtes simplement protégé de l'effet. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> Un masque simple et un uniforme simple peuvent réduire de 65% à 80% la probabilité de subir des dommages.<img image='\A3\Data_F_Orange\Images\Respirator_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Décontaminer:</marker><br/> Vous pouvez utiliser une petite douche uniquement pour décontaminer les unités. Utilisez la grande douche pour les objets, les véhicules et les objets chargés comme cargaison. Pour les activer, il suffit de rester sous la douche. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Détection:</marker><br/> Vous pouvez analyser un objet, un véhicule ou un homme avec un drone ED-1E pour déterminer s'il est contaminé (Remarque: le drone ne sera jamais contaminé.). Vous pouvez également vérifier si vous vous trouvez dans une zone contaminée en utilisant un détecteur chimique (THREAT de 0,1 à 0,9: les objets contaminés sont aux alentours, THREAT à 1: vous êtes dans la plage de propagation (vous serez contaminé)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index 348fb3a8b..8f898e1e6 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -7,9 +7,9 @@ This mission has a database system. Enemy units, towns, hideouts, cache, objects ## Chemical Warfare ### Chemical agent: -A chemical agent can be found in the battlefield at cache location for example. When an object is contaminated, the chemical agent propagates to people around (in a circle of 3m). Those people will be hurt constantly until they died or found a decontaminating shower (available at the logistic point) to clean up their body. When they are contaminated, they can propagate it to other people around (in a circle of 1.5m) or vehicle if they get inside. Keep in mind, dead body stay contaminated but body bag will isolate it. Also, a contaminated object loaded as cargo will contaminate the container or vehicle. +A chemical agent can be found in the battlefield at cache location for example. When an object is contaminated, the chemical agent propagates to people around (in a circle of 3m). Those people will be hurt constantly and get pain until they died or found a decontaminating shower (available at the logistic point) to clean up their body. When they are contaminated, they can propagate it to other people around (in a circle of 1.5m) or vehicle if they get inside. Keep in mind, dead body stay contaminated but body bag will isolate it. Also, a contaminated object loaded as cargo will contaminate the container or vehicle. ### Protection: -Use CBRN gear (uniform, respirator mask and breather backpack) for full protection from the contamination effect. But, don't forget to take a shower for more than 5s before removing your CBRN gear. Be aware, even with a CBRN equipment you can propagate the agent to people or vehicle, you are just protected from the effect. Simple mask and simple uniform can reduce from 65% to 80% the probability to take damage. +Use CBRN gear (uniform, respirator mask and breather backpack) for full protection from the contamination effect. But, don't forget to take a shower for more than 5s before removing your CBRN gear. Be aware, even with a CBRN equipment you can propagate the agent to people or vehicle, you are just protected from the effect. Simple mask and simple uniform can reduce from 65% to 80% the probability to take damage. The pain from breathing while contaminated can be avoid with a simple mask. ### Decontaminate: You can use a small shower to decontaminate units only. Use the big shower for objects, vehicles and objects loaded as cargo. To activate them, just stay under the shower. ### Detection: From e696c41a40c8655e3341953e7ba1effd106ee51f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 14 Jul 2021 23:48:46 +0200 Subject: [PATCH 125/354] fix typo in log header --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf index 1d457d743..9c8341555 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf @@ -6,7 +6,7 @@ Description: Get inventory of an object. Parameters: - _object - Object which inventory. [Object] + _object - Object with inventory. [Object] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf index 8b6f37c61..4155819d5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventorySet.sqf @@ -6,7 +6,7 @@ Description: Set inventory of an object. Parameters: - _object - Object which inventory. [Object] + _object - Object with inventory. [Object] _inventory - Inventory to set. [Array] Returns: From a39a444a1701486573ad3dcbbd24a932fe040f89 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 17 Jul 2021 15:36:03 +0200 Subject: [PATCH 126/354] Increase default patrol civilian --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 8edb9e3db..1aedd6b8b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -169,8 +169,8 @@ class Params { }; class btc_p_civ_max_veh { // Maximum number of civilian patrol: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_CIV_MAX_VEH"]); - values[]={0,1,2,3,4,5,6,7,8,9,10}; - texts[]={"1","2","3","4","5","6","7","8","9","10"}; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; + texts[]={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"}; default = 10; }; class btc_p_IED_title { // << IED options >> From c31178df9353fb27fcc3efd4aca3c9b93c66dd43 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 17 Jul 2021 17:10:40 +0200 Subject: [PATCH 127/354] Improve syntaxe --- .../core/def/mission.sqf | 1 - .../core/fnc/city/de_activate.sqf | 4 +- .../core/fnc/mil/check_cap.sqf | 54 ++++--------------- 3 files changed, 11 insertions(+), 48 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index cb7e88932..39a2918a7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -149,7 +149,6 @@ if (isServer) then { btc_hideout_safezone = 4000; btc_hideout_range = 3500; btc_hideout_cap_time = 1800; - btc_hideout_cap_checking = false; btc_hideout_minRange = btc_hideout_range; //IED diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf index db6ddae39..8f7163840 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf @@ -117,9 +117,7 @@ if !(_city getVariable ["active", false]) exitWith {}; _city setVariable ["data_tags", _data_tags]; _city setVariable ["active", false]; - if (!btc_hideout_cap_checking) then { - [] call btc_mil_fnc_check_cap; - }; + [] call btc_mil_fnc_check_cap; [] call btc_city_fnc_cleanUp; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf index 5bbe54d92..4f6605d80 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf @@ -19,56 +19,24 @@ Author: ---------------------------------------------------------------------------- */ -if (btc_hideout_cap_checking) exitWith {}; - -btc_hideout_cap_checking = true; - -private _cap_to = btc_hideouts select {time - (_x getVariable ["cap_time", time]) > btc_hideout_cap_time}; - -if (_cap_to isEqualTo []) exitWith { - btc_hideout_cap_checking = false; - if (btc_debug_log) then { - ["exit cap time", __FILE__, [false]] call btc_debug_fnc_message; - }; +private _cap_to = btc_hideouts select { + time - (_x getVariable ["cap_time", time]) > btc_hideout_cap_time }; +if (_cap_to isEqualTo []) exitWith {}; { - private _hd = _x; - private _in_range = btc_city_all inAreaArray [getPosWorld _hd, btc_hideout_range, btc_hideout_range]; + private _hideout = _x; + private _city_inRange = btc_city_all inAreaArray [getPosWorld _hideout, btc_hideout_range, btc_hideout_range]; + if (_city_inRange isEqualTo []) then {continue}; - if (_in_range isEqualTo []) then { - btc_hideout_cap_checking = false; - if (btc_debug_log) then { - [format ["exit no in range = %1", _hd getVariable "id"], __FILE__, [false]] call btc_debug_fnc_message; - }; - continue; - }; + private _closest = [_hideout, _city_inRange, true] call btc_fnc_find_closecity; + if (_closest isEqualTo []) then {continue}; - private _closest = [_hd, _in_range, true] call btc_fnc_find_closecity; - - if (btc_debug_log) then { - [format ["_in_range = %1", _in_range], __FILE__, [false]] call btc_debug_fnc_message; - }; - - if (_closest isEqualTo []) then { - btc_hideout_cap_checking = false; - if (btc_debug_log) then { - [format ["exit null _closest = %1", _hd getVariable "id"], __FILE__, [false]] call btc_debug_fnc_message; - }; - continue; - }; - - if (btc_debug_log) then { - [format ["SEND FROM = %1 TO %2 [int %3]", _hd getVariable "id", _closest getVariable ["name", "error"], _closest getVariable ["initialized", false]], __FILE__, [false]] call btc_debug_fnc_message; - }; - - _hd setVariable ["cap_time", time]; + _hideout setVariable ["cap_time", time]; if (_closest getVariable ["initialized", false]) then { for "_i" from 0 to (2 + (round random 3)) do { - [{ - _this call btc_mil_fnc_send; - }, [_hd, _closest, 0], _i * 2 + 1] call CBA_fnc_waitAndExecute; + [btc_mil_fnc_send, [_hideout, _closest, 0], _i * 2 + 1] call CBA_fnc_waitAndExecute; }; } else { _closest setVariable ["occupied", true]; @@ -77,5 +45,3 @@ if (_cap_to isEqualTo []) exitWith { }; }; } forEach _cap_to; - -btc_hideout_cap_checking = false; From 6475a392c016cf3ecbe552806855f073c6fa5113 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 17 Jul 2021 17:48:38 +0200 Subject: [PATCH 128/354] fix wrong waypoint CBA_fnc_clearWaypoints --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf index 0fa7b9ae0..4d3a0f6f6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf @@ -41,12 +41,10 @@ switch (_typeOf_patrol) do { case 0 : { _group = ([_pos, 150, 3 + round random 6, 1] call btc_mil_fnc_create_group) select 0; _group setVariable ["no_cache", true]; - [_group] call CBA_fnc_clearWaypoints; }; case 1 : { _group = createGroup btc_enemy_side; _group setVariable ["no_cache", true]; - [_group] call CBA_fnc_clearWaypoints; if (_veh_type isEqualTo "") then {_veh_type = selectRandom btc_type_motorized}; private _return_pos = [_pos, 10, 500, 13, false] call btc_fnc_findsafepos; @@ -58,6 +56,7 @@ switch (_typeOf_patrol) do { [{ params ["_group", "_typeOf_patrol", "_dest", "_infFormation"]; + [_group] call CBA_fnc_clearWaypoints; switch (_typeOf_patrol) do { case 0 : { [_group, _dest, -1, "MOVE", "AWARE", "RED", "FULL", _infFormation, "(group this) call btc_data_fnc_add_group;", nil, 60] call CBA_fnc_addWaypoint; From 1ac6f58ece15f19d11a887274359ff05fd762d37 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 18 Jul 2021 14:36:23 +0200 Subject: [PATCH 129/354] Add: Player disabling hideout don't enter in phinal phase --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index ef1c1a87f..7bc7003f3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -211,8 +211,8 @@ class Params { }; class btc_p_hideout_n { // Hideout numbers: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_HIDE_NUMBERS"]); - values[]={99,1,2,3,4,5}; - texts[]={$STR_3DEN_ATTRIBUTES_OBJECTTEXTURE_RANDOM_TEXT,"1","2","3","4","5"}; //texts[]={"Random","1","2","3","4","5"}; + values[]={99,0,1,2,3,4,5}; + texts[]={$STR_3DEN_ATTRIBUTES_OBJECTTEXTURE_RANDOM_TEXT,"0","1","2","3","4","5"}; //texts[]={"Random","0","1","2","3","4","5"}; default = 5; }; class btc_p_cache_info_def { // Info cache distance: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 51b6d37ce..1a3077343 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -14,7 +14,12 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN [] call compileScript ["core\fnc\db\load_old.sqf"]; }; } else { - for "_i" from 1 to btc_hideout_n do {[] call btc_hideout_fnc_create;}; + if (btc_hideout_n > 0) then { + for "_i" from 1 to btc_hideout_n do {[] call btc_hideout_fnc_create;}; + } else { + [] spawn btc_fnc_final_phase; + }; + [] call btc_cache_fnc_init; private _date = date; From 60bf3d9a24b4683d0d800f925f549f8b4a71f5e0 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 18 Jul 2021 14:39:28 +0200 Subject: [PATCH 130/354] Increase default hideout number --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 7bc7003f3..1e1242981 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -212,7 +212,7 @@ class Params { class btc_p_hideout_n { // Hideout numbers: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_HIDE_NUMBERS"]); values[]={99,0,1,2,3,4,5}; - texts[]={$STR_3DEN_ATTRIBUTES_OBJECTTEXTURE_RANDOM_TEXT,"0","1","2","3","4","5"}; //texts[]={"Random","0","1","2","3","4","5"}; + texts[]={$STR_3DEN_ATTRIBUTES_OBJECTTEXTURE_RANDOM_TEXT,"0","1","2","3","4","5","6","7","8","9","10"}; //texts[]={"Random","0","1","2","3","4","5"}; default = 5; }; class btc_p_cache_info_def { // Info cache distance: From 8dc9f83ce328371041ae708f3020551792b1c93a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 18 Jul 2021 15:21:54 +0200 Subject: [PATCH 131/354] Ajust the case of random hideout --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index cb7e88932..7be26d32b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -144,7 +144,7 @@ if (isServer) then { btc_hideouts_radius = 800; btc_hideout_n = _hideout_n; if (btc_hideout_n isEqualTo 99) then { - btc_hideout_n = round random 5; + btc_hideout_n = round random 10; }; btc_hideout_safezone = 4000; btc_hideout_range = 3500; From d7ce2c9ea1d3e243ae25b4451aff7dc4d02f52c5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 19 Jul 2021 23:07:15 +0200 Subject: [PATCH 132/354] Add: Limited respawn tickets --- .../core/def/mission.sqf | 1 + .../core/fnc/fob/redeployCheck.sqf | 8 +++++++ .../core/fnc/int/add_actions.sqf | 1 + .../core/init_player.sqf | 23 +++++++++++++++++++ .../core/init_server.sqf | 4 ++++ .../description.ext | 4 ++-- 6 files changed, 39 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index cb7e88932..bef7f8af8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -17,6 +17,7 @@ btc_p_respawn_location = "btc_p_respawn_location" call BIS_fnc_getParamValue; btc_p_respawn_fromFOBToBase = ("btc_p_respawn_fromFOBToBase" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_rallypointTimer = "btc_p_rallypointTimer" call BIS_fnc_getParamValue; btc_p_respawn_arsenal = ("btc_p_respawn_arsenal" call BIS_fnc_getParamValue) isEqualTo 1; +btc_p_respawn_ticketsAtStart = 100; //<< Faction options >> private _p_en = "btc_p_en" call BIS_fnc_getParamValue; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf index 418e93109..fef8c18e1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf @@ -34,4 +34,12 @@ if ( false }; +if ( + btc_p_respawn_ticketsAtStart >= 0 && + {([btc_player_side] call BIS_fnc_respawnTickets) <= 0} +) exitWith { + [[localize "STR_BTC_HAM_O_FOB_CANTREDEPLOY"], ["No more respawn tickets"]] call CBA_fnc_notify; + false +}; + true diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 6dc3bceab..b39cd4041 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -164,6 +164,7 @@ _actions pushBack ["redeploy", localize "STR_BTC_HAM_ACTION_BIRESPAWN", "\A3\ui_ if ([] call btc_fob_fnc_redeployCheck) then { player setPos [10, 10, 10]; player hideObject true; + [btc_player_side, 1] call BIS_fnc_respawnTickets; forceRespawn player; }; }, {!btc_log_placing}]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index b63229445..ca717d645 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -8,6 +8,29 @@ if !(isNil "btc_custom_loc") then { }; btc_intro_done = [] spawn btc_fnc_intro; +{ + missionNamespace setVariable [_x, false]; +} forEach [ + "BIS_respSpecAi", // Allow spectating of AI + "BIS_respSpecAllowFreeCamera", // Allow moving the camera independent from units (players) + "BIS_respSpecAllow3PPCamera", // Allow 3rd person camera + "BIS_respSpecShowFocus", // Show info about the selected unit (dissapears behind the respawn UI) + "BIS_respSpecShowCameraButtons", // Show buttons for switching between free camera, 1st and 3rd person view (partially overlayed by respawn UI) + "BIS_respSpecShowControlsHelper", // Show the controls tutorial box + "BIS_respSpecShowHeader", // Top bar of the spectator UI including mission time + "BIS_respSpecLists" // Show list of available units and locations on the left hand side +]; +{ + missionNamespace setVariable [_x, true]; +} forEach [ + "BIS_respSpecAi", // Allow spectating of AI + "BIS_respSpecShowCameraButtons", // Show buttons for switching between free camera, 1st and 3rd person view (partially overlayed by respawn UI) + "BIS_respSpecShowControlsHelper", // Show the controls tutorial box + "BIS_respSpecShowHeader", // Top bar of the spectator UI including mission time + "BIS_respSpecLists" // Show list of available units and locations on the left hand side +]; + + [{!isNull player}, { [] call compileScript ["core\doc.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 51b6d37ce..b8f9bfd53 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -55,3 +55,7 @@ if (btc_p_side_mission_cycle > 0) then { { ["btc_tag_remover" + _x, "STR_BTC_HAM_ACTION_REMOVETAG", _x, ["#(rgb,8,8,3)color(0,0,0,0)"], "\a3\Modules_F_Curator\Data\portraitSmoke_ca.paa"] call ace_tagging_fnc_addCustomTag; } forEach ["ACE_SpraypaintRed"]; + +if (btc_p_respawn_ticketsAtStart >= 0) then { + [btc_player_side, btc_p_respawn_ticketsAtStart] call BIS_fnc_respawnTickets; +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext index c747e20f6..7d4705c78 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext +++ b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext @@ -48,11 +48,11 @@ class Extended_InitPost_EventHandlers { }; }; -respawn = "BASE"; +respawn = 3; respawnDelay = 2; respawnDialog = 0; respawnOnStart = 0; -respawnTemplates[] = {"MenuPosition"}; +respawnTemplates[] = {"MenuPosition", "Spectator", Tickets}; // Disable BI wreck system (H&M handle it internally) wreckManagerMode = 0; From 9f15844585357643469f3bf98ad1e1674ff9fe64 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 19 Jul 2021 23:16:59 +0200 Subject: [PATCH 133/354] Add persistency to respawn tickets --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 5 +++++ =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf index 7918c241b..2519db28e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf @@ -37,6 +37,7 @@ profileNamespace setVariable [format ["btc_hm_%1_fobs", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_vehs", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_objs", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_tags", _name], nil]; +profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_markers", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_db", _name], nil]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index d5dfbbb12..ddc5b2a3b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -208,6 +208,11 @@ private _id = ["ace_tagCreated", { } forEach _tags_properties; ["ace_tagCreated", _id] call CBA_fnc_removeEventHandler; +//Player respawn tickets +if (btc_p_respawn_ticketsAtStart >= 0) then { + btc_p_respawn_ticketsAtStart = profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], btc_p_respawn_ticketsAtStart]; +}; + //Player Markers private _markers_properties = +(profileNamespace getVariable [format ["btc_hm_%1_markers", _name], []]); { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 69850b2ae..38659c80f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -207,6 +207,12 @@ private _tags_properties = _tags apply { }; profileNamespace setVariable [format ["btc_hm_%1_tags", _name], +_tags_properties]; +//Player respawn tickets +if (btc_p_respawn_ticketsAtStart >= 0) then { + private _respawnTickets = [btc_player_side] call BIS_fnc_respawnTickets; + profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], _respawnTickets]; +}; + //Player Markers private _player_markers = allMapMarkers select {"_USER_DEFINED" in _x}; private _markers_properties = _player_markers apply { From 589fdc285287d13b3348ca53f7db348de32204a2 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 19 Jul 2021 23:39:37 +0200 Subject: [PATCH 134/354] Add logistic interaction for body bag --- .../core/fnc/compile.sqf | 1 + .../core/fnc/fob/recoverBodyBag.sqf | 31 +++++++++++++++++++ .../core/fnc/int/add_actions.sqf | 5 +++ 3 files changed, 37 insertions(+) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 664acb25d..10e563d0a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -315,6 +315,7 @@ if (!isDedicated) then { btc_fob_fnc_rallypointAssemble = compileScript ["core\fnc\fob\rallypointAssemble.sqf"]; btc_fob_fnc_redeploy = compileScript ["core\fnc\fob\redeploy.sqf"]; btc_fob_fnc_redeployCheck = compileScript ["core\fnc\fob\redeployCheck.sqf"]; + btc_fob_fnc_recoverBodyBag = compileScript ["core\fnc\fob\recoverBodyBag.sqf"]; //INT btc_int_fnc_add_actions = compileScript ["core\fnc\int\add_actions.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf new file mode 100644 index 000000000..0a578ffe1 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf @@ -0,0 +1,31 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fob_fnc_recoverBodyBag + +Description: + Add respawn tickets when a body bag is provided. + +Parameters: + _object - [Object] + +Returns: + +Examples: + (begin example) + _result = [] call btc_fob_fnc_recoverBodyBag; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_object", objNull, [objNull]] +]; + +private _array = nearestObjects [_object, ["ACE_bodyBagObject"], 10]; +if (_array isEqualTo []) exitWith {(localize "STR_BTC_HAM_LOG_RWRECK_NOWRECK") call CBA_fnc_notify;}; + +[btc_player_side, 1] call BIS_fnc_respawnTickets; +deleteVehicle (_array select 0); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index b39cd4041..43de5d8e5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -83,6 +83,11 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title _params call btc_log_fnc_delete }, {true}, {}, [_helipad], [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; + _action = ["Bodybag", "Get body bag", "\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa", { + params ["", "", "_params"]; + _params call btc_fob_fnc_recoverBodyBag; + }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; + [_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject; } forEach [[btc_create_object, btc_create_object_point]]; //Logistic From 6ab296a4850943f857acdd9741ee325c9ccc8d3e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 20 Jul 2021 20:42:15 +0200 Subject: [PATCH 135/354] Add: Persistency to dead body player --- .../core/def/mission.sqf | 4 ++++ .../core/fnc/db/delete.sqf | 1 + .../core/fnc/db/load.sqf | 10 ++++++++++ .../core/fnc/db/save.sqf | 8 ++++++++ .../core/fnc/eh/player.sqf | 2 +- .../core/fnc/eh/server.sqf | 8 ++++++++ .../core/fnc/fob/recoverBodyBag.sqf | 16 +++++++++++++--- .../core/fnc/int/add_actions.sqf | 2 +- 8 files changed, 46 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index bef7f8af8..aad37f6d3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -162,6 +162,7 @@ if (isServer) then { //FOB btc_fobs = [[], [], []]; btc_fob_rallypointTimer = 60 * btc_p_rallypointTimer; + btc_fob_deadBodyPlayers = []; //MIL btc_p_mil_wp_ratios = [_wp_house_probability, (1 - _wp_house_probability) / 1.5 + _wp_house_probability]; @@ -722,3 +723,6 @@ btc_player_type = ["SoldierWB", "SoldierEB", "SoldierGB"] select ([west, east, i //Door btc_door_breaking_time = 60; + +//Respawn +btc_fob_recoverBodyBag = 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf index 2519db28e..47211f437 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf @@ -38,6 +38,7 @@ profileNamespace setVariable [format ["btc_hm_%1_vehs", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_objs", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_tags", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], nil]; +profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_markers", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_db", _name], nil]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index ddc5b2a3b..0306ef0aa 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -211,6 +211,16 @@ private _id = ["ace_tagCreated", { //Player respawn tickets if (btc_p_respawn_ticketsAtStart >= 0) then { btc_p_respawn_ticketsAtStart = profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], btc_p_respawn_ticketsAtStart]; + + private _deadBodyPlayers = profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]; + btc_fob_deadBodyPlayers = _deadBodyPlayers apply { + _x params ["_type", "_pos", "_dir", "_loadout"]; + private _body = createAgent [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; + _body setDir _dir; + _body setUnitLoadout _loadout; + _body setDamage 1; + _body + }; }; //Player Markers diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 38659c80f..eff01d203 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -211,6 +211,14 @@ profileNamespace setVariable [format ["btc_hm_%1_tags", _name], +_tags_propertie if (btc_p_respawn_ticketsAtStart >= 0) then { private _respawnTickets = [btc_player_side] call BIS_fnc_respawnTickets; profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], _respawnTickets]; + + private _deadBodyPlayers = (btc_fob_deadBodyPlayers - [objNull]) apply {[ + typeOf _x, + getPosASL _x, + getDir _x, + getUnitLoadout _x + ]}; + profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], _deadBodyPlayers]; }; //Player Markers diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 74260955f..69e15741b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -35,7 +35,7 @@ params [ if (_unit isNotEqualTo player) exitWith {}; if (ace_map_mapIllumination) then {ace_map_mapIllumination = false;}; if (isObjectHidden player) exitWith {}; - [btc_rep_malus_player_respawn, player] remoteExecCall ["btc_rep_fnc_change", 2]; + ["btc_respawn_player", [_unit, player]] call CBA_fnc_serverEvent; }] call CBA_fnc_addEventHandler; _player addEventHandler ["CuratorObjectPlaced", btc_eh_fnc_CuratorObjectPlaced]; ["ace_treatmentSucceded", btc_rep_fnc_treatment] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 5d54b774a..638c1333c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -83,3 +83,11 @@ if (btc_p_set_skill) then { } forEach btc_civ_type_veh; ["ace_tagCreated", btc_tag_fnc_eh] call CBA_fnc_addEventHandler; ["ace_disarming_dropItems", btc_rep_fnc_foodRemoved] call CBA_fnc_addEventHandler; +["btc_respawn_player", { + params ["_unit", "_player"]; + [btc_rep_malus_player_respawn, _player] call btc_rep_fnc_change; + if (btc_p_respawn_ticketsAtStart >= 0) then { + _unit setVariable ["btc_dont_delete", true]; + btc_fob_deadBodyPlayers pushBack _unit; + }; +}] call CBA_fnc_addEventHandler; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf index 0a578ffe1..9499ac779 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf @@ -25,7 +25,17 @@ params [ ]; private _array = nearestObjects [_object, ["ACE_bodyBagObject"], 10]; -if (_array isEqualTo []) exitWith {(localize "STR_BTC_HAM_LOG_RWRECK_NOWRECK") call CBA_fnc_notify;}; - -[btc_player_side, 1] call BIS_fnc_respawnTickets; +if (_array isEqualTo []) exitWith { + [ + ["No body bag around"], + [format ["%1 respawn tickets left", [btc_player_side] call BIS_fnc_respawnTickets]] + ] call CBA_fnc_notify; +}; + +[btc_player_side, btc_fob_recoverBodyBag] call BIS_fnc_respawnTickets; deleteVehicle (_array select 0); + +[ + ["Respawn ticket added"], + [format ["%1 respawn tickets left", [btc_player_side] call BIS_fnc_respawnTickets]] +] call CBA_fnc_notify; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 43de5d8e5..1646ce2c1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -83,7 +83,7 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title _params call btc_log_fnc_delete }, {true}, {}, [_helipad], [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; - _action = ["Bodybag", "Get body bag", "\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa", { + _action = ["Bodybag", "Get body bag", "\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa", { params ["", "", "_params"]; _params call btc_fob_fnc_recoverBodyBag; }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; From 26de0a6eb6eddbffc167ff1379cbc26098098d35 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 20 Jul 2021 21:07:44 +0200 Subject: [PATCH 136/354] Add marker KIA --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 3 +++ =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 0306ef0aa..ece424f94 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -219,6 +219,9 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { _body setDir _dir; _body setUnitLoadout _loadout; _body setDamage 1; + private _marker = createMarker [format ["btc_fob_deadBody_%1", _body], _body]; + _marker setMarkerType "KIA"; + _marker setMarkerSize [0.7, 0.7]; _body }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 638c1333c..f907ddb91 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -89,5 +89,9 @@ if (btc_p_set_skill) then { if (btc_p_respawn_ticketsAtStart >= 0) then { _unit setVariable ["btc_dont_delete", true]; btc_fob_deadBodyPlayers pushBack _unit; + + private _marker = createMarker [format ["btc_fob_deadBody_%1", _unit], _unit]; + _marker setMarkerType "KIA"; + _marker setMarkerSize [0.7, 0.7]; }; }] call CBA_fnc_addEventHandler; \ No newline at end of file From 5f152121bd845530b625d6d376d7218e5d00958d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 21 Jul 2021 18:01:51 +0200 Subject: [PATCH 137/354] Handle contaminated and delete marker when in bodybad --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 9 ++++++++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 3 ++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 7 ++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index ece424f94..729056ec9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -214,14 +214,21 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { private _deadBodyPlayers = profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]; btc_fob_deadBodyPlayers = _deadBodyPlayers apply { - _x params ["_type", "_pos", "_dir", "_loadout"]; + _x params ["_type", "_pos", "_dir", "_loadout", "_isContaminated"]; private _body = createAgent [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; _body setDir _dir; _body setUnitLoadout _loadout; + if (_isContaminated) then { + if ((btc_chem_contaminated pushBackUnique _body) > -1) then { + publicVariable "btc_chem_contaminated"; + }; + }; _body setDamage 1; + private _marker = createMarker [format ["btc_fob_deadBody_%1", _body], _body]; _marker setMarkerType "KIA"; _marker setMarkerSize [0.7, 0.7]; + _body setVariable ["btc_deadBody_marker", _marker]; _body }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index eff01d203..25113a459 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -216,7 +216,8 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { typeOf _x, getPosASL _x, getDir _x, - getUnitLoadout _x + getUnitLoadout _x, + _x in btc_chem_contaminated ]}; profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], _deadBodyPlayers]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index f907ddb91..4a45e3386 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -93,5 +93,10 @@ if (btc_p_set_skill) then { private _marker = createMarker [format ["btc_fob_deadBody_%1", _unit], _unit]; _marker setMarkerType "KIA"; _marker setMarkerSize [0.7, 0.7]; + _unit setVariable ["btc_deadBody_marker", _marker]; }; -}] call CBA_fnc_addEventHandler; \ No newline at end of file +}] call CBA_fnc_addEventHandler; +["ace_placedInBodyBag", { + params ["_patient", "_bodyBag"]; + deleteMarker (_patient getVariable ["btc_deadBody_marker", ""]); +}] call CBA_fnc_addEventHandler; From 78612f98224a47b21b9f77bb717a23a29a5fd55b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 21 Jul 2021 19:08:51 +0200 Subject: [PATCH 138/354] Add bodybag persistency and save dogtag data --- .../core/fnc/db/delete.sqf | 1 - .../core/fnc/db/load.sqf | 9 +++++++-- .../core/fnc/db/loadObjectStatus.sqf | 14 +++++++++++++- .../core/fnc/db/save.sqf | 4 +++- .../core/fnc/db/saveObjectStatus.sqf | 4 ++++ .../core/fnc/eh/server.sqf | 5 +++-- 6 files changed, 30 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf index 47211f437..2519db28e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf @@ -38,7 +38,6 @@ profileNamespace setVariable [format ["btc_hm_%1_vehs", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_objs", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_tags", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], nil]; -profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_markers", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_db", _name], nil]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 729056ec9..750da9a27 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -212,18 +212,23 @@ private _id = ["ace_tagCreated", { if (btc_p_respawn_ticketsAtStart >= 0) then { btc_p_respawn_ticketsAtStart = profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], btc_p_respawn_ticketsAtStart]; - private _deadBodyPlayers = profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]; + private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); btc_fob_deadBodyPlayers = _deadBodyPlayers apply { - _x params ["_type", "_pos", "_dir", "_loadout", "_isContaminated"]; + _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated"]; private _body = createAgent [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; _body setDir _dir; _body setUnitLoadout _loadout; + _body setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; + if (_dogtagTaken) then { + _body setVariable ["ace_dogtags_dogtagTaken", _body, true]; + }; if (_isContaminated) then { if ((btc_chem_contaminated pushBackUnique _body) > -1) then { publicVariable "btc_chem_contaminated"; }; }; _body setDamage 1; + _body setVariable ["btc_dont_delete", true]; private _marker = createMarker [format ["btc_fob_deadBody_%1", _body], _body]; _marker setMarkerType "KIA"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index eb049954d..a4a37cb6b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -31,7 +31,8 @@ _object_data params [ "_cargo", "_inventory", "_vectorPos", - ["_isContaminated", false, [false]] + ["_isContaminated", false, [false]], + ["_dogtagDataTaken", [], [[]]] ]; private _obj = createVehicle [_type, ASLToATL _pos, [], 0, "CAN_COLLIDE"]; @@ -50,5 +51,16 @@ if (unitIsUAV _obj) then { createVehicleCrew _obj; }; +_dogtagDataTaken params [ + ["_dogtagData", [], [[]]], + ["_dogtagTaken", false, [false]] +]; +if (_dogtagData isNotEqualTo []) then { + _obj setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; + if (_dogtagTaken) then { + _obj setVariable ["ace_dogtags_dogtagTaken", _obj, true]; + }; +}; + [_obj] call btc_log_fnc_init; [_obj, _cargo, _inventory] call btc_db_fnc_loadCargo; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 25113a459..43e8e481c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -217,9 +217,11 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { getPosASL _x, getDir _x, getUnitLoadout _x, + _x call ace_dogtags_fnc_getDogtagData, + !isNull (_x getVariable ["ace_dogtags_dogtagTaken", objNull]), _x in btc_chem_contaminated ]}; - profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], _deadBodyPlayers]; + profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], +_deadBodyPlayers]; }; //Player Markers diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 6cb5b7ccd..17f5d0859 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -46,5 +46,9 @@ _data pushBack _cargo; _data pushBack (_object call btc_log_fnc_inventoryGet); _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); +_data pushBack [ + _object call ace_dogtags_fnc_getDogtagData, + !isNull (_object getVariable ["ace_dogtags_dogtagTaken", objNull]) +]; _data diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 4a45e3386..ed023134e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -88,9 +88,9 @@ if (btc_p_set_skill) then { [btc_rep_malus_player_respawn, _player] call btc_rep_fnc_change; if (btc_p_respawn_ticketsAtStart >= 0) then { _unit setVariable ["btc_dont_delete", true]; - btc_fob_deadBodyPlayers pushBack _unit; + private _index = btc_fob_deadBodyPlayers pushBack _unit; - private _marker = createMarker [format ["btc_fob_deadBody_%1", _unit], _unit]; + private _marker = createMarker [format ["btc_fob_deadBody_%1", _index], _unit]; _marker setMarkerType "KIA"; _marker setMarkerSize [0.7, 0.7]; _unit setVariable ["btc_deadBody_marker", _marker]; @@ -99,4 +99,5 @@ if (btc_p_set_skill) then { ["ace_placedInBodyBag", { params ["_patient", "_bodyBag"]; deleteMarker (_patient getVariable ["btc_deadBody_marker", ""]); + [_bodyBag] call btc_log_fnc_init; }] call CBA_fnc_addEventHandler; From 35a4e17405d27a55bcd70bc91e8bf18cec1288b9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 21 Jul 2021 19:55:15 +0200 Subject: [PATCH 139/354] Make it optionnel to show KIA marqueur --- .../core/def/mission.sqf | 1 + .../core/fnc/eh/server.sqf | 13 +++++++---- .../core/init_player.sqf | 23 ------------------- .../define_mod.sqf | 12 ++++++++++ 4 files changed, 22 insertions(+), 27 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index aad37f6d3..6a12c6ecd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -18,6 +18,7 @@ btc_p_respawn_fromFOBToBase = ("btc_p_respawn_fromFOBToBase" call BIS_fnc_getPar btc_p_rallypointTimer = "btc_p_rallypointTimer" call BIS_fnc_getParamValue; btc_p_respawn_arsenal = ("btc_p_respawn_arsenal" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_respawn_ticketsAtStart = 100; +btc_p_respawn_timeBeforeShowKIA = 10; //<< Faction options >> private _p_en = "btc_p_en" call BIS_fnc_getParamValue; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index ed023134e..18361f0c0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -90,10 +90,15 @@ if (btc_p_set_skill) then { _unit setVariable ["btc_dont_delete", true]; private _index = btc_fob_deadBodyPlayers pushBack _unit; - private _marker = createMarker [format ["btc_fob_deadBody_%1", _index], _unit]; - _marker setMarkerType "KIA"; - _marker setMarkerSize [0.7, 0.7]; - _unit setVariable ["btc_deadBody_marker", _marker]; + if (btc_p_respawn_timeBeforeShowKIA isEqualTo -1) exitwith {}; + [{ + if (isNull _unit) exitwith {}; + + private _marker = createMarker [format ["btc_fob_deadBody_%1", _index], _unit]; + _marker setMarkerType "KIA"; + _marker setMarkerSize [0.7, 0.7]; + _unit setVariable ["btc_deadBody_marker", _marker]; + }, [_unit, _index], btc_p_respawn_timeBeforeShowKIA * 60] call CBA_fnc_waitAndExecute; }; }] call CBA_fnc_addEventHandler; ["ace_placedInBodyBag", { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index ca717d645..b63229445 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -8,29 +8,6 @@ if !(isNil "btc_custom_loc") then { }; btc_intro_done = [] spawn btc_fnc_intro; -{ - missionNamespace setVariable [_x, false]; -} forEach [ - "BIS_respSpecAi", // Allow spectating of AI - "BIS_respSpecAllowFreeCamera", // Allow moving the camera independent from units (players) - "BIS_respSpecAllow3PPCamera", // Allow 3rd person camera - "BIS_respSpecShowFocus", // Show info about the selected unit (dissapears behind the respawn UI) - "BIS_respSpecShowCameraButtons", // Show buttons for switching between free camera, 1st and 3rd person view (partially overlayed by respawn UI) - "BIS_respSpecShowControlsHelper", // Show the controls tutorial box - "BIS_respSpecShowHeader", // Top bar of the spectator UI including mission time - "BIS_respSpecLists" // Show list of available units and locations on the left hand side -]; -{ - missionNamespace setVariable [_x, true]; -} forEach [ - "BIS_respSpecAi", // Allow spectating of AI - "BIS_respSpecShowCameraButtons", // Show buttons for switching between free camera, 1st and 3rd person view (partially overlayed by respawn UI) - "BIS_respSpecShowControlsHelper", // Show the controls tutorial box - "BIS_respSpecShowHeader", // Top bar of the spectator UI including mission time - "BIS_respSpecLists" // Show list of available units and locations on the left hand side -]; - - [{!isNull player}, { [] call compileScript ["core\doc.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf index 49bad806b..05fe824c6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf @@ -6,6 +6,18 @@ btc_custom_loc = [ */ ]; +/* + Here you can tweak spectator view during respawn screen. +*/ +BIS_respSpecAi = true; // Allow spectating of AI +BIS_respSpecAllowFreeCamera = false; // Allow moving the camera independent from units (players) +BIS_respSpecAllow3PPCamera = false; // Allow 3rd person camera +BIS_respSpecShowFocus = false; // Show info about the selected unit (dissapears behind the respawn UI) +BIS_respSpecShowCameraButtons = true; // Show buttons for switching between free camera, 1st and 3rd person view (partially overlayed by respawn UI) +BIS_respSpecShowControlsHelper = true; // Show the controls tutorial box +BIS_respSpecShowHeader = true; // Top bar of the spectator UI including mission time +BIS_respSpecLists = true; // Show list of available units and locations on the left hand side + /* Here you can specify which equipment should be added or removed from the arsenal. Please take care that there are different categories (weapons, magazines, items, backpacks) for different pieces of equipment into which you have to classify the classnames. From b26d027d63b294254d59700f32195fbe449cc81e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 21 Jul 2021 21:39:41 +0200 Subject: [PATCH 140/354] Different ticket value for player and AI --- .../core/def/mission.sqf | 4 +- .../core/fnc/common/show_hint.sqf | 6 +++ .../core/fnc/compile.sqf | 1 + .../core/fnc/db/load.sqf | 5 ++- .../core/fnc/db/loadObjectStatus.sqf | 4 +- .../core/fnc/db/save.sqf | 2 +- .../core/fnc/db/saveObjectStatus.sqf | 3 +- .../core/fnc/eh/server.sqf | 3 ++ .../core/fnc/fob/recoverBodyBag.sqf | 18 +++------ .../core/fnc/fob/recoverBodyBag_s.sqf | 39 +++++++++++++++++++ .../define_mod.sqf | 6 +-- 11 files changed, 70 insertions(+), 21 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag_s.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 6a12c6ecd..05bfc4766 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -164,6 +164,7 @@ if (isServer) then { btc_fobs = [[], [], []]; btc_fob_rallypointTimer = 60 * btc_p_rallypointTimer; btc_fob_deadBodyPlayers = []; + btc_respawn_ticketDecimal = 0; publicVariable "btc_respawn_ticketDecimal"; //MIL btc_p_mil_wp_ratios = [_wp_house_probability, (1 - _wp_house_probability) / 1.5 + _wp_house_probability]; @@ -726,4 +727,5 @@ btc_player_type = ["SoldierWB", "SoldierEB", "SoldierGB"] select ([west, east, i btc_door_breaking_time = 60; //Respawn -btc_fob_recoverBodyBag = 1; +btc_fob_ticketPlayerBodyBag = 1; +btc_fob_ticketAIBodyBag = 0.1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf index b80377af3..a7ceb948f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf @@ -115,6 +115,12 @@ private _text = switch (_type) do { [" "] ]; }; + case 22 : { + [ + ["Respawn ticket added"], + [format ["%1 respawn tickets left", _custom]] + ]; + }; }; _text call CBA_fnc_notify; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 10e563d0a..570418c9f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -110,6 +110,7 @@ if (isServer) then { btc_fob_fnc_dismantle_s = compileScript ["core\fnc\fob\dismantle_s.sqf"]; btc_fob_fnc_killed = compileScript ["core\fnc\fob\killed.sqf"]; btc_fob_fnc_rallypointTimer = compileScript ["core\fnc\fob\rallypointTimer.sqf"]; + btc_fob_fnc_recoverBodyBag_s = compileScript ["core\fnc\fob\recoverBodyBag_s.sqf"]; //MIL btc_mil_fnc_addWP = compileScript ["core\fnc\mil\addWP.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 750da9a27..635b89a02 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -210,8 +210,9 @@ private _id = ["ace_tagCreated", { //Player respawn tickets if (btc_p_respawn_ticketsAtStart >= 0) then { - btc_p_respawn_ticketsAtStart = profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], btc_p_respawn_ticketsAtStart]; - + private _ticket = profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], [btc_p_respawn_ticketsAtStart, btc_respawn_ticketDecimal]]; + btc_p_respawn_ticketsAtStart = _ticket select 0; + btc_respawn_ticketDecimal = _ticket select 1; private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); btc_fob_deadBodyPlayers = _deadBodyPlayers apply { _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index a4a37cb6b..0a0d74bbd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -53,13 +53,15 @@ if (unitIsUAV _obj) then { _dogtagDataTaken params [ ["_dogtagData", [], [[]]], - ["_dogtagTaken", false, [false]] + ["_dogtagTaken", false, [false]], + ["_isDeadPlayer", false, [false]] ]; if (_dogtagData isNotEqualTo []) then { _obj setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; if (_dogtagTaken) then { _obj setVariable ["ace_dogtags_dogtagTaken", _obj, true]; }; + _obj setVariable ["btc_isDeadPlayer", _isDeadPlayer]; }; [_obj] call btc_log_fnc_init; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 43e8e481c..8419efa9f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -210,7 +210,7 @@ profileNamespace setVariable [format ["btc_hm_%1_tags", _name], +_tags_propertie //Player respawn tickets if (btc_p_respawn_ticketsAtStart >= 0) then { private _respawnTickets = [btc_player_side] call BIS_fnc_respawnTickets; - profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], _respawnTickets]; + profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], +[_respawnTickets, btc_respawn_ticketDecimal]]; private _deadBodyPlayers = (btc_fob_deadBodyPlayers - [objNull]) apply {[ typeOf _x, diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 17f5d0859..95a0afbb1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -48,7 +48,8 @@ _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); _data pushBack [ _object call ace_dogtags_fnc_getDogtagData, - !isNull (_object getVariable ["ace_dogtags_dogtagTaken", objNull]) + !isNull (_object getVariable ["ace_dogtags_dogtagTaken", objNull]), + _object getVariable ["btc_isDeadPlayer", false] ]; _data diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 18361f0c0..87dfee1c4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -104,5 +104,8 @@ if (btc_p_set_skill) then { ["ace_placedInBodyBag", { params ["_patient", "_bodyBag"]; deleteMarker (_patient getVariable ["btc_deadBody_marker", ""]); + if (_patient getVariable ["btc_dont_delete", false]) then { + _bodyBag setVariable ["btc_isDeadPlayer", true]; + }; [_bodyBag] call btc_log_fnc_init; }] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf index 9499ac779..41189731c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf @@ -6,13 +6,13 @@ Description: Add respawn tickets when a body bag is provided. Parameters: - _object - [Object] + _logistic - [Object] Returns: Examples: (begin example) - _result = [] call btc_fob_fnc_recoverBodyBag; + [cursorObject] call btc_fob_fnc_recoverBodyBag; (end) Author: @@ -21,21 +21,15 @@ Author: ---------------------------------------------------------------------------- */ params [ - ["_object", objNull, [objNull]] + ["_logistic", objNull, [objNull]] ]; -private _array = nearestObjects [_object, ["ACE_bodyBagObject"], 10]; +private _array = nearestObjects [_logistic, ["ACE_bodyBagObject"], 10]; if (_array isEqualTo []) exitWith { [ ["No body bag around"], - [format ["%1 respawn tickets left", [btc_player_side] call BIS_fnc_respawnTickets]] + [format ["%1 respawn tickets left", ([btc_player_side] call BIS_fnc_respawnTickets) + btc_respawn_ticketDecimal]] ] call CBA_fnc_notify; }; -[btc_player_side, btc_fob_recoverBodyBag] call BIS_fnc_respawnTickets; -deleteVehicle (_array select 0); - -[ - ["Respawn ticket added"], - [format ["%1 respawn tickets left", [btc_player_side] call BIS_fnc_respawnTickets]] -] call CBA_fnc_notify; +[_array select 0] remoteExecCall ["btc_fob_fnc_recoverBodyBag_s", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag_s.sqf new file mode 100644 index 000000000..2d5d3e755 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag_s.sqf @@ -0,0 +1,39 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fob_fnc_recoverBodyBag_s + +Description: + Add respawn tickets when a body bag is provided. + +Parameters: + _bodyBag - [Object] + +Returns: + +Examples: + (begin example) + [cursorObject] call btc_fob_fnc_recoverBodyBag_s; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_bodyBag", objNull, [objNull]] +]; + +private _ticket = 0; +if (_bodyBag getVariable ["btc_isDeadPlayer", false]) then { + _ticket = btc_fob_ticketPlayerBodyBag; +} else { + btc_respawn_ticketDecimal = btc_respawn_ticketDecimal + btc_fob_ticketAIBodyBag; +}; +private _ticketValue = [btc_player_side, _ticket + btc_respawn_ticketDecimal] call BIS_fnc_respawnTickets; +btc_respawn_ticketDecimal = btc_respawn_ticketDecimal - floor btc_respawn_ticketDecimal; +publicVariable "btc_respawn_ticketDecimal"; + +deleteVehicle _bodyBag; + +[22, _ticketValue + btc_respawn_ticketDecimal] remoteExecCall ["btc_fnc_show_hint", remoteExecutedOwner]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf index 05fe824c6..3abf6bb1a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf @@ -10,9 +10,9 @@ btc_custom_loc = [ Here you can tweak spectator view during respawn screen. */ BIS_respSpecAi = true; // Allow spectating of AI -BIS_respSpecAllowFreeCamera = false; // Allow moving the camera independent from units (players) -BIS_respSpecAllow3PPCamera = false; // Allow 3rd person camera -BIS_respSpecShowFocus = false; // Show info about the selected unit (dissapears behind the respawn UI) +BIS_respSpecAllowFreeCamera = false; // Allow moving the camera independent from units (players) +BIS_respSpecAllow3PPCamera = false; // Allow 3rd person camera +BIS_respSpecShowFocus = false; // Show info about the selected unit (dissapears behind the respawn UI) BIS_respSpecShowCameraButtons = true; // Show buttons for switching between free camera, 1st and 3rd person view (partially overlayed by respawn UI) BIS_respSpecShowControlsHelper = true; // Show the controls tutorial box BIS_respSpecShowHeader = true; // Top bar of the spectator UI including mission time From 7c9b77f502af682b0511f3423536920350739f98 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 21 Jul 2021 23:09:06 +0200 Subject: [PATCH 141/354] Add spectator view when no tickets are available --- .../core/fnc/db/load.sqf | 3 ++- .../core/fnc/fob/redeployCheck.sqf | 8 -------- .../core/init_player.sqf | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 635b89a02..4799d6f24 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -212,7 +212,8 @@ private _id = ["ace_tagCreated", { if (btc_p_respawn_ticketsAtStart >= 0) then { private _ticket = profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], [btc_p_respawn_ticketsAtStart, btc_respawn_ticketDecimal]]; btc_p_respawn_ticketsAtStart = _ticket select 0; - btc_respawn_ticketDecimal = _ticket select 1; + btc_respawn_ticketDecimal = _ticket select 1; + publicVariable "btc_respawn_ticketDecimal"; private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); btc_fob_deadBodyPlayers = _deadBodyPlayers apply { _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf index fef8c18e1..418e93109 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeployCheck.sqf @@ -34,12 +34,4 @@ if ( false }; -if ( - btc_p_respawn_ticketsAtStart >= 0 && - {([btc_player_side] call BIS_fnc_respawnTickets) <= 0} -) exitWith { - [[localize "STR_BTC_HAM_O_FOB_CANTREDEPLOY"], ["No more respawn tickets"]] call CBA_fnc_notify; - false -}; - true diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index b63229445..e4026827c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -39,6 +39,25 @@ btc_intro_done = [] spawn btc_fnc_intro; }; }; + if ([btc_player_side] call BIS_fnc_respawnTickets isEqualTo 0) then { + [ + {scriptDone btc_intro_done}, + BIS_fnc_EGSpectator, + ["Initialize", [ + player, + [btc_player_side], + BIS_respSpecAi, + BIS_respSpecAllowFreeCamera, + BIS_respSpecAllow3PPCamera, + BIS_respSpecShowFocus, + BIS_respSpecShowCameraButtons, + BIS_respSpecShowControlsHelper, + BIS_respSpecShowHeader, + BIS_respSpecLists] + ] + ] call CBA_fnc_waitUntilAndExecute; + }; + if (btc_debug) then { onMapSingleClick "vehicle player setPos _pos"; player allowDamage false; From 7db08d98b2177ca3e2d3c8957b2d4dcb4a22b110 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 23 Jul 2021 21:59:03 +0200 Subject: [PATCH 142/354] Add support for loaded bodybag --- .../core/fnc/db/loadcargo.sqf | 18 +++++++++++++++++- .../core/fnc/db/saveObjectStatus.sqf | 7 ++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index 4e442b291..87d2d220d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -27,7 +27,10 @@ Author: //handle cargo { - _x params ["_type", "_magClass", "_inventory", ["_isContaminated", false, [false]]]; + _x params ["_type", "_magClass", "_inventory", + ["_isContaminated", false, [false]], + ["_dogtagDataTaken", [], [[]]] + ]; private _l = createVehicle [_type, getPosATL _obj, [], 0, "CAN_COLLIDE"]; [_l] call btc_log_fnc_init; @@ -46,6 +49,19 @@ Author: btc_chem_contaminated pushBack _l; publicVariable "btc_chem_contaminated"; }; + + _dogtagDataTaken params [ + ["_dogtagData", [], [[]]], + ["_dogtagTaken", false, [false]], + ["_isDeadPlayer", false, [false]] + ]; + if (_dogtagData isNotEqualTo []) then { + _l setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; + if (_dogtagTaken) then { + _l setVariable ["ace_dogtags_dogtagTaken", _l, true]; + }; + _l setVariable ["btc_isDeadPlayer", _isDeadPlayer]; + }; } forEach _cargo; //set inventory content for weapons, magazines and items diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 95a0afbb1..6f4ed4925 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -38,7 +38,12 @@ private _cargo = (_object getVariable ["ace_cargo_loaded", []]) apply { typeOf _x, _x getVariable ["ace_rearm_magazineClass", ""], _x call btc_log_fnc_inventoryGet, - _x in btc_chem_contaminated + _x in btc_chem_contaminated, + [ + _x call ace_dogtags_fnc_getDogtagData, + !isNull (_x getVariable ["ace_dogtags_dogtagTaken", objNull]), + _x getVariable ["btc_isDeadPlayer", false] + ] ] }; }; From 9d9f41a4003551e2848f14db0955789db272737b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 23 Jul 2021 22:22:12 +0200 Subject: [PATCH 143/354] Do not allow copy and paste of body bag --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf index 5921ba628..26bc0af9e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf @@ -34,6 +34,10 @@ btc_int_ask_data = nil; [9, _objects select 0] remoteExecCall ["btc_int_fnc_ask_var", 2]; [{!(isNil "btc_int_ask_data")}, { + if ("ACE_bodyBagObject" in flatten btc_int_ask_data) exitWith { + ("You can't copy body bag") call CBA_fnc_notify; + }; + btc_copy_container = +btc_int_ask_data; (localize "STR_BTC_HAM_O_COPY_SUCCSESS") call CBA_fnc_notify; From bd9e78db41019f07d3f328cf5b6582bba79b399e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 24 Jul 2021 13:11:04 +0200 Subject: [PATCH 144/354] Spawn corpse accuratly after game restart --- .../core/fnc/db/load.sqf | 14 ++++++++++---- .../core/fnc/eh/server.sqf | 3 ++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 4799d6f24..5b5af63df 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -217,8 +217,7 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); btc_fob_deadBodyPlayers = _deadBodyPlayers apply { _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated"]; - private _body = createAgent [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; - _body setDir _dir; + private _body = createVehicle [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; _body setUnitLoadout _loadout; _body setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; if (_dogtagTaken) then { @@ -232,9 +231,16 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { _body setDamage 1; _body setVariable ["btc_dont_delete", true]; - private _marker = createMarker [format ["btc_fob_deadBody_%1", _body], _body]; + [{ + params ["_body", "_dir", "_pos"]; + _body setDir _dir; + _body setPosASL _pos; + }, [_body, _dir, _pos], 2] call CBA_fnc_waitAndExecute; + + private _marker = createMarker [format ["btc_fob_deadBody_%1", _body], _pos]; _marker setMarkerType "KIA"; - _marker setMarkerSize [0.7, 0.7]; + _marker setMarkerSize [0.6, 0.6]; + _marker setMarkerAlpha 0.8; _body setVariable ["btc_deadBody_marker", _marker]; _body }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 87dfee1c4..e9ff662cd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -96,7 +96,8 @@ if (btc_p_set_skill) then { private _marker = createMarker [format ["btc_fob_deadBody_%1", _index], _unit]; _marker setMarkerType "KIA"; - _marker setMarkerSize [0.7, 0.7]; + _marker setMarkerSize [0.6, 0.6]; + _marker setMarkerAlpha 0.8; _unit setVariable ["btc_deadBody_marker", _marker]; }, [_unit, _index], btc_p_respawn_timeBeforeShowKIA * 60] call CBA_fnc_waitAndExecute; }; From bff1a07bc7c8a6625e13d481028cd97264e97706 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 24 Jul 2021 14:39:40 +0200 Subject: [PATCH 145/354] Fix can't interacte with dead agent --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 5b5af63df..6f7af4dd4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -215,9 +215,10 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { btc_respawn_ticketDecimal = _ticket select 1; publicVariable "btc_respawn_ticketDecimal"; private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); + private _group = createGroup btc_player_side; btc_fob_deadBodyPlayers = _deadBodyPlayers apply { _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated"]; - private _body = createVehicle [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; + private _body = _group createUnit [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; _body setUnitLoadout _loadout; _body setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; if (_dogtagTaken) then { @@ -244,6 +245,7 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { _body setVariable ["btc_deadBody_marker", _marker]; _body }; + deleteGroup _group; }; //Player Markers From ff49dabfeb3cdf185aa181c79f9d7dca7bab41b7 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 24 Jul 2021 18:51:27 +0200 Subject: [PATCH 146/354] tweak marker size --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 6f7af4dd4..50781072c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -240,8 +240,8 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { private _marker = createMarker [format ["btc_fob_deadBody_%1", _body], _pos]; _marker setMarkerType "KIA"; - _marker setMarkerSize [0.6, 0.6]; - _marker setMarkerAlpha 0.8; + _marker setMarkerSize [0.5, 0.5]; + _marker setMarkerAlpha 0.5; _body setVariable ["btc_deadBody_marker", _marker]; _body }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index e9ff662cd..adaa990b3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -96,8 +96,8 @@ if (btc_p_set_skill) then { private _marker = createMarker [format ["btc_fob_deadBody_%1", _index], _unit]; _marker setMarkerType "KIA"; - _marker setMarkerSize [0.6, 0.6]; - _marker setMarkerAlpha 0.8; + _marker setMarkerSize [0.5, 0.5]; + _marker setMarkerAlpha 0.5; _unit setVariable ["btc_deadBody_marker", _marker]; }, [_unit, _index], btc_p_respawn_timeBeforeShowKIA * 60] call CBA_fnc_waitAndExecute; }; From 9320703d70f731ba1c66a88f70906867e04608fb Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Jul 2021 09:29:36 +0200 Subject: [PATCH 147/354] Add flag to vehicle --- .../core/fnc/veh/init.sqf | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index 511f0932c..f77b0216d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -39,6 +39,22 @@ switch true do { [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; + + _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa", { + private _texture = switch (assignedTeam player) do { + case "RED": {"\A3\Data_F\Flags\flag_red_CO.paa"}; + case "GREEN": {"\A3\Data_F\Flags\flag_green_CO.paa"}; + case "BLUE": {"\A3\Data_F\Flags\flag_blue_CO.paa"}; + case "YELLOW": {"#(argb,8,8,3)color(0.9,0.9,0,1)"}; + default {"\A3\Data_F\Flags\flag_NATO_CO.paa"}; + }; + _target forceFlagTexture _texture; + }, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + _action = ["Cut_flag", "Cut_flag", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", { + _target forceFlagTexture ""; + }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; }; case (_type isKindOf "Helicopter") : { private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; @@ -48,5 +64,22 @@ switch true do { [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; _action = ["Cut_ropes", localize "STR_ACE_Fastroping_Interaction_cutRopes", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", {[] call btc_lift_fnc_destroyRopes;}, {btc_ropes_deployed && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + + + _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa", { + private _texture = switch (assignedTeam player) do { + case "RED": {"\A3\Data_F\Flags\flag_red_CO.paa"}; + case "GREEN": {"\A3\Data_F\Flags\flag_green_CO.paa"}; + case "BLUE": {"\A3\Data_F\Flags\flag_blue_CO.paa"}; + case "YELLOW": {"#(argb,8,8,3)color(0.9,0.9,0,1)"}; + default {"\A3\Data_F\Flags\flag_NATO_CO.paa"}; + }; + _target forceFlagTexture _texture; + }, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + _action = ["Cut_flag", "Cut_flag", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", { + _target forceFlagTexture ""; + }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; }; }; From 9877a0dbe97653ff81da918916b5736d007a7b45 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Jul 2021 11:18:37 +0200 Subject: [PATCH 148/354] Add flag to player and vehicle --- .../core/def/mission.sqf | 10 ++++ .../core/fnc/compile.sqf | 3 ++ .../core/fnc/flag/deploy.sqf | 40 +++++++++++++++ .../core/fnc/int/add_actions.sqf | 10 ++++ .../core/fnc/veh/init.sqf | 49 +++++++------------ 5 files changed, 81 insertions(+), 31 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/deploy.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index cb7e88932..94eb1c507 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -92,6 +92,7 @@ btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { } else { format ["[thisList, %1] call btc_city_fnc_trigger_free_condition", _p_city_free_trigger] }; +btc_p_flag = 2; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; @@ -721,3 +722,12 @@ btc_player_type = ["SoldierWB", "SoldierEB", "SoldierGB"] select ([west, east, i //Door btc_door_breaking_time = 60; + +//Flag +btc_flag_textures = [ + "\A3\Data_F\Flags\flag_red_CO.paa", + "\A3\Data_F\Flags\flag_green_CO.paa", + "\A3\Data_F\Flags\flag_blue_CO.paa", + '#(argb,8,8,3)color(0.9,0.9,0,1)', + "\A3\Data_F\Flags\flag_NATO_CO.paa" +]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 664acb25d..5cbb92e03 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -310,6 +310,9 @@ if (!isDedicated) then { btc_eh_fnc_CuratorObjectPlaced = compileScript ["core\fnc\eh\CuratorObjectPlaced.sqf"]; btc_eh_fnc_player = compileScript ["core\fnc\eh\player.sqf"]; + //FLAG + btc_flag_fnc_deploy = compileScript ["core\fnc\flag\deploy.sqf"]; + //FOB btc_fob_fnc_create = compileScript ["core\fnc\fob\create.sqf"]; btc_fob_fnc_rallypointAssemble = compileScript ["core\fnc\fob\rallypointAssemble.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/deploy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/deploy.sqf new file mode 100644 index 000000000..8e4f41767 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/deploy.sqf @@ -0,0 +1,40 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_flag_fnc_deploy + +Description: + Create actions with all flag from btc_flag_textures. + +Parameters: + _target - Is the object being interacted with. [Object] + _player - Is ace_player. [Object] + _params - Is the optional action parameters. (default []) + +Returns: + _actions - ACE action generated for redeploy. [Boolean] + +Examples: + (begin example) + [] call btc_flag_fnc_deploy; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + "_target", + "_player", + "_params" +]; + +private _childStatement = { + params ["_target", "", "_params"]; + _target forceFlagTexture _params; +}; + +btc_flag_textures apply { + private _action = ["btc_flag" + _x, "", _x, _childStatement, {true}, {}, _x] call ace_interact_menu_fnc_createAction; + [_action, [], _target] +} diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 6dc3bceab..05650ef98 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -208,3 +208,13 @@ _action = ["door_break", localize "STR_BTC_HAM_ACTION_DOOR_BREAK", "\A3\Ui_f\dat [btc_door_fnc_break] call CBA_fnc_execNextFrame; }, {"ACE_wirecutter" in items player}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject; + +//Flag +if (btc_p_flag > 1) then { + private _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; + [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject; + _action = ["Cut_flag", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _target forceFlagTexture ""; + }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; + [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject; +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index f77b0216d..3939dd578 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -40,21 +40,14 @@ switch true do { _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa", { - private _texture = switch (assignedTeam player) do { - case "RED": {"\A3\Data_F\Flags\flag_red_CO.paa"}; - case "GREEN": {"\A3\Data_F\Flags\flag_green_CO.paa"}; - case "BLUE": {"\A3\Data_F\Flags\flag_blue_CO.paa"}; - case "YELLOW": {"#(argb,8,8,3)color(0.9,0.9,0,1)"}; - default {"\A3\Data_F\Flags\flag_NATO_CO.paa"}; - }; - _target forceFlagTexture _texture; - }, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - _action = ["Cut_flag", "Cut_flag", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", { - _target forceFlagTexture ""; - }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + if (btc_p_flag > 0) then { + private _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + _action = ["Cut_flag", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _target forceFlagTexture ""; + }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + }; }; case (_type isKindOf "Helicopter") : { private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; @@ -65,21 +58,15 @@ switch true do { _action = ["Cut_ropes", localize "STR_ACE_Fastroping_Interaction_cutRopes", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", {[] call btc_lift_fnc_destroyRopes;}, {btc_ropes_deployed && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - - _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa", { - private _texture = switch (assignedTeam player) do { - case "RED": {"\A3\Data_F\Flags\flag_red_CO.paa"}; - case "GREEN": {"\A3\Data_F\Flags\flag_green_CO.paa"}; - case "BLUE": {"\A3\Data_F\Flags\flag_blue_CO.paa"}; - case "YELLOW": {"#(argb,8,8,3)color(0.9,0.9,0,1)"}; - default {"\A3\Data_F\Flags\flag_NATO_CO.paa"}; - }; - _target forceFlagTexture _texture; - }, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - _action = ["Cut_flag", "Cut_flag", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", { - _target forceFlagTexture ""; - }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + if (btc_p_flag > 0) then { + private _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + _action = ["Cut_flag", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _target forceFlagTexture ""; + }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + }; }; }; + + From d4ab1dbb7c7caf64f8475b0d33b63e6e18a35e41 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Jul 2021 12:25:41 +0200 Subject: [PATCH 149/354] Rename action --- .../core/fnc/flag/deploy.sqf | 2 +- .../core/fnc/int/add_actions.sqf | 6 +-- .../core/fnc/veh/init.sqf | 44 ++++++++++++------- 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/deploy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/deploy.sqf index 8e4f41767..f4cd3ae44 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/deploy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/deploy.sqf @@ -30,7 +30,7 @@ params [ ]; private _childStatement = { - params ["_target", "", "_params"]; + params ["_target", "_player", "_params"]; _target forceFlagTexture _params; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 05650ef98..4478204d6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -211,10 +211,10 @@ _action = ["door_break", localize "STR_BTC_HAM_ACTION_DOOR_BREAK", "\A3\Ui_f\dat //Flag if (btc_p_flag > 1) then { - private _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; + private _action = ["btc_flag_deployPlayer", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, {getForcedFlagTexture _target isEqualTo ""}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject; - _action = ["Cut_flag", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _action = ["btc_flag_cutPlayer", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { _target forceFlagTexture ""; - }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; + }, {getForcedFlagTexture _target isNotEqualTo ""}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index 3939dd578..1552088c6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -40,14 +40,20 @@ switch true do { _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - if (btc_p_flag > 0) then { - private _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - _action = ["Cut_flag", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { - _target forceFlagTexture ""; - }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - }; + private _action = ["btc_flag_deployVeh", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { + btc_p_flag > 0 && + {getForcedFlagTexture _target isEqualTo ""} && + {(driver vehicle player) isEqualTo player} + }, {_this call btc_flag_fnc_deploy}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + _action = ["btc_flag_cutVeh", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _target forceFlagTexture ""; + }, { + btc_p_flag > 0 && + {getForcedFlagTexture _target isNotEqualTo ""} && + {(driver vehicle player) isEqualTo player} + }] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; }; case (_type isKindOf "Helicopter") : { private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; @@ -58,14 +64,20 @@ switch true do { _action = ["Cut_ropes", localize "STR_ACE_Fastroping_Interaction_cutRopes", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", {[] call btc_lift_fnc_destroyRopes;}, {btc_ropes_deployed && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - if (btc_p_flag > 0) then { - private _action = ["Deploy_flag", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, {(getForcedFlagTexture _target isEqualTo "") && {(driver vehicle player) isEqualTo player}}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - _action = ["Cut_flag", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { - _target forceFlagTexture ""; - }, {(getForcedFlagTexture _target isNotEqualTo "") && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - }; + private _action = ["btc_flag_deployVeh", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { + btc_p_flag > 0 && + {getForcedFlagTexture _target isEqualTo ""} && + {(driver vehicle player) isEqualTo player} + }, {_this call btc_flag_fnc_deploy}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + _action = ["btc_flag_cutVeh", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _target forceFlagTexture ""; + }, { + btc_p_flag > 0 && + {getForcedFlagTexture _target isNotEqualTo ""} && + {(driver vehicle player) isEqualTo player} + }] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; }; }; From d6581521be0e365610003206a95c0d271a33fce9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Jul 2021 12:43:16 +0200 Subject: [PATCH 150/354] Add persistancy --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 5 +++-- .../core/fnc/db/loadObjectStatus.sqf | 6 +++++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 5 ++++- .../core/fnc/db/saveObjectStatus.sqf | 1 + .../core/fnc/log/createVehicle.sqf | 7 ++++++- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index d5dfbbb12..1dffe4924 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -156,14 +156,15 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] ["_supplyVehicle", [], [[]]], ["_EDENinventory", [], [[]]], ["_vectorPos", [], [[]]], - ["_ViV", [], [[]]] + ["_ViV", [], [[]]], + ["_flagTexture", "", [""]] ]; if (btc_debug_log) then { [format ["_veh = %1", _x], __FILE__, [false]] call btc_debug_fnc_message; }; - private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory, _veh_AllHitPointsDamage] call btc_log_fnc_createVehicle; + private _veh = [_veh_type, _veh_pos, _veh_dir, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle, _EDENinventory, _veh_AllHitPointsDamage, _flagTexture] call btc_log_fnc_createVehicle; _veh setVectorDirAndUp _vectorPos; _veh setFuel _veh_fuel; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index eb049954d..42b9dc2c7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -31,7 +31,8 @@ _object_data params [ "_cargo", "_inventory", "_vectorPos", - ["_isContaminated", false, [false]] + ["_isContaminated", false, [false]], + ["_flagTexture", "", [""]] ]; private _obj = createVehicle [_type, ASLToATL _pos, [], 0, "CAN_COLLIDE"]; @@ -49,6 +50,9 @@ if (_magClass isNotEqualTo "") then {_obj setVariable ["ace_rearm_magazineClass" if (unitIsUAV _obj) then { createVehicleCrew _obj; }; +if (_flagTexture isNotEqualTo "") then { + _obj forceFlagTexture _flagTexture; +}; [_obj] call btc_log_fnc_init; [_obj, _cargo, _inventory] call btc_db_fnc_loadCargo; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 69850b2ae..076807a16 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -139,7 +139,9 @@ private _vehiclesNotInCargo = _vehicles select { }; private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; { - (_x call btc_db_fnc_saveObjectStatus) params ["_type", "_pos", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated"]; + (_x call btc_db_fnc_saveObjectStatus) params ["_type", "_pos", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated", + ["_flagTexture", "", [""]] + ]; private _data = []; _data pushBack _type; @@ -153,6 +155,7 @@ private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; _data pushBack (_x getVariable ["btc_EDENinventory", []]); _data pushBack _vectorPos; _data pushBack []; // ViV + _data pushBack _flagTexture; private _fakeViV = isVehicleCargo attachedTo _x; if ( diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 6cb5b7ccd..e87d91fc2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -46,5 +46,6 @@ _data pushBack _cargo; _data pushBack (_object call btc_log_fnc_inventoryGet); _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); +_data pushBack (getForcedFlagTexture _object); _data diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 4468dff8d..116c987b6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -43,7 +43,8 @@ params [ ["_isContaminated", false, [false]], ["_supplyVehicle", [], [[]]], ["_EDENinventory", [], [[]]], - ["_allHitPointsDamage", [], [[]]] + ["_allHitPointsDamage", [], [[]]], + ["_flagTexture", "", [""]] ]; private _veh = createVehicle [_type, ASLToATL _pos, [], 0, "CAN_COLLIDE"]; @@ -71,6 +72,10 @@ if (_allHitPointsDamage isNotEqualTo []) then { }; }; +if (_flagTexture isNotEqualTo "") then { + _veh forceFlagTexture _flagTexture; +}; + _veh call btc_db_fnc_add_veh; _veh From 9c0541b043af3564334d400c92b195a0f8d4b56e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 27 Jul 2021 22:11:22 +0200 Subject: [PATCH 151/354] tweak marker size --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 6 +++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 6f7af4dd4..0d7d08900 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -236,12 +236,12 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { params ["_body", "_dir", "_pos"]; _body setDir _dir; _body setPosASL _pos; - }, [_body, _dir, _pos], 2] call CBA_fnc_waitAndExecute; + }, [_body, _dir, _pos], 3] call CBA_fnc_waitAndExecute; private _marker = createMarker [format ["btc_fob_deadBody_%1", _body], _pos]; _marker setMarkerType "KIA"; - _marker setMarkerSize [0.6, 0.6]; - _marker setMarkerAlpha 0.8; + _marker setMarkerSize [0.5, 0.5]; + _marker setMarkerAlpha 0.5; _body setVariable ["btc_deadBody_marker", _marker]; _body }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index e9ff662cd..adaa990b3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -96,8 +96,8 @@ if (btc_p_set_skill) then { private _marker = createMarker [format ["btc_fob_deadBody_%1", _index], _unit]; _marker setMarkerType "KIA"; - _marker setMarkerSize [0.6, 0.6]; - _marker setMarkerAlpha 0.8; + _marker setMarkerSize [0.5, 0.5]; + _marker setMarkerAlpha 0.5; _unit setVariable ["btc_deadBody_marker", _marker]; }, [_unit, _index], btc_p_respawn_timeBeforeShowKIA * 60] call CBA_fnc_waitAndExecute; }; From 3ab4479f2562f9d34ea863573e0478e72a1902b3 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 29 Jul 2021 21:32:33 +0200 Subject: [PATCH 152/354] _wp_ratios is not define anymore --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 518f7b7a8..aa0d6674c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -100,7 +100,7 @@ for "_i" from 1 to _numberOfGroup do { }; if (btc_debug_log) then { - [format ["_this = %1 ; POS %2 UNITS N %3 _wp_ratios %4", _this, _pos, _n, _wp_ratios], __FILE__, [false]] call btc_debug_fnc_message; + [format ["_this = %1 ; POS %2 UNITS N %3", _this, _pos, _n], __FILE__, [false]] call btc_debug_fnc_message; }; _groups From ef1964f2a7a0746b3d7cb41a2c1a475e9a3f2019 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 30 Jul 2021 20:36:42 +0800 Subject: [PATCH 153/354] Chinesesimp translation for #1112 & 1130 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 0bcd51fd3..d9c8bbd42 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -248,7 +248,7 @@ <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Chemical agent:</marker><br/> A chemical agent can be found in the battlefield at cache location for example. When an object is contaminated, the chemical agent propagates to people around (in a circle of 3m). Those people will be hurt constantly and get pain until they died or found a decontaminating shower (available at the logistic point) to clean up their body. When they are contaminated, they can propagate it to other people around (in a circle of 2m) or vehicle if they get inside. Keep in mind, dead body stay contaminated but body bag will isolate it. Also, a contaminated object loaded as cargo will contaminate the container or vehicle. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/> Use CBRN gear (uniform, respirator mask and breather backpack) for full protection from the contamination effect. But, don't forget to take a shower for more than 5s before removing your CBRN gear. Be aware, even with a CBRN equipment you can propagate the agent to people or vehicle, you are just protected from the effect. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> Simple mask and simple uniform can reduce from 65% to 80% the probability to take damage. The pain from breathing while contaminated can be avoid with a simple mask. <img image='\A3\Data_F_Orange\Images\Respirator_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Decontaminate:</marker><br/> You can use a small shower to decontaminate units only. Use the big shower for objects, vehicles and objects loaded as cargo. To activate them, just stay under the shower. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Detection:</marker><br/> You can analyze an object, vehicle or man with ED-1E drone to determine if it is contaminated (Note: The drone will never be contaminated.). You can also check if you are in a contaminated area by using a chemical detector (THREAT from 0.1 to 0.9: contaminated objects are around, THREAT at 1: you are in the propagating range (you will be contaminated)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Chemische Wirk- bzw. Kampfstoffe:</marker><br/> Chemische Wirk- bzw. Kampfstoffe werden immer mal wieder im Einsatz, zum Beispiel bei den Waffenkisten, gefunden. Wenn ein Objekt kontaminiert ist, dann verbreitet sich der chemische Wirkstoff auf Personen in der näheren Umgebung (in ein Umkreis von ca. 3m). Personen, welche sich ungeschützt einem solchen Objekt nähern, werden kontaminiert und erleiden Schaden, bis Sie sterben. Man kann sich mir Hilfe einer Dekontaminationsdusche (am Logistikpunkt erhältlich) von diesem Effekt befreien. Die Kontaminierung von Personen kann untereinander weitergegeben werden, wenn man nicht aufpasst (in einem Umkreis von ca. 2m). Das gilt auch für die Innenräume von Fahrzeugen. Denken Sie daran, dass Leichen kontaminiert bleiben, die Leichensäcke diese jedoch isolieren. Kontaminierte Objekte können beim Verladen auch den Container und das Fahrzeug verseuchen. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Schutz:</marker><br/> Verwenden Sie CBRN-Ausrüstung (auch ABC-Ausrüstung genannt, bestehend aus Uniform, Maske und Atemgerät), um sich vor Kontamination zu schützen. Vor dem ablegen der CBRN-Ausrüstung ist es wichtig, mindestens 5 Sekunden zu duschen, um sämtliche Verseuchungen zu entfernen. Beachten Sie, dass die CBRN-Ausrüstung nur Sie selbst vor den chemischen Kampfstoffen schütz. Sie können weiterhin andere Personen und Fahrzeuge kontaminieren. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Dekontaminierung:</marker><br/> Mit der kleinen Dekontaminationsdusche können Sie nur Personen dekontaminieren. Verwenden Sie die große Dusche für Objekte, Fahrzeuge und den Ladenraum von Fahrzeugen (oder Containern). Um die Duschen zu aktivieren, stellen Sie sich einfach darunter. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Erkennung:</marker><br/> Sie können ein Objekt, Fahrzeug oder eine Person mit einer ED-1E-Drohne analysieren, um festzustellen, ob es kontaminiert ist (Hinweis: Die Drohne wird niemals von einer Kontamination betroffen sein). Ebenso können Sie einen Chemischen Detektor nutzen um feststellen wie stark der nähere Bereich um Sie herum kontaminiert ist. (THREAT von 0.1 bis 0.9: kontaminierte Gegenstände sind in der Nähe, THREAT von 1: Sie befinden sich in einen verseuchten Bereich (Sie sind somit selbst kontaminiert)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>化学试剂:</marker><br/> 化学试剂会在战场上的武器箱等位置出现。当一个物体受到污染时, 这种化学试剂会传播它到周围的人身上(3米范围内)。这些人将持续受到伤害直至死亡, 或找到一个净化淋浴(位于在后勤点)来清理他们的身体。当这些人受到污染时, 他们会将污染传播给周围的其他人(2米范围内)或车辆(如果他们进入车辆的话)。记住, 尸体将保持受到污染的状态, 但尸体袋可以将其隔离。此外, 作为货物装载受污染物体将会污染集装箱或车辆。<img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/><br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>防护措施:</marker><br/> 使用CBRN(生化核辐)装备(服装、口罩、面具和呼吸器背包)可以保护您完全免受污染影响。但是, 在取下CBRN装备之前, 不要忘记进行至少5秒的净化淋浴。请注意, 即使穿戴了CBRN装备, 您也会向人员或车辆传播化学试剂, 只有你免受污染影响。普通的面具和制服会将受到伤害的可能性减免60%至80%。<img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>清除污染:</marker><br/> 小型淋浴器只能用来净化单兵单位。使用大型淋浴器来清洗物品、车辆和货物。要激活净化过程, 只需待在淋浴下即可。<img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/><br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>检测:</marker><br/> 你可以使用 ED-1E 无人机分析物体、车辆或人, 以测定其是否受到污染(注: 该无人机永远不会受到污染)。您也可以使用化学探测器检测您是否处于污染区域内(威胁度介于0.1至0.9之间: 附近存在受污染物体, 威胁度等于1: 您处于传播区域内(您将受到污染))。<img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>化学试剂:</marker><br/> 化学试剂会在战场上的武器箱等位置出现。当一个物体受到污染时, 这种化学试剂会传播它到周围的人身上(3米范围内)。感染者将持续受到伤害并感到疼痛,直至死亡,或找到一个净化淋浴(位于在后勤点)来清理他们的身体。当这些人受到污染时, 他们会将污染传播给周围的其他人(2米范围内)或车辆(如果他们进入车辆的话)。记住, 尸体将保持受到污染的状态, 但尸体袋可以将其隔离。此外, 作为货物装载受污染物体将会污染集装箱或车辆。<img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/><br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>防护措施:</marker><br/> 使用CBRN(生化核辐)装备(服装、口罩、面具和呼吸器背包)可以保护您完全免受污染影响。但是, 在取下CBRN装备之前, 不要忘记进行至少5秒的净化淋浴。请注意, 即使穿戴了CBRN装备, 您也会向人员或车辆传播化学试剂, 只有你免受污染影响。普通的面具和制服会将受到伤害的可能性减免60%至80%。<img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>清除污染:</marker><br/> 小型淋浴器只能用来净化单兵单位。使用大型淋浴器来清洗物品、车辆和货物。要激活净化过程, 只需待在淋浴下即可。<img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/><br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>检测:</marker><br/> 你可以使用 ED-1E 无人机分析物体、车辆或人, 以测定其是否受到污染(注: 该无人机永远不会受到污染)。您也可以使用化学探测器检测您是否处于污染区域内(威胁度介于0.1至0.9之间: 附近存在受污染物体, 威胁度等于1: 您处于传播区域内(您将受到污染))。<img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Agent chimique:</marker><br/> Un agent chimique peut être trouvé sur le champ de bataille à l'emplacement d'une cache d'arme, par exemple. Lorsqu'un objet est contaminé, l'agent chimique se propage aux personnes autour (dans un cercle de 3 m). Ces personnes seront constamment blessées jusqu'à ce qu'elles meurent ou trouvent une douche décontaminante (disponible au point logistique) pour nettoyer leur corps. Lorsqu'ils sont contaminés, ils peuvent le propager à d'autres personnes autour (dans un cercle de 2 m) ou à un véhicule s'ils pénètrent à l'intérieur. Gardez à l'esprit que les cadavres restent contaminés, mais le sac mortuaire l'isolera. De plus, un objet contaminé placé dans la cargaison d'un conteneur ou d'un véhicule le contaminera. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/> Utilisez un équipement CBRN (uniforme, masque respiratoire et sac à dos) pour une protection complète contre l'effet de contamination. Mais n'oubliez pas de prendre une douche pendant plus de 5 secondes avant de retirer votre équipement CBRN. Sachez que même avec un équipement CBRN, vous pouvez propager l'agent à des personnes ou à un véhicule, vous êtes simplement protégé de l'effet. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> Un masque simple et un uniforme simple peuvent réduire de 65% à 80% la probabilité de subir des dommages.<img image='\A3\Data_F_Orange\Images\Respirator_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Décontaminer:</marker><br/> Vous pouvez utiliser une petite douche uniquement pour décontaminer les unités. Utilisez la grande douche pour les objets, les véhicules et les objets chargés comme cargaison. Pour les activer, il suffit de rester sous la douche. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Détection:</marker><br/> Vous pouvez analyser un objet, un véhicule ou un homme avec un drone ED-1E pour déterminer s'il est contaminé (Remarque: le drone ne sera jamais contaminé.). Vous pouvez également vérifier si vous vous trouvez dans une zone contaminée en utilisant un détecteur chimique (THREAT de 0,1 à 0,9: les objets contaminés sont aux alentours, THREAT à 1: vous êtes dans la plage de propagation (vous serez contaminé)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> @@ -1440,7 +1440,7 @@ Load contaminated objects in containers. Move the container or objects inside a big shower. Note: you can load this container inside a vehicle and move the vehicle under the shower. This clean up the vehicle, crew and cargo. Verladen Sie kontaminierte Objekte in einen Container und bringen Sie diesen zu einer großen Dusche. Hinweis: Sie können den Container in ein Fahrzeug laden und das ganze Fahrzeug unter die Dusche stellen. Dies dekontaminiert das Fahrzeug, die Insassen und die Ladung. - 将受污染物体装载至集装箱中。将集装箱或受污染物体移动到大型淋浴器下。注: 你可以将集装箱装载至载具, 再讲载具移动到淋浴器下。这将会净化载具、成员和货物。 + 将受污染物体装载至集装箱中。将集装箱或受污染物体移动到大型淋浴器下。注: 你可以将集装箱装载至载具, 再将载具移动到淋浴器下。这将一并净化载具、成员和货物。 Chargez les objets contaminés dans des conteneurs. Déplacez le contenant ou les objets dans une grande douche. Remarque: vous pouvez charger ce conteneur à l'intérieur d'un véhicule et déplacer le véhicule sous la douche. Cela nettoie le véhicule, l'équipage et la cargaison. @@ -1491,15 +1491,19 @@ Contaminate civilians in %1 + %1 地区的平民受到感染 Civilians get contaminated by a chemical agent around %1. They are requesting your help to decontaminate those civilans with a little shower. To locate civilians go to the subtask, follow red blood drop and use your chemical detector. + %1 附近的平民感染了一种化学试剂。平民请求您使用小型淋浴器来净化受感染的村民。要确定平民的位置,请查看次级任务,跟随红色的血滴并使用化学探测器。 Decontaminate this civilian + 净化这名平民 Search and decontaminate this civilian. Follow red blood drop and use your chemical detector. + 搜寻并净化这名平民。跟随红色的血滴并使用化学探测器。 From 00c664c24c865c58cd7e4ccda99071c28cc175a6 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Fri, 30 Jul 2021 20:36:42 +0800 Subject: [PATCH 154/354] Chinesesimp translation for #1112 & #1130 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 0bcd51fd3..d9c8bbd42 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -248,7 +248,7 @@ <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Chemical agent:</marker><br/> A chemical agent can be found in the battlefield at cache location for example. When an object is contaminated, the chemical agent propagates to people around (in a circle of 3m). Those people will be hurt constantly and get pain until they died or found a decontaminating shower (available at the logistic point) to clean up their body. When they are contaminated, they can propagate it to other people around (in a circle of 2m) or vehicle if they get inside. Keep in mind, dead body stay contaminated but body bag will isolate it. Also, a contaminated object loaded as cargo will contaminate the container or vehicle. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/> Use CBRN gear (uniform, respirator mask and breather backpack) for full protection from the contamination effect. But, don't forget to take a shower for more than 5s before removing your CBRN gear. Be aware, even with a CBRN equipment you can propagate the agent to people or vehicle, you are just protected from the effect. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> Simple mask and simple uniform can reduce from 65% to 80% the probability to take damage. The pain from breathing while contaminated can be avoid with a simple mask. <img image='\A3\Data_F_Orange\Images\Respirator_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Decontaminate:</marker><br/> You can use a small shower to decontaminate units only. Use the big shower for objects, vehicles and objects loaded as cargo. To activate them, just stay under the shower. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Detection:</marker><br/> You can analyze an object, vehicle or man with ED-1E drone to determine if it is contaminated (Note: The drone will never be contaminated.). You can also check if you are in a contaminated area by using a chemical detector (THREAT from 0.1 to 0.9: contaminated objects are around, THREAT at 1: you are in the propagating range (you will be contaminated)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Chemische Wirk- bzw. Kampfstoffe:</marker><br/> Chemische Wirk- bzw. Kampfstoffe werden immer mal wieder im Einsatz, zum Beispiel bei den Waffenkisten, gefunden. Wenn ein Objekt kontaminiert ist, dann verbreitet sich der chemische Wirkstoff auf Personen in der näheren Umgebung (in ein Umkreis von ca. 3m). Personen, welche sich ungeschützt einem solchen Objekt nähern, werden kontaminiert und erleiden Schaden, bis Sie sterben. Man kann sich mir Hilfe einer Dekontaminationsdusche (am Logistikpunkt erhältlich) von diesem Effekt befreien. Die Kontaminierung von Personen kann untereinander weitergegeben werden, wenn man nicht aufpasst (in einem Umkreis von ca. 2m). Das gilt auch für die Innenräume von Fahrzeugen. Denken Sie daran, dass Leichen kontaminiert bleiben, die Leichensäcke diese jedoch isolieren. Kontaminierte Objekte können beim Verladen auch den Container und das Fahrzeug verseuchen. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Schutz:</marker><br/> Verwenden Sie CBRN-Ausrüstung (auch ABC-Ausrüstung genannt, bestehend aus Uniform, Maske und Atemgerät), um sich vor Kontamination zu schützen. Vor dem ablegen der CBRN-Ausrüstung ist es wichtig, mindestens 5 Sekunden zu duschen, um sämtliche Verseuchungen zu entfernen. Beachten Sie, dass die CBRN-Ausrüstung nur Sie selbst vor den chemischen Kampfstoffen schütz. Sie können weiterhin andere Personen und Fahrzeuge kontaminieren. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Dekontaminierung:</marker><br/> Mit der kleinen Dekontaminationsdusche können Sie nur Personen dekontaminieren. Verwenden Sie die große Dusche für Objekte, Fahrzeuge und den Ladenraum von Fahrzeugen (oder Containern). Um die Duschen zu aktivieren, stellen Sie sich einfach darunter. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Erkennung:</marker><br/> Sie können ein Objekt, Fahrzeug oder eine Person mit einer ED-1E-Drohne analysieren, um festzustellen, ob es kontaminiert ist (Hinweis: Die Drohne wird niemals von einer Kontamination betroffen sein). Ebenso können Sie einen Chemischen Detektor nutzen um feststellen wie stark der nähere Bereich um Sie herum kontaminiert ist. (THREAT von 0.1 bis 0.9: kontaminierte Gegenstände sind in der Nähe, THREAT von 1: Sie befinden sich in einen verseuchten Bereich (Sie sind somit selbst kontaminiert)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>化学试剂:</marker><br/> 化学试剂会在战场上的武器箱等位置出现。当一个物体受到污染时, 这种化学试剂会传播它到周围的人身上(3米范围内)。这些人将持续受到伤害直至死亡, 或找到一个净化淋浴(位于在后勤点)来清理他们的身体。当这些人受到污染时, 他们会将污染传播给周围的其他人(2米范围内)或车辆(如果他们进入车辆的话)。记住, 尸体将保持受到污染的状态, 但尸体袋可以将其隔离。此外, 作为货物装载受污染物体将会污染集装箱或车辆。<img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/><br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>防护措施:</marker><br/> 使用CBRN(生化核辐)装备(服装、口罩、面具和呼吸器背包)可以保护您完全免受污染影响。但是, 在取下CBRN装备之前, 不要忘记进行至少5秒的净化淋浴。请注意, 即使穿戴了CBRN装备, 您也会向人员或车辆传播化学试剂, 只有你免受污染影响。普通的面具和制服会将受到伤害的可能性减免60%至80%。<img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>清除污染:</marker><br/> 小型淋浴器只能用来净化单兵单位。使用大型淋浴器来清洗物品、车辆和货物。要激活净化过程, 只需待在淋浴下即可。<img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/><br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>检测:</marker><br/> 你可以使用 ED-1E 无人机分析物体、车辆或人, 以测定其是否受到污染(注: 该无人机永远不会受到污染)。您也可以使用化学探测器检测您是否处于污染区域内(威胁度介于0.1至0.9之间: 附近存在受污染物体, 威胁度等于1: 您处于传播区域内(您将受到污染))。<img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>化学试剂:</marker><br/> 化学试剂会在战场上的武器箱等位置出现。当一个物体受到污染时, 这种化学试剂会传播它到周围的人身上(3米范围内)。感染者将持续受到伤害并感到疼痛,直至死亡,或找到一个净化淋浴(位于在后勤点)来清理他们的身体。当这些人受到污染时, 他们会将污染传播给周围的其他人(2米范围内)或车辆(如果他们进入车辆的话)。记住, 尸体将保持受到污染的状态, 但尸体袋可以将其隔离。此外, 作为货物装载受污染物体将会污染集装箱或车辆。<img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/><br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>防护措施:</marker><br/> 使用CBRN(生化核辐)装备(服装、口罩、面具和呼吸器背包)可以保护您完全免受污染影响。但是, 在取下CBRN装备之前, 不要忘记进行至少5秒的净化淋浴。请注意, 即使穿戴了CBRN装备, 您也会向人员或车辆传播化学试剂, 只有你免受污染影响。普通的面具和制服会将受到伤害的可能性减免60%至80%。<img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>清除污染:</marker><br/> 小型淋浴器只能用来净化单兵单位。使用大型淋浴器来清洗物品、车辆和货物。要激活净化过程, 只需待在淋浴下即可。<img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/><br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>检测:</marker><br/> 你可以使用 ED-1E 无人机分析物体、车辆或人, 以测定其是否受到污染(注: 该无人机永远不会受到污染)。您也可以使用化学探测器检测您是否处于污染区域内(威胁度介于0.1至0.9之间: 附近存在受污染物体, 威胁度等于1: 您处于传播区域内(您将受到污染))。<img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Agent chimique:</marker><br/> Un agent chimique peut être trouvé sur le champ de bataille à l'emplacement d'une cache d'arme, par exemple. Lorsqu'un objet est contaminé, l'agent chimique se propage aux personnes autour (dans un cercle de 3 m). Ces personnes seront constamment blessées jusqu'à ce qu'elles meurent ou trouvent une douche décontaminante (disponible au point logistique) pour nettoyer leur corps. Lorsqu'ils sont contaminés, ils peuvent le propager à d'autres personnes autour (dans un cercle de 2 m) ou à un véhicule s'ils pénètrent à l'intérieur. Gardez à l'esprit que les cadavres restent contaminés, mais le sac mortuaire l'isolera. De plus, un objet contaminé placé dans la cargaison d'un conteneur ou d'un véhicule le contaminera. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/> Utilisez un équipement CBRN (uniforme, masque respiratoire et sac à dos) pour une protection complète contre l'effet de contamination. Mais n'oubliez pas de prendre une douche pendant plus de 5 secondes avant de retirer votre équipement CBRN. Sachez que même avec un équipement CBRN, vous pouvez propager l'agent à des personnes ou à un véhicule, vous êtes simplement protégé de l'effet. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> Un masque simple et un uniforme simple peuvent réduire de 65% à 80% la probabilité de subir des dommages.<img image='\A3\Data_F_Orange\Images\Respirator_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Décontaminer:</marker><br/> Vous pouvez utiliser une petite douche uniquement pour décontaminer les unités. Utilisez la grande douche pour les objets, les véhicules et les objets chargés comme cargaison. Pour les activer, il suffit de rester sous la douche. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Détection:</marker><br/> Vous pouvez analyser un objet, un véhicule ou un homme avec un drone ED-1E pour déterminer s'il est contaminé (Remarque: le drone ne sera jamais contaminé.). Vous pouvez également vérifier si vous vous trouvez dans une zone contaminée en utilisant un détecteur chimique (THREAT de 0,1 à 0,9: les objets contaminés sont aux alentours, THREAT à 1: vous êtes dans la plage de propagation (vous serez contaminé)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> @@ -1440,7 +1440,7 @@ Load contaminated objects in containers. Move the container or objects inside a big shower. Note: you can load this container inside a vehicle and move the vehicle under the shower. This clean up the vehicle, crew and cargo. Verladen Sie kontaminierte Objekte in einen Container und bringen Sie diesen zu einer großen Dusche. Hinweis: Sie können den Container in ein Fahrzeug laden und das ganze Fahrzeug unter die Dusche stellen. Dies dekontaminiert das Fahrzeug, die Insassen und die Ladung. - 将受污染物体装载至集装箱中。将集装箱或受污染物体移动到大型淋浴器下。注: 你可以将集装箱装载至载具, 再讲载具移动到淋浴器下。这将会净化载具、成员和货物。 + 将受污染物体装载至集装箱中。将集装箱或受污染物体移动到大型淋浴器下。注: 你可以将集装箱装载至载具, 再将载具移动到淋浴器下。这将一并净化载具、成员和货物。 Chargez les objets contaminés dans des conteneurs. Déplacez le contenant ou les objets dans une grande douche. Remarque: vous pouvez charger ce conteneur à l'intérieur d'un véhicule et déplacer le véhicule sous la douche. Cela nettoie le véhicule, l'équipage et la cargaison. @@ -1491,15 +1491,19 @@ Contaminate civilians in %1 + %1 地区的平民受到感染 Civilians get contaminated by a chemical agent around %1. They are requesting your help to decontaminate those civilans with a little shower. To locate civilians go to the subtask, follow red blood drop and use your chemical detector. + %1 附近的平民感染了一种化学试剂。平民请求您使用小型淋浴器来净化受感染的村民。要确定平民的位置,请查看次级任务,跟随红色的血滴并使用化学探测器。 Decontaminate this civilian + 净化这名平民 Search and decontaminate this civilian. Follow red blood drop and use your chemical detector. + 搜寻并净化这名平民。跟随红色的血滴并使用化学探测器。 From e44363ce58f07e7c440761e826b64c713c402d8b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 31 Jul 2021 10:15:12 +0200 Subject: [PATCH 155/354] Improve waypoints for parol and traffic civ and mil should more patrol on city road now --- .../core/fnc/patrol/addWP.sqf | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf index f7d96ec86..fec399dcd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf @@ -48,13 +48,21 @@ if (side _group isEqualTo civilian) then { if (_vehicle isKindOf "Air") then { [_group, _pos, -1, "MOVE", _behaviorMode, _combatMode, "LIMITED", "STAG COLUMN", _waypointStatements, [0, 0, 0], 20] call CBA_fnc_addWaypoint; } else { - [_group, _pos, -1, "MOVE", _behaviorMode, _combatMode, "LIMITED", "STAG COLUMN", "", [0, 0, 0], 20] call CBA_fnc_addWaypoint; + [_group, _pos, -1, "MOVE", _behaviorMode, _combatMode, "LIMITED", "STAG COLUMN", "", [0, 0, 0], 50] call CBA_fnc_addWaypoint; + private _roadBlackList = []; for "_i" from 0 to (2 + (floor (random 3))) do { - private _newPos = [_pos, 150] call CBA_fnc_randPos; + private _nearestRoad = [_pos getPos [100, random 360], 100, _roadBlackList] call BIS_fnc_nearestRoad; + private _newPos = []; + if (isNull _nearestRoad) then { + _newPos = [_pos, 150] call CBA_fnc_randPos; + } else { + _roadBlackList pushBackUnique _nearestRoad; + _newPos = getPosASL _nearestRoad; + }; [_group, _newPos, -1, "MOVE", "UNCHANGED", "RED", "UNCHANGED", "NO CHANGE", "", [0, 0, 0], 20] call CBA_fnc_addWaypoint; }; - [_group, _pos, -1, "MOVE", "UNCHANGED", "NO CHANGE", "UNCHANGED", "NO CHANGE", _waypointStatements, [0, 0, 0], 20] call CBA_fnc_addWaypoint; + [_group, _pos, -1, "MOVE", "UNCHANGED", "NO CHANGE", "UNCHANGED", "NO CHANGE", _waypointStatements, [0, 0, 0], 50] call CBA_fnc_addWaypoint; }; if (btc_debug) then { From 8eec49ceb444d89521333c8e950b5c692e4e3d0d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 10:47:06 +0200 Subject: [PATCH 156/354] delete also deadBodyPlayers from database --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf index 2519db28e..47211f437 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf @@ -38,6 +38,7 @@ profileNamespace setVariable [format ["btc_hm_%1_vehs", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_objs", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_tags", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], nil]; +profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_markers", _name], nil]; profileNamespace setVariable [format ["btc_hm_%1_db", _name], nil]; From 75b6bddaf56f31169dc879878127c3c7f75bb41e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 14:58:11 +0200 Subject: [PATCH 157/354] Rewrite Change: - function name - variable name factorise the code --- .../core/def/mission.sqf | 9 ++--- .../bagRecover.sqf} | 8 ++-- .../bagRecover_s.sqf} | 10 ++--- .../core/fnc/body/createMarker.sqf | 36 +++++++++++++++++ .../core/fnc/body/dogtagGet.sqf | 31 ++++++++++++++ .../core/fnc/body/dogtagSet.sqf | 40 +++++++++++++++++++ .../core/fnc/compile.sqf | 11 ++++- .../core/fnc/db/load.sqf | 15 +++---- .../core/fnc/db/loadObjectStatus.sqf | 13 +----- .../core/fnc/db/loadcargo.sqf | 13 +----- .../core/fnc/db/save.sqf | 2 +- .../core/fnc/db/saveObjectStatus.sqf | 12 +----- .../core/fnc/eh/server.sqf | 16 ++------ .../core/fnc/int/add_actions.sqf | 2 +- .../description.ext | 2 +- 15 files changed, 145 insertions(+), 75 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{fob/recoverBodyBag.sqf => body/bagRecover.sqf} (77%) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{fob/recoverBodyBag_s.sqf => body/bagRecover_s.sqf} (82%) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 05bfc4766..e888c7ea1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -1,6 +1,5 @@ btc_version = [1, 21.1, 5]; - diag_log format (["=BTC= HEARTS AND MINDS VERSION %1.%2.%3"] + btc_version); //Param @@ -18,7 +17,7 @@ btc_p_respawn_fromFOBToBase = ("btc_p_respawn_fromFOBToBase" call BIS_fnc_getPar btc_p_rallypointTimer = "btc_p_rallypointTimer" call BIS_fnc_getParamValue; btc_p_respawn_arsenal = ("btc_p_respawn_arsenal" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_respawn_ticketsAtStart = 100; -btc_p_respawn_timeBeforeShowKIA = 10; +btc_p_body_timeBeforeShowMarker = 10 * 60; //<< Faction options >> private _p_en = "btc_p_en" call BIS_fnc_getParamValue; @@ -163,7 +162,7 @@ if (isServer) then { //FOB btc_fobs = [[], [], []]; btc_fob_rallypointTimer = 60 * btc_p_rallypointTimer; - btc_fob_deadBodyPlayers = []; + btc_body_deadPlayers = []; btc_respawn_ticketDecimal = 0; publicVariable "btc_respawn_ticketDecimal"; //MIL @@ -727,5 +726,5 @@ btc_player_type = ["SoldierWB", "SoldierEB", "SoldierGB"] select ([west, east, i btc_door_breaking_time = 60; //Respawn -btc_fob_ticketPlayerBodyBag = 1; -btc_fob_ticketAIBodyBag = 0.1; +btc_body_bagTicketPlayer = 1; +btc_body_bagTicketAI = 0.1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf similarity index 77% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index 41189731c..884376d76 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -1,18 +1,18 @@ /* ---------------------------------------------------------------------------- -Function: btc_fob_fnc_recoverBodyBag +Function: btc_body_fnc_bagRecover Description: Add respawn tickets when a body bag is provided. Parameters: - _logistic - [Object] + _logistic - Logistic pad. [Object] Returns: Examples: (begin example) - [cursorObject] call btc_fob_fnc_recoverBodyBag; + [cursorObject] call btc_body_fnc_bagRecover; (end) Author: @@ -32,4 +32,4 @@ if (_array isEqualTo []) exitWith { ] call CBA_fnc_notify; }; -[_array select 0] remoteExecCall ["btc_fob_fnc_recoverBodyBag_s", 2]; +[_array select 0] remoteExecCall ["btc_body_fnc_bagRecover_s", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf similarity index 82% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag_s.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 2d5d3e755..04fcacb7f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/recoverBodyBag_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -1,18 +1,18 @@ /* ---------------------------------------------------------------------------- -Function: btc_fob_fnc_recoverBodyBag_s +Function: btc_body_fnc_bagRecover_s Description: Add respawn tickets when a body bag is provided. Parameters: - _bodyBag - [Object] + _bodyBag - Body bag. [Object] Returns: Examples: (begin example) - [cursorObject] call btc_fob_fnc_recoverBodyBag_s; + [cursorObject] call btc_body_fnc_bagRecover_s; (end) Author: @@ -26,9 +26,9 @@ params [ private _ticket = 0; if (_bodyBag getVariable ["btc_isDeadPlayer", false]) then { - _ticket = btc_fob_ticketPlayerBodyBag; + _ticket = btc_body_bagTicketPlayer; } else { - btc_respawn_ticketDecimal = btc_respawn_ticketDecimal + btc_fob_ticketAIBodyBag; + btc_respawn_ticketDecimal = btc_respawn_ticketDecimal + btc_body_bagTicketAI; }; private _ticketValue = [btc_player_side, _ticket + btc_respawn_ticketDecimal] call BIS_fnc_respawnTickets; btc_respawn_ticketDecimal = btc_respawn_ticketDecimal - floor btc_respawn_ticketDecimal; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf new file mode 100644 index 000000000..83bb0d6ce --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf @@ -0,0 +1,36 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_body_fnc_createMarker + +Description: + Create a KIA marker on dead body. + +Parameters: + _deadBody - Dead body or body bag. [Object] + +Returns: + +Examples: + (begin example) + [cursorObject] call btc_body_fnc_createMarker; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_unit", objNull, [objNull]] +]; + +if (isNull _unit) exitwith {}; + +private _marker = createMarker [ + format ["btc_body_dead_%1", {"btc_body_dead" in _x} count allMapMarkers], + _unit +]; +_marker setMarkerType "KIA"; +_marker setMarkerSize [0.5, 0.5]; +_marker setMarkerAlpha 0.5; +_unit setVariable ["btc_body_deadMarker", _marker]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf new file mode 100644 index 000000000..85153dc15 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf @@ -0,0 +1,31 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_body_fnc_dogtagGet + +Description: + Get ACE dogtag data. + +Parameters: + _deadBody - Dead body or body bag. [Object] + +Returns: + +Examples: + (begin example) + [cursorObject] call btc_body_fnc_dogtagGet; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_unit", objNull, [objNull]] +]; + +[ + _unit call ace_dogtags_fnc_getDogtagData, + !isNull (_unit getVariable ["ace_dogtags_dogtagTaken", objNull]), + _unit getVariable ["btc_isDeadPlayer", false] +] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf new file mode 100644 index 000000000..a1c0bc432 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf @@ -0,0 +1,40 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_body_fnc_dogtagSet + +Description: + Set ACE dogtag data. + +Parameters: + _deadBody - Dead body or body bag. [Object] + _dogtagDataTaken - Dogtag data and if he is taken. [Array] + +Returns: + +Examples: + (begin example) + [cursorObject] call btc_body_fnc_dogtagSet; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_deadBody", objNull, [objNull]], + ["_dogtagDataTaken", [], [[]]] +]; +_dogtagDataTaken params [ + ["_dogtagData", [], [[]]], + ["_dogtagTaken", false, [false]], + ["_isDeadPlayer", false, [false]] +]; + +if (_dogtagData isNotEqualTo []) then { + _deadBody setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; + if (_dogtagTaken) then { + _deadBody setVariable ["ace_dogtags_dogtagTaken", _deadBody, true]; + }; + _deadBody setVariable ["btc_isDeadPlayer", _isDeadPlayer]; +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 570418c9f..f67236e39 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -1,5 +1,11 @@ /////////////////////SERVER\\\\\\\\\\\\\\\\\\\\\ if (isServer) then { + //BODY + btc_body_fnc_bagRecover_s = compileScript ["core\fnc\body\bagRecover_s.sqf"]; + btc_body_fnc_createMarker = compileScript ["core\fnc\body\createMarker.sqf"]; + btc_body_fnc_dogtagGet = compileScript ["core\fnc\body\dogtagGet.sqf"]; + btc_body_fnc_dogtagSet = compileScript ["core\fnc\body\dogtagSet.sqf"]; + //CACHE btc_cache_fnc_find_pos = compileScript ["core\fnc\cache\find_pos.sqf"]; btc_cache_fnc_create = compileScript ["core\fnc\cache\create.sqf"]; @@ -110,7 +116,6 @@ if (isServer) then { btc_fob_fnc_dismantle_s = compileScript ["core\fnc\fob\dismantle_s.sqf"]; btc_fob_fnc_killed = compileScript ["core\fnc\fob\killed.sqf"]; btc_fob_fnc_rallypointTimer = compileScript ["core\fnc\fob\rallypointTimer.sqf"]; - btc_fob_fnc_recoverBodyBag_s = compileScript ["core\fnc\fob\recoverBodyBag_s.sqf"]; //MIL btc_mil_fnc_addWP = compileScript ["core\fnc\mil\addWP.sqf"]; @@ -267,6 +272,9 @@ btc_veh_fnc_init = compileScript ["core\fnc\veh\init.sqf"]; /////////////////////CLIENT\\\\\\\\\\\\\\\\\\\\\ if (!isDedicated) then { + //BODY + btc_body_fnc_bagRecover = compileScript ["core\fnc\body\bagRecover.sqf"]; + //COMMON btc_fnc_end_mission = compileScript ["core\fnc\common\end_mission.sqf"]; btc_fnc_get_cardinal = compileScript ["core\fnc\common\get_cardinal.sqf"]; @@ -316,7 +324,6 @@ if (!isDedicated) then { btc_fob_fnc_rallypointAssemble = compileScript ["core\fnc\fob\rallypointAssemble.sqf"]; btc_fob_fnc_redeploy = compileScript ["core\fnc\fob\redeploy.sqf"]; btc_fob_fnc_redeployCheck = compileScript ["core\fnc\fob\redeployCheck.sqf"]; - btc_fob_fnc_recoverBodyBag = compileScript ["core\fnc\fob\recoverBodyBag.sqf"]; //INT btc_int_fnc_add_actions = compileScript ["core\fnc\int\add_actions.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 0d7d08900..c17c81356 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -214,16 +214,15 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { btc_p_respawn_ticketsAtStart = _ticket select 0; btc_respawn_ticketDecimal = _ticket select 1; publicVariable "btc_respawn_ticketDecimal"; + private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); private _group = createGroup btc_player_side; - btc_fob_deadBodyPlayers = _deadBodyPlayers apply { + btc_body_deadPlayers = _deadBodyPlayers apply { _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated"]; private _body = _group createUnit [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; _body setUnitLoadout _loadout; - _body setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; - if (_dogtagTaken) then { - _body setVariable ["ace_dogtags_dogtagTaken", _body, true]; - }; + [_body, [_dogtagData, _dogtagTaken]] call btc_body_fnc_dogtagSet; + if (_isContaminated) then { if ((btc_chem_contaminated pushBackUnique _body) > -1) then { publicVariable "btc_chem_contaminated"; @@ -238,11 +237,7 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { _body setPosASL _pos; }, [_body, _dir, _pos], 3] call CBA_fnc_waitAndExecute; - private _marker = createMarker [format ["btc_fob_deadBody_%1", _body], _pos]; - _marker setMarkerType "KIA"; - _marker setMarkerSize [0.5, 0.5]; - _marker setMarkerAlpha 0.5; - _body setVariable ["btc_deadBody_marker", _marker]; + _body call btc_body_fnc_createMarker; _body }; deleteGroup _group; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index 0a0d74bbd..33e1a6813 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -51,18 +51,7 @@ if (unitIsUAV _obj) then { createVehicleCrew _obj; }; -_dogtagDataTaken params [ - ["_dogtagData", [], [[]]], - ["_dogtagTaken", false, [false]], - ["_isDeadPlayer", false, [false]] -]; -if (_dogtagData isNotEqualTo []) then { - _obj setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; - if (_dogtagTaken) then { - _obj setVariable ["ace_dogtags_dogtagTaken", _obj, true]; - }; - _obj setVariable ["btc_isDeadPlayer", _isDeadPlayer]; -}; +[_obj, _dogtagDataTaken] call btc_body_fnc_dogtagSet; [_obj] call btc_log_fnc_init; [_obj, _cargo, _inventory] call btc_db_fnc_loadCargo; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index 87d2d220d..cdc53eb81 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -50,18 +50,7 @@ Author: publicVariable "btc_chem_contaminated"; }; - _dogtagDataTaken params [ - ["_dogtagData", [], [[]]], - ["_dogtagTaken", false, [false]], - ["_isDeadPlayer", false, [false]] - ]; - if (_dogtagData isNotEqualTo []) then { - _l setVariable ["ace_dogtags_dogtagData", _dogtagData, true]; - if (_dogtagTaken) then { - _l setVariable ["ace_dogtags_dogtagTaken", _l, true]; - }; - _l setVariable ["btc_isDeadPlayer", _isDeadPlayer]; - }; + [_l, _dogtagDataTaken] call btc_body_fnc_dogtagSet; } forEach _cargo; //set inventory content for weapons, magazines and items diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 8419efa9f..197d0d5a2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -212,7 +212,7 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { private _respawnTickets = [btc_player_side] call BIS_fnc_respawnTickets; profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], +[_respawnTickets, btc_respawn_ticketDecimal]]; - private _deadBodyPlayers = (btc_fob_deadBodyPlayers - [objNull]) apply {[ + private _deadBodyPlayers = (btc_body_deadPlayers - [objNull]) apply {[ typeOf _x, getPosASL _x, getDir _x, diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 6f4ed4925..e3930e0cc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -39,11 +39,7 @@ private _cargo = (_object getVariable ["ace_cargo_loaded", []]) apply { _x getVariable ["ace_rearm_magazineClass", ""], _x call btc_log_fnc_inventoryGet, _x in btc_chem_contaminated, - [ - _x call ace_dogtags_fnc_getDogtagData, - !isNull (_x getVariable ["ace_dogtags_dogtagTaken", objNull]), - _x getVariable ["btc_isDeadPlayer", false] - ] + _x call btc_body_fnc_dogtagGet ] }; }; @@ -51,10 +47,6 @@ _data pushBack _cargo; _data pushBack (_object call btc_log_fnc_inventoryGet); _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); -_data pushBack [ - _object call ace_dogtags_fnc_getDogtagData, - !isNull (_object getVariable ["ace_dogtags_dogtagTaken", objNull]), - _object getVariable ["btc_isDeadPlayer", false] -]; +_data pushBack (_object call btc_body_fnc_dogtagGet); _data diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index adaa990b3..0e3a433d0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -88,23 +88,15 @@ if (btc_p_set_skill) then { [btc_rep_malus_player_respawn, _player] call btc_rep_fnc_change; if (btc_p_respawn_ticketsAtStart >= 0) then { _unit setVariable ["btc_dont_delete", true]; - private _index = btc_fob_deadBodyPlayers pushBack _unit; + btc_body_deadPlayers pushBack _unit; - if (btc_p_respawn_timeBeforeShowKIA isEqualTo -1) exitwith {}; - [{ - if (isNull _unit) exitwith {}; - - private _marker = createMarker [format ["btc_fob_deadBody_%1", _index], _unit]; - _marker setMarkerType "KIA"; - _marker setMarkerSize [0.5, 0.5]; - _marker setMarkerAlpha 0.5; - _unit setVariable ["btc_deadBody_marker", _marker]; - }, [_unit, _index], btc_p_respawn_timeBeforeShowKIA * 60] call CBA_fnc_waitAndExecute; + if (btc_p_body_timeBeforeShowMarker isEqualTo -1) exitwith {}; + [btc_body_fnc_createMarker, _unit, btc_p_body_timeBeforeShowMarker] call CBA_fnc_waitAndExecute; }; }] call CBA_fnc_addEventHandler; ["ace_placedInBodyBag", { params ["_patient", "_bodyBag"]; - deleteMarker (_patient getVariable ["btc_deadBody_marker", ""]); + deleteMarker (_patient getVariable ["btc_body_deadMarker", ""]); if (_patient getVariable ["btc_dont_delete", false]) then { _bodyBag setVariable ["btc_isDeadPlayer", true]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 1646ce2c1..c20341952 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -85,7 +85,7 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Bodybag", "Get body bag", "\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa", { params ["", "", "_params"]; - _params call btc_fob_fnc_recoverBodyBag; + _params call btc_body_fnc_bagRecover; }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject; } forEach [[btc_create_object, btc_create_object_point]]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext index 7d4705c78..9210c2025 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext +++ b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext @@ -52,7 +52,7 @@ respawn = 3; respawnDelay = 2; respawnDialog = 0; respawnOnStart = 0; -respawnTemplates[] = {"MenuPosition", "Spectator", Tickets}; +respawnTemplates[] = {"MenuPosition", "Spectator", "Tickets"}; // Disable BI wreck system (H&M handle it internally) wreckManagerMode = 0; From a539eac71b9f43cbd09eb811c7e6bbdcd1b87682 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 15:57:17 +0200 Subject: [PATCH 158/354] Add player respawn individually --- .../core/def/mission.sqf | 2 ++ .../core/fnc/body/bagRecover_s.sqf | 16 +++++++++++++++- .../core/fnc/eh/server.sqf | 15 +++++++++++++++ .../core/init_server.sqf | 4 +++- 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index e888c7ea1..ad7974b77 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -17,6 +17,7 @@ btc_p_respawn_fromFOBToBase = ("btc_p_respawn_fromFOBToBase" call BIS_fnc_getPar btc_p_rallypointTimer = "btc_p_rallypointTimer" call BIS_fnc_getParamValue; btc_p_respawn_arsenal = ("btc_p_respawn_arsenal" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_respawn_ticketsAtStart = 100; +btc_p_respawn_ticketsShare = false; btc_p_body_timeBeforeShowMarker = 10 * 60; //<< Faction options >> @@ -163,6 +164,7 @@ if (isServer) then { btc_fobs = [[], [], []]; btc_fob_rallypointTimer = 60 * btc_p_rallypointTimer; btc_body_deadPlayers = []; + btc_respawn_tickets = createHashMap; btc_respawn_ticketDecimal = 0; publicVariable "btc_respawn_ticketDecimal"; //MIL diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 04fcacb7f..509e9ba5f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -30,7 +30,21 @@ if (_bodyBag getVariable ["btc_isDeadPlayer", false]) then { } else { btc_respawn_ticketDecimal = btc_respawn_ticketDecimal + btc_body_bagTicketAI; }; -private _ticketValue = [btc_player_side, _ticket + btc_respawn_ticketDecimal] call BIS_fnc_respawnTickets; + +private _ticketValue = 0; +if (btc_p_respawn_ticketsShare) then { + _ticketValue = [btc_player_side, _ticket + btc_respawn_ticketDecimal] call BIS_fnc_respawnTickets; +} else { + private _uid = _bodyBag getVariable ["btc_UID", ""]; + private _player = _uid call BIS_fnc_getUnitByUID; + if !(isNull _player) then { + [_player, _ticket + btc_respawn_ticketDecimal] call BIS_fnc_respawnTickets; + }; + btc_respawn_tickets set [ + _uid, + _ticket + btc_respawn_ticketDecimal + (btc_respawn_tickets getOrDefault [_uid, 0]) + ]; +}; btc_respawn_ticketDecimal = btc_respawn_ticketDecimal - floor btc_respawn_ticketDecimal; publicVariable "btc_respawn_ticketDecimal"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 0e3a433d0..d8beba7e4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -89,6 +89,10 @@ if (btc_p_set_skill) then { if (btc_p_respawn_ticketsAtStart >= 0) then { _unit setVariable ["btc_dont_delete", true]; btc_body_deadPlayers pushBack _unit; + if !(btc_p_respawn_ticketsShare) then { + _unit setVariable ["btc_UID", getPlayerUID _player]; + btc_respawn_tickets set [getPlayerUID _player, [_player] call BIS_fnc_respawnTickets]; + }; if (btc_p_body_timeBeforeShowMarker isEqualTo -1) exitwith {}; [btc_body_fnc_createMarker, _unit, btc_p_body_timeBeforeShowMarker] call CBA_fnc_waitAndExecute; @@ -99,6 +103,17 @@ if (btc_p_set_skill) then { deleteMarker (_patient getVariable ["btc_body_deadMarker", ""]); if (_patient getVariable ["btc_dont_delete", false]) then { _bodyBag setVariable ["btc_isDeadPlayer", true]; + _bodyBag setVariable ["btc_UID", _patient getVariable ["btc_UID", ""]]; }; [_bodyBag] call btc_log_fnc_init; }] call CBA_fnc_addEventHandler; + +if (btc_p_respawn_ticketsAtStart >= 0) then { + if !(btc_p_respawn_ticketsShare) then { + addMissionEventHandler ["PlayerConnected", { + params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; + private _player = _uid call BIS_fnc_getUnitByUID; + [_player, btc_respawn_tickets getOrDefault [_uid, btc_p_respawn_ticketsAtStart]] call BIS_fnc_respawnTickets; + }]; + }; +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index b8f9bfd53..4142db870 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -57,5 +57,7 @@ if (btc_p_side_mission_cycle > 0) then { } forEach ["ACE_SpraypaintRed"]; if (btc_p_respawn_ticketsAtStart >= 0) then { - [btc_player_side, btc_p_respawn_ticketsAtStart] call BIS_fnc_respawnTickets; + if (btc_p_respawn_ticketsShare) then { + [btc_player_side, btc_p_respawn_ticketsAtStart] call BIS_fnc_respawnTickets; + }; }; From 14448af2f970aec4c635b689411750cee351a048 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 19:54:57 +0200 Subject: [PATCH 159/354] Remove decimal ticket --- .../core/def/mission.sqf | 1 - .../core/fnc/body/bagRecover.sqf | 2 +- .../core/fnc/body/bagRecover_s.sqf | 12 ++++-------- .../core/fnc/db/load.sqf | 5 +---- .../core/fnc/db/save.sqf | 2 +- 5 files changed, 7 insertions(+), 15 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index ad7974b77..7597faf56 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -165,7 +165,6 @@ if (isServer) then { btc_fob_rallypointTimer = 60 * btc_p_rallypointTimer; btc_body_deadPlayers = []; btc_respawn_tickets = createHashMap; - btc_respawn_ticketDecimal = 0; publicVariable "btc_respawn_ticketDecimal"; //MIL btc_p_mil_wp_ratios = [_wp_house_probability, (1 - _wp_house_probability) / 1.5 + _wp_house_probability]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index 884376d76..ccb707a6d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -28,7 +28,7 @@ private _array = nearestObjects [_logistic, ["ACE_bodyBagObject"], 10]; if (_array isEqualTo []) exitWith { [ ["No body bag around"], - [format ["%1 respawn tickets left", ([btc_player_side] call BIS_fnc_respawnTickets) + btc_respawn_ticketDecimal]] + [format ["%1 respawn tickets left", [btc_player_side] call BIS_fnc_respawnTickets]] ] call CBA_fnc_notify; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 509e9ba5f..b2e5784b9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -27,27 +27,23 @@ params [ private _ticket = 0; if (_bodyBag getVariable ["btc_isDeadPlayer", false]) then { _ticket = btc_body_bagTicketPlayer; -} else { - btc_respawn_ticketDecimal = btc_respawn_ticketDecimal + btc_body_bagTicketAI; }; private _ticketValue = 0; if (btc_p_respawn_ticketsShare) then { - _ticketValue = [btc_player_side, _ticket + btc_respawn_ticketDecimal] call BIS_fnc_respawnTickets; + _ticketValue = [btc_player_side, _ticket] call BIS_fnc_respawnTickets; } else { private _uid = _bodyBag getVariable ["btc_UID", ""]; private _player = _uid call BIS_fnc_getUnitByUID; if !(isNull _player) then { - [_player, _ticket + btc_respawn_ticketDecimal] call BIS_fnc_respawnTickets; + [_player, _ticket] call BIS_fnc_respawnTickets; }; btc_respawn_tickets set [ _uid, - _ticket + btc_respawn_ticketDecimal + (btc_respawn_tickets getOrDefault [_uid, 0]) + _ticket + (btc_respawn_tickets getOrDefault [_uid, 0]) ]; }; -btc_respawn_ticketDecimal = btc_respawn_ticketDecimal - floor btc_respawn_ticketDecimal; -publicVariable "btc_respawn_ticketDecimal"; deleteVehicle _bodyBag; -[22, _ticketValue + btc_respawn_ticketDecimal] remoteExecCall ["btc_fnc_show_hint", remoteExecutedOwner]; +[22, _ticketValue] remoteExecCall ["btc_fnc_show_hint", remoteExecutedOwner]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index c17c81356..663da8c43 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -210,10 +210,7 @@ private _id = ["ace_tagCreated", { //Player respawn tickets if (btc_p_respawn_ticketsAtStart >= 0) then { - private _ticket = profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], [btc_p_respawn_ticketsAtStart, btc_respawn_ticketDecimal]]; - btc_p_respawn_ticketsAtStart = _ticket select 0; - btc_respawn_ticketDecimal = _ticket select 1; - publicVariable "btc_respawn_ticketDecimal"; + btc_p_respawn_ticketsAtStart = profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], btc_p_respawn_ticketsAtStart]; private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); private _group = createGroup btc_player_side; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 197d0d5a2..00be40207 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -210,7 +210,7 @@ profileNamespace setVariable [format ["btc_hm_%1_tags", _name], +_tags_propertie //Player respawn tickets if (btc_p_respawn_ticketsAtStart >= 0) then { private _respawnTickets = [btc_player_side] call BIS_fnc_respawnTickets; - profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], +[_respawnTickets, btc_respawn_ticketDecimal]]; + profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], _respawnTickets]; private _deadBodyPlayers = (btc_body_deadPlayers - [objNull]) apply {[ typeOf _x, From 6e2bdd3cd596a73a5665428c3facc3f6e513b960 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 20:15:57 +0200 Subject: [PATCH 160/354] correctly reincrement when force respawn --- .../core/fnc/body/bagRecover.sqf | 3 +-- .../core/fnc/body/bagRecover_s.sqf | 6 ++---- .../core/fnc/int/add_actions.sqf | 6 +++++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index ccb707a6d..5e8697d08 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -27,8 +27,7 @@ params [ private _array = nearestObjects [_logistic, ["ACE_bodyBagObject"], 10]; if (_array isEqualTo []) exitWith { [ - ["No body bag around"], - [format ["%1 respawn tickets left", [btc_player_side] call BIS_fnc_respawnTickets]] + ["No body bag around"] ] call CBA_fnc_notify; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index b2e5784b9..2ea1a6e7d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -38,10 +38,8 @@ if (btc_p_respawn_ticketsShare) then { if !(isNull _player) then { [_player, _ticket] call BIS_fnc_respawnTickets; }; - btc_respawn_tickets set [ - _uid, - _ticket + (btc_respawn_tickets getOrDefault [_uid, 0]) - ]; + _ticketValue = _ticket + (btc_respawn_tickets getOrDefault [_uid, 0]); + btc_respawn_tickets set [_uid, _ticketValue]; }; deleteVehicle _bodyBag; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index c20341952..67821058c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -169,7 +169,11 @@ _actions pushBack ["redeploy", localize "STR_BTC_HAM_ACTION_BIRESPAWN", "\A3\ui_ if ([] call btc_fob_fnc_redeployCheck) then { player setPos [10, 10, 10]; player hideObject true; - [btc_player_side, 1] call BIS_fnc_respawnTickets; + if (btc_p_respawn_ticketsShare) then { + [btc_player_side, 1] call BIS_fnc_respawnTickets; + } else { + [player, 1] call BIS_fnc_respawnTickets; + }; forceRespawn player; }; }, {!btc_log_placing}]; From ffdd09a2dfabae917d78a7901b920bb249a5de2a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 21:21:00 +0200 Subject: [PATCH 161/354] Send ticket to player --- .../core/fnc/body/bagRecover_s.sqf | 8 +++----- .../core/fnc/eh/server.sqf | 14 +++++++++++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 2ea1a6e7d..2b9ead3f5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -29,19 +29,17 @@ if (_bodyBag getVariable ["btc_isDeadPlayer", false]) then { _ticket = btc_body_bagTicketPlayer; }; -private _ticketValue = 0; if (btc_p_respawn_ticketsShare) then { - _ticketValue = [btc_player_side, _ticket] call BIS_fnc_respawnTickets; + private _ticketValue = [btc_player_side, _ticket] call BIS_fnc_respawnTickets; + [22, _ticketValue] remoteExecCall ["btc_fnc_show_hint", remoteExecutedOwner]; } else { private _uid = _bodyBag getVariable ["btc_UID", ""]; private _player = _uid call BIS_fnc_getUnitByUID; if !(isNull _player) then { [_player, _ticket] call BIS_fnc_respawnTickets; }; - _ticketValue = _ticket + (btc_respawn_tickets getOrDefault [_uid, 0]); + private _ticketValue = _ticket + (btc_respawn_tickets getOrDefault [_uid, 0]); btc_respawn_tickets set [_uid, _ticketValue]; }; deleteVehicle _bodyBag; - -[22, _ticketValue] remoteExecCall ["btc_fnc_show_hint", remoteExecutedOwner]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index d8beba7e4..ee757e78b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -91,7 +91,7 @@ if (btc_p_set_skill) then { btc_body_deadPlayers pushBack _unit; if !(btc_p_respawn_ticketsShare) then { _unit setVariable ["btc_UID", getPlayerUID _player]; - btc_respawn_tickets set [getPlayerUID _player, [_player] call BIS_fnc_respawnTickets]; + btc_respawn_tickets set [getPlayerUID _player, ([_player] call BIS_fnc_respawnTickets) - 1]; }; if (btc_p_body_timeBeforeShowMarker isEqualTo -1) exitwith {}; @@ -112,8 +112,16 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { if !(btc_p_respawn_ticketsShare) then { addMissionEventHandler ["PlayerConnected", { params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; - private _player = _uid call BIS_fnc_getUnitByUID; - [_player, btc_respawn_tickets getOrDefault [_uid, btc_p_respawn_ticketsAtStart]] call BIS_fnc_respawnTickets; + if (_name isEqualTo "__SERVER__") exitWith {}; + + [{ + !isNull (_this call BIS_fnc_getUnitByUID) + }, { + [ + _this call BIS_fnc_getUnitByUID, + btc_respawn_tickets getOrDefault [_this, btc_p_respawn_ticketsAtStart] + ] call BIS_fnc_respawnTickets; + }, _uid, 4 * 60] call CBA_fnc_waitUntilAndExecute; }]; }; }; From 959ab5024882bcf79e33944e8e2c9f42f5f942a1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 22:52:44 +0200 Subject: [PATCH 162/354] fix when tickets is 0 --- .../core/fnc/eh/server.sqf | 6 ++++- .../core/init_player.sqf | 25 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index ee757e78b..e72648607 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -117,9 +117,13 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { [{ !isNull (_this call BIS_fnc_getUnitByUID) }, { + private _tickets = btc_respawn_tickets getOrDefault [_this, btc_p_respawn_ticketsAtStart]; + if (_tickets isEqualTo 0) then { + _tickets = -1; + }; [ _this call BIS_fnc_getUnitByUID, - btc_respawn_tickets getOrDefault [_this, btc_p_respawn_ticketsAtStart] + _tickets ] call BIS_fnc_respawnTickets; }, _uid, 4 * 60] call CBA_fnc_waitUntilAndExecute; }]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index e4026827c..bc10ef169 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -58,6 +58,31 @@ btc_intro_done = [] spawn btc_fnc_intro; ] call CBA_fnc_waitUntilAndExecute; }; + if !(btc_p_respawn_ticketsShare) then { + [ + {[player] call BIS_fnc_respawnTickets isNotEqualTo -1}, + { + if ([player] call BIS_fnc_respawnTickets > 0) exitWith {}; + [ + {scriptDone btc_intro_done}, + BIS_fnc_EGSpectator, + ["Initialize", [ + player, + [btc_player_side], + BIS_respSpecAi, + BIS_respSpecAllowFreeCamera, + BIS_respSpecAllow3PPCamera, + BIS_respSpecShowFocus, + BIS_respSpecShowCameraButtons, + BIS_respSpecShowControlsHelper, + BIS_respSpecShowHeader, + BIS_respSpecLists] + ] + ] call CBA_fnc_waitUntilAndExecute; + } + ] call CBA_fnc_waitUntilAndExecute; + }; + if (btc_debug) then { onMapSingleClick "vehicle player setPos _pos"; player allowDamage false; From 0372b6b2f9da0cd0b9753e843008809dbcd34bb8 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 23:03:11 +0200 Subject: [PATCH 163/354] Fix when the ticket remaining is 0 --- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index b8f9bfd53..78c30bb73 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -57,5 +57,9 @@ if (btc_p_side_mission_cycle > 0) then { } forEach ["ACE_SpraypaintRed"]; if (btc_p_respawn_ticketsAtStart >= 0) then { - [btc_player_side, btc_p_respawn_ticketsAtStart] call BIS_fnc_respawnTickets; + private _tickets = btc_p_respawn_ticketsAtStart; + if (btc_p_respawn_ticketsAtStart isEqualTo 0) then { + _tickets = -1; + }; + [btc_player_side, _tickets] call BIS_fnc_respawnTickets; }; From ec83c0a5f50e6a99dbf00b9e6226a5627bb4fc40 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 23:33:30 +0200 Subject: [PATCH 164/354] fix spectator camera player could still move even in spectator fix tabs --- .../core/fnc/body/createMarker.sqf | 4 +-- .../core/fnc/compile.sqf | 1 + .../core/fnc/fob/forceRespawn.sqf | 28 +++++++++++++++++++ .../core/fnc/int/add_actions.sqf | 5 +--- .../core/init_player.sqf | 14 +--------- 5 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf index 83bb0d6ce..28eaac635 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf @@ -27,8 +27,8 @@ params [ if (isNull _unit) exitwith {}; private _marker = createMarker [ - format ["btc_body_dead_%1", {"btc_body_dead" in _x} count allMapMarkers], - _unit + format ["btc_body_dead_%1", {"btc_body_dead" in _x} count allMapMarkers], + _unit ]; _marker setMarkerType "KIA"; _marker setMarkerSize [0.5, 0.5]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index f67236e39..fa5878249 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -324,6 +324,7 @@ if (!isDedicated) then { btc_fob_fnc_rallypointAssemble = compileScript ["core\fnc\fob\rallypointAssemble.sqf"]; btc_fob_fnc_redeploy = compileScript ["core\fnc\fob\redeploy.sqf"]; btc_fob_fnc_redeployCheck = compileScript ["core\fnc\fob\redeployCheck.sqf"]; + btc_fob_fnc_forceRespawn = compileScript ["core\fnc\fob\forceRespawn.sqf"]; //INT btc_int_fnc_add_actions = compileScript ["core\fnc\int\add_actions.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf new file mode 100644 index 000000000..fb538c615 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf @@ -0,0 +1,28 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fob_fnc_forceRespawn + +Description: + Force player respawn without decreasing tickets + +Parameters: + +Returns: + +Examples: + (begin example) + [] call btc_fob_fnc_forceRespawn; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +player setPos [10, 10, 10]; +player hideObject true; +player enableSimulation false; +if ([btc_player_side] call BIS_fnc_respawnTickets isNotEqualTo 0) then { + [btc_player_side, 1] call BIS_fnc_respawnTickets; +}; +forceRespawn player; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index c20341952..95d74032c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -167,10 +167,7 @@ if (btc_debug) then { private _actions = []; _actions pushBack ["redeploy", localize "STR_BTC_HAM_ACTION_BIRESPAWN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa", { if ([] call btc_fob_fnc_redeployCheck) then { - player setPos [10, 10, 10]; - player hideObject true; - [btc_player_side, 1] call BIS_fnc_respawnTickets; - forceRespawn player; + [] call btc_fob_fnc_forceRespawn; }; }, {!btc_log_placing}]; _actions pushBack ["base", localize "STR_BTC_HAM_ACTION_REDEPLOYBASE", getText (configfile >> "CfgMarkers" >> getMarkerType "btc_base" >> "icon"), { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index e4026827c..21d2ed01b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -42,19 +42,7 @@ btc_intro_done = [] spawn btc_fnc_intro; if ([btc_player_side] call BIS_fnc_respawnTickets isEqualTo 0) then { [ {scriptDone btc_intro_done}, - BIS_fnc_EGSpectator, - ["Initialize", [ - player, - [btc_player_side], - BIS_respSpecAi, - BIS_respSpecAllowFreeCamera, - BIS_respSpecAllow3PPCamera, - BIS_respSpecShowFocus, - BIS_respSpecShowCameraButtons, - BIS_respSpecShowControlsHelper, - BIS_respSpecShowHeader, - BIS_respSpecLists] - ] + btc_fob_fnc_forceRespawn ] call CBA_fnc_waitUntilAndExecute; }; From c45e8b0f5827c6c97430ebb72b516328443c6ab4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 1 Aug 2021 23:41:09 +0200 Subject: [PATCH 165/354] handle player or side tickets also use btc_fob_fnc_forceRespawn --- .../core/fnc/fob/forceRespawn.sqf | 5 +++-- .../core/init_player.sqf | 14 +------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf index fb538c615..ead14ca34 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf @@ -22,7 +22,8 @@ Author: player setPos [10, 10, 10]; player hideObject true; player enableSimulation false; -if ([btc_player_side] call BIS_fnc_respawnTickets isNotEqualTo 0) then { - [btc_player_side, 1] call BIS_fnc_respawnTickets; +private _object = [player, btc_player_side] select btc_p_respawn_ticketsShare; +if ([_object] call BIS_fnc_respawnTickets isNotEqualTo 0) then { + [_object, 1] call BIS_fnc_respawnTickets; }; forceRespawn player; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index c32acac86..77eaf7816 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -53,19 +53,7 @@ btc_intro_done = [] spawn btc_fnc_intro; if ([player] call BIS_fnc_respawnTickets > 0) exitWith {}; [ {scriptDone btc_intro_done}, - BIS_fnc_EGSpectator, - ["Initialize", [ - player, - [btc_player_side], - BIS_respSpecAi, - BIS_respSpecAllowFreeCamera, - BIS_respSpecAllow3PPCamera, - BIS_respSpecShowFocus, - BIS_respSpecShowCameraButtons, - BIS_respSpecShowControlsHelper, - BIS_respSpecShowHeader, - BIS_respSpecLists] - ] + btc_fob_fnc_forceRespawn ] call CBA_fnc_waitUntilAndExecute; } ] call CBA_fnc_waitUntilAndExecute; From cc235a2db71384bb1b5d85ae083b1ca061b2df97 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 2 Aug 2021 20:27:35 +0200 Subject: [PATCH 166/354] Give ticket to all player when an alive enemy is send --- .../core/def/mission.sqf | 2 +- .../core/fnc/body/addTicket.sqf | 39 +++++++++++++++++++ .../core/fnc/body/bagRecover.sqf | 11 +++++- .../core/fnc/body/bagRecover_s.sqf | 31 +++++++++------ .../core/fnc/common/show_hint.sqf | 5 +++ .../core/fnc/compile.sqf | 1 + 6 files changed, 75 insertions(+), 14 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 7597faf56..4fdf4e386 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -728,4 +728,4 @@ btc_door_breaking_time = 60; //Respawn btc_body_bagTicketPlayer = 1; -btc_body_bagTicketAI = 0.1; +btc_body_enemyTicket = 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf new file mode 100644 index 000000000..002ab78a8 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf @@ -0,0 +1,39 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_body_fnc_addTicket + +Description: + Add respawn tickets to a player or a side. + +Parameters: + _player - Player or side. [Object, Side] + _ticket - Value to add. [Number] + _uid - Player UID. [String] + +Returns: + +Examples: + (begin example) + [cursorObject, 1, getPlayerUID cursorObject] remoteExecCall ["btc_body_fnc_addTicket", 2]; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_player", objNull, [objNull, west]], + ["_ticket", 0, [0]], + ["_uid", "", [""]] +]; + +if !(isNull _player) then { + private _ticketValue = [_player, _ticket] call BIS_fnc_respawnTickets; + [22, _ticketValue] remoteExecCall ["btc_fnc_show_hint", _player]; +}; + +if (_uid isEqualTo "") exitWith {}; + +private _ticketValue = _ticket + (btc_respawn_tickets getOrDefault [_uid, 0]); +btc_respawn_tickets set [_uid, _ticketValue]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index 5e8697d08..4ac66055f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -24,10 +24,17 @@ params [ ["_logistic", objNull, [objNull]] ]; -private _array = nearestObjects [_logistic, ["ACE_bodyBagObject"], 10]; +private _array = nearestObjects [_logistic, ["ACE_bodyBagObject", "CAManBase"], 10]; +_array = _array select { + alive _x && ( + (_x isKindOf "CAManBase" && + side group _x isEqualTo btc_enemy_side) || + _x isKindOf "ACE_bodyBagObject" + ) +}; if (_array isEqualTo []) exitWith { [ - ["No body bag around"] + ["No body bag around or alive enemy"] ] call CBA_fnc_notify; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 2b9ead3f5..08eb98094 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -3,10 +3,10 @@ Function: btc_body_fnc_bagRecover_s Description: - Add respawn tickets when a body bag is provided. + Add respawn tickets when a body bag or an alive enemy is provided. Parameters: - _bodyBag - Body bag. [Object] + _bodyBag - Body bag or alive enemy. [Object] Returns: @@ -28,18 +28,27 @@ private _ticket = 0; if (_bodyBag getVariable ["btc_isDeadPlayer", false]) then { _ticket = btc_body_bagTicketPlayer; }; +if (_bodyBag isKindOf "CAManBase") then { + _ticket = btc_body_enemyTicket; +}; + +if (_ticket isEqualTo 0) exitWith { + [23] remoteExecCall ["btc_fnc_show_hint", remoteExecutedOwner]; +}; if (btc_p_respawn_ticketsShare) then { - private _ticketValue = [btc_player_side, _ticket] call BIS_fnc_respawnTickets; - [22, _ticketValue] remoteExecCall ["btc_fnc_show_hint", remoteExecutedOwner]; + [btc_player_side, _ticket] call btc_body_fnc_addTicket; } else { - private _uid = _bodyBag getVariable ["btc_UID", ""]; - private _player = _uid call BIS_fnc_getUnitByUID; - if !(isNull _player) then { - [_player, _ticket] call BIS_fnc_respawnTickets; + if (_bodyBag isKindOf "ACE_bodyBagObject") then { + private _uid = _bodyBag getVariable ["btc_UID", ""]; + private _player = _uid call BIS_fnc_getUnitByUID; + [_player, _ticket, _uid] call btc_body_fnc_addTicket; + } else { + private _players = (units btc_player_side) select {isPlayer _x}; + { + [_x, _ticket, getPlayerUID _x] call btc_body_fnc_addTicket; + } forEach _players; }; - private _ticketValue = _ticket + (btc_respawn_tickets getOrDefault [_uid, 0]); - btc_respawn_tickets set [_uid, _ticketValue]; }; -deleteVehicle _bodyBag; +_bodyBag call CBA_fnc_deleteEntity; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf index a7ceb948f..7df0f28c7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf @@ -121,6 +121,11 @@ private _text = switch (_type) do { [format ["%1 respawn tickets left", _custom]] ]; }; + case 23 : { + [ + ["No body bag from a player"] + ]; + }; }; _text call CBA_fnc_notify; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index fa5878249..f34455097 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -5,6 +5,7 @@ if (isServer) then { btc_body_fnc_createMarker = compileScript ["core\fnc\body\createMarker.sqf"]; btc_body_fnc_dogtagGet = compileScript ["core\fnc\body\dogtagGet.sqf"]; btc_body_fnc_dogtagSet = compileScript ["core\fnc\body\dogtagSet.sqf"]; + btc_body_fnc_addTicket = compileScript ["core\fnc\body\addTicket.sqf"]; //CACHE btc_cache_fnc_find_pos = compileScript ["core\fnc\cache\find_pos.sqf"]; From 6e44c1aea911ac49f2411deb640c2a4a548cbf26 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 3 Aug 2021 19:29:24 +0200 Subject: [PATCH 167/354] Add DB support --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- .../core/fnc/body/addTicket.sqf | 6 +++++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 10 ++++++++-- .../core/fnc/db/loadObjectStatus.sqf | 4 +++- .../core/fnc/db/loadcargo.sqf | 4 +++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 9 ++++++--- .../core/fnc/db/saveObjectStatus.sqf | 4 +++- .../core/fnc/eh/server.sqf | 2 +- 8 files changed, 30 insertions(+), 11 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 4fdf4e386..fc95ce47e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -16,7 +16,7 @@ btc_p_respawn_location = "btc_p_respawn_location" call BIS_fnc_getParamValue; btc_p_respawn_fromFOBToBase = ("btc_p_respawn_fromFOBToBase" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_rallypointTimer = "btc_p_rallypointTimer" call BIS_fnc_getParamValue; btc_p_respawn_arsenal = ("btc_p_respawn_arsenal" call BIS_fnc_getParamValue) isEqualTo 1; -btc_p_respawn_ticketsAtStart = 100; +btc_p_respawn_ticketsAtStart = 10; btc_p_respawn_ticketsShare = false; btc_p_body_timeBeforeShowMarker = 10 * 60; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf index 002ab78a8..d46bb2bde 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf @@ -16,6 +16,10 @@ Examples: (begin example) [cursorObject, 1, getPlayerUID cursorObject] remoteExecCall ["btc_body_fnc_addTicket", 2]; (end) + (begin example) + [player, 1, getPlayerUID player] remoteExecCall ["btc_body_fnc_addTicket", 2]; + (end) + Author: Vdauphin @@ -28,7 +32,7 @@ params [ ["_uid", "", [""]] ]; -if !(isNull _player) then { +if !(_player isEqualTo objNull) then { private _ticketValue = [_player, _ticket] call BIS_fnc_respawnTickets; [22, _ticketValue] remoteExecCall ["btc_fnc_show_hint", _player]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 663da8c43..5d55b7542 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -210,12 +210,17 @@ private _id = ["ace_tagCreated", { //Player respawn tickets if (btc_p_respawn_ticketsAtStart >= 0) then { - btc_p_respawn_ticketsAtStart = profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], btc_p_respawn_ticketsAtStart]; + btc_respawn_tickets = +(profileNamespace getVariable [format ["btc_hm_%1_respawnTickets", _name], btc_respawn_tickets]); + if (btc_p_respawn_ticketsShare) then { + btc_p_respawn_ticketsAtStart = btc_respawn_tickets getOrDefault [str btc_player_side, btc_p_respawn_ticketsAtStart]; + }; private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); private _group = createGroup btc_player_side; btc_body_deadPlayers = _deadBodyPlayers apply { - _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated"]; + _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated", + ["_uid", "", [""]] + ]; private _body = _group createUnit [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; _body setUnitLoadout _loadout; [_body, [_dogtagData, _dogtagTaken]] call btc_body_fnc_dogtagSet; @@ -227,6 +232,7 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { }; _body setDamage 1; _body setVariable ["btc_dont_delete", true]; + _body setVariable ["btc_UID", _uid]; [{ params ["_body", "_dir", "_pos"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index 33e1a6813..b669498f5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -32,7 +32,8 @@ _object_data params [ "_inventory", "_vectorPos", ["_isContaminated", false, [false]], - ["_dogtagDataTaken", [], [[]]] + ["_dogtagDataTaken", [], [[]]], + ["_uid", "", [""]] ]; private _obj = createVehicle [_type, ASLToATL _pos, [], 0, "CAN_COLLIDE"]; @@ -52,6 +53,7 @@ if (unitIsUAV _obj) then { }; [_obj, _dogtagDataTaken] call btc_body_fnc_dogtagSet; +_obj setVariable ["btc_UID", _uid]; [_obj] call btc_log_fnc_init; [_obj, _cargo, _inventory] call btc_db_fnc_loadCargo; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index cdc53eb81..7ca21967f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -29,7 +29,8 @@ Author: { _x params ["_type", "_magClass", "_inventory", ["_isContaminated", false, [false]], - ["_dogtagDataTaken", [], [[]]] + ["_dogtagDataTaken", [], [[]]], + ["_uid", "", [""]] ]; private _l = createVehicle [_type, getPosATL _obj, [], 0, "CAN_COLLIDE"]; @@ -51,6 +52,7 @@ Author: }; [_l, _dogtagDataTaken] call btc_body_fnc_dogtagSet; + _l setVariable ["btc_UID", _uid]; } forEach _cargo; //set inventory content for weapons, magazines and items diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 00be40207..9c8eb823d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -209,8 +209,10 @@ profileNamespace setVariable [format ["btc_hm_%1_tags", _name], +_tags_propertie //Player respawn tickets if (btc_p_respawn_ticketsAtStart >= 0) then { - private _respawnTickets = [btc_player_side] call BIS_fnc_respawnTickets; - profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], _respawnTickets]; + if (btc_p_respawn_ticketsShare) then { + btc_respawn_tickets set [str btc_player_side, [btc_player_side] call BIS_fnc_respawnTickets]; + }; + profileNamespace setVariable [format ["btc_hm_%1_respawnTickets", _name], +btc_respawn_tickets]; private _deadBodyPlayers = (btc_body_deadPlayers - [objNull]) apply {[ typeOf _x, @@ -219,7 +221,8 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { getUnitLoadout _x, _x call ace_dogtags_fnc_getDogtagData, !isNull (_x getVariable ["ace_dogtags_dogtagTaken", objNull]), - _x in btc_chem_contaminated + _x in btc_chem_contaminated, + _x getVariable ["btc_UID", ""] ]}; profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], +_deadBodyPlayers]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index e3930e0cc..b75b5e4d2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -39,7 +39,8 @@ private _cargo = (_object getVariable ["ace_cargo_loaded", []]) apply { _x getVariable ["ace_rearm_magazineClass", ""], _x call btc_log_fnc_inventoryGet, _x in btc_chem_contaminated, - _x call btc_body_fnc_dogtagGet + _x call btc_body_fnc_dogtagGet, + _x getVariable ["btc_UID", ""] ] }; }; @@ -48,5 +49,6 @@ _data pushBack (_object call btc_log_fnc_inventoryGet); _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); _data pushBack (_object call btc_body_fnc_dogtagGet); +_data pushBack (_object getVariable ["btc_UID", ""]); _data diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index e72648607..8d75cc185 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -89,8 +89,8 @@ if (btc_p_set_skill) then { if (btc_p_respawn_ticketsAtStart >= 0) then { _unit setVariable ["btc_dont_delete", true]; btc_body_deadPlayers pushBack _unit; + _unit setVariable ["btc_UID", getPlayerUID _player]; if !(btc_p_respawn_ticketsShare) then { - _unit setVariable ["btc_UID", getPlayerUID _player]; btc_respawn_tickets set [getPlayerUID _player, ([_player] call BIS_fnc_respawnTickets) - 1]; }; From 87c28b3913e01c4e891d34c533a99f9d6d84f086 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 5 Aug 2021 21:08:51 +0200 Subject: [PATCH 168/354] fix: increase respawn tickets --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 4 +++- .../core/fnc/body/addTicket.sqf | 1 - .../core/fnc/body/bagRecover.sqf | 2 +- .../core/fnc/body/dogtagSet.sqf | 2 +- .../core/fnc/fob/forceRespawn.sqf | 6 +----- 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index fc95ce47e..64d3dcdd0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -164,7 +164,6 @@ if (isServer) then { btc_fobs = [[], [], []]; btc_fob_rallypointTimer = 60 * btc_p_rallypointTimer; btc_body_deadPlayers = []; - btc_respawn_tickets = createHashMap; //MIL btc_p_mil_wp_ratios = [_wp_house_probability, (1 - _wp_house_probability) / 1.5 + _wp_house_probability]; @@ -365,6 +364,9 @@ if (isServer) then { btc_type_blacklist = btc_type_tags + btc_type_flowers + ["UserTexture1m_F"]; publicVariable "btc_type_blacklist"; btc_groundWeaponHolder = []; + + //Respawn + btc_respawn_tickets = createHashMap; }; //Civ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf index d46bb2bde..61cf7da31 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf @@ -20,7 +20,6 @@ Examples: [player, 1, getPlayerUID player] remoteExecCall ["btc_body_fnc_addTicket", 2]; (end) - Author: Vdauphin diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index 4ac66055f..640f7ed66 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_body_fnc_bagRecover; + [btc_log_create_obj] call btc_body_fnc_bagRecover; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf index a1c0bc432..3401ce40c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf @@ -7,7 +7,7 @@ Description: Parameters: _deadBody - Dead body or body bag. [Object] - _dogtagDataTaken - Dogtag data and if he is taken. [Array] + _dogtagDataTaken - Dogtag data and if it has been taken. [Array] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf index ead14ca34..7f3679911 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf @@ -3,7 +3,7 @@ Function: btc_fob_fnc_forceRespawn Description: - Force player respawn without decreasing tickets + Force player respawn. Parameters: @@ -22,8 +22,4 @@ Author: player setPos [10, 10, 10]; player hideObject true; player enableSimulation false; -private _object = [player, btc_player_side] select btc_p_respawn_ticketsShare; -if ([_object] call BIS_fnc_respawnTickets isNotEqualTo 0) then { - [_object, 1] call BIS_fnc_respawnTickets; -}; forceRespawn player; From 24abd4bf7fd1f0ca0353d1bf445955dec6abcae6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 9 Aug 2021 13:43:24 +0200 Subject: [PATCH 169/354] Add mission parameter for body system --- .../core/def/mission.sqf | 6 +-- .../core/def/param.hpp | 20 ++++++++- .../core/fnc/body/bagRecover_s.sqf | 6 +-- .../core/fnc/compile.sqf | 11 +++-- .../core/fnc/eh/server.sqf | 31 +++++++------- .../core/fnc/int/add_actions.sqf | 14 ++++--- .../core/fnc/{body => respawn}/addTicket.sqf | 9 ++-- .../forceRespawn.sqf => respawn/force.sqf} | 4 +- .../core/fnc/{common => respawn}/intro.sqf | 4 +- .../core/fnc/respawn/screen.sqf | 42 +++++++++++++++++++ .../core/init_player.sqf | 22 +--------- 11 files changed, 112 insertions(+), 57 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{body => respawn}/addTicket.sqf (78%) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{fob/forceRespawn.sqf => respawn/force.sqf} (83%) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{common => respawn}/intro.sqf (96%) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/screen.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 64d3dcdd0..a54fcff63 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -16,9 +16,9 @@ btc_p_respawn_location = "btc_p_respawn_location" call BIS_fnc_getParamValue; btc_p_respawn_fromFOBToBase = ("btc_p_respawn_fromFOBToBase" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_rallypointTimer = "btc_p_rallypointTimer" call BIS_fnc_getParamValue; btc_p_respawn_arsenal = ("btc_p_respawn_arsenal" call BIS_fnc_getParamValue) isEqualTo 1; -btc_p_respawn_ticketsAtStart = 10; -btc_p_respawn_ticketsShare = false; -btc_p_body_timeBeforeShowMarker = 10 * 60; +btc_p_respawn_ticketsAtStart = "btc_p_respawn_ticketsAtStart" call BIS_fnc_getParamValue; +btc_p_respawn_ticketsShare = ("btc_p_respawn_ticketsShare" call BIS_fnc_getParamValue) isEqualTo 0; +btc_p_body_timeBeforeShowMarker = ("btc_p_body_timeBeforeShowMarker" call BIS_fnc_getParamValue) * 60; //<< Faction options >> private _p_en = "btc_p_en" call BIS_fnc_getParamValue; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index ef1c1a87f..3d3dbf817 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -65,6 +65,24 @@ class Params { texts[]={$STR_DISABLED,"5 min","10 min","30 min","60 min"}; default = 30; }; + class btc_p_respawn_ticketsAtStart { // Number of tickets at mission start: + title = __EVAL(format [" %1", "Number of tickets at mission start:"]); + values[]={-1,0,1,2,3,4,5,10,30,50,100,200}; + texts[]={$STR_DISABLED,"0","1","2","3","4","5","10","30","50","100","200"}; + default = 10; + }; + class btc_p_respawn_ticketsShare { // Tickets are share between: + title = __EVAL(format [" %1", "Tickets are share between:"]); + values[]={0,1}; + texts[]={"Players of the same faction", "Not share"}; + default = 1; + }; + class btc_p_body_timeBeforeShowMarker { // Time before showing marker of dead player's body: + title = __EVAL(format [" %1", "Time before showing marker of dead player's body:"]); + values[]={-1,0,5,10,30,60}; + texts[]={$STR_DISABLED,"0 min","5 min","10 min","30 min","60 min"}; + default = 10; + }; class btc_p_respawn_arsenal { // ACE Arsenal available on respawn after been killed: title = __EVAL(format [" %1", localize "STR_BTC_HAM_RESP_ENABLEARSENAL"]); values[]={0,1}; @@ -417,6 +435,6 @@ class Params { title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_DEBUG"]); values[]={0,1,2}; texts[]={$STR_DISABLED,$STR_ENABLED, $STR_BTC_HAM_PARAM_OTHER_DEBUG_LOGONLY}; // texts[]={"Off","On","Log only"}; - default = 0; + default = 1; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 08eb98094..4a79d7d96 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -37,16 +37,16 @@ if (_ticket isEqualTo 0) exitWith { }; if (btc_p_respawn_ticketsShare) then { - [btc_player_side, _ticket] call btc_body_fnc_addTicket; + [btc_player_side, _ticket] call btc_respawn_fnc_addTicket; } else { if (_bodyBag isKindOf "ACE_bodyBagObject") then { private _uid = _bodyBag getVariable ["btc_UID", ""]; private _player = _uid call BIS_fnc_getUnitByUID; - [_player, _ticket, _uid] call btc_body_fnc_addTicket; + [_player, _ticket, _uid] call btc_respawn_fnc_addTicket; } else { private _players = (units btc_player_side) select {isPlayer _x}; { - [_x, _ticket, getPlayerUID _x] call btc_body_fnc_addTicket; + [_x, _ticket, getPlayerUID _x] call btc_respawn_fnc_addTicket; } forEach _players; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index f34455097..a7dc724cd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -5,7 +5,6 @@ if (isServer) then { btc_body_fnc_createMarker = compileScript ["core\fnc\body\createMarker.sqf"]; btc_body_fnc_dogtagGet = compileScript ["core\fnc\body\dogtagGet.sqf"]; btc_body_fnc_dogtagSet = compileScript ["core\fnc\body\dogtagSet.sqf"]; - btc_body_fnc_addTicket = compileScript ["core\fnc\body\addTicket.sqf"]; //CACHE btc_cache_fnc_find_pos = compileScript ["core\fnc\cache\find_pos.sqf"]; @@ -157,6 +156,9 @@ if (isServer) then { btc_rep_fnc_notify = compileScript ["core\fnc\rep\notify.sqf"]; btc_rep_fnc_killed = compileScript ["core\fnc\rep\killed.sqf"]; + //RESPAWN + btc_respawn_fnc_addTicket = compileScript ["core\fnc\respawn\addTicket.sqf"]; + //SIDE btc_side_fnc_create = compileScript ["core\fnc\side\create.sqf"]; btc_side_fnc_get_city = compileScript ["core\fnc\side\get_city.sqf"]; @@ -280,7 +282,6 @@ if (!isDedicated) then { btc_fnc_end_mission = compileScript ["core\fnc\common\end_mission.sqf"]; btc_fnc_get_cardinal = compileScript ["core\fnc\common\get_cardinal.sqf"]; btc_fnc_show_hint = compileScript ["core\fnc\common\show_hint.sqf"]; - btc_fnc_intro = compileScript ["core\fnc\common\intro.sqf"]; btc_fnc_set_markerTextLocal = compileScript ["core\fnc\common\set_markerTextLocal.sqf"]; btc_fnc_showSubtitle = compileScript ["core\fnc\common\showSubtitle.sqf"]; btc_fnc_get_composition = compileScript ["core\fnc\common\get_composition.sqf"]; @@ -325,7 +326,6 @@ if (!isDedicated) then { btc_fob_fnc_rallypointAssemble = compileScript ["core\fnc\fob\rallypointAssemble.sqf"]; btc_fob_fnc_redeploy = compileScript ["core\fnc\fob\redeploy.sqf"]; btc_fob_fnc_redeployCheck = compileScript ["core\fnc\fob\redeployCheck.sqf"]; - btc_fob_fnc_forceRespawn = compileScript ["core\fnc\fob\forceRespawn.sqf"]; //INT btc_int_fnc_add_actions = compileScript ["core\fnc\int\add_actions.sqf"]; @@ -369,6 +369,11 @@ if (!isDedicated) then { //REP btc_rep_fnc_treatment = compileScript ["core\fnc\rep\treatment.sqf"]; + //RESPAWN + btc_respawn_fnc_screen = compileScript ["core\fnc\respawn\screen.sqf"]; + btc_respawn_fnc_force = compileScript ["core\fnc\respawn\force.sqf"]; + btc_respawn_fnc_intro = compileScript ["core\fnc\respawn\intro.sqf"]; + //SPECT btc_spect_fnc_updateDevice = compileScript ["core\fnc\spect\updateDevice.sqf"]; btc_spect_fnc_frequencies = compileScript ["core\fnc\spect\frequencies.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 8d75cc185..df144d2df 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -84,9 +84,13 @@ if (btc_p_set_skill) then { ["ace_tagCreated", btc_tag_fnc_eh] call CBA_fnc_addEventHandler; ["ace_disarming_dropItems", btc_rep_fnc_foodRemoved] call CBA_fnc_addEventHandler; ["btc_respawn_player", { - params ["_unit", "_player"]; + params ["", "_player"]; [btc_rep_malus_player_respawn, _player] call btc_rep_fnc_change; - if (btc_p_respawn_ticketsAtStart >= 0) then { +}] call CBA_fnc_addEventHandler; + +if (btc_p_respawn_ticketsAtStart >= 0) then { + ["btc_respawn_player", { + params ["_unit", "_player"]; _unit setVariable ["btc_dont_delete", true]; btc_body_deadPlayers pushBack _unit; _unit setVariable ["btc_UID", getPlayerUID _player]; @@ -96,19 +100,18 @@ if (btc_p_set_skill) then { if (btc_p_body_timeBeforeShowMarker isEqualTo -1) exitwith {}; [btc_body_fnc_createMarker, _unit, btc_p_body_timeBeforeShowMarker] call CBA_fnc_waitAndExecute; - }; -}] call CBA_fnc_addEventHandler; -["ace_placedInBodyBag", { - params ["_patient", "_bodyBag"]; - deleteMarker (_patient getVariable ["btc_body_deadMarker", ""]); - if (_patient getVariable ["btc_dont_delete", false]) then { - _bodyBag setVariable ["btc_isDeadPlayer", true]; - _bodyBag setVariable ["btc_UID", _patient getVariable ["btc_UID", ""]]; - }; - [_bodyBag] call btc_log_fnc_init; -}] call CBA_fnc_addEventHandler; -if (btc_p_respawn_ticketsAtStart >= 0) then { + }] call CBA_fnc_addEventHandler; + ["ace_placedInBodyBag", { + params ["_patient", "_bodyBag"]; + deleteMarker (_patient getVariable ["btc_body_deadMarker", ""]); + if (_patient getVariable ["btc_dont_delete", false]) then { + _bodyBag setVariable ["btc_isDeadPlayer", true]; + _bodyBag setVariable ["btc_UID", _patient getVariable ["btc_UID", ""]]; + }; + [_bodyBag] call btc_log_fnc_init; + }] call CBA_fnc_addEventHandler; + if !(btc_p_respawn_ticketsShare) then { addMissionEventHandler ["PlayerConnected", { params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 95d74032c..159ed9bfd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -83,11 +83,13 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title _params call btc_log_fnc_delete }, {true}, {}, [_helipad], [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; - _action = ["Bodybag", "Get body bag", "\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa", { - params ["", "", "_params"]; - _params call btc_body_fnc_bagRecover; - }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; - [_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject; + if (btc_p_respawn_ticketsAtStart isNotEqualTo -1) then { + _action = ["Bodybag", "Get body bag", "\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa", { + params ["", "", "_params"]; + _params call btc_body_fnc_bagRecover; + }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; + [_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject; + }; } forEach [[btc_create_object, btc_create_object_point]]; //Logistic @@ -167,7 +169,7 @@ if (btc_debug) then { private _actions = []; _actions pushBack ["redeploy", localize "STR_BTC_HAM_ACTION_BIRESPAWN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa", { if ([] call btc_fob_fnc_redeployCheck) then { - [] call btc_fob_fnc_forceRespawn; + [] call btc_respawn_fnc_force; }; }, {!btc_log_placing}]; _actions pushBack ["base", localize "STR_BTC_HAM_ACTION_REDEPLOYBASE", getText (configfile >> "CfgMarkers" >> getMarkerType "btc_base" >> "icon"), { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/addTicket.sqf similarity index 78% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/addTicket.sqf index 61cf7da31..8930fc437 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/addTicket.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/addTicket.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_body_fnc_addTicket +Function: btc_respawn_fnc_addTicket Description: Add respawn tickets to a player or a side. @@ -14,10 +14,13 @@ Returns: Examples: (begin example) - [cursorObject, 1, getPlayerUID cursorObject] remoteExecCall ["btc_body_fnc_addTicket", 2]; + [cursorObject, 1, getPlayerUID cursorObject] remoteExecCall ["btc_respawn_fnc_addTicket", 2]; (end) (begin example) - [player, 1, getPlayerUID player] remoteExecCall ["btc_body_fnc_addTicket", 2]; + [player, 1, getPlayerUID player] remoteExecCall ["btc_respawn_fnc_addTicket", 2]; + (end) + (begin example) + [btc_player_side, 1] remoteExecCall ["btc_respawn_fnc_addTicket", 2]; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/force.sqf similarity index 83% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/force.sqf index 7f3679911..cc23306a5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/forceRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/force.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fob_fnc_forceRespawn +Function: btc_respawn_fnc_force Description: Force player respawn. @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - [] call btc_fob_fnc_forceRespawn; + [] call btc_respawn_fnc_force; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf similarity index 96% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf index 3a5c2891d..aa7e52e5b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_intro +Function: btc_respawn_fnc_intro Description: Introduction camera. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [] call btc_fnc_intro; + [] call btc_respawn_fnc_intro; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/screen.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/screen.sqf new file mode 100644 index 000000000..3cb4a3921 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/screen.sqf @@ -0,0 +1,42 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_respawn_fnc_screen + +Description: + If no tickets force the player to respawn and allow the use of spectator mode. + +Parameters: + +Returns: + +Examples: + (begin example) + [] call btc_respawn_fnc_screen; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +if (btc_p_respawn_ticketsAtStart isEqualTo -1) exitWith {}; + +if ([btc_player_side] call BIS_fnc_respawnTickets isEqualTo 0) then { + [ + {scriptDone btc_intro_done}, + btc_respawn_fnc_force + ] call CBA_fnc_waitUntilAndExecute; +}; + +if !(btc_p_respawn_ticketsShare) then { + [ + {[player] call BIS_fnc_respawnTickets isNotEqualTo -1}, + { + if ([player] call BIS_fnc_respawnTickets > 0) exitWith {}; + [ + {scriptDone btc_intro_done}, + btc_respawn_fnc_force + ] call CBA_fnc_waitUntilAndExecute; + } + ] call CBA_fnc_waitUntilAndExecute; +}; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index 77eaf7816..7ca0f7e9d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -6,7 +6,7 @@ if !(isNil "btc_custom_loc") then { _location setText _cityName; } forEach btc_custom_loc; }; -btc_intro_done = [] spawn btc_fnc_intro; +btc_intro_done = [] spawn btc_respawn_fnc_intro; [{!isNull player}, { [] call compileScript ["core\doc.sqf"]; @@ -39,25 +39,7 @@ btc_intro_done = [] spawn btc_fnc_intro; }; }; - if ([btc_player_side] call BIS_fnc_respawnTickets isEqualTo 0) then { - [ - {scriptDone btc_intro_done}, - btc_fob_fnc_forceRespawn - ] call CBA_fnc_waitUntilAndExecute; - }; - - if !(btc_p_respawn_ticketsShare) then { - [ - {[player] call BIS_fnc_respawnTickets isNotEqualTo -1}, - { - if ([player] call BIS_fnc_respawnTickets > 0) exitWith {}; - [ - {scriptDone btc_intro_done}, - btc_fob_fnc_forceRespawn - ] call CBA_fnc_waitUntilAndExecute; - } - ] call CBA_fnc_waitUntilAndExecute; - }; + [] call btc_respawn_fnc_screen; if (btc_debug) then { onMapSingleClick "vehicle player setPos _pos"; From bc609825759f0604024a88b67a23cbc0eb295d2f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 11 Aug 2021 20:29:08 +0200 Subject: [PATCH 170/354] use new fnc syntaxe --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index 9c5c436c0..44acd9c04 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -45,7 +45,7 @@ switch true do { [_type, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK", "\z\ace\addons\attach\UI\attach_ca.paa", {btc_tow_vehicleSelected = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, {true}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_fnc_tow_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; + _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; //Lift _action = ["Deploy_ropes", localize "STR_ACE_Fastroping_Interaction_deployRopes", "\A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa", {[] spawn btc_lift_fnc_deployRopes;}, {!btc_ropes_deployed && {(driver vehicle player) isEqualTo player} && {(getPosATL player) select 2 > 4}}] call ace_interact_menu_fnc_createAction; @@ -58,7 +58,7 @@ switch true do { [_type, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK", "\z\ace\addons\attach\UI\attach_ca.paa", {btc_tow_vehicleSelected = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, {true}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_fnc_tow_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; + _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; }; }; From ea921fdb1ed188bebb8c58b8461b71c8b550e951 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 13 Aug 2021 18:03:42 +0200 Subject: [PATCH 171/354] Remove debug --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 9347a23f3..006d89bbb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -435,6 +435,6 @@ class Params { title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_DEBUG"]); values[]={0,1,2}; texts[]={$STR_DISABLED,$STR_ENABLED, $STR_BTC_HAM_PARAM_OTHER_DEBUG_LOGONLY}; // texts[]={"Off","On","Log only"}; - default = 1; + default = 0; }; }; From df67b9b5583fc32134c028c86277882b8da0c9a9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 13 Aug 2021 21:00:46 +0200 Subject: [PATCH 172/354] Add documentation --- =BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf | 3 +++ .../core/fnc/int/add_actions.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 5 +++++ docs/InGame-documentation.md | 15 +++++++++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf index f38d49b93..9e25f409d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf @@ -19,6 +19,9 @@ player createDiaryRecord [_MainCategory, [localize "str_a3_cfghints_command_vehi //Side Mission player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_SIDEMISSION_TITLE", localize "STR_BTC_HAM_DOC_SIDEMISSION_TEXT"]]; +//Respawn tickets +player createDiaryRecord [_MainCategory, [localize "str_a3_cfgvehicles_modulerespawntickets_f", localize "STR_BTC_HAM_DOC_RESPAWN_TEXT"]]; + //Respawn position player createDiaryRecord [_MainCategory, [localize "str_a3_cfgvehicles_modulerespawnposition_f_0", localize "STR_BTC_HAM_DOC_FOB_TEXT"]]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 159ed9bfd..58b8103b5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -84,7 +84,7 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title }, {true}, {}, [_helipad], [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; if (btc_p_respawn_ticketsAtStart isNotEqualTo -1) then { - _action = ["Bodybag", "Get body bag", "\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa", { + _action = ["Bodybag", "Get tickets from body bag or prisoner", "\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa", { params ["", "", "_params"]; _params call btc_body_fnc_bagRecover; }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index d9c8bbd42..37a8d8686 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -123,6 +123,11 @@ <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\whiteboard_ca.paa' width='20' height='20'/> Les missions secondaires sont vraiment utiles pour élever votre niveau de réputation.<br/> Une mission secondaire peut être demandée par l'officier avec son menu ACE.<br/> Si vous ne souhaitez pas terminer une tâche, attribuez-la à vous et abandonnez-la avec le menu ACE.<br/><br/> <img image='\a3\Missions_F_Beta\data\img\Challenges_overview_CA.paa' width='355' height='200' /> + + + <img image='\a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Introduction:</marker><br/> By default, each player has a limited number of respawn tickets. On first join, you get the default number of tickets (10). After, each time you respawn, your number of tickets will decrease by one and a kill in action (KIA) marker will appear after 10 minutes. <img image='A3\Missions_F_EPA\data\img\B_skirmish03_overview_CA.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Get new tickets:</marker><br/> Players can increase by one ticket if they retrieve their dead body back to base. Prisoners also increase by one ticket but to all currently connected players. <br/><br/> <img image='\z\ace\addons\medical_gui\ui\bodybag.paa' width='20' height='20'/> <marker name='blufor_base'>Dead player body:</marker><br/> Any player can retrieve dead player body by:<br/> - <img image='\z\ace\addons\medical_treatment\ui\bodybag_ca.paa' width='13' height='13'/> Putting dead body in a body bag. Watch out if your vehicle get destroyed, all body bag will be lost!<br/> - Carry it to the logistic point<br/> - Interact with the logistic point<br/> - <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='13' height='13'/> Select "Get tickets from body bag or prisoner"<br/> The ticket from the body bag will go to the player owned the dead body (even if he is not connected). <img image='\A3\EditorPreviews_F_Orange\Data\CfgVehicles\Land_Bodybag_01_black_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\captives\UI\handcuff_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Prisoners:</marker><br/> Prisoners <img image='\z\ace\addons\captives\UI\Surrender_ca.paa' width='13' height='13'/> follow the same process as dead player body without the need of body bag. The prisonner need to be alive but it could be unconcious. + + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\move1_ca.paa' width='20' height='20' /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa' width='20' height='20' /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\move2_ca.paa' width='20' height='20' /> <marker name='blufor_base'>FOB:</marker><br/> In this mission a FOB is a forward spawn point, to create a FOB approach the red box at the logistic point and require a blue container.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_ft_owned.jpg' width='355' height='180'/> <br/><br/> - <img image='\A3\Ui_f\data\Map\Markers\NATO\b_hq.paa' width='20' height='20'/> <marker name='blufor_base'>Deploy:</marker> <br/> Move it where you want to deploy a new FOB and interact with it to set it up. Keep in mind that you can not deploy a FOB close to the main base (2.500m) and the terrain needs to be flat.<br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Dismantle:</marker> <br/> You can dismantle a FOB by interacting with the flag on the HQ roof.<br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa' width='20' height='20' /> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\wait_ca.paa' width='20' height='20' /> <marker name='blufor_base'>Rallypoint:</marker><br/> You can also use the Zeus rallypoint backpack available in Arsenal but they have some limitation. After some times or after player disconnected, rallypoint will self-destruct.<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureRespawn_co.paa' width='355' height='180'/> diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index b7f16fea8..ecdd8b9ca 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -53,6 +53,21 @@ If you don't want to complete a task, you can always abort it with the self inte - Rallypoint: You can also use the Zeus rallypoint backpack available in Arsenal but they have some limitation. After some times or after player disconnected, rallypoint will self-destruct. +## Respawn tickets +### Introduction: +By default, each player has a limited number of respawn tickets. On first join, you get the default number of tickets (10). After, each time you respawn, your number of tickets will decrease by one and a kill in action (KIA) marker will appear after 10 minutes. +### Get new tickets: +Players can increase by one ticket if they retrieve their dead body back to base. Prisoners also increase by one ticket, but to all currently connected players. +### Dead player body: +Any player can retrieve dead player's body by: + - Putting dead body in a body bag. Watch out if your vehicle get destroyed, all body bag will be lost! + - Carry it to the logistic point + - Interact with the logistic point + - Select "Get tickets from body bag or prisoner" + +The ticket from the body bag will go to the player owned the dead body (even if he is not connected). +### Prisoners: +Prisoners follow the same process as dead player body without the need of body bag. The prisonner need to be alive but it could be unconcious. ## Sling loading =BTC= Lift will not replace the A3 sling loading, you can use both. From 53b594a12e9197c47160a39a33edab6c215e1cf6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 14 Aug 2021 21:14:59 +0200 Subject: [PATCH 173/354] Tweak notifications --- .../core/fnc/body/bagRecover.sqf | 4 +--- .../core/fnc/body/bagRecover_s.sqf | 1 + .../core/fnc/common/show_hint.sqf | 12 +++++------- .../core/fnc/log/copy.sqf | 2 +- .../core/fnc/respawn/addTicket.sqf | 2 +- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index 640f7ed66..573faecb6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -33,9 +33,7 @@ _array = _array select { ) }; if (_array isEqualTo []) exitWith { - [ - ["No body bag around or alive enemy"] - ] call CBA_fnc_notify; + "No body bag around or alive enemy" call CBA_fnc_notify; }; [_array select 0] remoteExecCall ["btc_body_fnc_bagRecover_s", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 4a79d7d96..242134208 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -35,6 +35,7 @@ if (_bodyBag isKindOf "CAManBase") then { if (_ticket isEqualTo 0) exitWith { [23] remoteExecCall ["btc_fnc_show_hint", remoteExecutedOwner]; }; +[22] remoteExecCall ["btc_fnc_show_hint", remoteExecutedOwner]; if (btc_p_respawn_ticketsShare) then { [btc_player_side, _ticket] call btc_respawn_fnc_addTicket; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf index 7df0f28c7..7145e49b1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf @@ -116,15 +116,13 @@ private _text = switch (_type) do { ]; }; case 22 : { - [ - ["Respawn ticket added"], - [format ["%1 respawn tickets left", _custom]] - ]; + "Respawn ticket added" }; case 23 : { - [ - ["No body bag from a player"] - ]; + "No body bag from a player"; + }; + case 24 : { + format ["%1 respawn tickets left", _custom]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf index 26bc0af9e..c8f65f407 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf @@ -35,7 +35,7 @@ btc_int_ask_data = nil; [{!(isNil "btc_int_ask_data")}, { if ("ACE_bodyBagObject" in flatten btc_int_ask_data) exitWith { - ("You can't copy body bag") call CBA_fnc_notify; + "You can't copy body bag" call CBA_fnc_notify; }; btc_copy_container = +btc_int_ask_data; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/addTicket.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/addTicket.sqf index 8930fc437..b86316ce6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/addTicket.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/addTicket.sqf @@ -36,7 +36,7 @@ params [ if !(_player isEqualTo objNull) then { private _ticketValue = [_player, _ticket] call BIS_fnc_respawnTickets; - [22, _ticketValue] remoteExecCall ["btc_fnc_show_hint", _player]; + [24, _ticketValue] remoteExecCall ["btc_fnc_show_hint", _player]; }; if (_uid isEqualTo "") exitWith {}; From 6b1762aa47ac5f33c8bd42d46cdd4c97ae41c38d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 15 Aug 2021 14:04:07 +0200 Subject: [PATCH 174/354] Use moveOut for dead body inside dead vehicle and add stringtable --- .../core/def/param.hpp | 14 ++++---- .../core/fnc/body/bagRecover.sqf | 2 +- .../core/fnc/common/show_hint.sqf | 6 ++-- .../core/fnc/log/copy.sqf | 2 +- .../core/fnc/log/server_repair_wreck.sqf | 2 ++ .../core/fnc/veh/respawn.sqf | 1 + .../stringtable.xml | 32 +++++++++++++++++++ 7 files changed, 47 insertions(+), 12 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 006d89bbb..bee81afdf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -66,19 +66,19 @@ class Params { default = 30; }; class btc_p_respawn_ticketsAtStart { // Number of tickets at mission start: - title = __EVAL(format [" %1", "Number of tickets at mission start:"]); - values[]={-1,0,1,2,3,4,5,10,30,50,100,200}; - texts[]={$STR_DISABLED,"0","1","2","3","4","5","10","30","50","100","200"}; - default = 10; + title = __EVAL(format [" %1", localize "STR_BTC_HAM_RESP_TICKETSATSTART"]); + values[]={-1,0,1,2,3,4,5,10,15,20,25,30,50,70,100,150,200}; + texts[]={$STR_DISABLED,"0","1","2","3","4","5","10","15","20","25","30","50","70","100","150","200"}; + default = 20; }; class btc_p_respawn_ticketsShare { // Tickets are share between: - title = __EVAL(format [" %1", "Tickets are share between:"]); + title = __EVAL(format [" %1", localize "STR_BTC_HAM_RESP_TICKETSHARE"]); values[]={0,1}; - texts[]={"Players of the same faction", "Not share"}; + texts[]={$STR_BTC_HAM_RESP_SAMEFACTION, $STR_BTC_HAM_RESP_NOTSHARE}; default = 1; }; class btc_p_body_timeBeforeShowMarker { // Time before showing marker of dead player's body: - title = __EVAL(format [" %1", "Time before showing marker of dead player's body:"]); + title = __EVAL(format [" %1", localize "STR_BTC_HAM_RESP_TIMEBEFORESHOWMARKER"]); values[]={-1,0,5,10,30,60}; texts[]={$STR_DISABLED,"0 min","5 min","10 min","30 min","60 min"}; default = 10; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index 573faecb6..6396d2957 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -33,7 +33,7 @@ _array = _array select { ) }; if (_array isEqualTo []) exitWith { - "No body bag around or alive enemy" call CBA_fnc_notify; + localize "STR_BTC_HAM_O_BODYBAG_NO" call CBA_fnc_notify; }; [_array select 0] remoteExecCall ["btc_body_fnc_bagRecover_s", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf index 7145e49b1..2e8558b62 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf @@ -116,13 +116,13 @@ private _text = switch (_type) do { ]; }; case 22 : { - "Respawn ticket added" + localize "STR_BTC_HAM_O_COMMON_TICKETADD" }; case 23 : { - "No body bag from a player"; + localize "STR_BTC_HAM_O_COMMON_NOBODYBAG"; }; case 24 : { - format ["%1 respawn tickets left", _custom]; + format [localize "STR_BTC_HAM_O_COMMON_TICKETSLEFT", _custom]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf index c8f65f407..0d4ede800 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/copy.sqf @@ -35,7 +35,7 @@ btc_int_ask_data = nil; [{!(isNil "btc_int_ask_data")}, { if ("ACE_bodyBagObject" in flatten btc_int_ask_data) exitWith { - "You can't copy body bag" call CBA_fnc_notify; + localize "STR_BTC_HAM_O_BODYBAG_COPY" call CBA_fnc_notify; }; btc_copy_container = +btc_int_ask_data; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index 8b9eb55e8..7c9dd9723 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -48,6 +48,8 @@ if ((getVehicleCargo _veh) isNotEqualTo []) then { _veh setVehicleCargo objNull; }; +{moveOut _x} forEach crew _veh; + [{ deleteVehicle _this; }, _veh] call CBA_fnc_execNextFrame; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index dfe903fed..34eadb95e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -38,6 +38,7 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); ["_helo", btc_helo, [[]]] ]; + {moveOut _x} forEach crew _vehicle; deleteVehicle _vehicle; _helo deleteAt (_helo find _vehicle); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 37a8d8686..235643a0b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -598,6 +598,21 @@ 集合点自毁时间: Temps avant l'autodestruction du point de ralliement: + + Number of tickets at mission start: + + + Tickets are share between: + + + Players of the same faction + + + Not share" + + + Time before showing marker of dead player's body: + ACE Arsenal available on respawn after been killed: ACE军火库在玩家死亡重生后可用: @@ -2258,6 +2273,15 @@ 服务器将在5分钟后重启, 请立即离开服务器! Redémarrage du serveur dans 5min, décconectez-vous maintenant ! + + Respawn ticket added + + + No body bag from a player + + + %1 respawn tickets left + @@ -2396,6 +2420,14 @@ 正在撬锁... + + + No body bag around or alive enemy + + + You can't copy body bag + + From a18ed3411db530a538a8d5c443e65a3ba938dab0 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 15 Aug 2021 16:14:26 +0200 Subject: [PATCH 175/354] fix typo, improve picture --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 4 ++-- docs/InGame-documentation.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 235643a0b..ec9eec934 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -125,7 +125,7 @@ - <img image='\a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Introduction:</marker><br/> By default, each player has a limited number of respawn tickets. On first join, you get the default number of tickets (10). After, each time you respawn, your number of tickets will decrease by one and a kill in action (KIA) marker will appear after 10 minutes. <img image='A3\Missions_F_EPA\data\img\B_skirmish03_overview_CA.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Get new tickets:</marker><br/> Players can increase by one ticket if they retrieve their dead body back to base. Prisoners also increase by one ticket but to all currently connected players. <br/><br/> <img image='\z\ace\addons\medical_gui\ui\bodybag.paa' width='20' height='20'/> <marker name='blufor_base'>Dead player body:</marker><br/> Any player can retrieve dead player body by:<br/> - <img image='\z\ace\addons\medical_treatment\ui\bodybag_ca.paa' width='13' height='13'/> Putting dead body in a body bag. Watch out if your vehicle get destroyed, all body bag will be lost!<br/> - Carry it to the logistic point<br/> - Interact with the logistic point<br/> - <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='13' height='13'/> Select "Get tickets from body bag or prisoner"<br/> The ticket from the body bag will go to the player owned the dead body (even if he is not connected). <img image='\A3\EditorPreviews_F_Orange\Data\CfgVehicles\Land_Bodybag_01_black_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\captives\UI\handcuff_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Prisoners:</marker><br/> Prisoners <img image='\z\ace\addons\captives\UI\Surrender_ca.paa' width='13' height='13'/> follow the same process as dead player body without the need of body bag. The prisonner need to be alive but it could be unconcious. + <img image='\a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Introduction:</marker><br/> By default, each player has a limited number of respawn tickets. On first join, you get the default number of tickets (20). After, each time you respawn, your number of tickets will decrease by one and a kill in action (KIA) marker will appear after 10 minutes.<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_104_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Get new tickets:</marker><br/> Players can increase by one ticket if they retrieve their dead body back to base. Prisoners also increase by one ticket but to all currently connected players.<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_118_co.paa' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\medical_gui\ui\bodybag.paa' width='20' height='20'/> <marker name='blufor_base'>Dead player body:</marker><br/> Any player can retrieve dead player body by:<br/> - <img image='\z\ace\addons\medical_treatment\ui\bodybag_ca.paa' width='13' height='13'/> Putting dead body in a body bag. Watch out if your vehicle get destroyed, all body bag will be lost!<br/> - Carry it to the logistic point<br/> - Interact with the logistic point<br/> - <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='13' height='13'/> Select "Get tickets from body bag or prisoner"<br/> The ticket from the body bag will go to the player owned the dead body (even if he is not connected).<br/><br/> <img image='\A3\EditorPreviews_F_Orange\Data\CfgVehicles\Land_Bodybag_01_black_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\captives\UI\handcuff_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Prisoners:</marker><br/> Prisoners <img image='\z\ace\addons\captives\UI\Surrender_ca.paa' width='13' height='13'/> follow the same process as dead player body without the need of body bag. The prisonner need to be alive but it could be unconcious.<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_106_co.paa' width='355' height='200'/> @@ -608,7 +608,7 @@ Players of the same faction - Not share" + Not share Time before showing marker of dead player's body: diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index ecdd8b9ca..5b3ea8548 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -55,7 +55,7 @@ If you don't want to complete a task, you can always abort it with the self inte ## Respawn tickets ### Introduction: -By default, each player has a limited number of respawn tickets. On first join, you get the default number of tickets (10). After, each time you respawn, your number of tickets will decrease by one and a kill in action (KIA) marker will appear after 10 minutes. +By default, each player has a limited number of respawn tickets. On first join, you get the default number of tickets (20). After, each time you respawn, your number of tickets will decrease by one and a kill in action (KIA) marker will appear after 10 minutes. ### Get new tickets: Players can increase by one ticket if they retrieve their dead body back to base. Prisoners also increase by one ticket, but to all currently connected players. ### Dead player body: From 4bcd47ccc2f7b084aadb8b7a4436442b281b122c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 18 Aug 2021 23:53:42 +0200 Subject: [PATCH 176/354] avoid merge conflict between master and master daily --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 1619d9f99..04bae1099 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -1,5 +1,9 @@ -btc_version = [1, 21.1, 6]; +btc_version = [ + 1, + 21.1, + 6 +]; diag_log format (["=BTC= HEARTS AND MINDS VERSION %1.%2.%3"] + btc_version); //Param From 1543d9247e87382dad89d10226e95e263be6c76d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 19 Aug 2021 20:17:30 +0200 Subject: [PATCH 177/354] adjust header --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf | 1 + .../core/fnc/body/bagRecover_s.sqf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index 6396d2957..ca89f7c75 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -12,6 +12,7 @@ Returns: Examples: (begin example) + btc_curator addCuratorEditableObjects [btc_body_deadPlayers, false]; [btc_log_create_obj] call btc_body_fnc_bagRecover; (end) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 242134208..982e24757 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_body_fnc_bagRecover_s; + cursorObject remoteExecCall ["btc_body_fnc_bagRecover_s", 2]; (end) Author: From a5a3de10e5480c88aa8eb79cf40676bfb5fbb3f5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 23 Aug 2021 19:05:45 +0200 Subject: [PATCH 178/354] Clean up killed event handler run twice Since https://feedback.bistudio.com/T149510 --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf | 6 +----- .../core/fnc/veh/addRespawn.sqf | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index 76a97aac9..8c47f9fac 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -31,11 +31,7 @@ if !(isServer) exitWith { btc_vehicles pushBackUnique _veh; _veh addMPEventHandler ["MPKilled", { params ["_unit"]; - if ( - isServer && - {_unit getVariable ["btc_killed", true]} // https://feedback.bistudio.com/T149510 - ) then { - _unit setVariable ["btc_killed", false]; + if (isServer) then { _this call btc_veh_fnc_killed; }; }]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index b3965cf4b..336d27c8c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -43,11 +43,7 @@ _vehicle setVariable ["data_respawn", [_type, _pos, _dir, _time, _vector] + _veh if ((isNumber (configOf _vehicle >> "ace_fastroping_enabled")) && (typeOf _vehicle isNotEqualTo "RHS_UH1Y_d")) then {[_vehicle] call ace_fastroping_fnc_equipFRIES}; _vehicle addMPEventHandler ["MPKilled", { params ["_unit"]; - if ( - isServer && - {_unit getVariable ["btc_killed", true]} // https://feedback.bistudio.com/T149510 - ) then { - _unit setVariable ["btc_killed", false]; + if (isServer) then { _this call btc_veh_fnc_respawn; }; }]; From 56a1c4209203b753c5bab5b89c60ad8c4abdd74f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 23 Aug 2021 19:40:05 +0200 Subject: [PATCH 179/354] remove useless params --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf | 1 - =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf | 1 - 2 files changed, 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index 8c47f9fac..35e0fade4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -30,7 +30,6 @@ if !(isServer) exitWith { btc_vehicles pushBackUnique _veh; _veh addMPEventHandler ["MPKilled", { - params ["_unit"]; if (isServer) then { _this call btc_veh_fnc_killed; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 336d27c8c..3e061ef23 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -42,7 +42,6 @@ _vehicle setVariable ["data_respawn", [_type, _pos, _dir, _time, _vector] + _veh if ((isNumber (configOf _vehicle >> "ace_fastroping_enabled")) && (typeOf _vehicle isNotEqualTo "RHS_UH1Y_d")) then {[_vehicle] call ace_fastroping_fnc_equipFRIES}; _vehicle addMPEventHandler ["MPKilled", { - params ["_unit"]; if (isServer) then { _this call btc_veh_fnc_respawn; }; From a9988897c5373c6a2ab239d95f726eaa714f613f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 25 Aug 2021 12:07:13 +0200 Subject: [PATCH 180/354] adjust header --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf | 1 + .../core/fnc/body/bagRecover_s.sqf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index 6396d2957..ca89f7c75 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -12,6 +12,7 @@ Returns: Examples: (begin example) + btc_curator addCuratorEditableObjects [btc_body_deadPlayers, false]; [btc_log_create_obj] call btc_body_fnc_bagRecover; (end) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 242134208..982e24757 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_body_fnc_bagRecover_s; + cursorObject remoteExecCall ["btc_body_fnc_bagRecover_s", 2]; (end) Author: From 85bac1e19ece7c6942e4eb18bfb6f86fb9df643c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 25 Aug 2021 12:07:34 +0200 Subject: [PATCH 181/354] add localize and params --- .../core/def/param.hpp | 6 ++++++ .../core/fnc/veh/init.sqf | 8 ++++---- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index bee81afdf..08cc10b40 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -425,6 +425,12 @@ class Params { texts[]={$STR_DISABLED,"1","2","3"}; default = 0; }; + class btc_p_flag { // Allow the use of flag: + title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_ALLOWFLAG"]); + values[]={0,1,2}; + texts[]={$STR_DISABLED,$STR_BTC_HAM_PARAM_OTHER_FLAGVEH,$STR_BTC_HAM_PARAM_OTHER_FLAGVEHPLAYER}; + default = 2; + }; class btc_p_auto_headless { // Autodetect Headless client: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_AUTOHEADLESS"]); values[]={0,1}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index 1552088c6..3d83682c6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -40,13 +40,13 @@ switch true do { _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - private _action = ["btc_flag_deployVeh", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { + private _action = ["btc_flag_deployVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_DEPLOYFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { btc_p_flag > 0 && {getForcedFlagTexture _target isEqualTo ""} && {(driver vehicle player) isEqualTo player} }, {_this call btc_flag_fnc_deploy}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - _action = ["btc_flag_cutVeh", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _action = ["btc_flag_cutVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { _target forceFlagTexture ""; }, { btc_p_flag > 0 && @@ -64,13 +64,13 @@ switch true do { _action = ["Cut_ropes", localize "STR_ACE_Fastroping_Interaction_cutRopes", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", {[] call btc_lift_fnc_destroyRopes;}, {btc_ropes_deployed && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - private _action = ["btc_flag_deployVeh", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { + private _action = ["btc_flag_deployVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_DEPLOYFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { btc_p_flag > 0 && {getForcedFlagTexture _target isEqualTo ""} && {(driver vehicle player) isEqualTo player} }, {_this call btc_flag_fnc_deploy}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; - _action = ["btc_flag_cutVeh", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _action = ["btc_flag_cutVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { _target forceFlagTexture ""; }, { btc_p_flag > 0 && diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index ec9eec934..48cafa80f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -847,6 +847,15 @@ City will be free if number of enemies is equal or lower than: 城镇将会被解放, 当敌军数量小于或等于: + + Allow the use of flag: + + + On vehicle + + + On vehicle and players + Autodetect Headless client: Headless-Client automatisch erkennen: @@ -1756,6 +1765,12 @@ 取消牵引 Décrocher + + Cut flag + + + Cut flag + From ef4e0fff2f7df417dc6852c0cdcf7702451ffed6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 27 Aug 2021 18:54:29 +0200 Subject: [PATCH 182/354] Fix btc_p_mil_wp_ratios doesn't exist anymore --- .../core/fnc/city/activate.sqf | 2 +- .../core/fnc/data/add_group.sqf | 6 +++--- .../core/fnc/mil/addWP.sqf | 12 +++++------- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index dfaf80762..e359204b4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -123,7 +123,7 @@ if (_data_units isNotEqualTo []) then { _city, [_spawningRadius, _spawningRadius/3] select (_i <= _numberOfHouseGroup), 2 + round random 1, - [[1,2] selectRandomWeighted [0.7, 0.3], 0] select (_i <= _numberOfHouseGroup) + [[1, 2] selectRandomWeighted [0.7, 0.3], 0] select (_i <= _numberOfHouseGroup) ] call btc_mil_fnc_create_group; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf index d86b51f18..0f014cea2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf @@ -41,12 +41,12 @@ if (_city getVariable ["marker", ""] != "") then { }; private _wp = if (vehicle leader _group isEqualTo leader _group) then { - random 1; + selectRandom [0, 1, 2]; } else { if ((vehicle leader _group) isKindOf "Air") then { - 0.7; + 1; } else { - 0.3 + random 0.7; + selectRandom [1, 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf index 145d47b8b..c917060ba 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf @@ -28,16 +28,14 @@ params [ ["_group", grpNull, [grpNull]], ["_city", objNull, [objNull]], ["_area", 0, [0]], - ["_wp", 0, [0]], - ["_wp_ratios", btc_p_mil_wp_ratios, [[]]] + ["_wp", 0, [0]] ]; -_wp_ratios params ["_wp_house_probability", "_wp_sentry_probability"]; private _pos = position _city; private _rpos = [_pos, _area] call btc_fnc_randomize_pos; -switch (true) do { - case (_wp <= _wp_house_probability) : { +switch (_wp) do { + case (0) : { private _houses = [_city, _area] call btc_fnc_getHouses; if (_houses isNotEqualTo []) then { private _house = selectRandom _houses; @@ -47,10 +45,10 @@ switch (true) do { [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", ["LIMITED", "NORMAL"] select ((vehicle leader _group) isKindOf "Air"), "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; }; }; - case (_wp > _wp_house_probability && _wp <= _wp_sentry_probability) : { + case (1) : { [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "AWARE", "RED", ["LIMITED", "NORMAL"] select ((vehicle leader _group) isKindOf "Air"), "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; }; - case (_wp > _wp_sentry_probability) : { + case (2) : { [_group] call CBA_fnc_clearWaypoints; [_group, _rpos, -1, "SENTRY", "AWARE", "RED", "UNCHANGED", "WEDGE", "(group this) call btc_data_fnc_add_group;", [18000, 36000, 54000]] call CBA_fnc_addWaypoint; }; From 1aeb3d663a449c2b793cfd534e98ec78c077076d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 27 Aug 2021 19:08:34 +0200 Subject: [PATCH 183/354] Migrate to a more readable waypoint type --- .../core/fnc/city/activate.sqf | 14 ++++---- .../core/fnc/data/add_group.sqf | 6 ++-- .../core/fnc/mil/addWP.sqf | 13 ++++---- .../core/fnc/mil/create_group.sqf | 32 +++++++++---------- .../core/fnc/mil/send.sqf | 2 +- .../core/fnc/side/underwater_generator.sqf | 4 +-- 6 files changed, 35 insertions(+), 36 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index e359204b4..1e932093c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -123,7 +123,7 @@ if (_data_units isNotEqualTo []) then { _city, [_spawningRadius, _spawningRadius/3] select (_i <= _numberOfHouseGroup), 2 + round random 1, - [[1, 2] selectRandomWeighted [0.7, 0.3], 0] select (_i <= _numberOfHouseGroup) + [["PATROL", "SENTRY"] selectRandomWeighted [0.7, 0.3], "HOUSE"] select (_i <= _numberOfHouseGroup) ] call btc_mil_fnc_create_group; }; }; @@ -197,7 +197,7 @@ if (_city getVariable ["spawn_more", false]) then { _city, [_spawningRadius, _spawningRadius/3] select (_i <= _numberOfHouseGroup), 4 + round random 3, - [1, 0] select (_i <= _numberOfHouseGroup) + ["PATROL", "HOUSE"] select (_i <= _numberOfHouseGroup) ] call btc_mil_fnc_create_group; }; if (btc_p_veh_armed_spawn_more) then { @@ -215,8 +215,8 @@ if ( if (_city inArea [btc_cache_pos, _cachingRadius, _cachingRadius, 0, false]) then { btc_cache_obj setVariable ["btc_cache_unitsSpawned", true]; - [btc_cache_pos, 8, 3, 0] call btc_mil_fnc_create_group; - [btc_cache_pos, 60, 4, 2] call btc_mil_fnc_create_group; + [btc_cache_pos, 8, 3, "HOUSE"] call btc_mil_fnc_create_group; + [btc_cache_pos, 60, 4, "SENTRY"] call btc_mil_fnc_create_group; if (btc_p_veh_armed_spawn_more) then { private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; for "_i" from 1 to (1 + round random 3) do { @@ -229,9 +229,9 @@ if ( if (_has_ho && {!(_city getVariable ["ho_units_spawned", false])}) then { _city setVariable ["ho_units_spawned", true]; private _pos = _city getVariable ["ho_pos", getPos _city]; - [_pos, 20, 10 + round (_p_mil_group_ratio * random 6), 2] call btc_mil_fnc_create_group; - [_pos, 120, 1 + round random 2, 2] call btc_mil_fnc_create_group; - [_pos, 120, 1 + round random 2, 2] call btc_mil_fnc_create_group; + [_pos, 20, 10 + round (_p_mil_group_ratio * random 6), "SENTRY"] call btc_mil_fnc_create_group; + [_pos, 120, 1 + round random 2, "SENTRY"] call btc_mil_fnc_create_group; + [_pos, 120, 1 + round random 2, "SENTRY"] call btc_mil_fnc_create_group; private _random = random 1; switch (true) do { case (_random <= 0.3) : {}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf index 0f014cea2..a1d39faa3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf @@ -41,12 +41,12 @@ if (_city getVariable ["marker", ""] != "") then { }; private _wp = if (vehicle leader _group isEqualTo leader _group) then { - selectRandom [0, 1, 2]; + selectRandom ["HOUSE", "PATROL", "SENTRY"]; } else { if ((vehicle leader _group) isKindOf "Air") then { - 1; + "PATROL"; } else { - selectRandom [1, 2]; + selectRandom ["PATROL", "SENTRY"]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf index c917060ba..b304917ef 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf @@ -3,14 +3,13 @@ Function: btc_mil_fnc_addWP Description: - Add waypoint to allready created units. + Add waypoint to already created units. Parameters: _group - Group of enemies. [Group] _city - City to patrol around. [Object] _area - Area to patrol around. [Number] - _wp - Type of wp: in house, patrol or sentry. [Number] - _wp_ratios - Ratios between each type of waypoints. [Array] + _wp - Type of wp: in house, patrol or sentry. [String] Returns: @@ -28,14 +27,14 @@ params [ ["_group", grpNull, [grpNull]], ["_city", objNull, [objNull]], ["_area", 0, [0]], - ["_wp", 0, [0]] + ["_wp", "PATROL", [""]] ]; private _pos = position _city; private _rpos = [_pos, _area] call btc_fnc_randomize_pos; switch (_wp) do { - case (0) : { + case ("HOUSE") : { private _houses = [_city, _area] call btc_fnc_getHouses; if (_houses isNotEqualTo []) then { private _house = selectRandom _houses; @@ -45,10 +44,10 @@ switch (_wp) do { [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", ["LIMITED", "NORMAL"] select ((vehicle leader _group) isKindOf "Air"), "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; }; }; - case (1) : { + case ("PATROL") : { [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "AWARE", "RED", ["LIMITED", "NORMAL"] select ((vehicle leader _group) isKindOf "Air"), "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; }; - case (2) : { + case ("SENTRY") : { [_group] call CBA_fnc_clearWaypoints; [_group, _rpos, -1, "SENTRY", "AWARE", "RED", "UNCHANGED", "WEDGE", "(group this) call btc_data_fnc_add_group;", [18000, 36000, 54000]] call CBA_fnc_addWaypoint; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index aa0d6674c..82a81ba3d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -3,23 +3,23 @@ Function: btc_mil_fnc_create_group Description: - Fill me when you edit me ! + Create a group of enemies with the corresponding waypoint. Parameters: - _city - [Number] - _area - [Number] - _n - [Number] - _wp - [Array] - _type_divers - [Array] - _type_units - [Boolean] - _p_sea - [Side] - _enemy_side - [Array] + _city - City to patrol around. [Object] + _area - Area to patrol around. [Number] + _n - Number of enemies to create inside the group. [Number] + _wp - Type of wp: in "HOUSE", "PATROL" or "SENTRY". [String] + _type_divers - Type of diver list. [Array] + _type_units - Type of units list. [Array] + _p_sea - Allow spawn in water. [Boolean] + _enemy_side - Side of the enemie. [Side] Returns: Examples: (begin example) - [player, 50, 1, 1] call btc_mil_fnc_create_group; + [player, 50, 1, "PATROL"] call btc_mil_fnc_create_group; (end) Author: @@ -31,7 +31,7 @@ params [ ["_city", objNull, [objNull, []]], ["_area", 300, [0]], ["_n", 0, [0]], - ["_wp", 0, [0]], + ["_wp", "PATROL", [""]], ["_type_divers", btc_type_divers, [[]]], ["_type_units", btc_type_units, [[]]], ["_p_sea", btc_p_sea, [true]], @@ -40,12 +40,12 @@ params [ private _pos = [_city call CBA_fnc_getPos, _area, _p_sea] call btc_fnc_randomize_pos; private _group_structure = [1, objNull]; -if (_wp isEqualTo 0) then { // Find building +if (_wp isEqualTo "HOUSE") then { // Find building ([_pos, _n] call btc_mil_fnc_getBuilding) params ["_numberOfGroup", "_structure"]; if (_structure isNotEqualTo objNull) then { _group_structure = [_numberOfGroup, _structure]; } else { - _wp = 1; // Handle the case there is no building + _wp = "PATROL"; // Handle the case there is no building }; }; @@ -77,18 +77,18 @@ for "_i" from 1 to _numberOfGroup do { }; switch (_wp) do { - case (0) : { + case ("HOUSE") : { _n = 1; [_group, _structure] call btc_fnc_house_addWP; _group setVariable ["btc_inHouse", typeOf _structure]; }; - case (1) : { + case ("PATROL") : { [{ params ["_group", "_hashMapGroup", "_area"]; [_group, _hashMapGroup get "_pos", _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; }, [_group, _hashMapGroup, _area], btc_delay_time] call CBA_fnc_waitAndExecute; }; - case (2) : { + case ("SENTRY") : { [_group] call CBA_fnc_clearWaypoints; [{ params ["_group", "_hashMapGroup"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf index 4d3a0f6f6..b84498ec6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf @@ -39,7 +39,7 @@ private _group = grpNull; private _delay = 0; switch (_typeOf_patrol) do { case 0 : { - _group = ([_pos, 150, 3 + round random 6, 1] call btc_mil_fnc_create_group) select 0; + _group = ([_pos, 150, 3 + round random 6, "PATROL"] call btc_mil_fnc_create_group) select 0; _group setVariable ["no_cache", true]; }; case 1 : { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf index e082ad340..83d846b40 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf @@ -66,8 +66,8 @@ private _storagebladder = (selectRandom btc_type_storagebladder) createVehicle [ [_taskID, 11, _generator, [_city getVariable "name", typeOf _generator]] call btc_task_fnc_create; -private _group = [_pos, 8, 1 + round random 5, 1] call btc_mil_fnc_create_group; -[_pos, 20, 2 + round random 4, 1] call btc_mil_fnc_create_group; +private _group = [_pos, 8, 1 + round random 5, "PATROL"] call btc_mil_fnc_create_group; +[_pos, 20, 2 + round random 4, "PATROL"] call btc_mil_fnc_create_group; _pos = getPosASL _generator; (leader (_group select 0)) setPosASL [_x, _y, _z + 1 + random 1]; From 4d5fec9cd5acf379ff37423a8f7560017cad5206 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 30 Aug 2021 18:12:12 +0200 Subject: [PATCH 184/354] tweak comment --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf index b304917ef..9daf9879c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf @@ -9,7 +9,7 @@ Parameters: _group - Group of enemies. [Group] _city - City to patrol around. [Object] _area - Area to patrol around. [Number] - _wp - Type of wp: in house, patrol or sentry. [String] + _wp - Type of wp: in "HOUSE", "PATROL" or "SENTRY". [String] Returns: From e8db3045cad819f5b6706ffa1fa6186e26e56e09 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 1 Sep 2021 19:55:58 +0200 Subject: [PATCH 185/354] fix missing translation and fix syntaxe --- .../core/fnc/common/show_hint.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/screen.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 3 +++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf index 2e8558b62..4cc65a424 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/show_hint.sqf @@ -116,7 +116,7 @@ private _text = switch (_type) do { ]; }; case 22 : { - localize "STR_BTC_HAM_O_COMMON_TICKETADD" + localize "STR_BTC_HAM_O_COMMON_TICKETADD"; }; case 23 : { localize "STR_BTC_HAM_O_COMMON_NOBODYBAG"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 58b8103b5..e7a3d900f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -84,7 +84,7 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title }, {true}, {}, [_helipad], [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; if (btc_p_respawn_ticketsAtStart isNotEqualTo -1) then { - _action = ["Bodybag", "Get tickets from body bag or prisoner", "\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa", { + _action = ["Bodybag", localize "STR_BTC_HAM_ACTION_LOGPOINT_BODYBAG", "\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa", { params ["", "", "_params"]; _params call btc_body_fnc_bagRecover; }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/screen.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/screen.sqf index 3cb4a3921..3326fc046 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/screen.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/screen.sqf @@ -39,4 +39,4 @@ if !(btc_p_respawn_ticketsShare) then { ] call CBA_fnc_waitUntilAndExecute; } ] call CBA_fnc_waitUntilAndExecute; -}; \ No newline at end of file +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index ec9eec934..d9672d1b6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -1585,6 +1585,9 @@ 为燃油卡车补给燃料 Ravitailler la source de carburant + + Get tickets from body bag or prisoner + From 63113f570c4ba6e54eb1783959be274a5a428c9a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 4 Sep 2021 11:15:44 +0200 Subject: [PATCH 186/354] add persistancy on player fix stringtable --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 4 +++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 5 +++-- .../core/fnc/int/add_actions.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index ed7b633b0..f70091a4f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -220,7 +220,8 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { private _group = createGroup btc_player_side; btc_body_deadPlayers = _deadBodyPlayers apply { _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated", - ["_uid", "", [""]] + ["_uid", "", [""]], + ["_flagTexture", "", [""]] ]; private _body = _group createUnit [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; _body setUnitLoadout _loadout; @@ -234,6 +235,7 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { _body setDamage 1; _body setVariable ["btc_dont_delete", true]; _body setVariable ["btc_UID", _uid]; + _body forceFlagTexture _flagTexture; [{ params ["_body", "_dir", "_pos"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 25c9d53b7..088d77816 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -139,7 +139,7 @@ private _vehiclesNotInCargo = _vehicles select { }; private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; { - (_x call btc_db_fnc_saveObjectStatus) params ["_type", "_pos", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated", + (_x call btc_db_fnc_saveObjectStatus) params ["_type", "_pos", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated", "", "", ["_flagTexture", "", [""]] ]; @@ -225,7 +225,8 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { _x call ace_dogtags_fnc_getDogtagData, !isNull (_x getVariable ["ace_dogtags_dogtagTaken", objNull]), _x in btc_chem_contaminated, - _x getVariable ["btc_UID", ""] + _x getVariable ["btc_UID", ""], + getForcedFlagTexture _x ]}; profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], +_deadBodyPlayers]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 48b17289b..9523aef20 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -216,9 +216,9 @@ _action = ["door_break", localize "STR_BTC_HAM_ACTION_DOOR_BREAK", "\A3\Ui_f\dat //Flag if (btc_p_flag > 1) then { - private _action = ["btc_flag_deployPlayer", "Deploy_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, {getForcedFlagTexture _target isEqualTo ""}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; + private _action = ["btc_flag_deployPlayer", localize "STR_BTC_HAM_ACTION_VEHINIT_DEPLOYFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, {getForcedFlagTexture _target isEqualTo ""}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject; - _action = ["btc_flag_cutPlayer", "Cut_flag", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _action = ["btc_flag_cutPlayer", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { _target forceFlagTexture ""; }, {getForcedFlagTexture _target isNotEqualTo ""}] call ace_interact_menu_fnc_createAction; [player, 1, ["ACE_SelfActions", "ACE_Equipment"], _action] call ace_interact_menu_fnc_addActionToObject; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 48cafa80f..883897e6b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -1766,7 +1766,7 @@ Décrocher - Cut flag + Deploy flag Cut flag From 50253d309737693dda1c206cbea28cf3a855393f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 5 Sep 2021 18:57:48 +0200 Subject: [PATCH 187/354] Simplify cargo system --- .../core/def/mission.sqf | 48 ------------------- .../core/fnc/compile.sqf | 2 - .../core/fnc/eh/server.sqf | 14 +++++- .../core/fnc/log/delete.sqf | 2 +- .../core/fnc/log/get_cc.sqf | 48 ------------------- .../core/fnc/log/get_rc.sqf | 48 ------------------- .../core/fnc/log/init.sqf | 26 ++++------ .../core/fnc/log/refuelSource.sqf | 2 +- 8 files changed, 25 insertions(+), 165 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_cc.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_rc.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 383695dc7..9a6a1a80c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -532,54 +532,6 @@ btc_log_placing_max_h = 12; btc_log_placing = false; btc_log_obj_created = []; -btc_log_main_cc = [ - "Helicopter", 6, - "Ship", 3, - "Tank", 5, - "Wheeled_APC", 5, - "Truck", 10, - "Truck_F", 10, - "Motorcycle", 1, - "Car", 3 -]; -btc_log_main_rc = [ - "Items_base_F", 2, - "ReammoBox_F", 2, - "thingX", 3, - "StaticWeapon", 3, - "Strategic", 2, - "Motorcycle", 3, - "Land_BarGate_F", 3, - "HBarrier_base_F", 5, - "Land_BagFence_Long_F", 3, - "Wall_F", 5, - "BagBunker_base_F", 5, - "Wheeled_APC", 50, - "Tank", 75, - "Truck", 50, - "Truck_F", 50, - "Ship", 50, - "Helicopter", 9999, - "Car", 35, - "Lamps_base_F", 2 -]; -btc_log_def_cc = [ - "Land_CargoBox_V1_F", 0, - btc_supplies_cargo, 20, - btc_fob_mat, 0, - "Land_Cargo20_military_green_F", 20, - "Land_Cargo40_military_green_F", 40 -]; -btc_log_def_rc = [ - "Land_BagBunker_Small_F", 5, - "Land_CargoBox_V1_F", 9999, - btc_supplies_cargo, 8, - btc_fob_mat, 8, - "Land_Cargo20_military_green_F", 8, - "B_Slingload_01_Fuel_F", 20, - "Land_Pod_Heli_Transport_04_medevac_black_F", 8 -]; - btc_log_fnc_get_nottowable = { params ["_tower"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 664acb25d..a845b38ff 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -184,8 +184,6 @@ if (isServer) then { btc_log_fnc_inventorySet = compileScript ["core\fnc\log\inventorySet.sqf"]; btc_log_fnc_server_delete = compileScript ["core\fnc\log\server_delete.sqf"]; btc_log_fnc_create_s = compileScript ["core\fnc\log\create_s.sqf"]; - btc_log_fnc_get_cc = compileScript ["core\fnc\log\get_cc.sqf"]; - btc_log_fnc_get_rc = compileScript ["core\fnc\log\get_rc.sqf"]; btc_log_fnc_server_repair_wreck = compileScript ["core\fnc\log\server_repair_wreck.sqf"]; btc_log_fnc_inventoryGet = compileScript ["core\fnc\log\inventoryGet.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 5d54b774a..5c360c03d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -82,4 +82,16 @@ if (btc_p_set_skill) then { }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; ["ace_tagCreated", btc_tag_fnc_eh] call CBA_fnc_addEventHandler; -["ace_disarming_dropItems", btc_rep_fnc_foodRemoved] call CBA_fnc_addEventHandler; +["ace_disarming_dropItems", btc_rep_fnc_foodRemoved] call CBA_fnc_addEventHandler; + +//Cargo +[btc_fob_mat, "InitPost", { + params ["_obj"]; + [_obj, -1] call ace_cargo_fnc_setSpace; +}] call CBA_fnc_addClassEventHandler; +{ + [_x, "InitPost", { + params ["_obj"]; + [_obj, 50] call ace_cargo_fnc_setSpace; + }] call CBA_fnc_addClassEventHandler; +} forEach ["CUP_MTVR_Base", "Truck_01_base_F", btc_supplies_cargo /*FIX: https://github.com/acemod/ACE3/pull/8344*/]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf index e4fad1b45..caf7623ef 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf @@ -26,7 +26,7 @@ params [ ["_blackList", [btc_create_object], [[]]] ]; -private _array = ((nearestObjects [_object, btc_log_main_rc select {_x isEqualType ""}, 6]) select {!( +private _array = ((nearestObjects [_object, ["Strategic", "Thing", "StaticWeapon"/*put thing spawned by the logistic point*/], 6]) select {!( _x isKindOf "ACE_friesBase" OR _x isKindOf "ace_fastroping_helper" )}) - _blackList; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_cc.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_cc.sqf deleted file mode 100644 index 08f422340..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_cc.sqf +++ /dev/null @@ -1,48 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_log_fnc_get_cc - -Description: - Fill me when you edit me ! - -Parameters: - _obj - [Object] - -Returns: - -Examples: - (begin example) - _result = [] call btc_log_fnc_get_cc; - (end) - -Author: - Giallustio - ----------------------------------------------------------------------------- */ - -params [ - ["_obj", objNull, [objNull]] -]; - -private _type = typeOf _obj; -private _cc = 0; -private _cond = false; -for "_i" from 0 to (count btc_log_def_cc - 1) do { - if (typeName (btc_log_def_cc select _i) isEqualTo "STRING" && !_cond) then { - if (!_cond && _type isEqualTo (btc_log_def_cc select _i)) then { - _cc = (btc_log_def_cc select (_i + 1)); - _cond = true; - }; - }; -}; -if (!_cond) then { - for "_i" from 0 to (count btc_log_main_cc - 1) do { - if (typeName (btc_log_main_cc select _i) isEqualTo "STRING") then { - if (!_cond && _type isKindOf (btc_log_main_cc select _i)) then { - _cc = (btc_log_main_cc select (_i + 1)); - _cond = true; - }; - }; - }; -}; -_cc diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_rc.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_rc.sqf deleted file mode 100644 index a11301641..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/get_rc.sqf +++ /dev/null @@ -1,48 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_log_fnc_get_rc - -Description: - Fill me when you edit me ! - -Parameters: - _obj - [Object] - -Returns: - -Examples: - (begin example) - _result = [] call btc_log_fnc_get_rc; - (end) - -Author: - Giallustio - ----------------------------------------------------------------------------- */ - -params [ - ["_obj", objNull, [objNull]] -]; - -private _type = typeOf _obj; -private _rc = 0; -private _cond = false; -for "_i" from 0 to (count btc_log_def_rc - 1) do { - if (typeName (btc_log_def_rc select _i) isEqualTo "STRING" && !_cond) then { - if (!_cond && _type isEqualTo (btc_log_def_rc select _i)) then { - _rc = (btc_log_def_rc select (_i + 1)); - _cond = true; - }; - }; -}; -if (!_cond) then { - for "_i" from 0 to (count btc_log_main_rc - 1) do { - if (typeName (btc_log_main_rc select _i) isEqualTo "STRING" && !_cond) then { - if (!_cond && _type isKindOf (btc_log_main_rc select _i)) then { - _rc = (btc_log_main_rc select (_i + 1)); - _cond = true; - }; - }; - }; -}; -_rc diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf index 880b2383f..e01ad61e9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf @@ -35,22 +35,16 @@ if ( }; private _type = typeOf _obj; -if (_type in btc_log_def_loadable || {_type in btc_log_def_rc}) then { - if (_type in btc_log_def_rc || {getNumber (configFile >> "CfgVehicles" >> _type >> "ace_cargo_canLoad") isEqualTo 0}) then { - [_obj, [_obj] call btc_log_fnc_get_rc] call ace_cargo_fnc_setSize; - - if (btc_debug_log) then { - [format ["ace_cargo_fnc_setSize to %1", _obj], __FILE__, [false]] call btc_debug_fnc_message; - }; - }; +if ( + _type in btc_log_def_loadable && + {getNumber (configOf _obj >> "ace_cargo_canLoad") isEqualTo 0} +) then { + [_obj, round sizeOf _type] call ace_cargo_fnc_setSize; }; -if (_type in btc_log_def_can_load || {_type in btc_log_def_cc}) then { - if (_type in btc_log_def_cc || {getNumber (configFile >> "CfgVehicles" >> _type >> "ace_cargo_hasCargo") isEqualTo 0}) then { - [_obj, [_obj] call btc_log_fnc_get_cc] call ace_cargo_fnc_setSpace; - - if (btc_debug_log) then { - [format ["ace_cargo_fnc_setSpace to %1", _obj], __FILE__, [false]] call btc_debug_fnc_message; - }; - }; +if ( + _type in btc_log_def_can_load && + {getNumber (configOf _obj >> "ace_cargo_hasCargo") isEqualTo 0} +) then { + [_obj, round sizeOf _type] call ace_cargo_fnc_setSpace; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf index 0f779cf9b..091ecc717 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf @@ -24,7 +24,7 @@ params [ ["_object", objNull, [objNull]] ]; -private _array = (nearestObjects [_object, ["LandVehicle", "Air", "Ship"] + btc_log_main_rc select {_x isEqualType ""}, 10]) select {!( +private _array = (nearestObjects [_object, ["LandVehicle", "Air", "Ship"] + ["Thing"/*put thing spawned by the logistic point*/], 10]) select {!( _x isKindOf "ACE_friesBase" OR _x isKindOf "ace_fastroping_helper" )}; From 114d73b8b804e22195ccb50ee8ce80f82827f41a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 8 Sep 2021 18:31:53 +0200 Subject: [PATCH 188/354] Fix missing logistic point check --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf index caf7623ef..5ac11eb3a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/delete.sqf @@ -26,7 +26,7 @@ params [ ["_blackList", [btc_create_object], [[]]] ]; -private _array = ((nearestObjects [_object, ["Strategic", "Thing", "StaticWeapon"/*put thing spawned by the logistic point*/], 6]) select {!( +private _array = ((nearestObjects [_object, flatten (btc_construction_array select 1), 6]) select {!( _x isKindOf "ACE_friesBase" OR _x isKindOf "ace_fastroping_helper" )}) - _blackList; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf index 091ecc717..f08d376ea 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf @@ -24,7 +24,7 @@ params [ ["_object", objNull, [objNull]] ]; -private _array = (nearestObjects [_object, ["LandVehicle", "Air", "Ship"] + ["Thing"/*put thing spawned by the logistic point*/], 10]) select {!( +private _array = (nearestObjects [_object, ["LandVehicle", "Air", "Ship", "Thing"], 10]) select {!( _x isKindOf "ACE_friesBase" OR _x isKindOf "ace_fastroping_helper" )}; From ae99d749db12f19ba6ab9d73950f3412e92d495b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 8 Sep 2021 18:41:38 +0200 Subject: [PATCH 189/354] Tweak size --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf index e01ad61e9..40937f338 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf @@ -39,12 +39,12 @@ if ( _type in btc_log_def_loadable && {getNumber (configOf _obj >> "ace_cargo_canLoad") isEqualTo 0} ) then { - [_obj, round sizeOf _type] call ace_cargo_fnc_setSize; + [_obj, round ((sizeOf _type)/1.3)] call ace_cargo_fnc_setSize; }; if ( _type in btc_log_def_can_load && {getNumber (configOf _obj >> "ace_cargo_hasCargo") isEqualTo 0} ) then { - [_obj, round sizeOf _type] call ace_cargo_fnc_setSpace; + [_obj, round ((sizeOf _type)/1.3)] call ace_cargo_fnc_setSpace; }; From 91799b614fce4582cf0051dfa5bd24149fd49215 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 10 Sep 2021 23:05:22 +0200 Subject: [PATCH 190/354] Migrate veh fnc proporties --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 2 +- .../core/fnc/log/createVehicle.sqf | 2 +- .../core/fnc/log/server_repair_wreck.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf | 2 +- .../{common/getVehProperties.sqf => veh/propertiesGet.sqf} | 4 ++-- .../{common/setVehProperties.sqf => veh/propertiesSet.sqf} | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{common/getVehProperties.sqf => veh/propertiesGet.sqf} (94%) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{common/setVehProperties.sqf => veh/propertiesSet.sqf} (96%) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 2a29a214b..6458f20b5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -26,8 +26,6 @@ if (isServer) then { btc_fnc_findPosOutsideRock = compileScript ["core\fnc\common\findposoutsiderock.sqf"]; btc_fnc_set_groupsOwner = compileScript ["core\fnc\common\set_groupsOwner.sqf"]; btc_fnc_typeOf = compileScript ["core\fnc\common\typeOf.sqf"]; - btc_fnc_getVehProperties = compileScript ["core\fnc\common\getVehProperties.sqf"]; - btc_fnc_setVehProperties = compileScript ["core\fnc\common\setVehProperties.sqf"]; btc_fnc_roof = compileScript ["core\fnc\common\roof.sqf"]; //CHEM @@ -211,6 +209,8 @@ if (isServer) then { btc_veh_fnc_addRespawn = compileScript ["core\fnc\veh\addRespawn.sqf"]; btc_veh_fnc_killed = compileScript ["core\fnc\veh\killed.sqf"]; btc_veh_fnc_respawn = compileScript ["core\fnc\veh\respawn.sqf"]; + btc_veh_fnc_propertiesGet = compileScript ["core\fnc\veh\propertiesGet.sqf"]; + btc_veh_fnc_propertiesSet = compileScript ["core\fnc\veh\propertiesSet.sqf"]; }; /////////////////////CLIENT AND SERVER\\\\\\\\\\\\\\\\\\\\\ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 088d77816..1fcc7594b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -151,7 +151,7 @@ private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; _data pushBack (getAllHitPointsDamage _x); _data pushBack _cargo; _data pushBack _inventory; - _data append ([_x] call btc_fnc_getVehProperties); + _data append ([_x] call btc_veh_fnc_propertiesGet); _data pushBack (_x getVariable ["btc_EDENinventory", []]); _data pushBack _vectorPos; _data pushBack []; // ViV diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 116c987b6..87afaa53a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -51,7 +51,7 @@ private _veh = createVehicle [_type, ASLToATL _pos, [], 0, "CAN_COLLIDE"]; _veh setDir _dir; _veh setPosASL _pos; -[_veh, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; +[_veh, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_veh_fnc_propertiesSet; if (_EDENinventory isNotEqualTo []) then { _veh setVariable ["btc_EDENinventory", _EDENinventory]; [_veh, _EDENinventory] call btc_log_fnc_inventorySet; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index 7c9dd9723..c6b6444cf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -33,7 +33,7 @@ private _type = typeOf _veh; (getPosASL _veh) params ["_x", "_y", "_z"]; private _dir = getDir _veh; private _marker = _veh getVariable ["marker", ""]; -private _vehProperties = [_veh] call btc_fnc_getVehProperties; +private _vehProperties = [_veh] call btc_veh_fnc_propertiesGet; _vehProperties set [5, false]; private _EDENinventory = _veh getVariable ["btc_EDENinventory", []]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 3e061ef23..3594ada52 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -35,7 +35,7 @@ private _type = typeOf _vehicle; private _pos = getPosASL _vehicle; private _dir = getDir _vehicle; private _vector = [vectorDir _vehicle, vectorUp _vehicle]; -private _vehProperties = [_vehicle] call btc_fnc_getVehProperties; +private _vehProperties = [_vehicle] call btc_veh_fnc_propertiesGet; _vehProperties set [5, false]; _vehicle setVariable ["data_respawn", [_type, _pos, _dir, _time, _vector] + _vehProperties]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getVehProperties.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesGet.sqf similarity index 94% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getVehProperties.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesGet.sqf index 80139ca87..eeefa85a7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getVehProperties.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesGet.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_getVehProperties +Function: btc_veh_fnc_propertiesGet Description: Get properties of a vehicle. @@ -19,7 +19,7 @@ Returns: Examples: (begin example) - [vehicle player] call btc_fnc_getVehProperties; + [vehicle player] call btc_veh_fnc_propertiesGet; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesSet.sqf similarity index 96% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesSet.sqf index 1bd315c9c..34a467eee 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/setVehProperties.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesSet.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_setVehProperties +Function: btc_veh_fnc_propertiesSet Description: Set properties of a vehicle. @@ -20,7 +20,7 @@ Returns: Examples: (begin example) - [vehicle player] call btc_fnc_setVehProperties; + [vehicle player] call btc_veh_fnc_propertiesSet; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index 34eadb95e..886e2f78f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -68,7 +68,7 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); createVehicleCrew _vehicle; }; - [_vehicle, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_fnc_setVehProperties; + [_vehicle, _customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] call btc_veh_fnc_propertiesSet; if (_EDENinventory isNotEqualTo []) then { _vehicle setVariable ["btc_EDENinventory", _EDENinventory]; [_vehicle, _EDENinventory] call btc_log_fnc_inventorySet; From 02bc8941f1cf23769a5f562f57508dca0d6d8068 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 10 Sep 2021 23:20:05 +0200 Subject: [PATCH 191/354] Add ammo container --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 0956d0e97..7471d1bcc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -489,8 +489,7 @@ if (isServer) then { "Land_Mil_WallBig_4m_F", "Land_Mil_WallBig_Corner_F", "Land_PortableLight_double_F", - "Land_Pod_Heli_Transport_04_medevac_black_F", - "B_Slingload_01_Fuel_F" + "Land_Pod_Heli_Transport_04_medevac_black_F" ], _rearming_static + _magazines_static, [ @@ -521,7 +520,9 @@ if (isServer) then { [ //"Vehicle logistic" "ACE_Wheel", - "ACE_Track" + "ACE_Track", + "B_Slingload_01_Ammo_F", + "B_Slingload_01_Fuel_F" ] ] + _rearming_magazines ]; From 9e698a5d822c16c5bd2c1346cf4ac002b67e4fd1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 10 Sep 2021 23:22:59 +0200 Subject: [PATCH 192/354] remove btc_log_fnc_getRearmMagazines --- .../core/def/mission.sqf | 6 +- .../core/fnc/compile.sqf | 1 - .../core/fnc/log/getRearmMagazines.sqf | 56 ------------------- 3 files changed, 2 insertions(+), 61 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 7471d1bcc..9d8cc399a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -452,8 +452,6 @@ if (isServer) then { }); ([_rearming_static] call btc_fnc_find_veh_with_turret) params ["_rearming_static", "_magazines_static"]; - ([btc_vehicles + btc_helo] call btc_log_fnc_getRearmMagazines) params ["_rearming_vehicles", "_rearming_magazines"]; - btc_construction_array = [ [ @@ -465,7 +463,7 @@ if (isServer) then { "FOB", "Decontamination", "Vehicle Logistic" - ] + (_rearming_vehicles apply {getText (_cfgVehicles >> _x >> "displayName")}), + ], [ [ //"Fortifications" @@ -524,7 +522,7 @@ if (isServer) then { "B_Slingload_01_Ammo_F", "B_Slingload_01_Fuel_F" ] - ] + _rearming_magazines + ] ]; publicVariable "btc_construction_array"; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 6458f20b5..351afa8a7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -186,7 +186,6 @@ if (isServer) then { //LOG btc_log_fnc_createVehicle = compileScript ["core\fnc\log\createVehicle.sqf"]; - btc_log_fnc_getRearmMagazines = compileScript ["core\fnc\log\getRearmMagazines.sqf"]; btc_log_fnc_init = compileScript ["core\fnc\log\init.sqf"]; btc_log_fnc_inventorySet = compileScript ["core\fnc\log\inventorySet.sqf"]; btc_log_fnc_server_delete = compileScript ["core\fnc\log\server_delete.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf deleted file mode 100644 index 8eb79f3e7..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/getRearmMagazines.sqf +++ /dev/null @@ -1,56 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_log_fnc_getRearmMagazines - -Description: - Fill me when you edit me ! - -Parameters: - _rearming_vehicles - [Array] - -Returns: - -Examples: - (begin example) - _result = [] call btc_log_fnc_getRearmMagazines; - (end) - -Author: - Vdauphin - ----------------------------------------------------------------------------- */ - -params [ - ["_rearming_vehicles", [], [[]]] -]; - -private _typeof_rearming_vehicles = ([_rearming_vehicles] call btc_fnc_find_veh_with_turret) select 0; -private _rearming_magazines = []; -{ - private _vehicle_type = _x; - private _vehicle = (_rearming_vehicles select {typeOf _x isEqualTo _vehicle_type}) select 0; - private _magazineInfo = []; - - // 1.70 pylons - private _pylonConfigs = configProperties [configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "Components" >> "TransportPylonsComponent" >> "Pylons", "isClass _x"]; - { - - // Strangely, a 1-based index. - private _pylonIndex = _forEachIndex + 1; - - // Retrieving pylon magazine by index. If the pylon is empty, it is marked with "". - private _pylonMagazine = (getPylonMagazines _vehicle) select (_pylonIndex - 1); - - // Only care about pylons that have a magazine. - if ((_pylonMagazine isNotEqualTo "")) then { - _magazineInfo pushBack _pylonMagazine; - }; - } forEach _pylonConfigs; - - ([[typeOf _vehicle]] call btc_fnc_find_veh_with_turret) params ["", "_magazines"]; - _magazineInfo append _magazines; - - _rearming_magazines pushBack (_magazineInfo arrayIntersect _magazineInfo); -} forEach _typeof_rearming_vehicles; - -[_typeof_rearming_vehicles, _rearming_magazines] From c96c9fe5a911a012c9f9f1b902ce64df633e12fe Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 10 Sep 2021 23:26:47 +0200 Subject: [PATCH 193/354] remove amo from static --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 9d8cc399a..e0e01a286 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -450,7 +450,7 @@ if (isServer) then { getNumber (_cfgVehicles >> _x >> "side") isEqualTo ([east, west, independent, civilian] find btc_player_side) } }); - ([_rearming_static] call btc_fnc_find_veh_with_turret) params ["_rearming_static", "_magazines_static"]; + ([_rearming_static] call btc_fnc_find_veh_with_turret) params ["_rearming_static"]; btc_construction_array = [ @@ -489,7 +489,7 @@ if (isServer) then { "Land_PortableLight_double_F", "Land_Pod_Heli_Transport_04_medevac_black_F" ], - _rearming_static + _magazines_static, + _rearming_static, [ //"Ammobox" "Land_WoodenBox_F" From a521ffa683ad17e2a0e5fdad6bbd189b672bdebe Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 10 Sep 2021 23:31:41 +0200 Subject: [PATCH 194/354] Handle elogistic menu locally --- .../core/def/mission.sqf | 172 +++++++++--------- .../core/fnc/common/find_veh_with_turret.sqf | 4 +- 2 files changed, 87 insertions(+), 89 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index e0e01a286..bf0d46bbd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -432,100 +432,98 @@ btc_type_hazmat = ["HazmatBag_01_F", "Land_MetalBarrel_F"] + (_allClassSorted se //Containers btc_containers_mat = ["Land_Cargo20_military_green_F", "Land_Cargo40_military_green_F"]; -if (isServer) then { - //Player - missionNamespace setVariable ["btc_player_side", west, true]; - missionNamespace setVariable ["btc_respawn_marker", "respawn_west", true]; - //Log - private _rearming_static = - [ - //"Static" - ] + (_allClassSorted select {( - _x isKindOf "GMG_TriPod" || - {_x isKindOf "StaticMortar"} || - {_x isKindOf "HMG_01_base_F"} || - {_x isKindOf "AA_01_base_F"} || - {_x isKindOf "AT_01_base_F"}) && { - getNumber (_cfgVehicles >> _x >> "side") isEqualTo ([east, west, independent, civilian] find btc_player_side) - } - }); - ([_rearming_static] call btc_fnc_find_veh_with_turret) params ["_rearming_static"]; +//Player +btc_player_side = west; +btc_respawn_marker = "respawn_west"; + +//Log +private _rearming_static = +[ + //"Static" +] + (_allClassSorted select {( + _x isKindOf "GMG_TriPod" || + {_x isKindOf "StaticMortar"} || + {_x isKindOf "HMG_01_base_F"} || + {_x isKindOf "AA_01_base_F"} || + {_x isKindOf "AT_01_base_F"}) && { + getNumber (_cfgVehicles >> _x >> "side") isEqualTo ([east, west, independent, civilian] find btc_player_side) + } +}); +([_rearming_static] call btc_fnc_find_veh_with_turret) params ["_rearming_static"]; - btc_construction_array = +btc_construction_array = +[ [ + "Fortifications", + "Static", + "Ammobox", + "Containers", + "Supplies", + "FOB", + "Decontamination", + "Vehicle Logistic" + ], + [ + [ + //"Fortifications" + "Land_BagBunker_Small_F", + "Land_BagFence_Corner_F", + "Land_BagFence_End_F", + "Land_BagFence_Long_F", + "Land_BagFence_Round_F", + "Land_BagFence_Short_F", + "Land_HBarrier_1_F", + "Land_HBarrier_3_F", + "Land_HBarrier_5_F", + "Land_HBarrierBig_F", + "Land_Razorwire_F", + "Land_CncBarrier_F", + "Land_CncBarrierMedium_F", + "Land_CncBarrierMedium4_F", + "Land_CncWall1_F", + "Land_CncWall4_F", + "Land_Mil_ConcreteWall_F", + "Land_Mil_WallBig_4m_F", + "Land_Mil_WallBig_Corner_F", + "Land_PortableLight_double_F", + "Land_Pod_Heli_Transport_04_medevac_black_F" + ], + _rearming_static, + [ + //"Ammobox" + "Land_WoodenBox_F" + + ] + (_allClassSorted select { + _x isKindOf "ReammoBox_F" && + {!(_x isKindOf "Slingload_01_Base_F")} && + {!(_x isKindOf "Pod_Heli_Transport_04_base_F")} + }), + [ + //"Containers" + + ] + btc_containers_mat, + [ + //"Supplies" + btc_supplies_cargo + ], [ - "Fortifications", - "Static", - "Ammobox", - "Containers", - "Supplies", - "FOB", - "Decontamination", - "Vehicle Logistic" + //"FOB" + btc_fob_mat ], [ - [ - //"Fortifications" - "Land_BagBunker_Small_F", - "Land_BagFence_Corner_F", - "Land_BagFence_End_F", - "Land_BagFence_Long_F", - "Land_BagFence_Round_F", - "Land_BagFence_Short_F", - "Land_HBarrier_1_F", - "Land_HBarrier_3_F", - "Land_HBarrier_5_F", - "Land_HBarrierBig_F", - "Land_Razorwire_F", - "Land_CncBarrier_F", - "Land_CncBarrierMedium_F", - "Land_CncBarrierMedium4_F", - "Land_CncWall1_F", - "Land_CncWall4_F", - "Land_Mil_ConcreteWall_F", - "Land_Mil_WallBig_4m_F", - "Land_Mil_WallBig_Corner_F", - "Land_PortableLight_double_F", - "Land_Pod_Heli_Transport_04_medevac_black_F" - ], - _rearming_static, - [ - //"Ammobox" - "Land_WoodenBox_F" - - ] + (_allClassSorted select { - _x isKindOf "ReammoBox_F" && - {!(_x isKindOf "Slingload_01_Base_F")} && - {!(_x isKindOf "Pod_Heli_Transport_04_base_F")} - }), - [ - //"Containers" - - ] + btc_containers_mat, - [ - //"Supplies" - btc_supplies_cargo - ], - [ - //"FOB" - btc_fob_mat - ], - [ - //"Decontamination" - "DeconShower_01_F" - ], - [ - //"Vehicle logistic" - "ACE_Wheel", - "ACE_Track", - "B_Slingload_01_Ammo_F", - "B_Slingload_01_Fuel_F" - ] + //"Decontamination" + "DeconShower_01_F" + ], + [ + //"Vehicle logistic" + "ACE_Wheel", + "ACE_Track", + "B_Slingload_01_Ammo_F", + "B_Slingload_01_Fuel_F" ] - ]; - publicVariable "btc_construction_array"; -}; + ] +]; btc_supplies_mat params ["_food", "_water"]; private _c_array = btc_construction_array select 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf index 68e2275e9..81587a91a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf @@ -38,8 +38,8 @@ private _magazines = _typeOf_vehicles apply { [ _vehicle, [_vehicle] call ace_rearm_fnc_getAllRearmTurrets apply { - [_vehicle, _x] call ace_rearm_fnc_getTurretConfigMagazines; - } + [_vehicle, _x] call ace_rearm_fnc_getTurretConfigMagazines; + } ] }; From aa739940e1c1f1019b47a4e1c6ce2119fd906a88 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 10 Sep 2021 23:41:55 +0200 Subject: [PATCH 195/354] Update documentation --- .../stringtable.xml | 12 ++++++------ docs/Guide-to-rearming.md | 19 ------------------- docs/InGame-documentation.md | 2 +- docs/index.md | 1 - 4 files changed, 7 insertions(+), 27 deletions(-) delete mode 100644 docs/Guide-to-rearming.md diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index a5472860d..996b3d117 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -97,12 +97,12 @@ - <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> When a vehicle is destroyed it will not respawn in base, you need to tow, use vehicle in vehicle or lift it back to base and repair it near the logistic point (Interact with the red box). Helicopter wrecks can only be lifted. <br/> The Chinook is the only exception, it will respawn after 30 seconds.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> You can also rearm them by spawning the corresponding caliber at logistic point (Interact with the red box, select the vehicle type and caliber). Carry the ammo created and interact with the vehicle to rearm. This only works if rearming is setting on entire magazine or amount based on caliber (not for entire vehicle setting).<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> - <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Cuando un vehículo es destruido no va a reaparecer en la base, es necesario remolcarlo o transportarlo de vuelta a la base y repararlo cerca del punto logístico (Interactuar con la caja roja). Los destrozos de helicópteros sólo pueden ser transportados por vía aérea.. <br/> El Chinook es la única excepción, reaparecerá después de 30 segundos..<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> También puede rearmarlos generando el calibre correspondiente en el punto logístico (Interactuar con la caja roja, seleccionar el tipo y calibre del vehículo). Lleva la munición creada e interactúa con el vehículo para rearmarlo. Esto sólo funciona si el rearme se está ajustando en todo el cargador o en una cantidad basada en el calibre (no para el ajuste de todo el vehículo).<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> - <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Wenn ein Fahrzeug zersört wurde, wird dies nicht Respawnen. Es muss durch Abschleppen oder Anheben(Sling-Load) zum Logisik-Punkt gebracht und dort repariert werden (mit der roten Box interagieren). Wracks von Hubschraubern können nur angehoben werden (Sling-Load). <br/> Die einzigste Ausnahme hierbei ist der Chinook. Er respawnt nach 30 Sekunden.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Aufmunitionieren:</marker><br/> Fahrzeuge können Aufmunitioniert werden, in dem man das entsprechende Kaliber am Logisik-Punk anfordert (mit der Roten Box interagieren: Fahzeug und Kaliber auswählen). Nun muss man nur noch die erstellte Munition zum Fahrzeug bringen und mit diesem interagieren um das aufmunitionieren zu beginnen.<br/>ANMERKUNG: Das funktioiert nur wenn die Aufmunitionierungseinstellung auf 'Gesamtes Magazin' oder 'Kalieberbasierte Anzahl' gestellt ist (get nicht für 'Gesamtes Fahrzeug').<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> - <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Quando um veículo é destruído ele não reaparecerá na base, você precisa rebocá-lo/levá-lo de volta à base e repará-lo perto do ponto logístico (Interagir com a caixa vermelha). Os destroços de helicóptero só podem ser levantados. <br/> O Chinook é a única exceção, ele reaparecerá depois de 30 segundos.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> Você também pode rearmar-los, gerando o calibre correspondente no ponto logístico (Interaja com a caixa vermelha, selecione o tipo de veículo e calibre). Leve a munição criada e interaja com o veículo para rearmar. Isso só funciona se o rearme estiver configurado em um depósito inteiro ou em um valor baseado em calibre (não para toda a configuração do veículo).<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> - <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> 载具重生:</marker><br/> 当载具损毁时, 它不会在基地自动重生。你需要采用牵引、托运或吊挂的方式将其残骸运回基地, 并在后勤点对其进行维修(与后勤点的红色箱子进行互动)。直升机的残骸只能使用吊挂的方式运输。<br/> 支奴干(Chinook)是唯一的例外, 它会在损毁后30秒于基地重生。<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> 弹药补给:</marker><br/> You can also rearm them by spawning the corresponding caliber at logistic point (Interact with the red box, select the vehicle type and caliber). Carry the ammo created and interact with the vehicle to rearm. This only works if rearming is setting on entire magazine or amount based on caliber (not for entire vehicle setting).你还可以在后勤点生成对应口径的弹药, 对载具进行弹药补给(与红色箱子互动, 选择对应的载具类型及口径)。搬起生成的弹药箱, 与载具互动, 即可执行补给。此功能仅在任务参数中的弹药补给选项设置为 "Total Magazine" 或 "Calibre Based Number"(而非 "Entire Vehicle")时有效。<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> - <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Réapparition:</marker><br/> Lorsqu'un véhicule est détruit, il ne réapparaîtra pas dans la base, vous devez le remorquer, utiliser le véhicule dans le véhicule ou le ramener à la base et le réparer près du point logistique (Interagissez avec la boîte rouge). Les épaves d'hélicoptères peuvent seulement être héliportés. <br/> Le Chinook est la seule exception, il réapparaîtra après 30 secondes.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Réarmement:</marker><br/> Vous pouvez également les réarmer en faisant apparaître le calibre correspondant au point logistique (interagissez avec la boîte rouge, sélectionnez le type de véhicule et le calibre). Transportez les munitions créées et interagissez avec le véhicule pour le réarmer. Cela ne fonctionne que si le réarmement est réglé sur tout le magasin ou sur le montant en fonction du calibre (pas pour le réglage complet du véhicule).<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> + <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> When a vehicle is destroyed it will not respawn in base, you need to tow, use vehicle in vehicle or lift it back to base and repair it near the logistic point (Interact with the red box). Helicopter wrecks can only be lifted. <br/> The Chinook is the only exception, it will respawn after 30 seconds.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> You can also rearm them by using a rearm vehicle or spawning a rearm container.<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> + <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Cuando un vehículo es destruido no va a reaparecer en la base, es necesario remolcarlo o transportarlo de vuelta a la base y repararlo cerca del punto logístico (Interactuar con la caja roja). Los destrozos de helicópteros sólo pueden ser transportados por vía aérea.. <br/> El Chinook es la única excepción, reaparecerá después de 30 segundos..<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> You can also rearm them by using a rearm vehicle or spawning a rearm container..<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> + <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Wenn ein Fahrzeug zersört wurde, wird dies nicht Respawnen. Es muss durch Abschleppen oder Anheben(Sling-Load) zum Logisik-Punkt gebracht und dort repariert werden (mit der roten Box interagieren). Wracks von Hubschraubern können nur angehoben werden (Sling-Load). <br/> Die einzigste Ausnahme hierbei ist der Chinook. Er respawnt nach 30 Sekunden.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Aufmunitionieren:</marker><br/> Fahrzeuge können Aufmunitioniert werden, in dem man das entsprechende Kaliber am Logisik-Punk anfordert (mit der Roten Box interagieren: Fahzeug und Kaliber auswählen). Nun muss man nur noch die erstellte Munition zum Fahrzeug bringen und mit diesem interagieren um das aufmunitionieren zu beginnen.<br/>ANMERKUNG: You can also rearm them by using a rearm vehicle or spawning a rearm container.<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> + <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Quando um veículo é destruído ele não reaparecerá na base, você precisa rebocá-lo/levá-lo de volta à base e repará-lo perto do ponto logístico (Interagir com a caixa vermelha). Os destroços de helicóptero só podem ser levantados. <br/> O Chinook é a única exceção, ele reaparecerá depois de 30 segundos.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> You can also rearm them by using a rearm vehicle or spawning a rearm container..<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> + <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> 载具重生:</marker><br/> 当载具损毁时, 它不会在基地自动重生。你需要采用牵引、托运或吊挂的方式将其残骸运回基地, 并在后勤点对其进行维修(与后勤点的红色箱子进行互动)。直升机的残骸只能使用吊挂的方式运输。<br/> 支奴干(Chinook)是唯一的例外, 它会在损毁后30秒于基地重生。<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> 弹药补给:</marker><br/> You can also rearm them by using a rearm vehicle or spawning a rearm container.<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> + <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Réapparition:</marker><br/> Lorsqu'un véhicule est détruit, il ne réapparaîtra pas dans la base, vous devez le remorquer, utiliser le véhicule dans le véhicule ou le ramener à la base et le réparer près du point logistique (Interagissez avec la boîte rouge). Les épaves d'hélicoptères peuvent seulement être héliportés. <br/> Le Chinook est la seule exception, il réapparaîtra après 30 secondes.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Réarmement:</marker><br/> You can also rearm them by using a rearm vehicle or spawning a rearm container..<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> diff --git a/docs/Guide-to-rearming.md b/docs/Guide-to-rearming.md deleted file mode 100644 index 1457b6d80..000000000 --- a/docs/Guide-to-rearming.md +++ /dev/null @@ -1,19 +0,0 @@ -This only works if rearming is setting on entire magazine or amount based on caliber in mission parameter (not for entire vehicle setting). - -Here is your vehicle with low ammo : -![107410_20160709102349_1](https://cloud.githubusercontent.com/assets/14364400/16706929/48a6c0e0-45bf-11e6-83b6-1dc709d50c20.png) - -Select on logistic point red box your vehicle type and the corresponding caliber : -![107410_20160709102032_1](https://cloud.githubusercontent.com/assets/14364400/16706931/4bc04e4a-45bf-11e6-8f9f-792b27b0484d.png) - -Take ammo in your hands (important), interact with the vehicle and select rearm option : -![107410_20160709102204_1](https://cloud.githubusercontent.com/assets/14364400/16706934/5a67e37c-45bf-11e6-8fc5-addea77f06ba.png) - -Wait : -![107410_20160709102210_1](https://cloud.githubusercontent.com/assets/14364400/16706932/4dfdd524-45bf-11e6-8561-1693fb7b52d1.png) - -Done ! -![107410_20160709102244_1](https://cloud.githubusercontent.com/assets/14364400/16706940/7c55b090-45bf-11e6-93b4-209d28e2fa71.png) - - - diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index 5b3ea8548..448728eb1 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -34,7 +34,7 @@ You can still enter by breaking door lock with a wirecutter. ### Respawn: When a vehicle is destroyed it will not respawn in base, you need to tow, use vehicle in vehicle or lift it back to base and repair it near the logistic point (Interact with the red box). Helicopter wrecks can only be lifted. The Chinook is the only exception, it will respawn after 30 seconds. ### Rearm: -You can also rearm them by spawning the corresponding caliber at logistic point (Interact with the red box, select the vehicle type and caliber). Carry the ammo created and interact with the vehicle to rearm. This only works if rearming is setting on entire magazine or amount based on caliber (not for entire vehicle setting). +You can also rearm them by using a rearm vehicle or spawning a rearm container. ## Side Mission diff --git a/docs/index.md b/docs/index.md index 354fffd55..889329f41 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,6 @@ This mission is built for **dedicated server only**. You will found here some ba Servers list : [battlemetrics.com](https://www.battlemetrics.com/servers/arma3?q=hearts%2Band%2Bminds&status=online&sort=-players) * ## Mission gameplay documentation - * ### [Guide to rearming](http://vdauphin.github.io/HeartsAndMinds/Guide-to-rearming) * ### [InGame Documentation](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation) * ### [Action has consequences](http://vdauphin.github.io/HeartsAndMinds/Action-has-consequences) * ## Mission editing From 5c9816efa20d8739397ea43e0d8469c9fae02049 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Sep 2021 00:18:18 +0200 Subject: [PATCH 196/354] Save ammo count and magazines --- .../core/def/mission.sqf | 2 +- .../core/fnc/compile.sqf | 1 + .../core/fnc/db/load.sqf | 5 ++- .../core/fnc/db/loadObjectStatus.sqf | 7 +++- .../core/fnc/db/loadcargo.sqf | 7 +++- .../core/fnc/db/save.sqf | 6 ++- .../core/fnc/db/saveObjectStatus.sqf | 4 +- .../core/fnc/db/setTurretMagazines.sqf | 38 +++++++++++++++++++ 8 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/setTurretMagazines.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index bf0d46bbd..08c6e2c1d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -1,7 +1,7 @@ btc_version = [ 1, - 21.1, + 21.2, 7 ]; diag_log format (["=BTC= HEARTS AND MINDS VERSION %1.%2.%3"] + btc_version); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 351afa8a7..7454c3d2c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -69,6 +69,7 @@ if (isServer) then { btc_db_fnc_saveObjectStatus = compileScript ["core\fnc\db\saveObjectStatus.sqf"]; btc_db_fnc_loadCargo = compileScript ["core\fnc\db\loadcargo.sqf"]; btc_db_fnc_autoRestart = compileScript ["core\fnc\db\autoRestart.sqf"]; + btc_db_fnc_setTurretMagazines = compileScript ["core\fnc\db\setTurretMagazines.sqf"]; //DELAY btc_delay_fnc_createUnit = compileScript ["core\fnc\delay\createUnit.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index f70091a4f..d190ae740 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -157,7 +157,8 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] ["_EDENinventory", [], [[]]], ["_vectorPos", [], [[]]], ["_ViV", [], [[]]], - ["_flagTexture", "", [""]] + ["_flagTexture", "", [""]], + ["_turretMagazines", [], [[]]] ]; if (btc_debug_log) then { @@ -168,6 +169,8 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] _veh setVectorDirAndUp _vectorPos; _veh setFuel _veh_fuel; + [_veh, _turretMagazines] call btc_db_fnc_setTurretMagazines; + [_veh, _veh_cargo, _veh_inventory] call btc_db_fnc_loadCargo; if !(alive _veh) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index e8840ff3f..e15831d3e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -34,7 +34,8 @@ _object_data params [ ["_isContaminated", false, [false]], ["_dogtagDataTaken", [], [[]]], ["_uid", "", [""]], - ["_flagTexture", "", [""]] + ["_flagTexture", "", [""]], + ["_turretMagazines", [], [[]]] ]; private _obj = createVehicle [_type, ASLToATL _pos, [], 0, "CAN_COLLIDE"]; @@ -56,6 +57,10 @@ if (_flagTexture isNotEqualTo "") then { _obj forceFlagTexture _flagTexture; }; +if (_turretMagazines isNotEqualTo []) then { + [_obj, _turretMagazines] call btc_db_fnc_setTurretMagazines; +}; + [_obj, _dogtagDataTaken] call btc_body_fnc_dogtagSet; _obj setVariable ["btc_UID", _uid]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index 7ca21967f..6d76da708 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -30,7 +30,8 @@ Author: _x params ["_type", "_magClass", "_inventory", ["_isContaminated", false, [false]], ["_dogtagDataTaken", [], [[]]], - ["_uid", "", [""]] + ["_uid", "", [""]], + ["_turretMagazines", [], [[]]] ]; private _l = createVehicle [_type, getPosATL _obj, [], 0, "CAN_COLLIDE"]; @@ -53,6 +54,10 @@ Author: [_l, _dogtagDataTaken] call btc_body_fnc_dogtagSet; _l setVariable ["btc_UID", _uid]; + + if (_turretMagazines isNotEqualTo []) then { + [_l, _turretMagazines] call btc_db_fnc_setTurretMagazines; + }; } forEach _cargo; //set inventory content for weapons, magazines and items diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 1fcc7594b..44fe4f3e9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -140,7 +140,8 @@ private _vehiclesNotInCargo = _vehicles select { private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; { (_x call btc_db_fnc_saveObjectStatus) params ["_type", "_pos", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated", "", "", - ["_flagTexture", "", [""]] + ["_flagTexture", "", [""]], + ["_turretMagazines", [], [[]]] ]; private _data = []; @@ -155,7 +156,8 @@ private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; _data pushBack (_x getVariable ["btc_EDENinventory", []]); _data pushBack _vectorPos; _data pushBack []; // ViV - _data pushBack _flagTexture; + _data pushBack _flagTexture; + _data pushBack _turretMagazines; private _fakeViV = isVehicleCargo attachedTo _x; if ( diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 17b5200ff..fb875bf3c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -40,7 +40,8 @@ private _cargo = (_object getVariable ["ace_cargo_loaded", []]) apply { _x call btc_log_fnc_inventoryGet, _x in btc_chem_contaminated, _x call btc_body_fnc_dogtagGet, - _x getVariable ["btc_UID", ""] + _x getVariable ["btc_UID", ""], + magazinesAllTurrets _x ] }; }; @@ -51,5 +52,6 @@ _data pushBack (_object in btc_chem_contaminated); _data pushBack (_object call btc_body_fnc_dogtagGet); _data pushBack (_object getVariable ["btc_UID", ""]); _data pushBack (getForcedFlagTexture _object); +_data pushBack (magazinesAllTurrets _object); _data diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/setTurretMagazines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/setTurretMagazines.sqf new file mode 100644 index 000000000..92cc37da6 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/setTurretMagazines.sqf @@ -0,0 +1,38 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_db_fnc_setTurretMagazines + +Description: + Set turret magazines. + +Parameters: + _vehicle - Vehicle to add magazines. [Object] + _turretMagazines - Turret magazines. [Array] + +Returns: + +Examples: + (begin example) + [magazinesAllTurrets cursorObject] call btc_db_fnc_setTurretMagazines; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_vehicle", objNull, [objNull]], + ["_turretMagazines", [], [[]]] +]; + + +{ + _x params ["_magazineClass", "_turretPath"]; + _vehicle removeMagazineTurret [_magazineClass, _turretPath]; + false +} forEach (magazinesAllTurrets _vehicle); +{ + _x params ["_magazineClass", "_turretPath", "_ammoCount"]; + _vehicle addMagazineTurret [_magazineClass, _turretPath, _ammoCount]; +} forEach _turretMagazines; From 67b8ddfb7d93ff2214fcf6c16df593b73ec335df Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Sep 2021 00:43:39 +0200 Subject: [PATCH 197/354] removing ace_rearm_magazineClass --- .../core/def/mission.sqf | 4 ++-- .../core/fnc/db/loadObjectStatus.sqf | 1 - .../core/fnc/db/loadcargo.sqf | 4 ---- .../core/fnc/db/saveObjectStatus.sqf | 4 ++-- .../core/fnc/log/create.sqf | 12 ++---------- .../core/fnc/log/create_change_target.sqf | 4 +--- .../core/fnc/log/create_s.sqf | 7 +------ 7 files changed, 8 insertions(+), 28 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 08c6e2c1d..e6d89a9e2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -527,9 +527,9 @@ btc_construction_array = btc_supplies_mat params ["_food", "_water"]; private _c_array = btc_construction_array select 1; -btc_log_def_loadable = (_c_array select 0) + (_c_array select 1) + (_c_array select 2) + (_c_array select 3) + (_c_array select 4) + (_c_array select 5) + (_c_array select 6) + (_c_array select 7) + (_allClassVehicles select {_x isKindOf "ace_rearm_defaultCarriedObject"}) + _food + _water + btc_type_hazmat; +btc_log_def_loadable = (_c_array select 0) + (_c_array select 1) + (_c_array select 2) + (_c_array select 3) + (_c_array select 4) + (_c_array select 5) + (_c_array select 6) + (_c_array select 7) + _food + _water + btc_type_hazmat; btc_log_def_can_load = (_c_array select 3); -btc_log_def_placeable = ((_c_array select 0) + (_c_array select 3) + (_c_array select 4) + (_c_array select 5) + (_c_array select 6) + _food + _water + btc_type_hazmat) select { +btc_log_def_placeable = ((_c_array select 0) + (_c_array select 3) + (_c_array select 4) + (_c_array select 5) + (_c_array select 6) + (_c_array select 7) + _food + _water + btc_type_hazmat) select { getNumber(_cfgVehicles >> _x >> "ace_dragging_canCarry") isEqualTo 0 }; btc_tow_vehicleSelected = objNull; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index e15831d3e..be90e3b8f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -49,7 +49,6 @@ if (_isContaminated) then { publicVariable "btc_chem_contaminated"; }; }; -if (_magClass isNotEqualTo "") then {_obj setVariable ["ace_rearm_magazineClass", _magClass, true]}; if (unitIsUAV _obj) then { createVehicleCrew _obj; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index 6d76da708..6420ed238 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -41,10 +41,6 @@ Author: [format ["Object loaded: %1 in veh/container %2 IsLoaded: %3", _l, _obj, _isloaded], __FILE__, [false]] call btc_debug_fnc_message; }; - if (_magClass != "") then { - _l setVariable ["ace_rearm_magazineClass", _magClass, true] - }; - [_l, _inventory] call btc_log_fnc_inventorySet; if (_isContaminated) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index fb875bf3c..6a12f9acf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -29,14 +29,14 @@ private _data = []; _data pushBack (typeOf _object); _data pushBack (getPosASL _object); _data pushBack (getDir _object); -_data pushBack (_object getVariable ["ace_rearm_magazineClass", ""]); +_data pushBack ""; private _cargo = (_object getVariable ["ace_cargo_loaded", []]) apply { if (_x isEqualType "") then { [_x, "", [[], [], []]] } else { [ typeOf _x, - _x getVariable ["ace_rearm_magazineClass", ""], + "", _x call btc_log_fnc_inventoryGet, _x in btc_chem_contaminated, _x call btc_body_fnc_dogtagGet, diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf index 7501f9db8..c0e2c5f06 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf @@ -39,11 +39,7 @@ call btc_log_fnc_create_load; private _class = lbData [72, lbCurSel 72]; private _selected = _class; -private _new = if (getText (configFile >> "cfgVehicles" >> _selected >> "displayName") isEqualTo "") then { - "Box_NATO_Ammo_F" createVehicleLocal getPosASL btc_log_create_obj; -} else { - _class createVehicleLocal getPosASL btc_log_create_obj; -}; +private _new = _class createVehicleLocal getPosASL btc_log_create_obj; while {dialog} do { if (_class != lbData [72, lbCurSel 72]) then { @@ -51,11 +47,7 @@ while {dialog} do { sleep 0.1; _class = lbData [72, lbCurSel 72]; _selected = _class; - if (getText (configFile >> "cfgVehicles" >> _selected >> "displayName") isEqualTo "") then { - _new = "Box_NATO_Ammo_F" createVehicleLocal getPosASL btc_log_create_obj; - } else { - _new = _class createVehicleLocal getPosASL btc_log_create_obj; - }; + _new = _class createVehicleLocal getPosASL btc_log_create_obj; _new setDir getDir btc_log_create_obj; _new setPosASL getPosASL btc_log_create_obj; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf index 9f9fecd72..c9257ae2a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf @@ -29,9 +29,7 @@ lbClear 72; for "_i" from 0 to ((count _category) - 1) do { private _class = _category select _i; private _display = getText (configFile >> "cfgVehicles" >> _class >> "displayName"); - if (_display isEqualTo "") then { - _display = getText (configfile >> "CfgMagazines" >> _class >> "displayName"); - }; + private _index = lbAdd [72, _display]; lbSetData [72, _index, _class]; if (_i isEqualTo 0) then {lbSetCurSel [72, _index];}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf index a2106860f..e2666f928 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf @@ -28,12 +28,7 @@ params [ ["_vector", vectorUp btc_create_object_point, [[]]] ]; -private _obj = objNull; -if (getText (configFile >> "cfgVehicles" >> _objec_type >> "displayName") isEqualTo "") then { - _obj = [btc_create_object_point, _objec_type] call ace_rearm_fnc_createDummy; -} else { - _obj = _objec_type createVehicle [0, 0, 0]; -}; +private _obj = _objec_type createVehicle [0, 0, 0]; _obj setVectorUp _vector; _obj setPosASL _pos; From c5c8c30efd74c8fc1db7a3e90b906ad3264f4c34 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Sep 2021 09:51:46 +0200 Subject: [PATCH 198/354] Simplify logistic definition --- .../core/def/mission.sqf | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index e6d89a9e2..30ccd87f0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -525,11 +525,14 @@ btc_construction_array = ] ]; -btc_supplies_mat params ["_food", "_water"]; -private _c_array = btc_construction_array select 1; -btc_log_def_loadable = (_c_array select 0) + (_c_array select 1) + (_c_array select 2) + (_c_array select 3) + (_c_array select 4) + (_c_array select 5) + (_c_array select 6) + (_c_array select 7) + _food + _water + btc_type_hazmat; -btc_log_def_can_load = (_c_array select 3); -btc_log_def_placeable = ((_c_array select 0) + (_c_array select 3) + (_c_array select 4) + (_c_array select 5) + (_c_array select 6) + (_c_array select 7) + _food + _water + btc_type_hazmat) select { +(btc_construction_array select 1) params [ + "_cFortifications", "_cStatics", "_cAmmobox", + "_cContainers", "_cSupplies", "_cFOB", + "_cDecontamination", "_cVehicle_logistic" +]; +btc_log_def_loadable = flatten (btc_construction_array select 1) + flatten btc_supplies_mat + btc_type_hazmat; +btc_log_def_can_load = _cContainers; +btc_log_def_placeable = (_cFortifications + _cContainers + _cSupplies + _cFOB + _cDecontamination + _cVehicle_logistic + flatten btc_supplies_mat + btc_type_hazmat) select { getNumber(_cfgVehicles >> _x >> "ace_dragging_canCarry") isEqualTo 0 }; btc_tow_vehicleSelected = objNull; @@ -556,7 +559,7 @@ btc_log_fnc_get_nottowable = { btc_lift_fnc_getLiftable = { params ["_chopper"]; - private _array = []; + private _array = []; switch (typeOf _chopper) do { case "B_SDV_01_F" : { _array = ["Motorcycle", "ReammoBox", "ReammoBox_F", "StaticWeapon", "Car", "Truck", "Wheeled_APC_F", "Tracked_APC", "APC_Tracked_01_base_F", "APC_Tracked_02_base_F", "Air", "Ship", "Tank"] + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5); From 763f2d3dc1d458af5bec5c4c6084d1ee796ab3fa Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Sep 2021 10:10:42 +0200 Subject: [PATCH 199/354] add StorageBladder --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf index f08d376ea..ca590b509 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf @@ -24,7 +24,7 @@ params [ ["_object", objNull, [objNull]] ]; -private _array = (nearestObjects [_object, ["LandVehicle", "Air", "Ship", "Thing"], 10]) select {!( +private _array = (nearestObjects [_object, ["LandVehicle", "Air", "Ship", "Thing", "NonStrategic"], 10]) select {!( _x isKindOf "ACE_friesBase" OR _x isKindOf "ace_fastroping_helper" )}; From 213c2246635355a6b0586b03b55a8a5397717349 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Sun, 12 Sep 2021 10:15:56 +0800 Subject: [PATCH 200/354] Chinesesimp translation for #1137 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index d9672d1b6..e6d25d971 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -126,6 +126,7 @@ <img image='\a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Introduction:</marker><br/> By default, each player has a limited number of respawn tickets. On first join, you get the default number of tickets (20). After, each time you respawn, your number of tickets will decrease by one and a kill in action (KIA) marker will appear after 10 minutes.<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_104_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Get new tickets:</marker><br/> Players can increase by one ticket if they retrieve their dead body back to base. Prisoners also increase by one ticket but to all currently connected players.<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_118_co.paa' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\medical_gui\ui\bodybag.paa' width='20' height='20'/> <marker name='blufor_base'>Dead player body:</marker><br/> Any player can retrieve dead player body by:<br/> - <img image='\z\ace\addons\medical_treatment\ui\bodybag_ca.paa' width='13' height='13'/> Putting dead body in a body bag. Watch out if your vehicle get destroyed, all body bag will be lost!<br/> - Carry it to the logistic point<br/> - Interact with the logistic point<br/> - <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='13' height='13'/> Select "Get tickets from body bag or prisoner"<br/> The ticket from the body bag will go to the player owned the dead body (even if he is not connected).<br/><br/> <img image='\A3\EditorPreviews_F_Orange\Data\CfgVehicles\Land_Bodybag_01_black_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\captives\UI\handcuff_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Prisoners:</marker><br/> Prisoners <img image='\z\ace\addons\captives\UI\Surrender_ca.paa' width='13' height='13'/> follow the same process as dead player body without the need of body bag. The prisonner need to be alive but it could be unconcious.<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_106_co.paa' width='355' height='200'/> + <img image='\a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa' width='20' height='20'/> <marker name='blufor_base'>介绍:</marker><br/> 默认情况下, 每名玩家都有受限的重生票数。首次进入服务器时, 你会获得默认的重生票数(20)。此后,每次重生都会使你的重生票数减一,且地图上将于10分钟后出现阵亡(KIA)标记。<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_104_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>获得新的重生票数:</marker><br/> 玩家可以通过将他们的尸体带回基地,来获得一枚重生票数。带回囚犯也可以为全体在线玩家每人增加一枚重生票数。<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_118_co.paa' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\medical_gui\ui\bodybag.paa' width='20' height='20'/> <marker name='blufor_base'>阵亡玩家的尸体:</marker><br/> 玩家都可以通过以下方式回收尸体:<br/> - <img image='\z\ace\addons\medical_treatment\ui\bodybag_ca.paa' width='13' height='13'/> 将尸体放进尸体袋。小心,如果你的载具被摧毁,其中所有尸体袋都会丢失!<br/> - 将尸体搬运到后勤点<br/> - 与后勤点互动<br/> - <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='13' height='13'/> 选择"回收尸体袋或囚犯以获得重生票数"<br/> 获得的重生票数将会发放给该尸体对应的玩家(即使他不在线)。<br/><br/> <img image='\A3\EditorPreviews_F_Orange\Data\CfgVehicles\Land_Bodybag_01_black_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\captives\UI\handcuff_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Prisoners:</marker><br/> 囚犯 <img image='\z\ace\addons\captives\UI\Surrender_ca.paa' width='13' height='13'/> 遵循与回收玩家尸体相同的流程,但无需尸体袋。被回收的囚犯必须活着,但可以出于昏迷状态。<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_106_co.paa' width='355' height='200'/> @@ -600,18 +601,23 @@ Number of tickets at mission start: + 任务开始时的重生票数: Tickets are share between: + 重生票数在以下玩家间共享: Players of the same faction + 相同阵营的玩家 Not share + 不共享 Time before showing marker of dead player's body: + 显示阵亡玩家尸体标记前的时间: ACE Arsenal available on respawn after been killed: @@ -1587,6 +1593,7 @@ Get tickets from body bag or prisoner + 回收尸体袋或囚犯以获得重生票数 @@ -2278,12 +2285,15 @@ Respawn ticket added + 重生票数已增加 No body bag from a player + 这不是玩家的尸体袋 %1 respawn tickets left + 剩余 %1 枚重生票数 @@ -2426,9 +2436,11 @@ No body bag around or alive enemy + 附近没有尸体袋或存活的敌军 You can't copy body bag + 你不能复制尸体袋 From fccd830d69830dc623c04fd7871a5fe93542147f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 12 Sep 2021 11:06:51 +0200 Subject: [PATCH 201/354] fix can't change parameters --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index d828b3ab5..8159a0265 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -98,7 +98,7 @@ btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { } else { format ["[thisList, %1] call btc_city_fnc_trigger_free_condition", _p_city_free_trigger] }; -btc_p_flag = 2; +btc_p_flag = "btc_p_flag" call BIS_fnc_getParamValue; btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; From 4869290d1ee3d619a522f3cb06abc138bfcf53b4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 12 Sep 2021 11:08:03 +0200 Subject: [PATCH 202/354] Add flexibletank and fix database compatibility --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 4 ++-- .../core/fnc/db/setTurretMagazines.sqf | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 30ccd87f0..12f5c9654 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -1,7 +1,7 @@ btc_version = [ 1, - 21.2, + 21.1, 7 ]; diag_log format (["=BTC= HEARTS AND MINDS VERSION %1.%2.%3"] + btc_version); @@ -521,7 +521,7 @@ btc_construction_array = "ACE_Track", "B_Slingload_01_Ammo_F", "B_Slingload_01_Fuel_F" - ] + ] + (_allClassSorted select {_x isKindOf "FlexibleTank_base_F"}) ] ]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/setTurretMagazines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/setTurretMagazines.sqf index 92cc37da6..7746efe52 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/setTurretMagazines.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/setTurretMagazines.sqf @@ -26,6 +26,7 @@ params [ ["_turretMagazines", [], [[]]] ]; +if (_turretMagazines isEqualTo []) exitWith {}; { _x params ["_magazineClass", "_turretPath"]; From c4f0748a2f5c0df5b15e187953396c51020d8c5f Mon Sep 17 00:00:00 2001 From: Gold John King Date: Mon, 13 Sep 2021 19:08:43 +0800 Subject: [PATCH 203/354] Chinesesimp for #1144 --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 091dd4ba3..8d3939db3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -855,12 +855,15 @@ Allow the use of flag: + 允许悬挂旗帜 On vehicle + 仅限载具 On vehicle and players + 载具和玩家 Autodetect Headless client: @@ -1777,9 +1780,11 @@ Deploy flag + 悬挂旗帜 Cut flag + 剪断旗帜 From 5baba802ab296f7afdb1194ad9fc4604302fcb05 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 13 Sep 2021 18:15:53 +0200 Subject: [PATCH 204/354] remove space --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 18cc755ab..b9dc335a3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -432,7 +432,6 @@ btc_type_hazmat = ["HazmatBag_01_F", "Land_MetalBarrel_F"] + (_allClassSorted se //Containers btc_containers_mat = ["Land_Cargo20_military_green_F", "Land_Cargo40_military_green_F"]; - //Player btc_player_side = west; btc_respawn_marker = "respawn_west"; From 2b19ffc42c08e19a8fad8eee4fb021018bf305d8 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 15 Sep 2021 18:35:22 +0200 Subject: [PATCH 205/354] FIX: Flag interaction is shown twice --- .../core/fnc/veh/init.sqf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index 6eac4b20b..1ea42262d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -45,7 +45,7 @@ switch true do { {getForcedFlagTexture _target isEqualTo ""} && {(driver vehicle player) isEqualTo player} }, {_this call btc_flag_fnc_deploy}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["btc_flag_cutVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { _target forceFlagTexture ""; }, { @@ -53,7 +53,7 @@ switch true do { {getForcedFlagTexture _target isNotEqualTo ""} && {(driver vehicle player) isEqualTo player} }] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; }; case (_type isKindOf "Helicopter") : { private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; @@ -64,16 +64,16 @@ switch true do { [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; //Lift _action = ["Deploy_ropes", localize "STR_ACE_Fastroping_Interaction_deployRopes", "\A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa", {[] spawn btc_lift_fnc_deployRopes;}, {!btc_ropes_deployed && {(driver vehicle player) isEqualTo player} && {(getPosATL player) select 2 > 4}}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["Cut_ropes", localize "STR_ACE_Fastroping_Interaction_cutRopes", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", {[] call btc_lift_fnc_destroyRopes;}, {btc_ropes_deployed && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; private _action = ["btc_flag_deployVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_DEPLOYFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { btc_p_flag > 0 && {getForcedFlagTexture _target isEqualTo ""} && {(driver vehicle player) isEqualTo player} }, {_this call btc_flag_fnc_deploy}] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["btc_flag_cutVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { _target forceFlagTexture ""; }, { @@ -81,7 +81,7 @@ switch true do { {getForcedFlagTexture _target isNotEqualTo ""} && {(driver vehicle player) isEqualTo player} }] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; + [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; }; case (_type isKindOf "Plane") : { private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; From eff726349d7ea28a87132f9e36adbd3fd6e9e16c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 25 Sep 2021 11:22:47 +0200 Subject: [PATCH 206/354] direct call in events --- .../core/fnc/chem/checkLoop.sqf | 4 +--- .../core/fnc/chem/ehDetector.sqf | 4 +--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf | 4 ++-- .../core/fnc/int/add_actions.sqf | 6 +++--- .../core/fnc/log/server_repair_wreck.sqf | 4 +--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf | 6 +----- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 4 +--- 8 files changed, 12 insertions(+), 24 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf index f79e096dd..0632edd9d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf @@ -82,9 +82,7 @@ private _bodyParts = ["head","body","hand_l","hand_r","leg_l","leg_r"]; publicVariable "btc_chem_contaminated"; }; if (local _x) then { - [{ - _this call btc_chem_fnc_damage; - }, [_x, _notAlready, _bodyParts, _cfgGlasses], _forEachIndex * _periode] call CBA_fnc_waitAndExecute; + [btc_chem_fnc_damage, [_x, _notAlready, _bodyParts, _cfgGlasses], _forEachIndex * _periode] call CBA_fnc_waitAndExecute; } else { if (_notAlready) then { [_x] remoteExecCall ["btc_chem_fnc_damageLoop", _x]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/ehDetector.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/ehDetector.sqf index 4cdd0b14f..c3762284d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/ehDetector.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/ehDetector.sqf @@ -33,9 +33,7 @@ Author: private _ui = uiNamespace getVariable "RscWeaponChemicalDetector"; private _obj = _ui displayCtrl 101; - [{visibleWatch}, { - _this call btc_chem_fnc_updateDetector; - }, [_obj]] call CBA_fnc_waitUntilAndExecute; + [{visibleWatch}, btc_chem_fnc_updateDetector, [_obj]] call CBA_fnc_waitUntilAndExecute; }; }]; }] call CBA_fnc_waitUntilAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 69e15741b..dd2fd58ee 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -42,7 +42,7 @@ _player addEventHandler ["CuratorObjectPlaced", btc_eh_fnc_CuratorObjectPlaced]; _player addEventHandler ["WeaponAssembled", btc_civ_fnc_add_leaflets]; [_player, "WeaponAssembled", {[_thisType, _this] call btc_fob_fnc_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; [_player, "WeaponDisassembled", {[_thisType, _this] call btc_fob_fnc_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; -_player addEventHandler ["GetInMan", {_this call btc_ied_fnc_deleteLoop}]; +_player addEventHandler ["GetInMan", btc_ied_fnc_deleteLoop]; _player addEventHandler ["GetOutMan", { if (btc_ied_deleteOn > -1) then { [btc_ied_deleteOn] call CBA_fnc_removePerFrameHandler; @@ -71,7 +71,7 @@ if (btc_p_chem) then { }; if (btc_p_spect) then { - ["weapon", {_this call btc_spect_fnc_updateDevice}] call CBA_fnc_addPlayerEventHandler; + ["weapon", btc_spect_fnc_updateDevice] call CBA_fnc_addPlayerEventHandler; ["vehicle", { params ["_unit", "_newVehicle"]; [] call btc_spect_fnc_disableDevice; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index e21d35592..074730db6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -174,8 +174,8 @@ _actions pushBack ["redeploy", localize "STR_BTC_HAM_ACTION_BIRESPAWN", "\A3\ui_ }, {!btc_log_placing}]; _actions pushBack ["base", localize "STR_BTC_HAM_ACTION_REDEPLOYBASE", getText (configfile >> "CfgMarkers" >> getMarkerType "btc_base" >> "icon"), { if ([] call btc_fob_fnc_redeployCheck) then {[_player, btc_respawn_marker, false] call BIS_fnc_moveToRespawnPosition}; -}, {!btc_log_placing}, {_this call btc_fob_fnc_redeploy}, "Base"]; -_actions pushBack ["rallypoints", localize "STR_BTC_HAM_ACTION_REDEPLOYRALLY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\wait_ca.paa", {}, {!btc_log_placing}, {_this call btc_fob_fnc_redeploy}, ""]; +}, {!btc_log_placing}, btc_fob_fnc_redeploy, "Base"]; +_actions pushBack ["rallypoints", localize "STR_BTC_HAM_ACTION_REDEPLOYRALLY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\wait_ca.paa", {}, {!btc_log_placing}, btc_fob_fnc_redeploy, ""]; _actions pushBack ["FOB", localize "STR_BTC_HAM_ACTION_REDEPLOYFOB", "\A3\Ui_f\data\Map\Markers\NATO\b_hq.paa", {}, {!btc_log_placing}]; { private _action = _x call ace_interact_menu_fnc_createAction; @@ -187,7 +187,7 @@ _actions pushBack ["FOB", localize "STR_BTC_HAM_ACTION_REDEPLOYFOB", "\A3\Ui_f\d { _x params ["_cardinal", "_degrees"]; - _action = ["FOB" + _cardinal, localize _cardinal, "\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa", {}, {true}, {_this call btc_fob_fnc_redeploy}, _degrees] call ace_interact_menu_fnc_createAction; + _action = ["FOB" + _cardinal, localize _cardinal, "\A3\ui_f\data\igui\cfg\simpleTasks\types\map_ca.paa", {}, {true}, btc_fob_fnc_redeploy, _degrees] call ace_interact_menu_fnc_createAction; [btc_gear_object, 0, ["ACE_MainActions", "FOB"], _action] call ace_interact_menu_fnc_addActionToObject; if (btc_p_respawn_fromFOBToBase) then { [btc_fob_flag, 0, ["ACE_MainActions", "FOB"], _action] call ace_interact_menu_fnc_addActionToClass; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index 7c9dd9723..b289c0e8d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -54,6 +54,4 @@ if ((getVehicleCargo _veh) isNotEqualTo []) then { deleteVehicle _this; }, _veh] call CBA_fnc_execNextFrame; -[{ - _this call btc_log_fnc_createVehicle; -}, [_type, [_x, _y, 0.5 + _z], _dir] + _vehProperties + [_EDENinventory], 1] call CBA_fnc_waitAndExecute; +[btc_log_fnc_createVehicle, [_type, [_x, _y, 0.5 + _z], _dir] + _vehProperties + [_EDENinventory], 1] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf index 3c5bebb51..8e2f3bb0d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf @@ -106,11 +106,7 @@ for "_i" from 0 to (1 + round random 2) do { [_destroy_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; private _fx = "test_EmptyObjectForSmoke" createVehicle _pos; _fx setPos _pos; - [{ - params ["_fx"]; - - _fx call CBA_fnc_deleteEntity; - }, [_fx], 120] call CBA_fnc_waitAndExecute; + [CBA_fnc_deleteEntity, [_fx], 120] call CBA_fnc_waitAndExecute; btc_spect_emp deleteAt (btc_spect_emp find _box); publicVariable "btc_spect_emp"; } else { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index 1ea42262d..67a5dc4bf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -44,7 +44,7 @@ switch true do { btc_p_flag > 0 && {getForcedFlagTexture _target isEqualTo ""} && {(driver vehicle player) isEqualTo player} - }, {_this call btc_flag_fnc_deploy}] call ace_interact_menu_fnc_createAction; + }, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["btc_flag_cutVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { _target forceFlagTexture ""; @@ -72,7 +72,7 @@ switch true do { btc_p_flag > 0 && {getForcedFlagTexture _target isEqualTo ""} && {(driver vehicle player) isEqualTo player} - }, {_this call btc_flag_fnc_deploy}] call ace_interact_menu_fnc_createAction; + }, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["btc_flag_cutVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { _target forceFlagTexture ""; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 2fef4de2e..c32d30e80 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -40,9 +40,7 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN if (btc_p_db_autoRestart > 0) then { [{ [19] remoteExecCall ["btc_fnc_show_hint", [0, -2] select isDedicated]; - [{ - [] call btc_db_fnc_autoRestart; - }, [], 5 * 60] call CBA_fnc_waitAndExecute; + [btc_db_fnc_autoRestart, [], 5 * 60] call CBA_fnc_waitAndExecute; }, [], btc_p_db_autoRestartTime * 60 * 60 - 5 * 60] call CBA_fnc_waitAndExecute; }; From a7f20b4012e93277648799dcf5edcedc0e719d9e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 25 Sep 2021 13:05:46 +0200 Subject: [PATCH 207/354] Add icon to subject diary entry easier to spot subject specific to H&M --- .../core/doc.sqf | 40 +++++++++---------- .../core/fnc/info/cachePicture.sqf | 2 +- .../core/init_player.sqf | 2 +- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf index 9e25f409d..30c53a3a9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf @@ -1,59 +1,59 @@ -private _MainCategory = localize "str_3den_display3den_menubar_helpdoc_text"; -player createDiarySubject [_MainCategory, _MainCategory]; +private _mainCategory = localize "str_3den_display3den_menubar_helpdoc_text"; +player createDiarySubject [_mainCategory, _mainCategory, "\A3\ui_f\data\igui\cfg\simpleTasks\types\documents_ca.paa"]; //Headless and Data base -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_HEADLESS_TITLE", localize "STR_BTC_HAM_DOC_HEADLESS_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_DOC_HEADLESS_TITLE", localize "STR_BTC_HAM_DOC_HEADLESS_TEXT"]]; //Door locked -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_DOOR_TITLE", localize "STR_BTC_HAM_DOC_DOOR_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_DOC_DOOR_TITLE", localize "STR_BTC_HAM_DOC_DOOR_TEXT"]]; //Chemical warfare -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_CHEMICALWARFARE_TITLE", localize "STR_BTC_HAM_DOC_CHEMICALWARFARE_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_DOC_CHEMICALWARFARE_TITLE", localize "STR_BTC_HAM_DOC_CHEMICALWARFARE_TEXT"]]; //Spectrum devices -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_SPECTRUMDEVICES_TITLE", localize "STR_BTC_HAM_DOC_SPECTRUMDEVICES_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_DOC_SPECTRUMDEVICES_TITLE", localize "STR_BTC_HAM_DOC_SPECTRUMDEVICES_TEXT"]]; //Vehicles -player createDiaryRecord [_MainCategory, [localize "str_a3_cfghints_command_vehicles1", localize "STR_BTC_HAM_DOC_VEHICLES_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "str_a3_cfghints_command_vehicles1", localize "STR_BTC_HAM_DOC_VEHICLES_TEXT"]]; //Side Mission -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_SIDEMISSION_TITLE", localize "STR_BTC_HAM_DOC_SIDEMISSION_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_DOC_SIDEMISSION_TITLE", localize "STR_BTC_HAM_DOC_SIDEMISSION_TEXT"]]; //Respawn tickets -player createDiaryRecord [_MainCategory, [localize "str_a3_cfgvehicles_modulerespawntickets_f", localize "STR_BTC_HAM_DOC_RESPAWN_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "str_a3_cfgvehicles_modulerespawntickets_f", localize "STR_BTC_HAM_DOC_RESPAWN_TEXT"]]; //Respawn position -player createDiaryRecord [_MainCategory, [localize "str_a3_cfgvehicles_modulerespawnposition_f_0", localize "STR_BTC_HAM_DOC_FOB_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "str_a3_cfgvehicles_modulerespawnposition_f_0", localize "STR_BTC_HAM_DOC_FOB_TEXT"]]; //Sling loading -player createDiaryRecord [_MainCategory, [localize "STR_A3_SlingLoad1", localize "STR_BTC_HAM_DOC_SLING_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_A3_SlingLoad1", localize "STR_BTC_HAM_DOC_SLING_TEXT"]]; //Logistic point -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_MSQM_MRK_LOGPOINT", localize "STR_BTC_HAM_DOC_LOGISTICP_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_MSQM_MRK_LOGPOINT", localize "STR_BTC_HAM_DOC_LOGISTICP_TEXT"]]; //Logistic -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_ACTION_LOC_MAIN", localize "STR_BTC_HAM_DOC_LOGISTIC_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_ACTION_LOC_MAIN", localize "STR_BTC_HAM_DOC_LOGISTIC_TEXT"]]; //Hideout -player createDiaryRecord [_MainCategory, [localize "str_a3_campaign_b_m03_marker02", localize "STR_BTC_HAM_DOC_HIDEOUT_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "str_a3_campaign_b_m03_marker02", localize "STR_BTC_HAM_DOC_HIDEOUT_TEXT"]]; //IED -player createDiaryRecord [_MainCategory, ["IED", localize "STR_BTC_HAM_DOC_IED_TEXT"]]; +player createDiaryRecord [_mainCategory, ["IED", localize "STR_BTC_HAM_DOC_IED_TEXT"]]; //Intel -player createDiaryRecord [_MainCategory, [localize "str_a3_mdl_category_intel", localize "STR_BTC_HAM_DOC_INTEL_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "str_a3_mdl_category_intel", localize "STR_BTC_HAM_DOC_INTEL_TEXT"]]; //Reputation -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_REPUTATION_TITLE", localize "STR_BTC_HAM_DOC_REPUTATION_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_DOC_REPUTATION_TITLE", localize "STR_BTC_HAM_DOC_REPUTATION_TEXT"]]; //Orders -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_ACTION_ORDERS_MAIN", localize "STR_BTC_HAM_DOC_ORDERS_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_ACTION_ORDERS_MAIN", localize "STR_BTC_HAM_DOC_ORDERS_TEXT"]]; //Traffic -player createDiaryRecord [_MainCategory, [localize "STR_BTC_HAM_DOC_TRAFFIC_TITLE", localize "STR_BTC_HAM_DOC_TRAFFIC_TEXT"]]; +player createDiaryRecord [_mainCategory, [localize "STR_BTC_HAM_DOC_TRAFFIC_TITLE", localize "STR_BTC_HAM_DOC_TRAFFIC_TEXT"]]; //Version -player createDiaryRecord [_MainCategory, [localize "STR_A3_FM_Welcome4", +player createDiaryRecord [_mainCategory, [localize "STR_A3_FM_Welcome4", format ([" Version %1.%2.%3

"] + btc_version) ] ]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cachePicture.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cachePicture.sqf index 159d8b174..fb5b69554 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cachePicture.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cachePicture.sqf @@ -29,7 +29,7 @@ params [ ]; if !(player diarySubjectExists "btc_diarylog") then { - player createDiarySubject ["btc_diarylog", localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_DIARYLOG"]; + player createDiarySubject ["btc_diarylog", localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_DIARYLOG", '\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa']; }; private _string = if (_is_building_with_the_cache) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf index 7ca0f7e9d..a52e8c53b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf @@ -25,7 +25,7 @@ btc_intro_done = [] spawn btc_respawn_fnc_intro; [] call btc_int_fnc_shortcuts; if (player getVariable ["interpreter", false]) then { - player createDiarySubject ["btc_diarylog", localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_DIARYLOG"]; + player createDiarySubject ["btc_diarylog", localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_DIARYLOG", '\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa']; }; switch (btc_p_autoloadout) do { From 3a3bbc1f7a2b94f9c48056c568aeb174a3ecbe37 Mon Sep 17 00:00:00 2001 From: GoldJohnKing Date: Tue, 28 Sep 2021 16:53:41 +0800 Subject: [PATCH 208/354] fix swapped stringtable key id for respawn ticket --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 8d3939db3..62dd73bf0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -599,7 +599,7 @@ 集合点自毁时间: Temps avant l'autodestruction du point de ralliement: - + Number of tickets at mission start: 任务开始时的重生票数: @@ -615,7 +615,7 @@ Not share 不共享 - + Time before showing marker of dead player's body: 显示阵亡玩家尸体标记前的时间: From 143a1b8a08f481ee6240c3d5c2d182f8b75c9084 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 29 Sep 2021 22:23:10 +0200 Subject: [PATCH 209/354] Remove btc_vehicles from mission.sqf --- .../core/def/mission.sqf | 1 - .../core/fnc/db/add_veh.sqf | 5 ++++ .../core/fnc/log/createVehicle.sqf | 2 -- .../core/init_server.sqf | 1 - =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 30 +++++++++---------- .../mission__Enoch.sqm | 30 +++++++++---------- .../mission__Tanoa.sqm | 30 +++++++++---------- docs/Add-vehicle-or-boat-to-H&M-system.md | 6 +--- 8 files changed, 51 insertions(+), 54 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index c00d28cd2..8f31bca8c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -291,7 +291,6 @@ if (isServer) then { btc_type_solarPanel = _allClassSorted select {_x isKindOf "Land_SolarPanel_04_base_F"}; //BTC Vehicles in missions.sqm - btc_vehicles = [btc_veh_1, btc_veh_2, btc_veh_3, btc_veh_4, btc_veh_5, btc_veh_6, btc_veh_7, btc_veh_8, btc_veh_9, btc_veh_10, btc_veh_11, btc_veh_12, btc_veh_13, btc_veh_14, btc_veh_15, btc_veh_16, btc_veh_17, btc_veh_18]; btc_helo = [btc_helo_1]; // The two arrays below are prefixes of buildings and their multiplier. diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index 35e0fade4..dd8dee1c7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -28,7 +28,12 @@ if !(isServer) exitWith { _veh remoteExecCall ["btc_db_fnc_add_veh", 2]; }; +if (isNil "btc_vehicles") then { + btc_vehicles = []; +}; btc_vehicles pushBackUnique _veh; +_veh setVariable ["btc_dont_delete", true]; + _veh addMPEventHandler ["MPKilled", { if (isServer) then { _this call btc_veh_fnc_killed; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 116c987b6..b3d06fc99 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -57,8 +57,6 @@ if (_EDENinventory isNotEqualTo []) then { [_veh, _EDENinventory] call btc_log_fnc_inventorySet; }; -_veh setVariable ["btc_dont_delete", true]; - if (unitIsUAV _veh) then { createVehicleCrew _veh; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 2fef4de2e..02b2e8212 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -28,7 +28,6 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; - _x call btc_db_fnc_add_veh; } forEach btc_vehicles; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 8e2c29d5b..096517934 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -919,7 +919,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_11"; }; id=18; @@ -939,7 +939,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_12"; }; id=19; @@ -959,7 +959,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_13"; }; id=20; @@ -2512,7 +2512,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_9"; }; id=158; @@ -2554,7 +2554,7 @@ class Mission flags=4; class Attributes { - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_15"; }; id=160; @@ -2597,7 +2597,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_8"; }; id=161; @@ -2639,7 +2639,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_4"; }; id=164; @@ -2682,7 +2682,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_3"; }; id=165; @@ -2724,7 +2724,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_2"; }; id=166; @@ -2767,7 +2767,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_6"; }; id=168; @@ -2810,7 +2810,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_5"; }; id=169; @@ -2896,7 +2896,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_14"; }; id=174; @@ -2958,7 +2958,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_10"; }; id=175; @@ -3001,7 +3001,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_7"; }; id=178; @@ -3190,7 +3190,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_16"; }; id=225; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index f65197b87..fb6f62a50 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -2416,7 +2416,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_14"; }; id=174; @@ -2478,7 +2478,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_10"; }; id=175; @@ -2709,7 +2709,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_5"; }; id=233; @@ -2752,7 +2752,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_6"; }; id=234; @@ -2795,7 +2795,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_7"; }; id=237; @@ -2838,7 +2838,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_2"; }; id=238; @@ -2881,7 +2881,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_3"; }; id=239; @@ -2924,7 +2924,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_4"; }; id=240; @@ -2967,7 +2967,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_8"; }; id=241; @@ -3009,7 +3009,7 @@ class Mission flags=4; class Attributes { - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_15"; }; id=243; @@ -3051,7 +3051,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_9"; }; id=244; @@ -3093,7 +3093,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_13"; }; id=245; @@ -3136,7 +3136,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_12"; }; id=246; @@ -3179,7 +3179,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_11"; }; id=247; @@ -3222,7 +3222,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_16"; }; id=248; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index b90505d6f..265ea1657 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -2424,7 +2424,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_14"; }; id=174; @@ -2486,7 +2486,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_10"; }; id=175; @@ -2717,7 +2717,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_5"; }; id=233; @@ -2760,7 +2760,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_6"; }; id=234; @@ -2803,7 +2803,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_7"; }; id=237; @@ -2846,7 +2846,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_2"; }; id=238; @@ -2889,7 +2889,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_3"; }; id=239; @@ -2932,7 +2932,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_4"; }; id=240; @@ -2975,7 +2975,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_8"; }; id=241; @@ -3017,7 +3017,7 @@ class Mission flags=4; class Attributes { - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_15"; }; id=243; @@ -3059,7 +3059,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_9"; }; id=244; @@ -3102,7 +3102,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_13"; }; id=245; @@ -3145,7 +3145,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_12"; }; id=246; @@ -3188,7 +3188,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_11"; }; id=247; @@ -3231,7 +3231,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true]"; + init="this call btc_db_fnc_add_veh;" name="btc_veh_16"; }; id=248; diff --git a/docs/Add-vehicle-or-boat-to-H&M-system.md b/docs/Add-vehicle-or-boat-to-H&M-system.md index b091201ea..d58526b9f 100644 --- a/docs/Add-vehicle-or-boat-to-H&M-system.md +++ b/docs/Add-vehicle-or-boat-to-H&M-system.md @@ -6,11 +6,7 @@ If the vehicle is destroyed, a wreck will be left. You will need to tow or lift You can add new vehicle in the mision.sqm : - Open the mission in the editor (mission.sqm). - Add vehicles. -- Give a unique name like: `btc_veh_16`,`btc_veh_17` ... -- Add in the init field : `this setVariable ["btc_dont_delete",true]` -- Save. -- Open the [/core/def/mission.sqf L285](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L285) -- Add names you gave to your vehicles. +- Add in the init field: `this call btc_db_fnc_add_veh;` - Save. #### 2: In game From 2cac86deae964e802347e50f6f0c84d5700a59f1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 29 Sep 2021 22:50:14 +0200 Subject: [PATCH 210/354] Remove helo from mission.sqf --- .../core/def/mission.sqf | 3 --- .../core/fnc/db/add_veh.sqf | 8 +++++++- .../core/fnc/veh/addRespawn.sqf | 15 +++++++++++---- .../core/init_server.sqf | 1 - =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 1 + .../mission__Enoch.sqm | 1 + .../mission__Tanoa.sqm | 1 + docs/Add-vehicle-or-boat-to-H&M-system.md | 9 +++------ docs/All-H&M-setting-and-tweak.md | 3 +-- 9 files changed, 25 insertions(+), 17 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 8f31bca8c..f74d18299 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -290,9 +290,6 @@ if (isServer) then { btc_type_antenna = _allClassSorted select {_x isKindOf "OmniDirectionalAntenna_01_base_F"}; btc_type_solarPanel = _allClassSorted select {_x isKindOf "Land_SolarPanel_04_base_F"}; - //BTC Vehicles in missions.sqm - btc_helo = [btc_helo_1]; - // The two arrays below are prefixes of buildings and their multiplier. // They will multiply the values of btc_rep_malus_building_destroyed and btc_rep_malus_building_damaged, // if a building is not present here it will be multiplied by 1.0. diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index dd8dee1c7..0a78391a7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -31,7 +31,13 @@ if !(isServer) exitWith { if (isNil "btc_vehicles") then { btc_vehicles = []; }; -btc_vehicles pushBackUnique _veh; +private _index = btc_vehicles pushBackUnique _veh; +if (_index isEqualTo -1) exitWith { + if (btc_debug || btc_debug_log) then { + ["Vehicle added more than once in btc_vehicles", __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; + }; +}; + _veh setVariable ["btc_dont_delete", true]; _veh addMPEventHandler ["MPKilled", { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 3e061ef23..7a572e1f9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -8,7 +8,6 @@ Description: Parameters: _vehicle - Vehicle to add inside the respawn system. [Object] _time - Time before respawn. [Number] - _helo - Array of respawning vehicles. [Array] Returns: _handle - Value of the MPEventhandle. [Number] @@ -25,11 +24,19 @@ Author: params [ ["_vehicle", objNull, [objNull]], - ["_time", 30, [0]], - ["_helo", btc_helo, [[]]] + ["_time", 30, [0]] ]; -_helo pushBackUnique _vehicle; +if (isNil "btc_helo") then { + btc_helo = []; +}; + +private _index = btc_helo pushBackUnique _vehicle; +if (_index isEqualTo -1) exitWith { + if (btc_debug || btc_debug_log) then { + ["Helo added more than once in btc_helo", __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; + }; +}; private _type = typeOf _vehicle; private _pos = getPosASL _vehicle; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 02b2e8212..f4ceebb0c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -47,7 +47,6 @@ if (btc_p_db_autoRestart > 0) then { { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; - [_x, 30] call btc_veh_fnc_addRespawn; } forEach btc_helo; if (btc_p_side_mission_cycle > 0) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 096517934..4f171c05a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -2471,6 +2471,7 @@ class Mission class Attributes { skill=0.60000002; + init="[this, 30] call btc_veh_fnc_addRespawn;" name="btc_helo_1"; }; id=156; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index fb6f62a50..054927144 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -2374,6 +2374,7 @@ class Mission class Attributes { skill=0.60000002; + init="[this, 30] call btc_veh_fnc_addRespawn;" name="btc_helo_1"; }; id=156; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 265ea1657..d33365bf8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -2382,6 +2382,7 @@ class Mission class Attributes { skill=0.60000002; + init="[this, 30] call btc_veh_fnc_addRespawn;" name="btc_helo_1"; }; id=156; diff --git a/docs/Add-vehicle-or-boat-to-H&M-system.md b/docs/Add-vehicle-or-boat-to-H&M-system.md index d58526b9f..1a085154e 100644 --- a/docs/Add-vehicle-or-boat-to-H&M-system.md +++ b/docs/Add-vehicle-or-boat-to-H&M-system.md @@ -14,10 +14,7 @@ A garage is available for admin only. Activate the garage through mission parame ### 2: Add respawn to vehicle or boat -You can add a new vehicle/boat to respawn system by : -- in the editor, name it like **btc_helo_2** -- in the [core/def/mission.sqf L286](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L286) file, add **btc_helo_2** to the list of btc_helo. +You can add a new vehicle/boat to respawn system by: +- Add in the init field: `[this, 30] call btc_veh_fnc_addRespawn;` - like : btc_helo = [btc_helo_1,**btc_helo_2**]; - -Note: you can tweak respawn time here: [/core/init_server.sqf L46](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L46) by changing 30s to what you want. +Note: you can tweak respawn time here by changing 30 (s) to what you want. diff --git a/docs/All-H&M-setting-and-tweak.md b/docs/All-H&M-setting-and-tweak.md index 44e6a064c..6646b24fe 100644 --- a/docs/All-H&M-setting-and-tweak.md +++ b/docs/All-H&M-setting-and-tweak.md @@ -2,10 +2,9 @@ You can change all setting and tweak all parameters in [core/def/mission.sqf](ht You can found for exemple: -- Vehicle's player array (btc_veh and btc_helo). - Logistic class name. - Maximum civil and enemy traffic. - Spawning traffic distance - Reputation bonus. - Add blacklisted location. -- And more. \ No newline at end of file +- And more. From 6b993a7721f47e3cb9d13e8d1ba981f83b049fb9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 29 Sep 2021 23:11:54 +0200 Subject: [PATCH 211/354] remove all veh and helo names fix missing btc_db_fnc_add_veh --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 25 +++---------------- .../mission__Enoch.sqm | 25 +++---------------- .../mission__Tanoa.sqm | 25 +++---------------- 3 files changed, 9 insertions(+), 66 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 4f171c05a..3e0f8db8e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -920,7 +920,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_11"; }; id=18; type="B_Truck_01_ammo_F"; @@ -940,7 +939,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_12"; }; id=19; type="B_Truck_01_fuel_F"; @@ -960,7 +958,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_13"; }; id=20; type="B_Truck_01_Repair_F"; @@ -2472,7 +2469,6 @@ class Mission { skill=0.60000002; init="[this, 30] call btc_veh_fnc_addRespawn;" - name="btc_helo_1"; }; id=156; type="B_Heli_Transport_03_F"; @@ -2514,7 +2510,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_9"; }; id=158; type="B_Truck_01_transport_F"; @@ -2556,7 +2551,6 @@ class Mission class Attributes { init="this call btc_db_fnc_add_veh;" - name="btc_veh_15"; }; id=160; type="B_Truck_01_flatbed_F"; @@ -2599,7 +2593,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_8"; }; id=161; type="B_Truck_01_transport_F"; @@ -2641,7 +2634,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_4"; }; id=164; type="B_LSV_01_armed_F"; @@ -2684,7 +2676,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_3"; }; id=165; type="B_LSV_01_armed_F"; @@ -2726,7 +2717,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_2"; }; id=166; type="B_LSV_01_armed_F"; @@ -2769,7 +2759,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_6"; }; id=168; type="B_MRAP_01_hmg_F"; @@ -2812,7 +2801,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_5"; }; id=169; type="B_MRAP_01_hmg_F"; @@ -2854,8 +2842,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true];"; - name="btc_veh_1"; + init="this call btc_db_fnc_add_veh;"; }; id=170; type="B_APC_Wheeled_01_cannon_F"; @@ -2898,7 +2885,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_14"; }; id=174; type="B_Heli_Transport_01_camo_F"; @@ -2960,7 +2946,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_10"; }; id=175; type="B_Heli_Attack_01_dynamicLoadout_F"; @@ -3003,7 +2988,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_7"; }; id=178; type="B_LSV_01_armed_F"; @@ -3192,7 +3176,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_16"; }; id=225; type="B_Truck_01_flatbed_F"; @@ -3232,8 +3215,7 @@ class Mission flags=4; class Attributes { - init="call{this setVariable [""btc_dont_delete"",true]}"; - name="btc_veh_17"; + init="this call btc_db_fnc_add_veh;"; }; id=230; type="B_Truck_01_medical_F"; @@ -3273,8 +3255,7 @@ class Mission flags=4; class Attributes { - init="call{this setVariable [""btc_dont_delete"",true]}"; - name="btc_veh_18"; + init="this call btc_db_fnc_add_veh;"; }; id=231; type="B_APC_Tracked_01_CRV_F"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 054927144..4c634089b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -2375,7 +2375,6 @@ class Mission { skill=0.60000002; init="[this, 30] call btc_veh_fnc_addRespawn;" - name="btc_helo_1"; }; id=156; type="B_Heli_Transport_03_F"; @@ -2418,7 +2417,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_14"; }; id=174; type="B_Heli_Transport_01_camo_F"; @@ -2480,7 +2478,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_10"; }; id=175; type="B_Heli_Attack_01_dynamicLoadout_F"; @@ -2667,8 +2664,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true];"; - name="btc_veh_1"; + init="this call btc_db_fnc_add_veh;"; }; id=232; type="B_T_APC_Wheeled_01_cannon_F"; @@ -2711,7 +2707,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_5"; }; id=233; type="B_T_MRAP_01_hmg_F"; @@ -2754,7 +2749,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_6"; }; id=234; type="B_T_MRAP_01_hmg_F"; @@ -2797,7 +2791,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_7"; }; id=237; type="B_T_LSV_01_armed_F"; @@ -2840,7 +2833,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_2"; }; id=238; type="B_T_LSV_01_armed_F"; @@ -2883,7 +2875,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_3"; }; id=239; type="B_T_LSV_01_armed_F"; @@ -2926,7 +2917,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_4"; }; id=240; type="B_T_LSV_01_armed_F"; @@ -2969,7 +2959,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_8"; }; id=241; type="B_T_Truck_01_transport_F"; @@ -3011,7 +3000,6 @@ class Mission class Attributes { init="this call btc_db_fnc_add_veh;" - name="btc_veh_15"; }; id=243; type="B_T_Truck_01_flatbed_F"; @@ -3053,7 +3041,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_9"; }; id=244; type="B_T_Truck_01_transport_F"; @@ -3095,7 +3082,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_13"; }; id=245; type="B_T_Truck_01_Repair_F"; @@ -3138,7 +3124,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_12"; }; id=246; type="B_T_Truck_01_fuel_F"; @@ -3181,7 +3166,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_11"; }; id=247; type="B_T_Truck_01_ammo_F"; @@ -3224,7 +3208,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_16"; }; id=248; type="B_T_Truck_01_flatbed_F"; @@ -3265,8 +3248,7 @@ class Mission flags=4; class Attributes { - init="call{this setVariable [""btc_dont_delete"",true]}"; - name="btc_veh_17"; + init="this call btc_db_fnc_add_veh;"; }; id=249; type="B_T_Truck_01_medical_F"; @@ -3307,8 +3289,7 @@ class Mission flags=4; class Attributes { - init="call{this setVariable [""btc_dont_delete"",true]}"; - name="btc_veh_18"; + init="this call btc_db_fnc_add_veh;"; }; id=250; type="B_T_APC_Tracked_01_CRV_F"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index d33365bf8..d9fb51ae3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -2383,7 +2383,6 @@ class Mission { skill=0.60000002; init="[this, 30] call btc_veh_fnc_addRespawn;" - name="btc_helo_1"; }; id=156; type="B_Heli_Transport_03_F"; @@ -2426,7 +2425,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_14"; }; id=174; type="B_Heli_Transport_01_camo_F"; @@ -2488,7 +2486,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_10"; }; id=175; type="B_Heli_Attack_01_dynamicLoadout_F"; @@ -2675,8 +2672,7 @@ class Mission class Attributes { skill=0.60000002; - init="this setVariable [""btc_dont_delete"",true];"; - name="btc_veh_1"; + init="this call btc_db_fnc_add_veh;"; }; id=232; type="B_T_APC_Wheeled_01_cannon_F"; @@ -2719,7 +2715,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_5"; }; id=233; type="B_T_MRAP_01_hmg_F"; @@ -2762,7 +2757,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_6"; }; id=234; type="B_T_MRAP_01_hmg_F"; @@ -2805,7 +2799,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_7"; }; id=237; type="B_T_LSV_01_armed_F"; @@ -2848,7 +2841,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_2"; }; id=238; type="B_T_LSV_01_armed_F"; @@ -2891,7 +2883,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_3"; }; id=239; type="B_T_LSV_01_armed_F"; @@ -2934,7 +2925,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_4"; }; id=240; type="B_T_LSV_01_armed_F"; @@ -2977,7 +2967,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_8"; }; id=241; type="B_T_Truck_01_transport_F"; @@ -3019,7 +3008,6 @@ class Mission class Attributes { init="this call btc_db_fnc_add_veh;" - name="btc_veh_15"; }; id=243; type="B_T_Truck_01_flatbed_F"; @@ -3061,7 +3049,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_9"; }; id=244; type="B_T_Truck_01_transport_F"; @@ -3104,7 +3091,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_13"; }; id=245; type="B_T_Truck_01_Repair_F"; @@ -3147,7 +3133,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_12"; }; id=246; type="B_T_Truck_01_fuel_F"; @@ -3190,7 +3175,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_11"; }; id=247; type="B_T_Truck_01_ammo_F"; @@ -3233,7 +3217,6 @@ class Mission { skill=0.60000002; init="this call btc_db_fnc_add_veh;" - name="btc_veh_16"; }; id=248; type="B_T_Truck_01_flatbed_F"; @@ -3274,8 +3257,7 @@ class Mission flags=4; class Attributes { - init="call{this setVariable [""btc_dont_delete"",true]}"; - name="btc_veh_17"; + init="this call btc_db_fnc_add_veh;"; }; id=249; type="B_T_Truck_01_medical_F"; @@ -3316,8 +3298,7 @@ class Mission flags=4; class Attributes { - init="call{this setVariable [""btc_dont_delete"",true]}"; - name="btc_veh_18"; + init="this call btc_db_fnc_add_veh;"; }; id=250; type="B_T_APC_Tracked_01_CRV_F"; From 549f96a6c7cd4379b16ba7c3e70b705cf964325d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 30 Sep 2021 15:29:24 +0200 Subject: [PATCH 212/354] Fix: btc_db_fnc_add_veh executed by each player --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 4 +--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf | 6 +----- .../core/fnc/veh/addRespawn.sqf | 3 +-- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 2a29a214b..74132653c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -71,6 +71,7 @@ if (isServer) then { btc_db_fnc_saveObjectStatus = compileScript ["core\fnc\db\saveObjectStatus.sqf"]; btc_db_fnc_loadCargo = compileScript ["core\fnc\db\loadcargo.sqf"]; btc_db_fnc_autoRestart = compileScript ["core\fnc\db\autoRestart.sqf"]; + btc_db_fnc_add_veh = compileScript ["core\fnc\db\add_veh.sqf"]; //DELAY btc_delay_fnc_createUnit = compileScript ["core\fnc\delay\createUnit.sqf"]; @@ -232,9 +233,6 @@ btc_chem_fnc_deconShowerAnimLarge = {(_this select 0) setVariable ["BIN_Shower_S //DEBUG btc_debug_fnc_message = compileScript ["core\fnc\debug\message.sqf"]; -//DB -btc_db_fnc_add_veh = compileScript ["core\fnc\db\add_veh.sqf"]; - //EH btc_eh_fnc_trackItem = compileScript ["core\fnc\eh\trackItem.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index 0a78391a7..7e60cf7e0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [cursorObject] call btc_db_fnc_add_veh; + cursorObject remoteExecCall ["btc_db_fnc_add_veh", 2]; (end) Author: @@ -24,10 +24,6 @@ params [ ["_veh", objNull, [objNull]] ]; -if !(isServer) exitWith { - _veh remoteExecCall ["btc_db_fnc_add_veh", 2]; -}; - if (isNil "btc_vehicles") then { btc_vehicles = []; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 7a572e1f9..ea7937aa3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [cursorObject, 30] call btc_veh_fnc_addRespawn; + [cursorObject, 30] remoteExecCall ["btc_veh_fnc_addRespawn", 2]; (end) Author: @@ -30,7 +30,6 @@ params [ if (isNil "btc_helo") then { btc_helo = []; }; - private _index = btc_helo pushBackUnique _vehicle; if (_index isEqualTo -1) exitWith { if (btc_debug || btc_debug_log) then { From 12bee337ab66d20f086e7682e83999ed39f50300 Mon Sep 17 00:00:00 2001 From: Zakant Date: Mon, 4 Oct 2021 12:33:07 +0200 Subject: [PATCH 213/354] Added gamelogic to replace init fields --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 327 ++++++++++++++---- 1 file changed, 267 insertions(+), 60 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 3e0f8db8e..d187378b2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -1,4 +1,4 @@ -version=53; +version=54; class EditorData { moveGridStep=1; @@ -8,7 +8,7 @@ class EditorData toggles=521; class ItemIDProvider { - nextID=232; + nextID=234; }; class MarkerIDProvider { @@ -23,6 +23,7 @@ class EditorData }; }; binarizationWanted=0; +sourceName="=BTC=co@30_Hearts_and_Minds"; addons[]= { "A3_Ui_F", @@ -40,6 +41,7 @@ addons[]= "ace_explosives", "A3_Modules_F_Curator_Curator", "A3_Characters_F_Enoch", + "A3_Characters_F_Mark", "A3_Air_F_Heli_Heli_Transport_03", "A3_Soft_F_Beta_Truck_01", "A3_Soft_F_Enoch_Truck_01", @@ -50,13 +52,14 @@ addons[]= "A3_Air_F_Beta_Heli_Attack_01", "A3_Props_F_Enoch_Military_Decontamination", "A3_Signs_F", - "A3_Armor_F_Beta_APC_Tracked_01" + "A3_Armor_F_Beta_APC_Tracked_01", + "A3_Modules_F" }; class AddonsMetaData { class List { - items=21; + items=23; class Item0 { className="A3_Ui_F"; @@ -149,61 +152,75 @@ class AddonsMetaData url="https://www.arma3.com"; }; class Item13 + { + className="A3_Characters_F_Mark"; + name="Arma 3 Marksmen - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item14 { className="A3_Air_F_Heli"; name="Arma 3 Helicopters - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item14 + class Item15 { className="A3_Soft_F_Beta"; name="Arma 3 Beta - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item15 + class Item16 { className="A3_Soft_F_Enoch"; name="Arma 3 Contact Platform - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item16 + class Item17 { className="A3_Soft_F"; name="Arma 3 Alpha - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item17 + class Item18 { className="A3_Armor_F_Beta"; name="Arma 3 Beta - Armored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item18 + class Item19 { className="A3_Air_F_Beta"; name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item19 + class Item20 { className="A3_Props_F_Enoch"; name="Arma 3 Contact Platform - Decorative and Mission Objects"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item20 + class Item21 { className="A3_Signs_F"; name="Arma 3 - Signs"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item22 + { + className="A3_Modules_F"; + name="Arma 3 Alpha - Scripted Modules"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; }; }; randomSeed=2442963; @@ -694,7 +711,7 @@ class Mission }; class Entities { - items=61; + items=63; class Item0 { dataType="Marker"; @@ -767,7 +784,7 @@ class Mission class Attribute1 { property="ace_cargo_size"; - expression="[_this,_value] call ace_cargo_fnc_setSize;"; + expression="[_this, _value] call ace_cargo_fnc_setSize;"; class Value { class data @@ -808,7 +825,7 @@ class Mission class Attribute0 { property="ace_isRepairFacility"; - expression="if (_value != (if (isNumber (configFile >> 'CfgVehicles' >> typeOf _this >> ""ace_repair_canRepair"")) then {getNumber (configFile >> 'CfgVehicles' >> typeOf _this >> ""ace_repair_canRepair"")} else {0})) then {_this setVariable ['ace_isRepairFacility', _value, true]}"; + expression="if (_value != (if (isNumber (configOf _this >> ""ace_repair_canRepair"")) then {getNumber (configOf _this >> ""ace_repair_canRepair"")} else {0})) then {_this setVariable ['ace_isRepairFacility', _value, true]}"; class Value { class data @@ -870,7 +887,7 @@ class Mission class Attribute1 { property="ace_cargo_size"; - expression="[_this,_value] call ace_cargo_fnc_setSize;"; + expression="[_this, _value] call ace_cargo_fnc_setSize;"; class Value { class data @@ -895,7 +912,7 @@ class Mission class PositionInfo { position[]={8213.54,76.510483,10025.129}; - angles[]={6.2631893,0.89397335,6.2139621}; + angles[]={6.2631893,5.5869522,6.2139621}; }; side="Empty"; flags=4; @@ -911,57 +928,51 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8358.7637,75.2911,10101.058}; - angles[]={0.078505196,5.6318169,6.2445364}; + position[]={8358.7637,75.290886,10101.058}; + angles[]={0.078504913,5.6318107,6.244544}; }; side="Empty"; flags=4; class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=18; type="B_Truck_01_ammo_F"; - atlOffset=0.00021362305; }; class Item8 { dataType="Object"; class PositionInfo { - position[]={8353.5449,75.482399,10097.687}; - angles[]={0.025327841,5.6318169,6.247201}; + position[]={8353.5449,75.482193,10097.687}; + angles[]={0.025324726,5.6318107,6.2471962}; }; side="Empty"; flags=4; class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=19; type="B_Truck_01_fuel_F"; - atlOffset=0.00020599365; }; class Item9 { dataType="Object"; class PositionInfo { - position[]={8348.8496,76.13974,10094.677}; - angles[]={6.247201,5.6318169,6.2418756}; + position[]={8348.8496,76.139534,10094.677}; + angles[]={6.2471962,5.6318107,6.2418733}; }; side="Empty"; flags=4; class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=20; type="B_Truck_01_Repair_F"; - atlOffset=0.00020599365; }; class Item10 { @@ -987,7 +998,7 @@ class Mission class PositionInfo { position[]={8240.2227,77.387703,10049.465}; - angles[]={6.2591896,0.89397335,0.017332481}; + angles[]={6.2591896,5.6124601,0.017332481}; }; side="Empty"; flags=4; @@ -1097,7 +1108,7 @@ class Mission class Attribute0 { property="ace_isEngineer"; - expression="if !(_value == ([0,1] select (_this getUnitTrait 'engineer'))|| {_value == -1}) then {_this setVariable ['ace_isEngineer', _value, true]}"; + expression="if !(_value == ([0, 1] select (_this getUnitTrait 'engineer')) || {_value == -1}) then {_this setVariable ['ace_isEngineer', _value, true]}"; class Value { class data @@ -2468,7 +2479,7 @@ class Mission class Attributes { skill=0.60000002; - init="[this, 30] call btc_veh_fnc_addRespawn;" + init="[this, 30] call btc_veh_fnc_addRespawn;"; }; id=156; type="B_Heli_Transport_03_F"; @@ -2501,19 +2512,17 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8309.2617,77.484642,10096.77}; - angles[]={0.06656827,0.94293159,6.2405434}; + position[]={8309.2617,77.485207,10096.77}; + angles[]={0.066566855,0.94293159,6.2405472}; }; side="Empty"; flags=4; class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=158; type="B_Truck_01_transport_F"; - atlOffset=-0.0005645752; class CustomAttributes { class Attribute0 @@ -2543,18 +2552,16 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8299.4082,78.879608,10089.423}; - angles[]={0.0013372133,0.94247776,6.2325611}; + position[]={8299.4082,78.879555,10089.423}; + angles[]={0.0013439035,0.94247776,6.232553}; }; side="Empty"; flags=4; class Attributes { - init="this call btc_db_fnc_add_veh;" }; id=160; type="B_Truck_01_flatbed_F"; - atlOffset=5.3405762e-005; class CustomAttributes { class Attribute0 @@ -2592,7 +2599,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=161; type="B_Truck_01_transport_F"; @@ -2633,7 +2639,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=164; type="B_LSV_01_armed_F"; @@ -2675,7 +2680,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=165; type="B_LSV_01_armed_F"; @@ -2716,7 +2720,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=166; type="B_LSV_01_armed_F"; @@ -2750,7 +2753,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8272.083,80.947021,10065.467}; + position[]={8272.083,80.946983,10065.467}; angles[]={0.17032668,0.95726073,6.2392201}; }; side="Empty"; @@ -2758,11 +2761,10 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=168; type="B_MRAP_01_hmg_F"; - atlOffset=0.0020370483; + atlOffset=0.0019989014; class CustomAttributes { class Attribute0 @@ -2792,7 +2794,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8277.1621,80.921341,10059.937}; + position[]={8277.1621,80.921516,10059.937}; angles[]={0.12205087,0.3543193,6.1297359}; }; side="Empty"; @@ -2800,11 +2802,9 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=169; type="B_MRAP_01_hmg_F"; - atlOffset=-0.00017547607; class CustomAttributes { class Attribute0 @@ -2842,7 +2842,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;"; }; id=170; type="B_APC_Wheeled_01_cannon_F"; @@ -2877,14 +2876,13 @@ class Mission class PositionInfo { position[]={8241.4209,79.516441,10048.122}; - angles[]={6.2591867,5.7956276,0.01733112}; + angles[]={6.2591867,5.6199079,0.01733112}; }; side="Empty"; flags=4; class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=174; type="B_Heli_Transport_01_camo_F"; @@ -2937,19 +2935,17 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8213.6719,78.245605,10023.996}; - angles[]={6.2631841,5.7956276,6.2139654}; + position[]={8213.7646,78.413101,10024.694}; + angles[]={6.2631841,5.5749655,6.2139654}; }; side="Empty"; flags=4; class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=175; type="B_Heli_Attack_01_dynamicLoadout_F"; - atlOffset=-0.16000366; class CustomAttributes { class Attribute0 @@ -2987,7 +2983,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=178; type="B_LSV_01_armed_F"; @@ -3175,7 +3170,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=225; type="B_Truck_01_flatbed_F"; @@ -3215,7 +3209,6 @@ class Mission flags=4; class Attributes { - init="this call btc_db_fnc_add_veh;"; }; id=230; type="B_Truck_01_medical_F"; @@ -3255,7 +3248,6 @@ class Mission flags=4; class Attributes { - init="this call btc_db_fnc_add_veh;"; }; id=231; type="B_APC_Tracked_01_CRV_F"; @@ -3284,5 +3276,220 @@ class Mission nAttributes=1; }; }; + class Item61 + { + dataType="Logic"; + class PositionInfo + { + position[]={8393.7305,64.774879,9653.8418}; + }; + init="{" \n " _x call btc_db_fnc_add_veh;" \n "} forEach (synchronizedObjects this);"; + id=232; + type="Logic"; + atlOffset=64.103569; + }; + class Item62 + { + dataType="Comment"; + class PositionInfo + { + position[]={8393.583,48.884048,9654.0801}; + }; + title="Sync all vehicles to this logic"; + description="Sync all vehicles that should NOT automatically respawn to this logic. If a vehicle SHOULD automatically respawn, add ""[this, ] call btc_veh_fnc_addRespawn;"" to its init field and NOT sync it to the logic."; + id=233; + atlOffset=48.228989; + }; + }; + class Connections + { + class LinkIDProvider + { + nextID=18; + }; + class Links + { + items=18; + class Item0 + { + linkID=0; + item0=174; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item1 + { + linkID=1; + item0=175; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item2 + { + linkID=2; + item0=168; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item3 + { + linkID=3; + item0=169; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item4 + { + linkID=4; + item0=170; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item5 + { + linkID=5; + item0=178; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item6 + { + linkID=6; + item0=165; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item7 + { + linkID=7; + item0=166; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item8 + { + linkID=8; + item0=158; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item9 + { + linkID=9; + item0=160; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item10 + { + linkID=10; + item0=161; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item11 + { + linkID=11; + item0=18; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item12 + { + linkID=12; + item0=19; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item13 + { + linkID=13; + item0=20; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item14 + { + linkID=14; + item0=225; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item15 + { + linkID=15; + item0=230; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item16 + { + linkID=16; + item0=231; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + class Item17 + { + linkID=17; + item0=164; + item1=232; + class CustomData + { + type="Sync"; + }; + }; + }; }; }; From d23f5cebb61ee168b8eb6569ea3a5c8e74192bb7 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 4 Oct 2021 22:33:11 +0200 Subject: [PATCH 214/354] add respawnable module logic --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 81 ++++++++++++++----- .../stringtable.xml | 12 +++ 2 files changed, 72 insertions(+), 21 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index d187378b2..67faa1050 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -1,25 +1,29 @@ version=54; class EditorData { - moveGridStep=1; + moveGridStep=2; angleGridStep=0.2617994; scaleGridStep=1; autoGroupingDist=10; - toggles=521; + toggles=525; class ItemIDProvider { - nextID=234; + nextID=238; }; class MarkerIDProvider { nextID=3; }; + class LayerIndexProvider + { + nextID=1; + }; class Camera { - pos[]={8314.7744,91.116623,10084.846}; - dir[]={-0.80029076,-0.58512336,0.13129118}; - up[]={-0.57747674,0.81089264,0.09473715}; - aside[]={0.16189197,-1.5887781e-007,0.98683923}; + pos[]={8367.002,226.63452,10170.372}; + dir[]={-0.30540237,-0.6587823,-0.68761027}; + up[]={-0.26743448,0.75227875,-0.60212684}; + aside[]={-0.91394007,-3.6216807e-007,0.40592322}; }; }; binarizationWanted=0; @@ -241,7 +245,7 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { @@ -251,16 +255,15 @@ class CustomAttributes { type[]= { - "SCALAR" + "ARRAY" }; }; - value=1; }; }; }; class Attribute1 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { @@ -270,9 +273,10 @@ class CustomAttributes { type[]= { - "ARRAY" + "SCALAR" }; }; + value=1; }; }; }; @@ -711,7 +715,7 @@ class Mission }; class Entities { - items=63; + items=65; class Item0 { dataType="Marker"; @@ -3281,35 +3285,60 @@ class Mission dataType="Logic"; class PositionInfo { - position[]={8393.7305,64.774879,9653.8418}; + position[]={8216.1475,119.96858,10155.762}; }; init="{" \n " _x call btc_db_fnc_add_veh;" \n "} forEach (synchronizedObjects this);"; id=232; type="Logic"; - atlOffset=64.103569; + atlOffset=65.032745; }; class Item62 { dataType="Comment"; class PositionInfo { - position[]={8393.583,48.884048,9654.0801}; + position[]={8216,104,10156}; }; - title="Sync all vehicles to this logic"; - description="Sync all vehicles that should NOT automatically respawn to this logic. If a vehicle SHOULD automatically respawn, add ""[this, ] call btc_veh_fnc_addRespawn;"" to its init field and NOT sync it to the logic."; + title=$STR_BTC_HAM_MSQM_MRK_VEH; + description=$STR_BTC_HAM_MSQM_MRK_VEHDESC; id=233; - atlOffset=48.228989; + atlOffset=49.158176; + }; + class Item63 + { + dataType="Logic"; + class PositionInfo + { + position[]={8374,132,10056}; + }; + init="{" \n " [this, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; + id=235; + type="Logic"; + atlOffset=62.830055; + }; + class Item64 + { + dataType="Comment"; + class PositionInfo + { + position[]={8374,69.099487,10056}; + angles[]={6.1076765,0,6.1480145}; + }; + title=$STR_BTC_HAM_MSQM_MRK_HELO; + description=$STR_BTC_HAM_MSQM_MRK_HELODESC; + id=237; + atlOffset=-0.070457458; }; }; class Connections { class LinkIDProvider { - nextID=18; + nextID=19; }; class Links { - items=18; + items=19; class Item0 { linkID=0; @@ -3490,6 +3519,16 @@ class Mission type="Sync"; }; }; + class Item18 + { + linkID=18; + item0=235; + item1=156; + class CustomData + { + type="Sync"; + }; + }; }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 62dd73bf0..ff81d891f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -38,6 +38,18 @@ 后勤点 Point logistique + + Sync all vehicles to this logic + + + Sync all vehicles that should NOT automatically respawn to this logic. If a vehicle SHOULD automatically respawn, sync it to the logic named ""Sync all respawnable vehicles to this logic"". + + + Sync all respawnable vehicles to this logic + + + Sync all vehicles that automatically respawn to this logic. If a vehicle should NOT automatically respawn, sync it to the logic named ""Sync all vehicles to this logic"". +
From 66f7808c149ca15c4ecd08bee729423da06cbe0f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 4 Oct 2021 22:49:44 +0200 Subject: [PATCH 215/354] clean up all sqm --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 2 -- .../mission__Enoch.sqm | 19 ------------------- .../mission__Tanoa.sqm | 19 ------------------- .../stringtable.xml | 4 ++-- 4 files changed, 2 insertions(+), 42 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 67faa1050..01445f109 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -27,7 +27,6 @@ class EditorData }; }; binarizationWanted=0; -sourceName="=BTC=co@30_Hearts_and_Minds"; addons[]= { "A3_Ui_F", @@ -2483,7 +2482,6 @@ class Mission class Attributes { skill=0.60000002; - init="[this, 30] call btc_veh_fnc_addRespawn;"; }; id=156; type="B_Heli_Transport_03_F"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 4c634089b..170a27f69 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -2374,7 +2374,6 @@ class Mission class Attributes { skill=0.60000002; - init="[this, 30] call btc_veh_fnc_addRespawn;" }; id=156; type="B_Heli_Transport_03_F"; @@ -2416,7 +2415,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=174; type="B_Heli_Transport_01_camo_F"; @@ -2477,7 +2475,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=175; type="B_Heli_Attack_01_dynamicLoadout_F"; @@ -2664,7 +2661,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;"; }; id=232; type="B_T_APC_Wheeled_01_cannon_F"; @@ -2706,7 +2702,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=233; type="B_T_MRAP_01_hmg_F"; @@ -2748,7 +2743,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=234; type="B_T_MRAP_01_hmg_F"; @@ -2790,7 +2784,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=237; type="B_T_LSV_01_armed_F"; @@ -2832,7 +2825,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=238; type="B_T_LSV_01_armed_F"; @@ -2874,7 +2866,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=239; type="B_T_LSV_01_armed_F"; @@ -2916,7 +2907,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=240; type="B_T_LSV_01_armed_F"; @@ -2958,7 +2948,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=241; type="B_T_Truck_01_transport_F"; @@ -2999,7 +2988,6 @@ class Mission flags=4; class Attributes { - init="this call btc_db_fnc_add_veh;" }; id=243; type="B_T_Truck_01_flatbed_F"; @@ -3040,7 +3028,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=244; type="B_T_Truck_01_transport_F"; @@ -3081,7 +3068,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=245; type="B_T_Truck_01_Repair_F"; @@ -3123,7 +3109,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=246; type="B_T_Truck_01_fuel_F"; @@ -3165,7 +3150,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=247; type="B_T_Truck_01_ammo_F"; @@ -3207,7 +3191,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=248; type="B_T_Truck_01_flatbed_F"; @@ -3248,7 +3231,6 @@ class Mission flags=4; class Attributes { - init="this call btc_db_fnc_add_veh;"; }; id=249; type="B_T_Truck_01_medical_F"; @@ -3289,7 +3271,6 @@ class Mission flags=4; class Attributes { - init="this call btc_db_fnc_add_veh;"; }; id=250; type="B_T_APC_Tracked_01_CRV_F"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index d9fb51ae3..bfa44d7dd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -2382,7 +2382,6 @@ class Mission class Attributes { skill=0.60000002; - init="[this, 30] call btc_veh_fnc_addRespawn;" }; id=156; type="B_Heli_Transport_03_F"; @@ -2424,7 +2423,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=174; type="B_Heli_Transport_01_camo_F"; @@ -2485,7 +2483,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=175; type="B_Heli_Attack_01_dynamicLoadout_F"; @@ -2672,7 +2669,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;"; }; id=232; type="B_T_APC_Wheeled_01_cannon_F"; @@ -2714,7 +2710,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=233; type="B_T_MRAP_01_hmg_F"; @@ -2756,7 +2751,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=234; type="B_T_MRAP_01_hmg_F"; @@ -2798,7 +2792,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=237; type="B_T_LSV_01_armed_F"; @@ -2840,7 +2833,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=238; type="B_T_LSV_01_armed_F"; @@ -2882,7 +2874,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=239; type="B_T_LSV_01_armed_F"; @@ -2924,7 +2915,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=240; type="B_T_LSV_01_armed_F"; @@ -2966,7 +2956,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=241; type="B_T_Truck_01_transport_F"; @@ -3007,7 +2996,6 @@ class Mission flags=4; class Attributes { - init="this call btc_db_fnc_add_veh;" }; id=243; type="B_T_Truck_01_flatbed_F"; @@ -3048,7 +3036,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=244; type="B_T_Truck_01_transport_F"; @@ -3090,7 +3077,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=245; type="B_T_Truck_01_Repair_F"; @@ -3132,7 +3118,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=246; type="B_T_Truck_01_fuel_F"; @@ -3174,7 +3159,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=247; type="B_T_Truck_01_ammo_F"; @@ -3216,7 +3200,6 @@ class Mission class Attributes { skill=0.60000002; - init="this call btc_db_fnc_add_veh;" }; id=248; type="B_T_Truck_01_flatbed_F"; @@ -3257,7 +3240,6 @@ class Mission flags=4; class Attributes { - init="this call btc_db_fnc_add_veh;"; }; id=249; type="B_T_Truck_01_medical_F"; @@ -3298,7 +3280,6 @@ class Mission flags=4; class Attributes { - init="this call btc_db_fnc_add_veh;"; }; id=250; type="B_T_APC_Tracked_01_CRV_F"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index ff81d891f..2b00d3f04 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -42,13 +42,13 @@ Sync all vehicles to this logic - Sync all vehicles that should NOT automatically respawn to this logic. If a vehicle SHOULD automatically respawn, sync it to the logic named ""Sync all respawnable vehicles to this logic"". + Sync all vehicles that should NOT automatically respawn to this logic. If a vehicle SHOULD automatically respawn, sync it to the logic named "Sync all respawnable vehicles to this logic". Sync all respawnable vehicles to this logic - Sync all vehicles that automatically respawn to this logic. If a vehicle should NOT automatically respawn, sync it to the logic named ""Sync all vehicles to this logic"". + Sync all vehicles that automatically respawn to this logic. If a vehicle should NOT automatically respawn, sync it to the logic named "Sync all vehicles to this logic". From 9227597d5ceea042e9a3fc5ada7113805dda9aac Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 4 Oct 2021 23:19:54 +0200 Subject: [PATCH 216/354] add to all sqm new module --- .../mission__Enoch.sqm | 313 ++++++++++++++++-- .../mission__Tanoa.sqm | 313 ++++++++++++++++-- .../stringtable.xml | 2 +- 3 files changed, 579 insertions(+), 49 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 170a27f69..6bec9b96f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -1,4 +1,4 @@ -version=53; +version=54; class EditorData { moveGridStep=0.125; @@ -8,7 +8,7 @@ class EditorData toggles=581; class ItemIDProvider { - nextID=251; + nextID=255; }; class MarkerIDProvider { @@ -16,10 +16,10 @@ class EditorData }; class Camera { - pos[]={7075.4238,294.67462,1090.9181}; - dir[]={0.18139009,-0.58464152,-0.7908724}; - up[]={0.130721,0.81120443,-0.56996}; - aside[]={-0.97477698,-7.2340481e-007,-0.22357322}; + pos[]={7278.502,354.62857,1072.3011}; + dir[]={-0.91686517,-0.39400658,0.065640062}; + up[]={-0.39315882,0.91903657,0.028148815}; + aside[]={0.071411498,1.2805685e-007,0.99753571}; }; }; binarizationWanted=0; @@ -34,6 +34,7 @@ addons[]= "ace_explosives", "A3_Modules_F_Curator_Curator", "A3_Characters_F_Enoch", + "A3_Characters_F_Mark", "A3_Air_F_Heli_Heli_Transport_03", "ace_realisticnames", "A3_Air_F_Beta_Heli_Transport_01", @@ -45,13 +46,14 @@ addons[]= "A3_Soft_F_Exp_LSV_01", "A3_Soft_F_Exp_Truck_01", "A3_Soft_F_Enoch_Truck_01", - "A3_Armor_F_Exp_APC_Tracked_01" + "A3_Armor_F_Exp_APC_Tracked_01", + "A3_Modules_F" }; class AddonsMetaData { class List { - items=15; + items=17; class Item0 { className="A3_Ui_F"; @@ -109,54 +111,68 @@ class AddonsMetaData url="https://www.arma3.com"; }; class Item8 + { + className="A3_Characters_F_Mark"; + name="Arma 3 Marksmen - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item9 { className="A3_Air_F_Heli"; name="Arma 3 Helicopters - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item9 + class Item10 { className="A3_Air_F_Beta"; name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item10 + class Item11 { className="A3_Props_F_Enoch"; name="Arma 3 Contact Platform - Decorative and Mission Objects"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item11 + class Item12 { className="A3_Signs_F"; name="Arma 3 - Signs"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item12 + class Item13 { className="A3_Armor_F_Exp"; name="Arma 3 Apex - Armored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item13 + class Item14 { className="A3_Soft_F_Exp"; name="Arma 3 Apex - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item14 + class Item15 { className="A3_Soft_F_Enoch"; name="Arma 3 Contact Platform - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item16 + { + className="A3_Modules_F"; + name="Arma 3 Alpha - Scripted Modules"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; }; }; randomSeed=2442963; @@ -177,7 +193,7 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { @@ -187,16 +203,15 @@ class CustomAttributes { type[]= { - "SCALAR" + "ARRAY" }; }; - value=1; }; }; }; class Attribute1 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { @@ -206,9 +221,10 @@ class CustomAttributes { type[]= { - "ARRAY" + "SCALAR" }; }; + value=1; }; }; }; @@ -647,7 +663,7 @@ class Mission }; class Entities { - items=61; + items=65; class Item0 { dataType="Marker"; @@ -724,7 +740,7 @@ class Mission class Attribute1 { property="ace_cargo_size"; - expression="[_this,_value] call ace_cargo_fnc_setSize;"; + expression="[_this, _value] call ace_cargo_fnc_setSize;"; class Value { class data @@ -765,7 +781,7 @@ class Mission class Attribute0 { property="ace_isRepairFacility"; - expression="if (_value != (if (isNumber (configFile >> 'CfgVehicles' >> typeOf _this >> ""ace_repair_canRepair"")) then {getNumber (configFile >> 'CfgVehicles' >> typeOf _this >> ""ace_repair_canRepair"")} else {0})) then {_this setVariable ['ace_isRepairFacility', _value, true]}"; + expression="if (_value != (if (isNumber (configOf _this >> ""ace_repair_canRepair"")) then {getNumber (configOf _this >> ""ace_repair_canRepair"")} else {0})) then {_this setVariable ['ace_isRepairFacility', _value, true]}"; class Value { class data @@ -828,7 +844,7 @@ class Mission class Attribute1 { property="ace_cargo_size"; - expression="[_this,_value] call ace_cargo_fnc_setSize;"; + expression="[_this, _value] call ace_cargo_fnc_setSize;"; class Value { class data @@ -997,7 +1013,7 @@ class Mission class Attribute0 { property="ace_isEngineer"; - expression="if !(_value == ([0,1] select (_this getUnitTrait 'engineer'))|| {_value == -1}) then {_this setVariable ['ace_isEngineer', _value, true]}"; + expression="if !(_value == ([0, 1] select (_this getUnitTrait 'engineer')) || {_value == -1}) then {_this setVariable ['ace_isEngineer', _value, true]}"; class Value { class data @@ -3299,5 +3315,254 @@ class Mission nAttributes=1; }; }; + class Item61 + { + dataType="Logic"; + class PositionInfo + { + position[]={7119.1475,319.94186,1145.6367}; + }; + init="{" \n " _x call btc_db_fnc_add_veh;" \n "} forEach (synchronizedObjects this);"; + id=251; + type="Logic"; + atlOffset=57.17511; + }; + class Item62 + { + dataType="Comment"; + class PositionInfo + { + position[]={7119.5,309.375,1145.875}; + }; + title=$STR_BTC_HAM_MSQM_MRK_VEH; + description=$STR_BTC_HAM_MSQM_MRK_VEHDESC; + id=252; + atlOffset=46.634003; + }; + class Item63 + { + dataType="Logic"; + class PositionInfo + { + position[]={7056.625,334.03586,1003.625}; + }; + init="{" \n " [this, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; + id=253; + type="Logic"; + atlOffset=55.541168; + }; + class Item64 + { + dataType="Comment"; + class PositionInfo + { + position[]={7056.625,278.51709,1004.125}; + angles[]={6.2384152,0,6.1043167}; + }; + title=$STR_BTC_HAM_MSQM_MRK_HELO; + description=$STR_BTC_HAM_MSQM_MRK_HELODESC; + id=254; + }; + }; + class Connections + { + class LinkIDProvider + { + nextID=19; + }; + class Links + { + items=19; + class Item0 + { + linkID=0; + item0=156; + item1=253; + class CustomData + { + type="Sync"; + }; + }; + class Item1 + { + linkID=1; + item0=244; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item2 + { + linkID=2; + item0=243; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item3 + { + linkID=3; + item0=241; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item4 + { + linkID=4; + item0=237; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item5 + { + linkID=5; + item0=234; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item6 + { + linkID=6; + item0=233; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item7 + { + linkID=7; + item0=232; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item8 + { + linkID=8; + item0=238; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item9 + { + linkID=9; + item0=239; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item10 + { + linkID=10; + item0=240; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item11 + { + linkID=11; + item0=174; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item12 + { + linkID=12; + item0=175; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item13 + { + linkID=13; + item0=245; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item14 + { + linkID=14; + item0=246; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item15 + { + linkID=15; + item0=247; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item16 + { + linkID=16; + item0=248; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item17 + { + linkID=17; + item0=249; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item18 + { + linkID=18; + item0=250; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index bfa44d7dd..e825d2b47 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -1,4 +1,4 @@ -version=53; +version=54; class EditorData { moveGridStep=0.5; @@ -8,7 +8,7 @@ class EditorData toggles=581; class ItemIDProvider { - nextID=251; + nextID=255; }; class MarkerIDProvider { @@ -16,10 +16,10 @@ class EditorData }; class Camera { - pos[]={4249.6226,27.622044,3976.6941}; - dir[]={0.39056954,-0.43001515,-0.81403327}; - up[]={0.18603939,0.90279877,-0.38774955}; - aside[]={-0.90164852,-6.7637302e-007,-0.43260601}; + pos[]={4242.52,142.11111,3857.8276}; + dir[]={0.06053013,-0.71224612,0.6993981}; + up[]={0.061415773,0.70191073,0.70961803}; + aside[]={0.99633914,-3.7785503e-007,-0.08623068}; }; }; binarizationWanted=0; @@ -34,6 +34,7 @@ addons[]= "ace_explosives", "A3_Modules_F_Curator_Curator", "A3_Characters_F_Enoch", + "A3_Characters_F_Mark", "A3_Air_F_Heli_Heli_Transport_03", "ace_realisticnames", "A3_Air_F_Beta_Heli_Transport_01", @@ -45,13 +46,14 @@ addons[]= "A3_Soft_F_Exp_LSV_01", "A3_Soft_F_Exp_Truck_01", "A3_Soft_F_Enoch_Truck_01", - "A3_Armor_F_Exp_APC_Tracked_01" + "A3_Armor_F_Exp_APC_Tracked_01", + "A3_Modules_F" }; class AddonsMetaData { class List { - items=15; + items=17; class Item0 { className="A3_Ui_F"; @@ -109,54 +111,68 @@ class AddonsMetaData url="https://www.arma3.com"; }; class Item8 + { + className="A3_Characters_F_Mark"; + name="Arma 3 Marksmen - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item9 { className="A3_Air_F_Heli"; name="Arma 3 Helicopters - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item9 + class Item10 { className="A3_Air_F_Beta"; name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item10 + class Item11 { className="A3_Props_F_Enoch"; name="Arma 3 Contact Platform - Decorative and Mission Objects"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item11 + class Item12 { className="A3_Signs_F"; name="Arma 3 - Signs"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item12 + class Item13 { className="A3_Armor_F_Exp"; name="Arma 3 Apex - Armored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item13 + class Item14 { className="A3_Soft_F_Exp"; name="Arma 3 Apex - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item14 + class Item15 { className="A3_Soft_F_Enoch"; name="Arma 3 Contact Platform - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item16 + { + className="A3_Modules_F"; + name="Arma 3 Alpha - Scripted Modules"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; }; }; randomSeed=2442963; @@ -177,7 +193,7 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { @@ -187,15 +203,16 @@ class CustomAttributes { type[]= { - "ARRAY" + "SCALAR" }; }; + value=1; }; }; }; class Attribute1 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { @@ -205,10 +222,9 @@ class CustomAttributes { type[]= { - "SCALAR" + "ARRAY" }; }; - value=1; }; }; }; @@ -647,7 +663,7 @@ class Mission }; class Entities { - items=61; + items=65; class Item0 { dataType="Marker"; @@ -724,7 +740,7 @@ class Mission class Attribute1 { property="ace_cargo_size"; - expression="[_this,_value] call ace_cargo_fnc_setSize;"; + expression="[_this, _value] call ace_cargo_fnc_setSize;"; class Value { class data @@ -765,7 +781,7 @@ class Mission class Attribute0 { property="ace_isRepairFacility"; - expression="if (_value != (if (isNumber (configFile >> 'CfgVehicles' >> typeOf _this >> ""ace_repair_canRepair"")) then {getNumber (configFile >> 'CfgVehicles' >> typeOf _this >> ""ace_repair_canRepair"")} else {0})) then {_this setVariable ['ace_isRepairFacility', _value, true]}"; + expression="if (_value != (if (isNumber (configOf _this >> ""ace_repair_canRepair"")) then {getNumber (configOf _this >> ""ace_repair_canRepair"")} else {0})) then {_this setVariable ['ace_isRepairFacility', _value, true]}"; class Value { class data @@ -828,7 +844,7 @@ class Mission class Attribute1 { property="ace_cargo_size"; - expression="[_this,_value] call ace_cargo_fnc_setSize;"; + expression="[_this, _value] call ace_cargo_fnc_setSize;"; class Value { class data @@ -1000,7 +1016,7 @@ class Mission class Attribute0 { property="ace_isEngineer"; - expression="if !(_value == ([0,1] select (_this getUnitTrait 'engineer'))|| {_value == -1}) then {_this setVariable ['ace_isEngineer', _value, true]}"; + expression="if !(_value == ([0, 1] select (_this getUnitTrait 'engineer')) || {_value == -1}) then {_this setVariable ['ace_isEngineer', _value, true]}"; class Value { class data @@ -3308,5 +3324,254 @@ class Mission nAttributes=1; }; }; + class Item61 + { + dataType="Logic"; + class PositionInfo + { + position[]={4182.6475,73.417297,3945.7617}; + }; + init="{" \n " _x call btc_db_fnc_add_veh;" \n "} forEach (synchronizedObjects this);"; + id=251; + type="Logic"; + atlOffset=54.424332; + }; + class Item62 + { + dataType="Comment"; + class PositionInfo + { + position[]={4183,56,3946}; + }; + title=$STR_BTC_HAM_MSQM_MRK_VEH; + description=$STR_BTC_HAM_MSQM_MRK_VEHDESC; + id=252; + atlOffset=37.028019; + }; + class Item63 + { + dataType="Logic"; + class PositionInfo + { + position[]={4355,73.873901,4038.5}; + }; + init="{" \n " [this, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; + id=253; + type="Logic"; + atlOffset=52.790607; + }; + class Item64 + { + dataType="Comment"; + class PositionInfo + { + position[]={4355,21.008617,4039}; + angles[]={0.058599081,0,6.1193347}; + }; + title=$STR_BTC_HAM_MSQM_MRK_HELO; + description=$STR_BTC_HAM_MSQM_MRK_HELODESC; + id=254; + }; + }; + class Connections + { + class LinkIDProvider + { + nextID=19; + }; + class Links + { + items=19; + class Item0 + { + linkID=0; + item0=253; + item1=156; + class CustomData + { + type="Sync"; + }; + }; + class Item1 + { + linkID=1; + item0=238; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item2 + { + linkID=2; + item0=239; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item3 + { + linkID=3; + item0=240; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item4 + { + linkID=4; + item0=237; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item5 + { + linkID=5; + item0=234; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item6 + { + linkID=6; + item0=233; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item7 + { + linkID=7; + item0=232; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item8 + { + linkID=8; + item0=241; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item9 + { + linkID=9; + item0=244; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item10 + { + linkID=10; + item0=243; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item11 + { + linkID=11; + item0=245; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item12 + { + linkID=12; + item0=246; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item13 + { + linkID=13; + item0=247; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item14 + { + linkID=14; + item0=248; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item15 + { + linkID=15; + item0=249; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item16 + { + linkID=16; + item0=250; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item17 + { + linkID=17; + item0=174; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + class Item18 + { + linkID=18; + item0=175; + item1=251; + class CustomData + { + type="Sync"; + }; + }; + }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 2b00d3f04..4608b46c6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -48,7 +48,7 @@ Sync all respawnable vehicles to this logic - Sync all vehicles that automatically respawn to this logic. If a vehicle should NOT automatically respawn, sync it to the logic named "Sync all vehicles to this logic". + Sync all vehicles that should automatically respawn to this logic. If a vehicle should NOT automatically respawn, sync it to the logic named "Sync all vehicles to this logic". From 0bcec77dfc31bdeffbeb0c20eed6da077f0097cd Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 4 Oct 2021 23:34:33 +0200 Subject: [PATCH 217/354] fix wrong variable --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 01445f109..071491d34 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -3309,7 +3309,7 @@ class Mission { position[]={8374,132,10056}; }; - init="{" \n " [this, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " [_x, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; id=235; type="Logic"; atlOffset=62.830055; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 6bec9b96f..13ae54b89 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -3346,7 +3346,7 @@ class Mission { position[]={7056.625,334.03586,1003.625}; }; - init="{" \n " [this, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " [_x, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; id=253; type="Logic"; atlOffset=55.541168; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index e825d2b47..62c5caf2d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -3355,7 +3355,7 @@ class Mission { position[]={4355,73.873901,4038.5}; }; - init="{" \n " [this, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " [_x, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; id=253; type="Logic"; atlOffset=52.790607; From 9164289e33c1d36c3b82e704c710086dbc62e4b6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 5 Oct 2021 21:48:16 +0200 Subject: [PATCH 218/354] update documentation --- docs/Add-vehicle-or-boat-to-H&M-system.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Add-vehicle-or-boat-to-H&M-system.md b/docs/Add-vehicle-or-boat-to-H&M-system.md index 1a085154e..b9ab1ccb6 100644 --- a/docs/Add-vehicle-or-boat-to-H&M-system.md +++ b/docs/Add-vehicle-or-boat-to-H&M-system.md @@ -6,7 +6,8 @@ If the vehicle is destroyed, a wreck will be left. You will need to tow or lift You can add new vehicle in the mision.sqm : - Open the mission in the editor (mission.sqm). - Add vehicles. -- Add in the init field: `this call btc_db_fnc_add_veh;` + - Sync it to the module with the comment "Sync all vehicles to this logic" + - OR add in the init field: `this call btc_db_fnc_add_veh;` - Save. #### 2: In game @@ -15,6 +16,7 @@ A garage is available for admin only. Activate the garage through mission parame ### 2: Add respawn to vehicle or boat You can add a new vehicle/boat to respawn system by: -- Add in the init field: `[this, 30] call btc_veh_fnc_addRespawn;` +- Sync it to the module with the comment "Sync all respawnable vehicles to this logic" +- OR add in the init field: `[this, 30] call btc_veh_fnc_addRespawn;` Note: you can tweak respawn time here by changing 30 (s) to what you want. From b8e1da284ec977f26f1698ccbf5bfff39de5a252 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 5 Oct 2021 22:48:38 +0200 Subject: [PATCH 219/354] Migrate to viv event --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf index abcf49242..301dbb52b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf @@ -43,8 +43,9 @@ private _attachTo = [ _vehicleSelected attachTo [_hideVehicle, _attachTo]; if (_tower setVehicleCargo _hideVehicle) then { - [{isNull isVehicleCargo (_this select 0)}, { - params ["_hideVehicle", "_vehicleSelected"]; + [_tower, "CargoUnloaded", { + params ["_tower", "_hideVehicle"]; + private _vehicleSelected = _thisArgs select 0; private _pos = getPosWorld _vehicleSelected; _pos set [2, (_pos select 2) + 0.3]; @@ -54,7 +55,7 @@ if (_tower setVehicleCargo _hideVehicle) then { _vehicleSelected setPosWorld _pos; [_vehicleSelected, [0, 0, 0.01]] remoteExecCall ["setVelocity", _vehicleSelected]; // Activate physic - }, [_hideVehicle, _vehicleSelected]] call CBA_fnc_waitUntilAndExecute; + }, [_vehicleSelected]] call CBA_fnc_addBISEventHandler; true } else { deleteVehicle _hideVehicle; From 86717e9beeb290d150e40a6421ef17e9f4c949a0 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 7 Oct 2021 18:38:48 +0200 Subject: [PATCH 220/354] Remove btc_helo Switch to a more understandable name --- .../core/fnc/common/check_los.sqf | 2 +- .../core/fnc/log/server_repair_wreck.sqf | 2 +- .../core/fnc/respawn/intro.sqf | 4 ++-- .../core/fnc/side/rescue.sqf | 2 +- .../core/fnc/veh/addRespawn.sqf | 8 ++++---- .../core/fnc/veh/respawn.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/check_los.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/check_los.sqf index 9a9e2de9e..fc99baf1c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/check_los.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/check_los.sqf @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _can_see = [player, btc_helo_1] call btc_fnc_check_los; + _can_see = [player, cursorObject] call btc_fnc_check_los; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index 260ce59b9..bec845aec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -22,7 +22,7 @@ Author: params [ ["_veh", objNull, [objNull]], - ["_blacklist", btc_helo, [[]]] + ["_blacklist", btc_veh_respawnable, [[]]] ]; if (_veh in _blacklist) exitWith { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf index aa7e52e5b..d448b30ca 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf @@ -40,8 +40,8 @@ private _array = [ ['\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa', _color, [_create_object_pos_x, _create_object_pos_y, _create_object_pos_z + 2.5], 0.9, 0.9, 0, "", 1], ['\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa', _color, _create_object_pos, 0.9, 0.9, 0, localize "STR_BTC_HAM_INTRO_LOGPOINT", 1] //Rearm/Repair and Objects ]; -if (!isNil "btc_helo_1") then { - _array pushBack ['\A3\ui_f\data\map\vehicleicons\iconhelicopter_ca.paa', [0.7, 0, 0,1], getPos btc_helo_1, 1.1, 1.1, 0, localize "STR_BTC_HAM_INTRO_ONLYRESPAWN", 1]; //Only Respawnable +if (!isNil "btc_veh_respawnable_1") then { + _array pushBack ['\A3\ui_f\data\map\vehicleicons\iconhelicopter_ca.paa', [0.7, 0, 0,1], getPos btc_veh_respawnable_1, 1.1, 1.1, 0, localize "STR_BTC_HAM_INTRO_ONLYRESPAWN", 1]; //Only Respawnable }; [getMarkerPos "btc_base", localize "STR_BTC_HAM_INTRO_LOADINGTXT", 20, 30, 240, 0, _array, 0] call BIS_fnc_establishingShot; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index cc9892a53..5bc647013 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -41,7 +41,7 @@ _pos = [_pos, 0, 50, 13, 0, 60 * (pi / 180), 0] call btc_fnc_findsafepos; _city setVariable ["spawn_more", true]; -private _heli_type = typeOf selectRandom ((btc_vehicles + btc_helo) select { +private _heli_type = typeOf selectRandom ((btc_vehicles + btc_veh_respawnable) select { _x isKindOf "air" && {!(unitIsUAV _x)} }); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 199081916..a1a9bc793 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -27,13 +27,13 @@ params [ ["_time", 30, [0]] ]; -if (isNil "btc_helo") then { - btc_helo = []; +if (isNil "btc_veh_respawnable") then { + btc_veh_respawnable = []; }; -private _index = btc_helo pushBackUnique _vehicle; +private _index = btc_veh_respawnable pushBackUnique _vehicle; if (_index isEqualTo -1) exitWith { if (btc_debug || btc_debug_log) then { - ["Helo added more than once in btc_helo", __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; + ["Helo added more than once in btc_veh_respawnable", __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index 886e2f78f..601634a58 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -35,7 +35,7 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); params [ "_vehicle", "_data", - ["_helo", btc_helo, [[]]] + ["_helo", btc_veh_respawnable, [[]]] ]; {moveOut _x} forEach crew _vehicle; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 8713e44e3..4e4c5c252 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -45,7 +45,7 @@ if (btc_p_db_autoRestart > 0) then { { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; -} forEach btc_helo; +} forEach btc_veh_respawnable; if (btc_p_side_mission_cycle > 0) then { for "_i" from 1 to btc_p_side_mission_cycle do { From a054fafa74860c86ac678be4f60dbc55243ce37c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 10 Oct 2021 12:06:51 +0200 Subject: [PATCH 221/354] FIX: BI respawn support not working BI respawn support is loaded after mission.sqm so those vehicle was not added to it --- .../core/fnc/compile.sqf | 2 ++ .../core/fnc/db/add_veh.sqf | 15 ++++++---- .../core/fnc/veh/addRespawn.sqf | 17 +++++------ .../core/fnc/veh/addRespawnableFromSQM.sqf | 30 +++++++++++++++++++ .../core/fnc/veh/addVehFromSQM.sqf | 30 +++++++++++++++++++ .../core/init_server.sqf | 2 ++ =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 4 +-- .../mission__Enoch.sqm | 4 +-- .../mission__Tanoa.sqm | 4 +-- docs/Add-vehicle-or-boat-to-H&M-system.md | 6 ++-- 10 files changed, 89 insertions(+), 25 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawnableFromSQM.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addVehFromSQM.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 5835136bc..be2d5acb1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -212,6 +212,8 @@ if (isServer) then { btc_veh_fnc_respawn = compileScript ["core\fnc\veh\respawn.sqf"]; btc_veh_fnc_propertiesGet = compileScript ["core\fnc\veh\propertiesGet.sqf"]; btc_veh_fnc_propertiesSet = compileScript ["core\fnc\veh\propertiesSet.sqf"]; + btc_veh_fnc_addVehFromSQM = compileScript ["core\fnc\veh\addVehFromSQM.sqf"]; + btc_veh_fnc_addRespawnableFromSQM = compileScript ["core\fnc\veh\addRespawnableFromSQM.sqf"]; }; /////////////////////CLIENT AND SERVER\\\\\\\\\\\\\\\\\\\\\ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index 7e60cf7e0..23e225cbb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -13,6 +13,7 @@ Returns: Examples: (begin example) cursorObject remoteExecCall ["btc_db_fnc_add_veh", 2]; + btc_curator addCuratorEditableObjects [btc_vehicles, false]; (end) Author: @@ -24,17 +25,14 @@ params [ ["_veh", objNull, [objNull]] ]; -if (isNil "btc_vehicles") then { - btc_vehicles = []; -}; -private _index = btc_vehicles pushBackUnique _veh; -if (_index isEqualTo -1) exitWith { +if (_veh getVariable ["btc_dont_delete", false]) exitWith { if (btc_debug || btc_debug_log) then { ["Vehicle added more than once in btc_vehicles", __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; }; }; _veh setVariable ["btc_dont_delete", true]; +btc_vehicles pushBackUnique _veh; _veh addMPEventHandler ["MPKilled", { if (isServer) then { @@ -50,7 +48,12 @@ if (btc_p_respawn_location > 1) then { (btc_p_respawn_location isEqualTo 2) && (_veh isKindOf "Air") || btc_p_respawn_location > 2 ) then { - [_veh, "Deleted", {_thisArgs call BIS_fnc_removeRespawnPosition}, [btc_player_side, _veh] call BIS_fnc_addRespawnPosition] call CBA_fnc_addBISEventHandler; + [ + _veh, + "Deleted", + {_thisArgs call BIS_fnc_removeRespawnPosition}, + [btc_player_side, _veh] call BIS_fnc_addRespawnPosition + ] call CBA_fnc_addBISEventHandler; }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index a1a9bc793..b5079d09a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -27,15 +27,7 @@ params [ ["_time", 30, [0]] ]; -if (isNil "btc_veh_respawnable") then { - btc_veh_respawnable = []; -}; -private _index = btc_veh_respawnable pushBackUnique _vehicle; -if (_index isEqualTo -1) exitWith { - if (btc_debug || btc_debug_log) then { - ["Helo added more than once in btc_veh_respawnable", __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; - }; -}; +btc_veh_respawnable pushBackUnique _vehicle; private _type = typeOf _vehicle; private _pos = getPosASL _vehicle; @@ -54,6 +46,11 @@ _vehicle addMPEventHandler ["MPKilled", { }]; if (btc_p_respawn_location > 0) then { if (fullCrew [_vehicle, "cargo", true] isNotEqualTo []) then { - [_vehicle, "Deleted", {_thisArgs call BIS_fnc_removeRespawnPosition}, [btc_player_side, _vehicle] call BIS_fnc_addRespawnPosition] call CBA_fnc_addBISEventHandler; + [ + _vehicle, + "Deleted", + {_thisArgs call BIS_fnc_removeRespawnPosition}, + [btc_player_side, _vehicle] call BIS_fnc_addRespawnPosition + ] call CBA_fnc_addBISEventHandler; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawnableFromSQM.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawnableFromSQM.sqf new file mode 100644 index 000000000..5774d570c --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawnableFromSQM.sqf @@ -0,0 +1,30 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_veh_fnc_addRespawnableFromSQM + +Description: + Add a vehicle to the respawn array system. Only usefull in mission.sqm. + +Parameters: + _vehicle - Vehicle to add in respawn system. [Object] + +Returns: + +Examples: + (begin example) + this call btc_veh_fnc_addRespawnableFromSQM; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_vehicle", objNull, [objNull]] +]; + +if (isNil "btc_veh_respawnable") then { + btc_veh_respawnable = []; +}; +btc_veh_respawnable pushBackUnique _vehicle diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addVehFromSQM.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addVehFromSQM.sqf new file mode 100644 index 000000000..5225a2a0a --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addVehFromSQM.sqf @@ -0,0 +1,30 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_veh_fnc_addVehFromSQM + +Description: + Add vehicle to the wreck array system. Only usefull in mission.sqm. + +Parameters: + _vehicle - Vehicle to add in wreck system. [Object] + +Returns: + +Examples: + (begin example) + this call btc_veh_fnc_addVehFromSQM; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_vehicle", objNull, [objNull]] +]; + +if (isNil "btc_vehicles") then { + btc_vehicles = []; +}; +btc_vehicles pushBackUnique _vehicle diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 4e4c5c252..d19eb9267 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -28,6 +28,7 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; + _x call btc_db_fnc_add_veh; } forEach btc_vehicles; }; @@ -45,6 +46,7 @@ if (btc_p_db_autoRestart > 0) then { { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; + [_x, 30] call btc_veh_fnc_addRespawn; } forEach btc_veh_respawnable; if (btc_p_side_mission_cycle > 0) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 071491d34..1a2fcddbc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -3285,7 +3285,7 @@ class Mission { position[]={8216.1475,119.96858,10155.762}; }; - init="{" \n " _x call btc_db_fnc_add_veh;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " _x call btc_veh_fnc_addVehFromSQM;" \n "} forEach (synchronizedObjects this);"; id=232; type="Logic"; atlOffset=65.032745; @@ -3309,7 +3309,7 @@ class Mission { position[]={8374,132,10056}; }; - init="{" \n " [_x, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; id=235; type="Logic"; atlOffset=62.830055; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 13ae54b89..875255d99 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -3322,7 +3322,7 @@ class Mission { position[]={7119.1475,319.94186,1145.6367}; }; - init="{" \n " _x call btc_db_fnc_add_veh;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; id=251; type="Logic"; atlOffset=57.17511; @@ -3346,7 +3346,7 @@ class Mission { position[]={7056.625,334.03586,1003.625}; }; - init="{" \n " [_x, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; id=253; type="Logic"; atlOffset=55.541168; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 62c5caf2d..64fe1c8da 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -3331,7 +3331,7 @@ class Mission { position[]={4182.6475,73.417297,3945.7617}; }; - init="{" \n " _x call btc_db_fnc_add_veh;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; id=251; type="Logic"; atlOffset=54.424332; @@ -3355,7 +3355,7 @@ class Mission { position[]={4355,73.873901,4038.5}; }; - init="{" \n " [_x, 30] call btc_veh_fnc_addRespawn;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; id=253; type="Logic"; atlOffset=52.790607; diff --git a/docs/Add-vehicle-or-boat-to-H&M-system.md b/docs/Add-vehicle-or-boat-to-H&M-system.md index b9ab1ccb6..bf20622c7 100644 --- a/docs/Add-vehicle-or-boat-to-H&M-system.md +++ b/docs/Add-vehicle-or-boat-to-H&M-system.md @@ -7,7 +7,7 @@ You can add new vehicle in the mision.sqm : - Open the mission in the editor (mission.sqm). - Add vehicles. - Sync it to the module with the comment "Sync all vehicles to this logic" - - OR add in the init field: `this call btc_db_fnc_add_veh;` + - OR add in the init field: `this call btc_veh_fnc_addVehFromSQM;` - Save. #### 2: In game @@ -17,6 +17,6 @@ A garage is available for admin only. Activate the garage through mission parame You can add a new vehicle/boat to respawn system by: - Sync it to the module with the comment "Sync all respawnable vehicles to this logic" -- OR add in the init field: `[this, 30] call btc_veh_fnc_addRespawn;` +- OR add in the init field: `this call btc_veh_fnc_addRespawnableFromSQM;` -Note: you can tweak respawn time here by changing 30 (s) to what you want. +Note: you can tweak respawn time here: [/core/init_server.sqf L46](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L46) by changing 30s to what you want. From 69ad95df3ac09a7e871be366d25f6f70d8f0983a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 19:26:42 +0200 Subject: [PATCH 222/354] FIX missing btc_veh_respawnable_1 --- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index d19eb9267..b4731713f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -47,6 +47,9 @@ if (btc_p_db_autoRestart > 0) then { { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; [_x, 30] call btc_veh_fnc_addRespawn; + if (_forEachIndex isEqualTo 0) then { + missionNamespace setVariable ["btc_veh_respawnable_1", _x, true]; + }; } forEach btc_veh_respawnable; if (btc_p_side_mission_cycle > 0) then { From 17a7776eb71c46a3450df2037dcd3db5f72bd330 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 21:52:27 +0200 Subject: [PATCH 223/354] clean up altis --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 300 ------------------ 1 file changed, 300 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 1a2fcddbc..ddfe35006 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -2487,26 +2487,6 @@ class Mission type="B_Heli_Transport_03_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit"",""Medikit""],[10,1]],[[],[]],[[""ToolKit""],[1]],[[""B_Parachute""],[20]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item40 @@ -2527,26 +2507,6 @@ class Mission type="B_Truck_01_transport_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item41 @@ -2566,26 +2526,6 @@ class Mission type="B_Truck_01_flatbed_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item42 @@ -2606,26 +2546,6 @@ class Mission type="B_Truck_01_transport_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item43 @@ -2647,26 +2567,6 @@ class Mission atlOffset=7.6293945e-006; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item44 @@ -2687,26 +2587,6 @@ class Mission type="B_LSV_01_armed_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item45 @@ -2728,26 +2608,6 @@ class Mission atlOffset=7.6293945e-006; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item46 @@ -2769,26 +2629,6 @@ class Mission atlOffset=0.0019989014; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue""],[16,6,10,10,4,4,4,4,12,4,4,4,4]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item47 @@ -2809,26 +2649,6 @@ class Mission type="B_MRAP_01_hmg_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue""],[16,6,10,10,4,4,4,4,12,4,4,4,4]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item48 @@ -2850,26 +2670,6 @@ class Mission atlOffset=-0.077003479; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""MiniGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""Titan_AT"",""Titan_AP"",""Titan_AA""],[12,6,6,6,6,3,3,3,3,8,8,8,8,2,2,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item49 @@ -2950,26 +2750,6 @@ class Mission type="B_Heli_Attack_01_dynamicLoadout_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MXC_F"",""FirstAidKit""],[2,2]],[[""SmokeShell"",""SmokeShellBlue"",""30Rnd_65x39_caseless_mag""],[2,2,4]],[[""ToolKit"",""ItemGPS""],[1,1]],[[""B_Parachute""],[2]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item51 @@ -2991,26 +2771,6 @@ class Mission atlOffset=-7.6293945e-006; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item52 @@ -3177,26 +2937,6 @@ class Mission type="B_Truck_01_flatbed_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item59 @@ -3216,26 +2956,6 @@ class Mission type="B_Truck_01_medical_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item60 @@ -3256,26 +2976,6 @@ class Mission atlOffset=7.6293945e-006; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""arifle_MX_SW_F"",""launch_NLAW_F"",""FirstAidKit""],[2,1,1,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""MiniGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F"",""Titan_AT"",""Titan_AP"",""Titan_AA""],[24,12,6,6,6,3,3,3,3,8,8,8,8,5,2,2,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item61 From e9518cdfcba000300126fba7835f676c45316c41 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 22:01:50 +0200 Subject: [PATCH 224/354] clean up tanoa and enoch --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 21 +- .../mission__Enoch.sqm | 361 +----------------- .../mission__Tanoa.sqm | 340 ----------------- 3 files changed, 2 insertions(+), 720 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index ddfe35006..88dbf4d8c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -2692,25 +2692,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MXC_F"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""SmokeShell"",""SmokeShellBlue"",""30Rnd_65x39_caseless_mag""],[2,2,4]],[[""ToolKit"",""ItemGPS""],[1,1]],[[""B_Parachute""],[8]]],false]"; - }; - }; - }; - class Attribute1 { property="ace_fastroping_equipFRIES"; expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}"; @@ -2729,7 +2710,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; class Item50 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 875255d99..3d5212463 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -2497,26 +2497,6 @@ class Mission atlOffset=-0.012207031; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MXC_F"",""FirstAidKit""],[2,2]],[[""SmokeShell"",""SmokeShellBlue"",""30Rnd_65x39_caseless_mag""],[2,2,4]],[[""ToolKit"",""ItemGPS""],[1,1]],[[""B_Parachute""],[2]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item39 @@ -2540,25 +2520,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="Decon_Shower_DisableUserActions"; - expression="if(_value)then{_this setVariable ['bin_deconshower_disableAction',true]};"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=0; - }; - }; - }; - class Attribute1 { property="Decon_Shower"; expression="if(_value)then{[_this,5.4,4,2,true] spawn bin_fnc_deconShowerAnimLarge;};"; @@ -2577,7 +2538,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; class Item40 @@ -2683,26 +2644,6 @@ class Mission atlOffset=-0.0048522949; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""MiniGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""Titan_AT"",""Titan_AP"",""Titan_AA""],[12,6,6,6,6,3,3,3,3,8,8,8,8,2,2,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item46 @@ -2724,26 +2665,6 @@ class Mission atlOffset=0.10321045; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue""],[16,6,10,10,4,4,4,4,12,4,4,4,4]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item47 @@ -2765,26 +2686,6 @@ class Mission atlOffset=-0.54574585; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue""],[16,6,10,10,4,4,4,4,12,4,4,4,4]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item48 @@ -2806,26 +2707,6 @@ class Mission atlOffset=-0.054992676; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item49 @@ -2847,26 +2728,6 @@ class Mission atlOffset=0.070037842; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item50 @@ -2888,26 +2749,6 @@ class Mission atlOffset=-0.12496948; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item51 @@ -2929,26 +2770,6 @@ class Mission atlOffset=-0.092956543; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item52 @@ -2970,26 +2791,6 @@ class Mission atlOffset=0.00048828125; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item53 @@ -3009,26 +2810,6 @@ class Mission type="B_T_Truck_01_flatbed_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item54 @@ -3049,26 +2830,6 @@ class Mission type="B_T_Truck_01_transport_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item55 @@ -3090,26 +2851,6 @@ class Mission atlOffset=-0.10299683; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item56 @@ -3131,26 +2872,6 @@ class Mission atlOffset=-0.058990479; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item57 @@ -3172,26 +2893,6 @@ class Mission atlOffset=-0.050994873; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item58 @@ -3213,26 +2914,6 @@ class Mission atlOffset=-0.050994873; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item59 @@ -3253,26 +2934,6 @@ class Mission atlOffset=-0.091003418; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item60 @@ -3293,26 +2954,6 @@ class Mission atlOffset=-0.092987061; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""arifle_MX_SW_F"",""launch_NLAW_F"",""FirstAidKit""],[2,1,1,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""MiniGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F"",""Titan_AT"",""Titan_AP"",""Titan_AA""],[24,12,6,6,6,3,3,3,3,8,8,8,8,5,2,2,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item61 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 64fe1c8da..ddfbf6262 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -2505,26 +2505,6 @@ class Mission atlOffset=-0.0016689301; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MXC_F"",""FirstAidKit""],[2,2]],[[""SmokeShell"",""SmokeShellBlue"",""30Rnd_65x39_caseless_mag""],[2,2,4]],[[""ToolKit"",""ItemGPS""],[1,1]],[[""B_Parachute""],[2]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item39 @@ -2691,26 +2671,6 @@ class Mission atlOffset=-0.0098495483; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""MiniGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""Titan_AT"",""Titan_AP"",""Titan_AA""],[12,6,6,6,6,3,3,3,3,8,8,8,8,2,2,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item46 @@ -2732,26 +2692,6 @@ class Mission atlOffset=-0.01962471; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue""],[16,6,10,10,4,4,4,4,12,4,4,4,4]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item47 @@ -2773,26 +2713,6 @@ class Mission atlOffset=-0.012031555; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue""],[16,6,10,10,4,4,4,4,12,4,4,4,4]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item48 @@ -2814,26 +2734,6 @@ class Mission atlOffset=-0.023923874; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item49 @@ -2855,26 +2755,6 @@ class Mission atlOffset=-0.016025543; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item50 @@ -2896,26 +2776,6 @@ class Mission atlOffset=-0.056703568; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item51 @@ -2937,26 +2797,6 @@ class Mission atlOffset=-0.0080337524; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item52 @@ -2978,26 +2818,6 @@ class Mission atlOffset=-0.049983978; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item53 @@ -3017,26 +2837,6 @@ class Mission type="B_T_Truck_01_flatbed_F"; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item54 @@ -3058,26 +2858,6 @@ class Mission atlOffset=-0.039049149; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item55 @@ -3099,26 +2879,6 @@ class Mission atlOffset=-0.01051712; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item56 @@ -3140,26 +2900,6 @@ class Mission atlOffset=-0.039800644; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item57 @@ -3181,26 +2921,6 @@ class Mission atlOffset=-0.077253342; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item58 @@ -3222,26 +2942,6 @@ class Mission atlOffset=-0.10356903; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item59 @@ -3262,26 +2962,6 @@ class Mission atlOffset=-0.013309479; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item60 @@ -3302,26 +2982,6 @@ class Mission atlOffset=-0.021877289; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MX_F"",""arifle_MX_SW_F"",""launch_NLAW_F"",""FirstAidKit""],[2,1,1,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""MiniGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F"",""Titan_AT"",""Titan_AP"",""Titan_AA""],[24,12,6,6,6,3,3,3,3,8,8,8,8,5,2,2,2]],[[],[]],[[],[]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item61 From 086c07607e3fcd5dbc4b0e1c6c41d0c5ba680aa1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 22:05:58 +0200 Subject: [PATCH 225/354] clean up remaning bis_fnc_initAmmoBox --- .../mission__Enoch.sqm | 41 +------------------ .../mission__Tanoa.sqm | 41 +------------------ 2 files changed, 2 insertions(+), 80 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 3d5212463..83a2094d7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -2396,26 +2396,6 @@ class Mission atlOffset=-0.31341553; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit"",""Medikit""],[10,1]],[[],[]],[[""ToolKit""],[1]],[[""B_Parachute""],[20]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item37 @@ -2438,25 +2418,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MXC_F"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""SmokeShell"",""SmokeShellBlue"",""30Rnd_65x39_caseless_mag""],[2,2,4]],[[""ToolKit"",""ItemGPS""],[1,1]],[[""B_Parachute""],[8]]],false]"; - }; - }; - }; - class Attribute1 { property="ace_fastroping_equipFRIES"; expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}"; @@ -2475,7 +2436,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; class Item38 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index ddfbf6262..2835e4a7f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -2404,26 +2404,6 @@ class Mission atlOffset=-0.002538681; class CustomAttributes { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""FirstAidKit"",""Medikit""],[10,1]],[[],[]],[[""ToolKit""],[1]],[[""B_Parachute""],[20]]],false]"; - }; - }; - }; - nAttributes=1; }; }; class Item37 @@ -2446,25 +2426,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""arifle_MXC_F"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""SmokeShell"",""SmokeShellBlue"",""30Rnd_65x39_caseless_mag""],[2,2,4]],[[""ToolKit"",""ItemGPS""],[1,1]],[[""B_Parachute""],[8]]],false]"; - }; - }; - }; - class Attribute1 { property="ace_fastroping_equipFRIES"; expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}"; @@ -2483,7 +2444,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; class Item38 From 2068b4ad397a66b4cf125eeae30ea6aff0e69f15 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 22:09:24 +0200 Subject: [PATCH 226/354] remove empty attributes --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 45 ---------------- .../mission__Enoch.sqm | 54 ------------------- .../mission__Tanoa.sqm | 54 ------------------- 3 files changed, 153 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 88dbf4d8c..f32865c09 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -2485,9 +2485,6 @@ class Mission }; id=156; type="B_Heli_Transport_03_F"; - class CustomAttributes - { - }; }; class Item40 { @@ -2505,9 +2502,6 @@ class Mission }; id=158; type="B_Truck_01_transport_F"; - class CustomAttributes - { - }; }; class Item41 { @@ -2524,9 +2518,6 @@ class Mission }; id=160; type="B_Truck_01_flatbed_F"; - class CustomAttributes - { - }; }; class Item42 { @@ -2544,9 +2535,6 @@ class Mission }; id=161; type="B_Truck_01_transport_F"; - class CustomAttributes - { - }; }; class Item43 { @@ -2565,9 +2553,6 @@ class Mission id=164; type="B_LSV_01_armed_F"; atlOffset=7.6293945e-006; - class CustomAttributes - { - }; }; class Item44 { @@ -2585,9 +2570,6 @@ class Mission }; id=165; type="B_LSV_01_armed_F"; - class CustomAttributes - { - }; }; class Item45 { @@ -2606,9 +2588,6 @@ class Mission id=166; type="B_LSV_01_armed_F"; atlOffset=7.6293945e-006; - class CustomAttributes - { - }; }; class Item46 { @@ -2627,9 +2606,6 @@ class Mission id=168; type="B_MRAP_01_hmg_F"; atlOffset=0.0019989014; - class CustomAttributes - { - }; }; class Item47 { @@ -2647,9 +2623,6 @@ class Mission }; id=169; type="B_MRAP_01_hmg_F"; - class CustomAttributes - { - }; }; class Item48 { @@ -2668,9 +2641,6 @@ class Mission id=170; type="B_APC_Wheeled_01_cannon_F"; atlOffset=-0.077003479; - class CustomAttributes - { - }; }; class Item49 { @@ -2729,9 +2699,6 @@ class Mission }; id=175; type="B_Heli_Attack_01_dynamicLoadout_F"; - class CustomAttributes - { - }; }; class Item51 { @@ -2750,9 +2717,6 @@ class Mission id=178; type="B_LSV_01_armed_F"; atlOffset=-7.6293945e-006; - class CustomAttributes - { - }; }; class Item52 { @@ -2916,9 +2880,6 @@ class Mission }; id=225; type="B_Truck_01_flatbed_F"; - class CustomAttributes - { - }; }; class Item59 { @@ -2935,9 +2896,6 @@ class Mission }; id=230; type="B_Truck_01_medical_F"; - class CustomAttributes - { - }; }; class Item60 { @@ -2955,9 +2913,6 @@ class Mission id=231; type="B_APC_Tracked_01_CRV_F"; atlOffset=7.6293945e-006; - class CustomAttributes - { - }; }; class Item61 { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 83a2094d7..9fe602c00 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -2394,9 +2394,6 @@ class Mission id=156; type="B_Heli_Transport_03_F"; atlOffset=-0.31341553; - class CustomAttributes - { - }; }; class Item37 { @@ -2456,9 +2453,6 @@ class Mission id=175; type="B_Heli_Attack_01_dynamicLoadout_F"; atlOffset=-0.012207031; - class CustomAttributes - { - }; }; class Item39 { @@ -2603,9 +2597,6 @@ class Mission id=232; type="B_T_APC_Wheeled_01_cannon_F"; atlOffset=-0.0048522949; - class CustomAttributes - { - }; }; class Item46 { @@ -2624,9 +2615,6 @@ class Mission id=233; type="B_T_MRAP_01_hmg_F"; atlOffset=0.10321045; - class CustomAttributes - { - }; }; class Item47 { @@ -2645,9 +2633,6 @@ class Mission id=234; type="B_T_MRAP_01_hmg_F"; atlOffset=-0.54574585; - class CustomAttributes - { - }; }; class Item48 { @@ -2666,9 +2651,6 @@ class Mission id=237; type="B_T_LSV_01_armed_F"; atlOffset=-0.054992676; - class CustomAttributes - { - }; }; class Item49 { @@ -2687,9 +2669,6 @@ class Mission id=238; type="B_T_LSV_01_armed_F"; atlOffset=0.070037842; - class CustomAttributes - { - }; }; class Item50 { @@ -2708,9 +2687,6 @@ class Mission id=239; type="B_T_LSV_01_armed_F"; atlOffset=-0.12496948; - class CustomAttributes - { - }; }; class Item51 { @@ -2729,9 +2705,6 @@ class Mission id=240; type="B_T_LSV_01_armed_F"; atlOffset=-0.092956543; - class CustomAttributes - { - }; }; class Item52 { @@ -2750,9 +2723,6 @@ class Mission id=241; type="B_T_Truck_01_transport_F"; atlOffset=0.00048828125; - class CustomAttributes - { - }; }; class Item53 { @@ -2769,9 +2739,6 @@ class Mission }; id=243; type="B_T_Truck_01_flatbed_F"; - class CustomAttributes - { - }; }; class Item54 { @@ -2789,9 +2756,6 @@ class Mission }; id=244; type="B_T_Truck_01_transport_F"; - class CustomAttributes - { - }; }; class Item55 { @@ -2810,9 +2774,6 @@ class Mission id=245; type="B_T_Truck_01_Repair_F"; atlOffset=-0.10299683; - class CustomAttributes - { - }; }; class Item56 { @@ -2831,9 +2792,6 @@ class Mission id=246; type="B_T_Truck_01_fuel_F"; atlOffset=-0.058990479; - class CustomAttributes - { - }; }; class Item57 { @@ -2852,9 +2810,6 @@ class Mission id=247; type="B_T_Truck_01_ammo_F"; atlOffset=-0.050994873; - class CustomAttributes - { - }; }; class Item58 { @@ -2873,9 +2828,6 @@ class Mission id=248; type="B_T_Truck_01_flatbed_F"; atlOffset=-0.050994873; - class CustomAttributes - { - }; }; class Item59 { @@ -2893,9 +2845,6 @@ class Mission id=249; type="B_T_Truck_01_medical_F"; atlOffset=-0.091003418; - class CustomAttributes - { - }; }; class Item60 { @@ -2913,9 +2862,6 @@ class Mission id=250; type="B_T_APC_Tracked_01_CRV_F"; atlOffset=-0.092987061; - class CustomAttributes - { - }; }; class Item61 { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 2835e4a7f..7efbb1192 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -2402,9 +2402,6 @@ class Mission id=156; type="B_Heli_Transport_03_F"; atlOffset=-0.002538681; - class CustomAttributes - { - }; }; class Item37 { @@ -2464,9 +2461,6 @@ class Mission id=175; type="B_Heli_Attack_01_dynamicLoadout_F"; atlOffset=-0.0016689301; - class CustomAttributes - { - }; }; class Item39 { @@ -2630,9 +2624,6 @@ class Mission id=232; type="B_T_APC_Wheeled_01_cannon_F"; atlOffset=-0.0098495483; - class CustomAttributes - { - }; }; class Item46 { @@ -2651,9 +2642,6 @@ class Mission id=233; type="B_T_MRAP_01_hmg_F"; atlOffset=-0.01962471; - class CustomAttributes - { - }; }; class Item47 { @@ -2672,9 +2660,6 @@ class Mission id=234; type="B_T_MRAP_01_hmg_F"; atlOffset=-0.012031555; - class CustomAttributes - { - }; }; class Item48 { @@ -2693,9 +2678,6 @@ class Mission id=237; type="B_T_LSV_01_armed_F"; atlOffset=-0.023923874; - class CustomAttributes - { - }; }; class Item49 { @@ -2714,9 +2696,6 @@ class Mission id=238; type="B_T_LSV_01_armed_F"; atlOffset=-0.016025543; - class CustomAttributes - { - }; }; class Item50 { @@ -2735,9 +2714,6 @@ class Mission id=239; type="B_T_LSV_01_armed_F"; atlOffset=-0.056703568; - class CustomAttributes - { - }; }; class Item51 { @@ -2756,9 +2732,6 @@ class Mission id=240; type="B_T_LSV_01_armed_F"; atlOffset=-0.0080337524; - class CustomAttributes - { - }; }; class Item52 { @@ -2777,9 +2750,6 @@ class Mission id=241; type="B_T_Truck_01_transport_F"; atlOffset=-0.049983978; - class CustomAttributes - { - }; }; class Item53 { @@ -2796,9 +2766,6 @@ class Mission }; id=243; type="B_T_Truck_01_flatbed_F"; - class CustomAttributes - { - }; }; class Item54 { @@ -2817,9 +2784,6 @@ class Mission id=244; type="B_T_Truck_01_transport_F"; atlOffset=-0.039049149; - class CustomAttributes - { - }; }; class Item55 { @@ -2838,9 +2802,6 @@ class Mission id=245; type="B_T_Truck_01_Repair_F"; atlOffset=-0.01051712; - class CustomAttributes - { - }; }; class Item56 { @@ -2859,9 +2820,6 @@ class Mission id=246; type="B_T_Truck_01_fuel_F"; atlOffset=-0.039800644; - class CustomAttributes - { - }; }; class Item57 { @@ -2880,9 +2838,6 @@ class Mission id=247; type="B_T_Truck_01_ammo_F"; atlOffset=-0.077253342; - class CustomAttributes - { - }; }; class Item58 { @@ -2901,9 +2856,6 @@ class Mission id=248; type="B_T_Truck_01_flatbed_F"; atlOffset=-0.10356903; - class CustomAttributes - { - }; }; class Item59 { @@ -2921,9 +2873,6 @@ class Mission id=249; type="B_T_Truck_01_medical_F"; atlOffset=-0.013309479; - class CustomAttributes - { - }; }; class Item60 { @@ -2941,9 +2890,6 @@ class Mission id=250; type="B_T_APC_Tracked_01_CRV_F"; atlOffset=-0.021877289; - class CustomAttributes - { - }; }; class Item61 { From f0130a54d01dcc2ca3c6850fb49ed42a41d60133 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 22:15:23 +0200 Subject: [PATCH 227/354] ACE now return the number of removed item --- .../core/fnc/rep/foodRemoved.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index 392091948..96f02afd8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -9,13 +9,13 @@ Parameters: _caller - Caller (player). [Object] _unit - Target. [Object] _listOfItemsToRemove - Classnames. [Array] - _listOfTextItems - Array of number of removed items. [Array] + _numberOfItems - Number of removed items. [Number] Returns: Examples: (begin example) - [player, cursorObject, ["ACE_Banana"], ["2"]] call btc_rep_fnc_foodRemoved; + [player, cursorObject, ["ACE_Banana"], 2] call btc_rep_fnc_foodRemoved; (end) Author: @@ -24,7 +24,7 @@ Author: ---------------------------------------------------------------------------- */ params ["_caller", "_target", "_listOfItemsToRemove", - ["_listOfTextItems", ["2"], [[]]] + ["_numberOfItems", 2, [0]] ]; if ( @@ -33,7 +33,7 @@ if ( ) then { private _cfgWeapons = configFile >> "CfgWeapons"; private _posItemInArray = _listOfItemsToRemove findIf {_x isKindOf ["ACE_Banana", _cfgWeapons]}; - private _repChange = btc_rep_malus_foodRemove * parseNumber (_listOfTextItems select _posItemInArray); + private _repChange = btc_rep_malus_foodRemove * _numberOfItems; if (isServer) then { [_repChange, _caller] call btc_rep_fnc_change; } else { From 21c99d300347316f81f6acc50e4864cfbe182261 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 22:28:02 +0200 Subject: [PATCH 228/354] remove useless _posItemInArray --- .../core/fnc/rep/foodRemoved.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index 96f02afd8..ec24ae49a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -27,12 +27,12 @@ params ["_caller", "_target", "_listOfItemsToRemove", ["_numberOfItems", 2, [0]] ]; + +private _removedItem = _listOfItemsToRemove select 0; if ( (side group _target) isEqualTo civilian && - {"ACE_Banana" in _listOfItemsToRemove} + {_removedItem isKindOf ["ACE_Banana", configFile >> "CfgWeapons"]} ) then { - private _cfgWeapons = configFile >> "CfgWeapons"; - private _posItemInArray = _listOfItemsToRemove findIf {_x isKindOf ["ACE_Banana", _cfgWeapons]}; private _repChange = btc_rep_malus_foodRemove * _numberOfItems; if (isServer) then { [_repChange, _caller] call btc_rep_fnc_change; From bc8ca5235e51fb3dcdad7d83b335c7404425f7c9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 22:46:06 +0200 Subject: [PATCH 229/354] Remove rearm level altis --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 589 +++--------------- 1 file changed, 73 insertions(+), 516 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index f32865c09..62d414115 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -20,10 +20,10 @@ class EditorData }; class Camera { - pos[]={8367.002,226.63452,10170.372}; - dir[]={-0.30540237,-0.6587823,-0.68761027}; - up[]={-0.26743448,0.75227875,-0.60212684}; - aside[]={-0.91394007,-3.6216807e-007,0.40592322}; + pos[]={8392.8252,232.25304,10207.24}; + dir[]={-0.51171321,-0.70974857,-0.4842326}; + up[]={-0.51556087,0.70439893,-0.48787403}; + aside[]={-0.68735826,-5.8131991e-007,0.72636133}; }; }; binarizationWanted=0; @@ -244,38 +244,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="SCALAR"; + value=1; }; }; }; class Attribute1 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; + singleType="ARRAY"; }; }; }; @@ -292,13 +280,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=4; @@ -306,13 +288,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="#CBA_HASH#"; }; }; @@ -320,27 +296,15 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { - items=5; + items=4; class Item0 { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_respawn_savepredeathgear"; }; }; @@ -348,13 +312,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_medical_enablefor"; }; }; @@ -362,13 +320,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_cargo_enable"; }; }; @@ -376,27 +328,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; - value="ace_rearm_level"; - }; - }; - class Item4 - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_repair_addspareparts"; }; }; @@ -407,27 +339,15 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { - items=5; + items=4; class Item0 { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -435,13 +355,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -449,13 +363,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -466,13 +374,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -480,13 +382,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -494,13 +390,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -511,13 +401,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -525,13 +409,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -539,13 +417,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -556,13 +428,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -570,58 +436,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - class Item1 - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=1; - }; - }; - }; - }; - }; - class Item4 - { - class data - { - class type - { - type[]= - { - "ARRAY" - }; - }; - class value - { - items=2; - class Item0 - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -629,13 +444,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -650,13 +459,7 @@ class CustomAttributes class data { nil=1; - class type - { - type[]= - { - "ANY" - }; - }; + singleType="ANY"; }; }; }; @@ -671,13 +474,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0; }; }; @@ -773,13 +570,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -792,13 +583,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=-1; }; }; @@ -833,13 +618,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -876,13 +655,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -895,13 +668,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=-1; }; }; @@ -1116,13 +883,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=2; }; }; @@ -1135,13 +896,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male02ENG"; }; }; @@ -1154,13 +909,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0.99000001; }; }; @@ -1195,13 +944,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="#adminLogged"; }; }; @@ -1214,13 +957,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0; }; }; @@ -1233,13 +970,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value=""; }; }; @@ -1252,13 +983,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -1271,13 +996,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=3; }; }; @@ -1378,13 +1097,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male03ENG"; }; }; @@ -1397,13 +1110,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -1450,13 +1157,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male09ENG"; }; }; @@ -1469,13 +1170,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -1522,13 +1217,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male12ENG"; }; }; @@ -1541,13 +1230,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.01; }; }; @@ -1594,13 +1277,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male09ENG"; }; }; @@ -1613,13 +1290,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.01; }; }; @@ -1666,13 +1337,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male01ENG"; }; }; @@ -1685,13 +1350,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0.99000001; }; }; @@ -1738,13 +1397,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male12ENG"; }; }; @@ -1757,13 +1410,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.03; }; }; @@ -1811,13 +1458,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male11ENG"; }; }; @@ -1830,13 +1471,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.02; }; }; @@ -1885,13 +1520,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male02ENG"; }; }; @@ -1904,13 +1533,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.05; }; }; @@ -1958,13 +1581,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male08ENG"; }; }; @@ -1977,13 +1594,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.03; }; }; @@ -2030,13 +1641,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male08ENG"; }; }; @@ -2049,13 +1654,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -2102,13 +1701,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male05ENG"; }; }; @@ -2121,13 +1714,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -2174,13 +1761,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male06ENG"; }; }; @@ -2193,13 +1774,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0.95999998; }; }; @@ -2669,13 +2244,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -2746,13 +2315,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -2765,13 +2328,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; From 1ec8ddbed6cf9be52b32ee873082d393f2ae6367 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 22:55:59 +0200 Subject: [PATCH 230/354] remove ace rearm level --- .../mission__Enoch.sqm | 574 +++-------------- .../mission__Tanoa.sqm | 583 +++--------------- 2 files changed, 139 insertions(+), 1018 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 9fe602c00..6f91a868b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -193,38 +193,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="SCALAR"; + value=1; }; }; }; class Attribute1 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; + singleType="ARRAY"; }; }; }; @@ -241,13 +229,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=4; @@ -255,13 +237,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="#CBA_HASH#"; }; }; @@ -269,27 +245,15 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { - items=5; + items=4; class Item0 { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_respawn_savepredeathgear"; }; }; @@ -297,13 +261,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_medical_enablefor"; }; }; @@ -311,13 +269,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_cargo_enable"; }; }; @@ -325,27 +277,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; - value="ace_rearm_level"; - }; - }; - class Item4 - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_repair_addspareparts"; }; }; @@ -356,27 +288,15 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { - items=5; + items=4; class Item0 { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -384,13 +304,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -398,13 +312,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -415,13 +323,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -429,13 +331,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -443,13 +339,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -460,13 +350,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -474,13 +358,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -488,13 +366,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -505,13 +377,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -519,58 +385,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - class Item1 - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=1; - }; - }; - }; - }; - }; - class Item4 - { - class data - { - class type - { - type[]= - { - "ARRAY" - }; - }; - class value - { - items=2; - class Item0 - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -578,13 +393,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -599,13 +408,7 @@ class CustomAttributes class data { nil=1; - class type - { - type[]= - { - "ANY" - }; - }; + singleType="ANY"; }; }; }; @@ -620,13 +423,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0; }; }; @@ -726,13 +523,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -745,13 +536,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=-1; }; }; @@ -786,13 +571,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -830,13 +609,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -849,13 +622,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=-1; }; }; @@ -1018,13 +785,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=2; }; }; @@ -1037,13 +798,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male02ENG"; }; }; @@ -1056,13 +811,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0.99000001; }; }; @@ -1098,13 +847,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="#adminLogged"; }; }; @@ -1117,13 +860,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0; }; }; @@ -1136,13 +873,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value=""; }; }; @@ -1155,13 +886,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -1174,13 +899,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=3; }; }; @@ -1282,13 +1001,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male03ENG"; }; }; @@ -1301,13 +1014,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -1355,13 +1062,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male09ENG"; }; }; @@ -1374,13 +1075,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -1427,13 +1122,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male12ENG"; }; }; @@ -1446,13 +1135,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.01; }; }; @@ -1500,13 +1183,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male09ENG"; }; }; @@ -1519,13 +1196,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.01; }; }; @@ -1573,13 +1244,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male01ENG"; }; }; @@ -1592,13 +1257,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0.99000001; }; }; @@ -1645,13 +1304,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male12ENG"; }; }; @@ -1664,13 +1317,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.03; }; }; @@ -1717,13 +1364,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male11ENG"; }; }; @@ -1736,13 +1377,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.02; }; }; @@ -1789,13 +1424,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male02ENG"; }; }; @@ -1808,13 +1437,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.05; }; }; @@ -1862,13 +1485,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male08ENG"; }; }; @@ -1881,13 +1498,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.03; }; }; @@ -1936,13 +1547,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male08ENG"; }; }; @@ -1955,13 +1560,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -2009,13 +1608,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male05ENG"; }; }; @@ -2028,13 +1621,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -2081,13 +1668,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male06ENG"; }; }; @@ -2100,13 +1681,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0.95999998; }; }; @@ -2422,13 +1997,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -2482,13 +2051,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -2739,6 +2302,7 @@ class Mission }; id=243; type="B_T_Truck_01_flatbed_F"; + atlOffset=-0.0012512207; }; class Item54 { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 7efbb1192..e4267cec1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -193,38 +193,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; + singleType="ARRAY"; }; }; }; class Attribute1 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="SCALAR"; + value=1; }; }; }; @@ -241,13 +229,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=4; @@ -255,13 +237,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="#CBA_HASH#"; }; }; @@ -269,27 +245,15 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { - items=5; + items=4; class Item0 { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_respawn_savepredeathgear"; }; }; @@ -297,13 +261,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_medical_enablefor"; }; }; @@ -311,13 +269,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_cargo_enable"; }; }; @@ -325,27 +277,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "STRING" - }; - }; - value="ace_rearm_level"; - }; - }; - class Item4 - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="ace_repair_addspareparts"; }; }; @@ -356,27 +288,15 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { - items=5; + items=4; class Item0 { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -384,13 +304,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -398,13 +312,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -415,13 +323,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -429,13 +331,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -443,13 +339,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -460,13 +350,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -474,13 +358,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -488,13 +366,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -505,13 +377,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "ARRAY" - }; - }; + singleType="ARRAY"; class value { items=2; @@ -519,58 +385,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - class Item1 - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=1; - }; - }; - }; - }; - }; - class Item4 - { - class data - { - class type - { - type[]= - { - "ARRAY" - }; - }; - class value - { - items=2; - class Item0 - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -578,13 +393,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -599,13 +408,7 @@ class CustomAttributes class data { nil=1; - class type - { - type[]= - { - "ANY" - }; - }; + singleType="ANY"; }; }; }; @@ -620,13 +423,7 @@ class CustomAttributes { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0; }; }; @@ -726,13 +523,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -745,13 +536,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=-1; }; }; @@ -786,13 +571,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -830,13 +609,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -849,13 +622,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=-1; }; }; @@ -1005,7 +772,7 @@ class Mission class Attributes { skill=0.60000002; - description=$STR_ACE_Repair_AssignEngineerRole_role_advanced; + description="Ing. avancé"; isPlayable=1; }; id=31; @@ -1021,13 +788,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=2; }; }; @@ -1040,13 +801,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male02ENG"; }; }; @@ -1059,13 +814,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0.99000001; }; }; @@ -1102,13 +851,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="#adminLogged"; }; }; @@ -1121,13 +864,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0; }; }; @@ -1140,13 +877,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value=""; }; }; @@ -1159,13 +890,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=1; }; }; @@ -1178,13 +903,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=3; }; }; @@ -1289,13 +1008,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male03ENG"; }; }; @@ -1308,13 +1021,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -1361,13 +1068,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male09ENG"; }; }; @@ -1380,13 +1081,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -1433,13 +1128,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male12ENG"; }; }; @@ -1452,13 +1141,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.01; }; }; @@ -1505,13 +1188,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male09ENG"; }; }; @@ -1524,13 +1201,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.01; }; }; @@ -1577,13 +1248,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male01ENG"; }; }; @@ -1596,13 +1261,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0.99000001; }; }; @@ -1650,13 +1309,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male12ENG"; }; }; @@ -1669,13 +1322,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.03; }; }; @@ -1724,13 +1371,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male11ENG"; }; }; @@ -1743,13 +1384,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.02; }; }; @@ -1798,13 +1433,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male02ENG"; }; }; @@ -1817,13 +1446,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.05; }; }; @@ -1872,13 +1495,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male08ENG"; }; }; @@ -1891,13 +1508,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1.03; }; }; @@ -1945,13 +1556,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male08ENG"; }; }; @@ -1964,13 +1569,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -2017,13 +1616,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male05ENG"; }; }; @@ -2036,13 +1629,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=1; }; }; @@ -2089,13 +1676,7 @@ class Mission { class data { - class type - { - type[]= - { - "STRING" - }; - }; + singleType="STRING"; value="Male06ENG"; }; }; @@ -2108,13 +1689,7 @@ class Mission { class data { - class type - { - type[]= - { - "SCALAR" - }; - }; + singleType="SCALAR"; value=0.95999998; }; }; @@ -2430,13 +2005,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -2490,13 +2059,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; @@ -2509,13 +2072,7 @@ class Mission { class data { - class type - { - type[]= - { - "BOOL" - }; - }; + singleType="BOOL"; value=0; }; }; From 51a2453024987395e867e4e370920a2ccb815942 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 11 Oct 2021 23:17:01 +0200 Subject: [PATCH 231/354] remove setspeaker --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 193 ++---------------- 1 file changed, 12 insertions(+), 181 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 62d414115..bc5d05fca 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -889,19 +889,6 @@ class Mission }; }; class Attribute1 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male02ENG"; - }; - }; - }; - class Attribute2 { property="pitch"; expression="_this setpitch _value;"; @@ -914,7 +901,7 @@ class Mission }; }; }; - nAttributes=3; + nAttributes=2; }; }; }; @@ -1090,19 +1077,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male03ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1115,7 +1089,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1150,19 +1124,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male09ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1175,7 +1136,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1210,19 +1171,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male12ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1235,7 +1183,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1270,19 +1218,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male09ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1295,7 +1230,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1330,19 +1265,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male01ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1355,7 +1277,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1389,19 +1311,6 @@ class Mission type="B_soldier_AT_F"; class CustomAttributes { - class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male12ENG"; - }; - }; - }; class Attribute1 { property="pitch"; @@ -1451,19 +1360,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male11ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1476,7 +1372,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1513,19 +1409,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male02ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1538,7 +1421,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1574,19 +1457,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male08ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1599,7 +1469,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1634,19 +1504,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male08ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1659,7 +1516,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1694,19 +1551,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male05ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1719,7 +1563,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1754,19 +1598,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male06ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1779,7 +1610,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; From 73ca053a35fce659821a76b28f9701c59d4164e2 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 12 Oct 2021 18:46:38 +0200 Subject: [PATCH 232/354] FIX: crash and add enoch --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 4 +- .../mission__Enoch.sqm | 195 ++---------------- 2 files changed, 15 insertions(+), 184 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index bc5d05fca..5e5633ece 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -1311,7 +1311,7 @@ class Mission type="B_soldier_AT_F"; class CustomAttributes { - class Attribute1 + class Attribute0 { property="pitch"; expression="_this setpitch _value;"; @@ -1324,7 +1324,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 6f91a868b..60225ea01 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -791,19 +791,6 @@ class Mission }; }; class Attribute1 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male02ENG"; - }; - }; - }; - class Attribute2 { property="pitch"; expression="_this setpitch _value;"; @@ -816,7 +803,7 @@ class Mission }; }; }; - nAttributes=3; + nAttributes=2; }; }; }; @@ -994,19 +981,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male03ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1019,7 +993,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1055,19 +1029,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male09ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1080,7 +1041,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1115,19 +1076,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male12ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1140,7 +1088,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1176,19 +1124,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male09ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1201,7 +1136,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1237,19 +1172,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male01ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1262,7 +1184,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1297,19 +1219,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male12ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1322,7 +1231,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1357,19 +1266,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male11ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1382,7 +1278,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1417,19 +1313,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male02ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1442,7 +1325,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1478,19 +1361,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male08ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1503,7 +1373,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1540,19 +1410,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male08ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1565,7 +1422,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1601,19 +1458,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male05ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1626,7 +1470,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1661,19 +1505,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male06ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1686,7 +1517,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; From b64d7f20d6c48059154921c6ac23dfee144d0e2d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 12 Oct 2021 18:55:55 +0200 Subject: [PATCH 233/354] Clean up Tanoa --- .../mission__Tanoa.sqm | 195 ++---------------- 1 file changed, 13 insertions(+), 182 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index e4267cec1..bf96005af 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -794,19 +794,6 @@ class Mission }; }; class Attribute1 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male02ENG"; - }; - }; - }; - class Attribute2 { property="pitch"; expression="_this setpitch _value;"; @@ -819,7 +806,7 @@ class Mission }; }; }; - nAttributes=3; + nAttributes=2; }; }; }; @@ -1001,19 +988,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male03ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1026,7 +1000,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1061,19 +1035,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male09ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1086,7 +1047,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1121,19 +1082,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male12ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1146,7 +1094,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1181,19 +1129,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male09ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1206,7 +1141,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1241,19 +1176,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male01ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1266,7 +1188,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1302,19 +1224,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male12ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1327,7 +1236,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1364,19 +1273,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male11ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1389,7 +1285,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1426,19 +1322,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male02ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1451,7 +1334,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1488,19 +1371,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male08ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1513,7 +1383,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1549,19 +1419,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male08ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1574,7 +1431,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1609,19 +1466,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male05ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1634,7 +1478,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; @@ -1669,19 +1513,6 @@ class Mission class CustomAttributes { class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - singleType="STRING"; - value="Male06ENG"; - }; - }; - }; - class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -1694,7 +1525,7 @@ class Mission }; }; }; - nAttributes=2; + nAttributes=1; }; }; }; From d18786300ce959f0b6d71e4ba310185ae56f88a8 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 13 Oct 2021 22:41:16 +0200 Subject: [PATCH 234/354] Save custom ACE name --- .../core/fnc/db/loadObjectStatus.sqf | 7 ++++++- .../core/fnc/db/loadcargo.sqf | 4 ++++ .../core/fnc/db/saveObjectStatus.sqf | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index be90e3b8f..05386669d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -35,7 +35,8 @@ _object_data params [ ["_dogtagDataTaken", [], [[]]], ["_uid", "", [""]], ["_flagTexture", "", [""]], - ["_turretMagazines", [], [[]]] + ["_turretMagazines", [], [[]]], + ["_customName", "", [""]] ]; private _obj = createVehicle [_type, ASLToATL _pos, [], 0, "CAN_COLLIDE"]; @@ -63,5 +64,9 @@ if (_turretMagazines isNotEqualTo []) then { [_obj, _dogtagDataTaken] call btc_body_fnc_dogtagSet; _obj setVariable ["btc_UID", _uid]; +if (_customName isNotEqualTo "") then { + _obj setVariable ["ace_cargo_customName", _customName, true]; +}; + [_obj] call btc_log_fnc_init; [_obj, _cargo, _inventory] call btc_db_fnc_loadCargo; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index efb2ef15e..f96f05176 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -55,6 +55,10 @@ Author: [_l, _turretMagazines] call btc_db_fnc_setTurretMagazines; }; + if (_customName isNotEqualTo "") then { + _l setVariable ["ace_cargo_customName", _customName, true]; + }; + if (unitIsUAV _l) then { createVehicleCrew _l; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 6a12f9acf..562edf100 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -41,7 +41,8 @@ private _cargo = (_object getVariable ["ace_cargo_loaded", []]) apply { _x in btc_chem_contaminated, _x call btc_body_fnc_dogtagGet, _x getVariable ["btc_UID", ""], - magazinesAllTurrets _x + magazinesAllTurrets _x, + _x getVariable ["ace_cargo_customName", ""] ] }; }; @@ -53,5 +54,6 @@ _data pushBack (_object call btc_body_fnc_dogtagGet); _data pushBack (_object getVariable ["btc_UID", ""]); _data pushBack (getForcedFlagTexture _object); _data pushBack (magazinesAllTurrets _object); +_data pushBack (_object getVariable ["ace_cargo_customName", ""]); _data From cbbccc7b4491bb178ea2118cd81c35e29c699fff Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 15 Oct 2021 18:20:16 +0200 Subject: [PATCH 235/354] Fix: missing after databse reload --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index f96f05176..70f547f65 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -31,7 +31,8 @@ Author: ["_isContaminated", false, [false]], ["_dogtagDataTaken", [], [[]]], ["_uid", "", [""]], - ["_turretMagazines", [], [[]]] + ["_turretMagazines", [], [[]]], + ["_customName", "", [""]] ]; private _l = createVehicle [_type, getPosATL _obj, [], 0, "CAN_COLLIDE"]; From c28ee015fa1471162ceca4fd337ae212981d747c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 15 Oct 2021 18:28:16 +0200 Subject: [PATCH 236/354] Cargo size not apply from a new database --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 240f37bd2..23c92a1bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -136,10 +136,10 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { [btc_fob_mat, "InitPost", { params ["_obj"]; [_obj, -1] call ace_cargo_fnc_setSpace; -}] call CBA_fnc_addClassEventHandler; +}, true, [], true] call CBA_fnc_addClassEventHandler; { [_x, "InitPost", { params ["_obj"]; [_obj, 50] call ace_cargo_fnc_setSpace; - }] call CBA_fnc_addClassEventHandler; + }, true, [], true] call CBA_fnc_addClassEventHandler; } forEach ["CUP_MTVR_Base", "Truck_01_base_F", btc_supplies_cargo /*FIX: https://github.com/acemod/ACE3/pull/8344*/]; From 779eae7011cd41cbc794bf85ce4f20bc26994369 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 17 Oct 2021 11:25:46 +0200 Subject: [PATCH 237/354] remove the fix for idap container --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 23c92a1bc..ddd0ba324 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -142,4 +142,4 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { params ["_obj"]; [_obj, 50] call ace_cargo_fnc_setSpace; }, true, [], true] call CBA_fnc_addClassEventHandler; -} forEach ["CUP_MTVR_Base", "Truck_01_base_F", btc_supplies_cargo /*FIX: https://github.com/acemod/ACE3/pull/8344*/]; +} forEach ["CUP_MTVR_Base", "Truck_01_base_F"]; From 194d867d3ea5f6621f926e5b5182f8010515c00b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 19 Oct 2021 23:35:34 +0200 Subject: [PATCH 238/354] Prevent the btc_delay_time been stuck in case of user error --- .../core/fnc/delay/createAgent.sqf | 4 ++-- .../core/fnc/delay/createUnit.sqf | 4 ++-- .../core/fnc/delay/createVehicle.sqf | 3 ++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf index f5255974a..a402d749e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf @@ -26,6 +26,8 @@ Author: btc_delay_time = btc_delay_time + 0.1; [{ + btc_delay_time = btc_delay_time - 0.1; + params [ ["_agentType", "", [""]], ["_pos", [0, 0, 0], [[]]], @@ -34,6 +36,4 @@ btc_delay_time = btc_delay_time + 0.1; ]; (createAgent [_agentType, _pos, [], 0, _special]) setVariable ["btc_city", _city]; - - btc_delay_time = btc_delay_time - 0.1; }, _this, btc_delay_time - 0.01] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf index 2e14a77fe..095cafc55 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf @@ -27,6 +27,8 @@ Author: btc_delay_time = btc_delay_time + 0.2; [{ + btc_delay_time = btc_delay_time - 0.2; + params [ ["_group", grpNull, [grpNull]], ["_unit_type", "", [""]], @@ -49,6 +51,4 @@ btc_delay_time = btc_delay_time + 0.2; if (!isNull _vehicle) then { _unit moveInAny _vehicle; }; - - btc_delay_time = btc_delay_time - 0.2; }, _this, btc_delay_time - 0.01] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf index d1022a29a..96fdb59a9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf @@ -31,6 +31,8 @@ Author: btc_delay_time = btc_delay_time + 0.3; [{ + btc_delay_time = btc_delay_time - 0.3; + params [ ["_group", grpNull, [grpNull]], ["_vehicle_type", "", [""]], @@ -83,7 +85,6 @@ btc_delay_time = btc_delay_time + 0.3; }; ["btc_delay_vehicleInit", [_veh, _group]] call CBA_fnc_localEvent; - btc_delay_time = btc_delay_time - 0.3; }, _this, btc_delay_time - 0.01] call CBA_fnc_waitAndExecute; count (_this select 2) * 0.2 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf index 950466b7a..d530af13b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/exec.sqf @@ -24,12 +24,12 @@ Author: btc_delay_time = btc_delay_time + 0.2; [{ + btc_delay_time = btc_delay_time - 0.2; + params [ "_parameters", ["_code", {}, [{}]] ]; _parameters call _code; - - btc_delay_time = btc_delay_time - 0.2; }, _this, btc_delay_time - 0.01] call CBA_fnc_waitAndExecute; From ed3bb581f999d60663b1296d3942d36fb92aa05f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 19 Oct 2021 23:38:44 +0200 Subject: [PATCH 239/354] Remove the group check --- .../core/fnc/delay/createUnit.sqf | 5 ----- 1 file changed, 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf index 095cafc55..1df8872b4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf @@ -37,11 +37,6 @@ btc_delay_time = btc_delay_time + 0.2; ["_vehicle", objNull, [objNull]] ]; - if (isNull _group) exitWith { - [format ["isNull _group _this = %1", _this], __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; - btc_delay_time = btc_delay_time - 0.2; - }; - if !(_pos isEqualType []) then { _pos = _pos get "_pos"; }; From 2f729d395b41c340786047f8c8715c2113853d6e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 20 Oct 2021 00:21:21 +0200 Subject: [PATCH 240/354] add a waitandexecute custom --- .../core/fnc/city/activate.sqf | 2 +- .../core/fnc/civ/create_patrol.sqf | 2 +- .../core/fnc/compile.sqf | 1 + .../core/fnc/data/spawn_group.sqf | 2 +- .../core/fnc/delay/waitAndExecute.sqf | 35 +++++++++++++++++++ .../core/fnc/mil/create_patrol.sqf | 2 +- .../core/fnc/mil/send.sqf | 2 +- .../core/fnc/side/capture_officer.sqf | 4 +-- .../core/fnc/side/convoy.sqf | 2 +- 9 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 1e932093c..50f5cb2c9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -324,7 +324,7 @@ if (_civKilled isNotEqualTo []) then { }; _city setVariable ["activating", false]; -}, [_has_en, _city, _cachingRadius, _id], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; +}, [_has_en, _city, _cachingRadius, _id], _delay] call btc_delay_fnc_waitAndExecute; //Patrol btc_patrol_active = btc_patrol_active - [grpNull]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf index ad76555d9..68c3dd037 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf @@ -70,6 +70,6 @@ private _delay = [_group, _veh_type, [selectRandom btc_civ_type_units], _safe_po [{ _this call btc_patrol_fnc_init; [[_this select 0]] call btc_fnc_set_groupsOwner; -}, [_group, [_start_city, _active_city], _area, _pos_isWater], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; +}, [_group, [_start_city, _active_city], _area, _pos_isWater], _delay] call btc_delay_fnc_waitAndExecute; true diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index be2d5acb1..6df375b2a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -77,6 +77,7 @@ if (isServer) then { btc_delay_fnc_createVehicle = compileScript ["core\fnc\delay\createVehicle.sqf"]; btc_delay_fnc_createAgent = compileScript ["core\fnc\delay\createAgent.sqf"]; btc_delay_fnc_exec = compileScript ["core\fnc\delay\exec.sqf"]; + btc_delay_fnc_waitAndExecute = compileScript ["core\fnc\delay\waitAndExecute.sqf"]; //DOOR btc_door_fnc_lock = compileScript ["core\fnc\door\lock.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf index b4379bf14..7695dcfde 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf @@ -108,6 +108,6 @@ if (_type isEqualTo 1) then { [_group, _array_veh select 0] call btc_civ_fnc_addWP; _group setVariable ["btc_data_inhouse", _array_veh]; }; -}, [_data_unit, _group], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; +}, [_data_unit, _group], _delay] call btc_delay_fnc_waitAndExecute; _delay diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf new file mode 100644 index 000000000..560a63371 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf @@ -0,0 +1,35 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_delay_fnc_waitAndExecute + +Description: + Wait and execute a function with a _delay. Usefull when used after btc_delay_fnc_createVehicle. + +Parameters: + _parameters - Parameters to the function. [Array] + _code - Code to execute. [Code] + _delay - Delay of execution. [Number] + +Returns: + +Examples: + (begin example) + [] call btc_delay_fnc_waitAndExecute; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +[{ + params [ + ["_code", {}, [{}]], + ["_parameter", [], [[]]], + ["_delay", 0, [0]] + ]; + + if (_delay isEqualTo 0) exitWith {_parameters call _code}; + + [_code, _parameter, btc_delay_time + _delay] call CBA_fnc_waitAndExecute; +}, _this, btc_delay_time] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf index 45fae7c5f..c537a114e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf @@ -101,6 +101,6 @@ private _delay = switch (_random) do { [{ _this call btc_patrol_fnc_init; [[_this select 0]] call btc_fnc_set_groupsOwner; -}, [_group, [_start_city, _active_city], _area, _pos_isWater], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; +}, [_group, [_start_city, _active_city], _area, _pos_isWater], _delay] call btc_delay_fnc_waitAndExecute; true diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf index b84498ec6..4404561f3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf @@ -69,6 +69,6 @@ switch (_typeOf_patrol) do { [[_group]] call btc_fnc_set_groupsOwner; _group deleteGroupWhenEmpty true; -}, [_group, _typeOf_patrol, _dest, _infFormation], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; +}, [_group, _typeOf_patrol, _dest, _infFormation], _delay] call btc_delay_fnc_waitAndExecute; _group diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index b03cd1091..5deb0199c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -116,7 +116,7 @@ for "_i" from 1 to _convoyLength do { }, [ _group, _pos2, -1, "MOVE", "SAFE", "RED", "LIMITED", "COLUMN", format ["['%1', 'FAILED'] call BIS_fnc_taskSetState;", _taskID], [0, 0, 0], _radius/2 -], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; +], _delay] call btc_delay_fnc_waitAndExecute; [{ params ["_group", "_taskID", "_trigger"]; @@ -170,7 +170,7 @@ for "_i" from 1 to _convoyLength do { }, [ _group, _taskID -], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; +], _delay] call btc_delay_fnc_waitAndExecute; waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf index d48b8341f..31cee843e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf @@ -116,7 +116,7 @@ for "_i" from 1 to _convoyLength do { }, [ _group, _pos2, -1, "MOVE", "SAFE", "RED", "LIMITED", "COLUMN", format ["['%1', 'FAILED'] call BIS_fnc_taskSetState;", _taskID], [0, 0, 0], _radius/2 -], btc_delay_time + _delay] call CBA_fnc_waitAndExecute; +], _delay] call btc_delay_fnc_waitAndExecute; waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || From b860f341ff54ba61fb617205dce146e89c210fe4 Mon Sep 17 00:00:00 2001 From: Gold John King Date: Wed, 20 Oct 2021 21:47:36 +0800 Subject: [PATCH 241/354] Simplified Chinese translation for #1176 & #1186 Also fixed some Chinese comma issue. --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index d9ec9f914..dd8838e49 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -40,15 +40,19 @@ Sync all vehicles to this logic + 将所有载具同步与此逻辑同步 Sync all vehicles that should NOT automatically respawn to this logic. If a vehicle SHOULD automatically respawn, sync it to the logic named "Sync all respawnable vehicles to this logic". + 将所有不应该自动重生的载具同步至此逻辑。如果一辆载具应该自动重生, 将其同步至名为"将所有可重生载具与此逻辑同步"的逻辑。 Sync all respawnable vehicles to this logic + 将所有可重生载具与此逻辑同步 Sync all vehicles that should automatically respawn to this logic. If a vehicle should NOT automatically respawn, sync it to the logic named "Sync all vehicles to this logic". + 将所有应该自动重生的载具同步至此逻辑。如果一辆载具不应该自动重生, 将其同步至名为"将所有载具与此逻辑同步"的逻辑。 @@ -113,7 +117,7 @@ <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Cuando un vehículo es destruido no va a reaparecer en la base, es necesario remolcarlo o transportarlo de vuelta a la base y repararlo cerca del punto logístico (Interactuar con la caja roja). Los destrozos de helicópteros sólo pueden ser transportados por vía aérea.. <br/> El Chinook es la única excepción, reaparecerá después de 30 segundos..<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> You can also rearm them by using a rearm vehicle or spawning a rearm container..<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Wenn ein Fahrzeug zersört wurde, wird dies nicht Respawnen. Es muss durch Abschleppen oder Anheben(Sling-Load) zum Logisik-Punkt gebracht und dort repariert werden (mit der roten Box interagieren). Wracks von Hubschraubern können nur angehoben werden (Sling-Load). <br/> Die einzigste Ausnahme hierbei ist der Chinook. Er respawnt nach 30 Sekunden.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Aufmunitionieren:</marker><br/> Fahrzeuge können Aufmunitioniert werden, in dem man das entsprechende Kaliber am Logisik-Punk anfordert (mit der Roten Box interagieren: Fahzeug und Kaliber auswählen). Nun muss man nur noch die erstellte Munition zum Fahrzeug bringen und mit diesem interagieren um das aufmunitionieren zu beginnen.<br/>ANMERKUNG: You can also rearm them by using a rearm vehicle or spawning a rearm container.<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Respawn:</marker><br/> Quando um veículo é destruído ele não reaparecerá na base, você precisa rebocá-lo/levá-lo de volta à base e repará-lo perto do ponto logístico (Interagir com a caixa vermelha). Os destroços de helicóptero só podem ser levantados. <br/> O Chinook é a única exceção, ele reaparecerá depois de 30 segundos.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Rearm:</marker><br/> You can also rearm them by using a rearm vehicle or spawning a rearm container..<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> - <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> 载具重生:</marker><br/> 当载具损毁时, 它不会在基地自动重生。你需要采用牵引、托运或吊挂的方式将其残骸运回基地, 并在后勤点对其进行维修(与后勤点的红色箱子进行互动)。直升机的残骸只能使用吊挂的方式运输。<br/> 支奴干(Chinook)是唯一的例外, 它会在损毁后30秒于基地重生。<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> 弹药补给:</marker><br/> You can also rearm them by using a rearm vehicle or spawning a rearm container.<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> + <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> 载具重生:</marker><br/> 当载具损毁时, 它不会在基地自动重生。你需要采用牵引、托运或吊挂的方式将其残骸运回基地, 并在后勤点对其进行维修(与后勤点的红色箱子进行互动)。直升机的残骸只能使用吊挂的方式运输。<br/> 支奴干(Chinook)是唯一的例外, 它会在损毁后30秒于基地重生。<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> 弹药补给:</marker><br/> 你也可以使用弹药补给载具或生成一个弹药补给箱来为载具补给弹药。<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> <marker name='blufor_base'><img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa' width='20' height='20'/> Réapparition:</marker><br/> Lorsqu'un véhicule est détruit, il ne réapparaîtra pas dans la base, vous devez le remorquer, utiliser le véhicule dans le véhicule ou le ramener à la base et le réparer près du point logistique (Interagissez avec la boîte rouge). Les épaves d'hélicoptères peuvent seulement être héliportés. <br/> Le Chinook est la seule exception, il réapparaîtra après 30 secondes.<br/><br/> <img image='\a3\data_f_tank\Images\Tank_contentBrowserPicture_1_co.paa' width='355' height='200' /> <br/><br/> <marker name='blufor_base'> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa' width='20' height='20'/> Réarmement:</marker><br/> You can also rearm them by using a rearm vehicle or spawning a rearm container..<br/><br/> <img image='\a3\data_f_jets\Images\dlcbrowser_jets_loadouts_ca.paa' width='355' height='200' /> @@ -138,7 +142,7 @@ <img image='\a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Introduction:</marker><br/> By default, each player has a limited number of respawn tickets. On first join, you get the default number of tickets (20). After, each time you respawn, your number of tickets will decrease by one and a kill in action (KIA) marker will appear after 10 minutes.<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_104_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Get new tickets:</marker><br/> Players can increase by one ticket if they retrieve their dead body back to base. Prisoners also increase by one ticket but to all currently connected players.<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_118_co.paa' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\medical_gui\ui\bodybag.paa' width='20' height='20'/> <marker name='blufor_base'>Dead player body:</marker><br/> Any player can retrieve dead player body by:<br/> - <img image='\z\ace\addons\medical_treatment\ui\bodybag_ca.paa' width='13' height='13'/> Putting dead body in a body bag. Watch out if your vehicle get destroyed, all body bag will be lost!<br/> - Carry it to the logistic point<br/> - Interact with the logistic point<br/> - <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='13' height='13'/> Select "Get tickets from body bag or prisoner"<br/> The ticket from the body bag will go to the player owned the dead body (even if he is not connected).<br/><br/> <img image='\A3\EditorPreviews_F_Orange\Data\CfgVehicles\Land_Bodybag_01_black_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\captives\UI\handcuff_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Prisoners:</marker><br/> Prisoners <img image='\z\ace\addons\captives\UI\Surrender_ca.paa' width='13' height='13'/> follow the same process as dead player body without the need of body bag. The prisonner need to be alive but it could be unconcious.<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_106_co.paa' width='355' height='200'/> - <img image='\a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa' width='20' height='20'/> <marker name='blufor_base'>介绍:</marker><br/> 默认情况下, 每名玩家都有受限的重生票数。首次进入服务器时, 你会获得默认的重生票数(20)。此后,每次重生都会使你的重生票数减一,且地图上将于10分钟后出现阵亡(KIA)标记。<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_104_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>获得新的重生票数:</marker><br/> 玩家可以通过将他们的尸体带回基地,来获得一枚重生票数。带回囚犯也可以为全体在线玩家每人增加一枚重生票数。<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_118_co.paa' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\medical_gui\ui\bodybag.paa' width='20' height='20'/> <marker name='blufor_base'>阵亡玩家的尸体:</marker><br/> 玩家都可以通过以下方式回收尸体:<br/> - <img image='\z\ace\addons\medical_treatment\ui\bodybag_ca.paa' width='13' height='13'/> 将尸体放进尸体袋。小心,如果你的载具被摧毁,其中所有尸体袋都会丢失!<br/> - 将尸体搬运到后勤点<br/> - 与后勤点互动<br/> - <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='13' height='13'/> 选择"回收尸体袋或囚犯以获得重生票数"<br/> 获得的重生票数将会发放给该尸体对应的玩家(即使他不在线)。<br/><br/> <img image='\A3\EditorPreviews_F_Orange\Data\CfgVehicles\Land_Bodybag_01_black_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\captives\UI\handcuff_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Prisoners:</marker><br/> 囚犯 <img image='\z\ace\addons\captives\UI\Surrender_ca.paa' width='13' height='13'/> 遵循与回收玩家尸体相同的流程,但无需尸体袋。被回收的囚犯必须活着,但可以出于昏迷状态。<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_106_co.paa' width='355' height='200'/> + <img image='\a3\Ui_F_Curator\Data\CfgMarkers\kia_ca.paa' width='20' height='20'/> <marker name='blufor_base'>介绍:</marker><br/> 默认情况下, 每名玩家都有受限的重生票数。首次进入服务器时, 你会获得默认的重生票数(20)。此后, 每次重生都会使你的重生票数减一, 且地图上将于10分钟后出现阵亡(KIA)标记。<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_104_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>获得新的重生票数:</marker><br/> 玩家可以通过将他们的尸体带回基地, 来获得一枚重生票数。带回囚犯也可以为全体在线玩家每人增加一枚重生票数。<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_118_co.paa' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\medical_gui\ui\bodybag.paa' width='20' height='20'/> <marker name='blufor_base'>阵亡玩家的尸体:</marker><br/> 玩家都可以通过以下方式回收尸体:<br/> - <img image='\z\ace\addons\medical_treatment\ui\bodybag_ca.paa' width='13' height='13'/> 将尸体放进尸体袋。小心, 如果你的载具被摧毁, 其中所有尸体袋都会丢失!<br/> - 将尸体搬运到后勤点<br/> - 与后勤点互动<br/> - <img image='\A3\Data_F_AoW\Logos\arma3_aow_logo_ca.paa' width='13' height='13'/> 选择"回收尸体袋或囚犯以获得重生票数"<br/> 获得的重生票数将会发放给该尸体对应的玩家(即使他不在线)。<br/><br/> <img image='\A3\EditorPreviews_F_Orange\Data\CfgVehicles\Land_Bodybag_01_black_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\captives\UI\handcuff_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Prisoners:</marker><br/> 囚犯 <img image='\z\ace\addons\captives\UI\Surrender_ca.paa' width='13' height='13'/> 遵循与回收玩家尸体相同的流程, 但无需尸体袋。被回收的囚犯必须活着, 但可以出于昏迷状态。<br/><br/> <img image='a3\Missions_F_AoW\Data\Img\Artwork\Landscape\showcase_aow_picture_106_co.paa' width='355' height='200'/> @@ -266,7 +270,7 @@ <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Chemical agent:</marker><br/> A chemical agent can be found in the battlefield at cache location for example. When an object is contaminated, the chemical agent propagates to people around (in a circle of 3m). Those people will be hurt constantly and get pain until they died or found a decontaminating shower (available at the logistic point) to clean up their body. When they are contaminated, they can propagate it to other people around (in a circle of 2m) or vehicle if they get inside. Keep in mind, dead body stay contaminated but body bag will isolate it. Also, a contaminated object loaded as cargo will contaminate the container or vehicle. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/> Use CBRN gear (uniform, respirator mask and breather backpack) for full protection from the contamination effect. But, don't forget to take a shower for more than 5s before removing your CBRN gear. Be aware, even with a CBRN equipment you can propagate the agent to people or vehicle, you are just protected from the effect. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> Simple mask and simple uniform can reduce from 65% to 80% the probability to take damage. The pain from breathing while contaminated can be avoid with a simple mask. <img image='\A3\Data_F_Orange\Images\Respirator_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Decontaminate:</marker><br/> You can use a small shower to decontaminate units only. Use the big shower for objects, vehicles and objects loaded as cargo. To activate them, just stay under the shower. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Detection:</marker><br/> You can analyze an object, vehicle or man with ED-1E drone to determine if it is contaminated (Note: The drone will never be contaminated.). You can also check if you are in a contaminated area by using a chemical detector (THREAT from 0.1 to 0.9: contaminated objects are around, THREAT at 1: you are in the propagating range (you will be contaminated)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Chemische Wirk- bzw. Kampfstoffe:</marker><br/> Chemische Wirk- bzw. Kampfstoffe werden immer mal wieder im Einsatz, zum Beispiel bei den Waffenkisten, gefunden. Wenn ein Objekt kontaminiert ist, dann verbreitet sich der chemische Wirkstoff auf Personen in der näheren Umgebung (in ein Umkreis von ca. 3m). Personen, welche sich ungeschützt einem solchen Objekt nähern, werden kontaminiert und erleiden Schaden, bis Sie sterben. Man kann sich mir Hilfe einer Dekontaminationsdusche (am Logistikpunkt erhältlich) von diesem Effekt befreien. Die Kontaminierung von Personen kann untereinander weitergegeben werden, wenn man nicht aufpasst (in einem Umkreis von ca. 2m). Das gilt auch für die Innenräume von Fahrzeugen. Denken Sie daran, dass Leichen kontaminiert bleiben, die Leichensäcke diese jedoch isolieren. Kontaminierte Objekte können beim Verladen auch den Container und das Fahrzeug verseuchen. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Schutz:</marker><br/> Verwenden Sie CBRN-Ausrüstung (auch ABC-Ausrüstung genannt, bestehend aus Uniform, Maske und Atemgerät), um sich vor Kontamination zu schützen. Vor dem ablegen der CBRN-Ausrüstung ist es wichtig, mindestens 5 Sekunden zu duschen, um sämtliche Verseuchungen zu entfernen. Beachten Sie, dass die CBRN-Ausrüstung nur Sie selbst vor den chemischen Kampfstoffen schütz. Sie können weiterhin andere Personen und Fahrzeuge kontaminieren. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Dekontaminierung:</marker><br/> Mit der kleinen Dekontaminationsdusche können Sie nur Personen dekontaminieren. Verwenden Sie die große Dusche für Objekte, Fahrzeuge und den Ladenraum von Fahrzeugen (oder Containern). Um die Duschen zu aktivieren, stellen Sie sich einfach darunter. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Erkennung:</marker><br/> Sie können ein Objekt, Fahrzeug oder eine Person mit einer ED-1E-Drohne analysieren, um festzustellen, ob es kontaminiert ist (Hinweis: Die Drohne wird niemals von einer Kontamination betroffen sein). Ebenso können Sie einen Chemischen Detektor nutzen um feststellen wie stark der nähere Bereich um Sie herum kontaminiert ist. (THREAT von 0.1 bis 0.9: kontaminierte Gegenstände sind in der Nähe, THREAT von 1: Sie befinden sich in einen verseuchten Bereich (Sie sind somit selbst kontaminiert)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>化学试剂:</marker><br/> 化学试剂会在战场上的武器箱等位置出现。当一个物体受到污染时, 这种化学试剂会传播它到周围的人身上(3米范围内)。感染者将持续受到伤害并感到疼痛,直至死亡,或找到一个净化淋浴(位于在后勤点)来清理他们的身体。当这些人受到污染时, 他们会将污染传播给周围的其他人(2米范围内)或车辆(如果他们进入车辆的话)。记住, 尸体将保持受到污染的状态, 但尸体袋可以将其隔离。此外, 作为货物装载受污染物体将会污染集装箱或车辆。<img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/><br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>防护措施:</marker><br/> 使用CBRN(生化核辐)装备(服装、口罩、面具和呼吸器背包)可以保护您完全免受污染影响。但是, 在取下CBRN装备之前, 不要忘记进行至少5秒的净化淋浴。请注意, 即使穿戴了CBRN装备, 您也会向人员或车辆传播化学试剂, 只有你免受污染影响。普通的面具和制服会将受到伤害的可能性减免60%至80%。<img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>清除污染:</marker><br/> 小型淋浴器只能用来净化单兵单位。使用大型淋浴器来清洗物品、车辆和货物。要激活净化过程, 只需待在淋浴下即可。<img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/><br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>检测:</marker><br/> 你可以使用 ED-1E 无人机分析物体、车辆或人, 以测定其是否受到污染(注: 该无人机永远不会受到污染)。您也可以使用化学探测器检测您是否处于污染区域内(威胁度介于0.1至0.9之间: 附近存在受污染物体, 威胁度等于1: 您处于传播区域内(您将受到污染))。<img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>化学试剂:</marker><br/> 化学试剂会在战场上的武器箱等位置出现。当一个物体受到污染时, 这种化学试剂会传播它到周围的人身上(3米范围内)。感染者将持续受到伤害并感到疼痛, 直至死亡, 或找到一个净化淋浴(位于在后勤点)来清理他们的身体。当这些人受到污染时, 他们会将污染传播给周围的其他人(2米范围内)或车辆(如果他们进入车辆的话)。记住, 尸体将保持受到污染的状态, 但尸体袋可以将其隔离。此外, 作为货物装载受污染物体将会污染集装箱或车辆。<img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/><br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>防护措施:</marker><br/> 使用CBRN(生化核辐)装备(服装、口罩、面具和呼吸器背包)可以保护您完全免受污染影响。但是, 在取下CBRN装备之前, 不要忘记进行至少5秒的净化淋浴。请注意, 即使穿戴了CBRN装备, 您也会向人员或车辆传播化学试剂, 只有你免受污染影响。普通的面具和制服会将受到伤害的可能性减免60%至80%。<img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>清除污染:</marker><br/> 小型淋浴器只能用来净化单兵单位。使用大型淋浴器来清洗物品、车辆和货物。要激活净化过程, 只需待在淋浴下即可。<img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/><br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>检测:</marker><br/> 你可以使用 ED-1E 无人机分析物体、车辆或人, 以测定其是否受到污染(注: 该无人机永远不会受到污染)。您也可以使用化学探测器检测您是否处于污染区域内(威胁度介于0.1至0.9之间: 附近存在受污染物体, 威胁度等于1: 您处于传播区域内(您将受到污染))。<img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\danger_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Agent chimique:</marker><br/> Un agent chimique peut être trouvé sur le champ de bataille à l'emplacement d'une cache d'arme, par exemple. Lorsqu'un objet est contaminé, l'agent chimique se propage aux personnes autour (dans un cercle de 3 m). Ces personnes seront constamment blessées jusqu'à ce qu'elles meurent ou trouvent une douche décontaminante (disponible au point logistique) pour nettoyer leur corps. Lorsqu'ils sont contaminés, ils peuvent le propager à d'autres personnes autour (dans un cercle de 2 m) ou à un véhicule s'ils pénètrent à l'intérieur. Gardez à l'esprit que les cadavres restent contaminés, mais le sac mortuaire l'isolera. De plus, un objet contaminé placé dans la cargaison d'un conteneur ou d'un véhicule le contaminera. <img image='\a3\Data_F_Enoch\Images\CBRNObjects_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Protection:</marker><br/> Utilisez un équipement CBRN (uniforme, masque respiratoire et sac à dos) pour une protection complète contre l'effet de contamination. Mais n'oubliez pas de prendre une douche pendant plus de 5 secondes avant de retirer votre équipement CBRN. Sachez que même avec un équipement CBRN, vous pouvez propager l'agent à des personnes ou à un véhicule, vous êtes simplement protégé de l'effet. <img image='\a3\Data_F_Enoch\Images\CBRNSuit_ca.paa' width='355' height='200'/> <br/><br/> Un masque simple et un uniforme simple peuvent réduire de 65% à 80% la probabilité de subir des dommages.<img image='\A3\Data_F_Orange\Images\Respirator_ca.paa' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\box_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Décontaminer:</marker><br/> Vous pouvez utiliser une petite douche uniquement pour décontaminer les unités. Utilisez la grande douche pour les objets, les véhicules et les objets chargés comme cargaison. Pour les activer, il suffit de rester sous la douche. <img image='\A3\EditorPreviews_F_Enoch\Data\CfgVehicles\DeconShower_01_F.jpg' width='355' height='200'/> <br/><br/> <img image='\z\ace\addons\minedetector\ui\icon_mineDetectorOn.paa' width='20' height='20'/> <marker name='blufor_base'>Détection:</marker><br/> Vous pouvez analyser un objet, un véhicule ou un homme avec un drone ED-1E pour déterminer s'il est contaminé (Remarque: le drone ne sera jamais contaminé.). Vous pouvez également vérifier si vous vous trouvez dans une zone contaminée en utilisant un détecteur chimique (THREAT de 0,1 à 0,9: les objets contaminés sont aux alentours, THREAT à 1: vous êtes dans la plage de propagation (vous serez contaminé)). <img image='\a3\Data_F_Enoch\Images\ChemicalDetector_ca.paa' width='355' height='200'/> @@ -1545,7 +1549,7 @@ Civilians get contaminated by a chemical agent around %1. They are requesting your help to decontaminate those civilans with a little shower. To locate civilians go to the subtask, follow red blood drop and use your chemical detector. - %1 附近的平民感染了一种化学试剂。平民请求您使用小型淋浴器来净化受感染的村民。要确定平民的位置,请查看次级任务,跟随红色的血滴并使用化学探测器。 + %1 附近的平民感染了一种化学试剂。平民请求您使用小型淋浴器来净化受感染的村民。要确定平民的位置, 请查看次级任务, 跟随红色的血滴并使用化学探测器。 Decontaminate this civilian From 77ad3feac7932db92e3c6c51d2f201f38a2e702f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 20 Oct 2021 21:58:18 +0200 Subject: [PATCH 242/354] FIX: desactivation not working --- .../core/fnc/delay/waitAndExecute.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf index 560a63371..ed05471af 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - [] call btc_delay_fnc_waitAndExecute; + [{systemChat _this}, "hello", 0] call btc_delay_fnc_waitAndExecute; (end) Author: @@ -25,11 +25,11 @@ Author: [{ params [ ["_code", {}, [{}]], - ["_parameter", [], [[]]], + ["_parameters", [], [[]]], ["_delay", 0, [0]] ]; if (_delay isEqualTo 0) exitWith {_parameters call _code}; - [_code, _parameter, btc_delay_time + _delay] call CBA_fnc_waitAndExecute; + [_code, _parameters, btc_delay_time + _delay] call CBA_fnc_waitAndExecute; }, _this, btc_delay_time] call CBA_fnc_waitAndExecute; From fce112eb409dafdf60a810b05ce6b004d1b0fd13 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 23 Oct 2021 12:30:14 +0200 Subject: [PATCH 243/354] Add reinforcement to cache when number of enemi is low around it --- .../core/fnc/city/activate.sqf | 26 +++++------ .../core/fnc/city/send.sqf | 44 +++++++++++++++++++ .../core/fnc/compile.sqf | 1 + 3 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/send.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 50f5cb2c9..e3db70790 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -201,27 +201,26 @@ if (_city getVariable ["spawn_more", false]) then { ] call btc_mil_fnc_create_group; }; if (btc_p_veh_armed_spawn_more) then { - private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; - for "_i" from 1 to (1 + round random 2) do { - [[_closest, [_city, _spawningRadius/3] call CBA_fnc_randPos, 1, selectRandom btc_type_motorized_armed], btc_mil_fnc_send] call btc_delay_fnc_exec; - }; + [[_city, _spawningRadius/3, 1, btc_type_motorized_armed, 1 + round random 2], btc_city_fnc_send] call btc_delay_fnc_exec; }; }; if ( (btc_cache_pos isNotEqualTo []) && - {!(btc_cache_obj getVariable ["btc_cache_unitsSpawned", false])} -) then { - if (_city inArea [btc_cache_pos, _cachingRadius, _cachingRadius, 0, false]) then { + {_city inArea [btc_cache_pos, _cachingRadius, _cachingRadius, 0, false]} +) then { + if (btc_cache_obj getVariable ["btc_cache_unitsSpawned", false]) then { + [[_city, _spawningRadius/3], { + if (count (btc_cache_pos nearEntities ["Man", 30]) > 3) exitWith {}; + _this call btc_city_fnc_send; + }] call btc_delay_fnc_exec; + } else { btc_cache_obj setVariable ["btc_cache_unitsSpawned", true]; [btc_cache_pos, 8, 3, "HOUSE"] call btc_mil_fnc_create_group; [btc_cache_pos, 60, 4, "SENTRY"] call btc_mil_fnc_create_group; if (btc_p_veh_armed_spawn_more) then { - private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; - for "_i" from 1 to (1 + round random 3) do { - [[_closest, [_city, _spawningRadius/3] call CBA_fnc_randPos, 1, selectRandom btc_type_motorized_armed], btc_mil_fnc_send] call btc_delay_fnc_exec; - }; + [[_city, _spawningRadius/3, 1, btc_type_motorized_armed, 1 + round random 3], btc_city_fnc_send] call btc_delay_fnc_exec; }; }; }; @@ -246,10 +245,7 @@ if (_has_ho && {!(_city getVariable ["ho_units_spawned", false])}) then { }; }; if (btc_p_veh_armed_ho) then { - private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity; - for "_i" from 1 to (2 + round random 3) do { - [[_closest, [_pos, _spawningRadius/3] call CBA_fnc_randPos, 1, selectRandom btc_type_motorized_armed], btc_mil_fnc_send] call btc_delay_fnc_exec; - }; + [[_city, _spawningRadius/3, 1, btc_type_motorized_armed, 2 + round random 3], btc_city_fnc_send] call btc_delay_fnc_exec; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/send.sqf new file mode 100644 index 000000000..0f437e7ca --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/send.sqf @@ -0,0 +1,44 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_city_fnc_send + +Description: + Send a group of units to a location then call btc_data_fnc_add_group. If player is around, initiate patrol around the destination, ifnot save in database and delete units. + +Parameters: + _dest - Destination. [Array, Object] + _spawningRadius - Random area for destination. [Number] + _typeOf_patrol - Infantry or motorized. [String] + _veh_types - Vehicle types for motorized. [String] + _sendMultipleGroup - Number of group to send. [Number] + +Returns: + _group - Created group. [Group] + +Examples: + (begin example) + [allPlayers#0, getPos (allPlayers#0)] call btc_city_fnc_send + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_dest", [0, 0, 0], [[], objNull]], + ["_spawningRadius", 0, [0]], + ["_typeOf_patrol", 0, [0]], + ["_veh_types", [], [[]]], + ["_sendMultipleGroup", 1, [1]], +]; + +private _closest = [ + _start, + btc_city_all select {!(_x getVariable ["active", false])}, + false +] call btc_fnc_find_closecity; + +for "_i" from 1 to _sendMultipleGroup do { + [_closest, [_start, _spawningRadius/3] call CBA_fnc_randPos, _typeOf_patrol, selectRandom _veh_types] call btc_mil_fnc_send; +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 6df375b2a..8d513be11 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -46,6 +46,7 @@ if (isServer) then { btc_city_fnc_cleanUp = compileScript ["core\fnc\city\cleanUp.sqf"]; btc_city_fnc_trigger_free_condition = compileScript ["core\fnc\city\trigger_free_condition.sqf"]; btc_city_fnc_getHouses = compileScript ["core\fnc\city\getHouses.sqf"]; + btc_city_fnc_send = compileScript ["core\fnc\city\send.sqf"]; //CIV btc_civ_fnc_add_weapons = compileScript ["core\fnc\civ\add_weapons.sqf"]; From f4e64176477c8b2a7f44dc688382e54c14e009f0 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 23 Oct 2021 12:56:00 +0200 Subject: [PATCH 244/354] target the cahce and not the city --- .../core/fnc/city/activate.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/send.sqf | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index e3db70790..0f6cab8e8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -210,7 +210,7 @@ if ( {_city inArea [btc_cache_pos, _cachingRadius, _cachingRadius, 0, false]} ) then { if (btc_cache_obj getVariable ["btc_cache_unitsSpawned", false]) then { - [[_city, _spawningRadius/3], { + [[btc_cache_pos, 5], { if (count (btc_cache_pos nearEntities ["Man", 30]) > 3) exitWith {}; _this call btc_city_fnc_send; }] call btc_delay_fnc_exec; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/send.sqf index 0f437e7ca..5445e57a8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/send.sqf @@ -30,15 +30,15 @@ params [ ["_spawningRadius", 0, [0]], ["_typeOf_patrol", 0, [0]], ["_veh_types", [], [[]]], - ["_sendMultipleGroup", 1, [1]], + ["_sendMultipleGroup", 1, [1]] ]; private _closest = [ - _start, + _dest, btc_city_all select {!(_x getVariable ["active", false])}, false ] call btc_fnc_find_closecity; for "_i" from 1 to _sendMultipleGroup do { - [_closest, [_start, _spawningRadius/3] call CBA_fnc_randPos, _typeOf_patrol, selectRandom _veh_types] call btc_mil_fnc_send; + [_closest, [_dest, _spawningRadius/3] call CBA_fnc_randPos, _typeOf_patrol, selectRandom _veh_types] call btc_mil_fnc_send; }; From d18d45829218b2b57c092864521c9d7612894437 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 23 Oct 2021 13:50:02 +0200 Subject: [PATCH 245/354] Tweak raduce of detection --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 0f6cab8e8..9c01d5868 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -211,7 +211,7 @@ if ( ) then { if (btc_cache_obj getVariable ["btc_cache_unitsSpawned", false]) then { [[btc_cache_pos, 5], { - if (count (btc_cache_pos nearEntities ["Man", 30]) > 3) exitWith {}; + if (count (btc_cache_pos nearEntities ["Man", 200]) > 6) exitWith {}; _this call btc_city_fnc_send; }] call btc_delay_fnc_exec; } else { From 79259517a07cef913b20af04fb1df381c047a0ec Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 24 Oct 2021 08:33:03 +0200 Subject: [PATCH 246/354] Remove btc_fnc_find_veh_with_turret --- .../core/def/mission.sqf | 26 ++++---- .../core/fnc/common/find_veh_with_turret.sqf | 66 ------------------- .../core/fnc/compile.sqf | 1 - .../core/fnc/mil/class.sqf | 6 +- 4 files changed, 16 insertions(+), 83 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 6bec9b542..0c13057a2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -433,20 +433,6 @@ btc_player_side = west; btc_respawn_marker = "respawn_west"; //Log -private _rearming_static = -[ - //"Static" -] + (_allClassSorted select {( - _x isKindOf "GMG_TriPod" || - {_x isKindOf "StaticMortar"} || - {_x isKindOf "HMG_01_base_F"} || - {_x isKindOf "AA_01_base_F"} || - {_x isKindOf "AT_01_base_F"}) && { - getNumber (_cfgVehicles >> _x >> "side") isEqualTo ([east, west, independent, civilian] find btc_player_side) - } -}); -([_rearming_static] call btc_fnc_find_veh_with_turret) params ["_rearming_static"]; - btc_construction_array = [ [ @@ -484,7 +470,17 @@ btc_construction_array = "Land_PortableLight_double_F", "Land_Pod_Heli_Transport_04_medevac_black_F" ], - _rearming_static, + [ + //"Static" + ] + (_allClassSorted select {( + _x isKindOf "GMG_TriPod" || + {_x isKindOf "StaticMortar"} || + {_x isKindOf "HMG_01_base_F"} || + {_x isKindOf "AA_01_base_F"} || + {_x isKindOf "AT_01_base_F"}) && { + getNumber (_cfgVehicles >> _x >> "side") isEqualTo ([east, west, independent, civilian] find btc_player_side) + } + }), [ //"Ammobox" "Land_WoodenBox_F" diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf deleted file mode 100644 index 81587a91a..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf +++ /dev/null @@ -1,66 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_fnc_find_veh_with_turret - -Description: - Find turret in a vehicle. - -Parameters: - _vehicles - Array of vehicles or vehicles class name. [Array] - -Returns: - _array - Array of vehicles with turrets and corresponding magazines. - -Examples: - (begin example) - _array = ["B_Heli_Transport_03_F"] call btc_fnc_find_veh_with_turret; - (end) - -Author: - Vdauphin - ----------------------------------------------------------------------------- */ - -params [ - ["_vehicles", [], [[]]] -]; - -private _typeOf_vehicles = if ((_vehicles select 0) isEqualType objNull) then { - _vehicles apply {typeOf _x} -} else { - _vehicles -}; - -_typeOf_vehicles = _typeOf_vehicles arrayIntersect _typeOf_vehicles; - -private _magazines = _typeOf_vehicles apply { - private _vehicle = _x; - [ - _vehicle, - [_vehicle] call ace_rearm_fnc_getAllRearmTurrets apply { - [_vehicle, _x] call ace_rearm_fnc_getTurretConfigMagazines; - } - ] -}; - -private _magazines_clean = _magazines select {(_x select 1) isNotEqualTo [[]]}; - -private _vehicles_with_turrets = _magazines_clean apply {_x select 0}; -_magazines_clean = _magazines_clean apply {_x select 1}; - -_magazines_clean = _magazines_clean apply { - private _vehicle_magazines = _x; - private _array = []; - { - _array append _x; - } forEach _vehicle_magazines; - _array -}; - -private _magazines_clean_array = []; -{ - _magazines_clean_array append _x; -} forEach _magazines_clean; - - -[_vehicles_with_turrets, _magazines_clean_array arrayIntersect _magazines_clean_array] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 6df375b2a..0ddf8afe4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -223,7 +223,6 @@ if (isServer) then { btc_cache_fnc_hd = compileScript ["core\fnc\cache\hd.sqf"]; //COMMON -btc_fnc_find_veh_with_turret = compileScript ["core\fnc\common\find_veh_with_turret.sqf"]; btc_fnc_get_class = compileScript ["core\fnc\common\get_class.sqf"]; btc_fnc_randomize_pos = compileScript ["core\fnc\common\randomize_pos.sqf"]; btc_fnc_getHouses = compileScript ["core\fnc\common\getHouses.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf index 0ff676a82..2c0318570 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf @@ -104,7 +104,11 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { _allclass_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")} } ); - _type_motorized_armed append (([_allclass_f select {((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car"))}] call btc_fnc_find_veh_with_turret) select 0); + _type_motorized_armed append ( + [_allclass_f select { + ((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car")) + }] call BIS_fnc_allTurrets isNotEqualTo [] + ); //Static _type_mg append (_allclass_f select {_x isKindOf "StaticMGWeapon"}); From 7c6f655b58820d951ea1337f2913aa329b6682e4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 24 Oct 2021 10:20:02 +0200 Subject: [PATCH 247/354] fix syntaxe error --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf index 2c0318570..7c42bd2fa 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf @@ -105,9 +105,10 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { } ); _type_motorized_armed append ( - [_allclass_f select { - ((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car")) - }] call BIS_fnc_allTurrets isNotEqualTo [] + _allclass_f select { + ((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car")) && + {_x call BIS_fnc_allTurrets isNotEqualTo []} + } ); //Static From b240db74d4c5c838cca5cd180b62ad750fed1ece Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 24 Oct 2021 11:36:14 +0200 Subject: [PATCH 248/354] Use previous behavior --- .../core/fnc/city/activate.sqf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 9c01d5868..121569498 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -211,14 +211,15 @@ if ( ) then { if (btc_cache_obj getVariable ["btc_cache_unitsSpawned", false]) then { [[btc_cache_pos, 5], { - if (count (btc_cache_pos nearEntities ["Man", 200]) > 6) exitWith {}; - _this call btc_city_fnc_send; + if (count (btc_cache_pos nearEntities ["Man", 50]) > 3) exitWith {}; + [btc_cache_pos, 8, 3, "HOUSE"] call btc_mil_fnc_create_group; + [btc_cache_pos, 50, 4, "SENTRY"] call btc_mil_fnc_create_group; }] call btc_delay_fnc_exec; } else { btc_cache_obj setVariable ["btc_cache_unitsSpawned", true]; [btc_cache_pos, 8, 3, "HOUSE"] call btc_mil_fnc_create_group; - [btc_cache_pos, 60, 4, "SENTRY"] call btc_mil_fnc_create_group; + [btc_cache_pos, 50, 4, "SENTRY"] call btc_mil_fnc_create_group; if (btc_p_veh_armed_spawn_more) then { [[_city, _spawningRadius/3, 1, btc_type_motorized_armed, 1 + round random 3], btc_city_fnc_send] call btc_delay_fnc_exec; }; From f20e605e13af3b470c4afdddb6c6a8f1cbb319a6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 24 Oct 2021 17:03:43 +0200 Subject: [PATCH 249/354] revert the change https://github.com/Vdauphin/HeartsAndMinds/pull/1196 --- .../core/fnc/tow/ropeCreate.sqf | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf index 4f49849c0..517064d63 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf @@ -58,16 +58,13 @@ _vehicleSelected attachTo [_tower, _attachTo]; private _model_rear_tower = ([_tower] call btc_tow_fnc_hitch_points) select 1; private _model_front_selected = ([_vehicleSelected] call btc_tow_fnc_hitch_points) select 0; private _selected_front_relativeToTower = _tower worldToModel (_vehicleSelected modelToWorld _model_front_selected); -private _helper = createVehicle ["CBA_NamespaceDummy", _vehicleSelected modelToWorld _model_front_selected, [], 0, "CAN_COLLIDE"]; // Need helper since 2.06 https://feedback.bistudio.com/T161256 -_helper attachTo [_tower, _selected_front_relativeToTower]; -private _rope1 = ropeCreate [_tower, _model_rear_tower, _helper, [-0.4, 0, 0]]; -private _rope2 = ropeCreate [_tower, _model_rear_tower, _helper, [0.4, 0, 0]]; +private _rope1 = ropeCreate [_tower, _model_rear_tower, _tower, _selected_front_relativeToTower vectorAdd [-0.4, 0, 0]]; +private _rope2 = ropeCreate [_tower, _model_rear_tower, _tower, _selected_front_relativeToTower vectorAdd [0.4, 0, 0]]; -[_tower, "RopeBreak", { - [_this, _thisArgs] call btc_tow_fnc_ropeBreak; - deleteVehicle (_thisArgs select 2) -}, - [_vehicleSelected, [_rope1, _rope2], _helper] +[ + _tower, "RopeBreak", + {[_this, _thisArgs] call btc_tow_fnc_ropeBreak}, + [_vehicleSelected, [_rope1, _rope2]] ] remoteExecCall ["CBA_fnc_addBISEventHandler", 2]; [_tower, getMass _tower + (getMass _vehicleSelected)/1.5] remoteExecCall ["setMass", _tower]; From a2eb0636a004994edf09802bcbe122fca424e574 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 24 Oct 2021 23:43:44 +0200 Subject: [PATCH 250/354] fix documentation --- docs/InGame-documentation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index 448728eb1..56a292948 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -25,9 +25,9 @@ Electromagnetic field from UAV are safe but EMP have a range of 500m where vehic You can detect the origin of electromagnetic field with spectrum devices. The amplitude of the peak depend on the distance and angle between the emiter and the antenna. The maximum range is 1000m. ## Door locked -###House doors: +### House doors: Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. -###Break locked door: +### Break locked door: You can still enter by breaking door lock with a wirecutter. ## Vehicles From 37b9bc6a4fca87aa1800460e706945df97dce2ac Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 26 Oct 2021 18:53:04 +0200 Subject: [PATCH 251/354] Add market and stall objects --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 0c13057a2..35d0fc7fe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -343,6 +343,8 @@ if (isServer) then { private _ieds = ["Land_GarbageContainer_closed_F", "Land_GarbageContainer_open_F", "Land_Portable_generator_F", "Land_WoodenBox_F", "Land_BarrelTrash_grey_F", "Land_Sacks_heap_F", "Land_Wreck_Skodovka_F", "Land_WheelieBin_01_F", "Land_GarbageBin_03_F"] + btc_type_pallet + btc_type_barrel + (_allClassSorted select { _x isKindOf "GasTank_base_F" || {_x isKindOf "Garbage_base_F"} || + {_x isKindOf "Stall_base_F"} || + {_x isKindOf "Market_base_F"} || (_x isKindOf "Constructions_base_F" && { "bricks" in toLower _x @@ -353,7 +355,7 @@ if (isServer) then { "offroad" in toLower _x }) }); - btc_type_ieds = _ieds - ["Land_Garbage_line_F","Land_Garbage_square3_F","Land_Garbage_square5_F"]; + btc_type_ieds = _ieds - ["Land_Garbage_line_F","Land_Garbage_square3_F","Land_Garbage_square5_F", "Land_MarketShelter_F", "Land_ClothShelter_01_F", "Land_ClothShelter_02_F"]; btc_model_ieds = btc_type_ieds apply {(toLower getText(_cfgVehicles >> _x >> "model")) select [1]}; btc_type_blacklist = btc_type_tags + btc_type_flowers + ["UserTexture1m_F"]; publicVariable "btc_type_blacklist"; From 7ba32b443e992f94ad448c4709f5589401d537f6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 26 Oct 2021 20:40:16 +0200 Subject: [PATCH 252/354] Fix waitAndExecute header --- .../core/fnc/delay/waitAndExecute.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf index ed05471af..1b2ae7071 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf @@ -6,8 +6,8 @@ Description: Wait and execute a function with a _delay. Usefull when used after btc_delay_fnc_createVehicle. Parameters: - _parameters - Parameters to the function. [Array] _code - Code to execute. [Code] + _parameters - Parameters to the function. [Array] _delay - Delay of execution. [Number] Returns: From 3fdc70d88001683fb84a31a49cc3ed324659eece Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 29 Oct 2021 23:05:03 +0200 Subject: [PATCH 253/354] General clean up --- .../core/fnc/cache/create.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd.sqf | 2 +- .../core/fnc/city/activate.sqf | 6 +++--- .../core/fnc/common/checkArea.sqf | 6 +++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 2 +- .../core/fnc/eh/CuratorObjectPlaced.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf | 7 ++----- .../core/fnc/ied/checkLoop.sqf | 7 ++----- .../core/fnc/ied/effect_blurEffect.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf | 6 ++---- .../core/fnc/patrol/addWP.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf | 2 +- .../core/fnc/respawn/intro.sqf | 2 +- .../core/fnc/side/chemicalLeak.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf | 2 +- .../core/fnc/side/pandemic.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf | 2 +- .../core/fnc/spect/checkLoop.sqf | 2 +- 20 files changed, 27 insertions(+), 35 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf index 6c9269e73..340dca538 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf @@ -39,7 +39,7 @@ if (_p_chem) then { private _cacheType = selectRandom (btc_cache_type select 0); btc_cache_obj = _cacheType createVehicle _cache_pos; btc_cache_obj setPosATL _cache_pos; -btc_cache_obj setDir (random 360); +btc_cache_obj setDir random 360; clearWeaponCargoGlobal btc_cache_obj; clearItemCargoGlobal btc_cache_obj; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd.sqf index f46837e75..a8f68f33d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd.sqf @@ -36,7 +36,7 @@ params [ ["_instigator", objNull, [objNull]] ]; -private _explosive = (getNumber(configFile >> "cfgAmmo" >> _ammo >> "explosive") > 0); +private _explosive = getNumber (configFile >> "cfgAmmo" >> _ammo >> "explosive") > 0; if ( !(_cache getVariable ["btc_cache_fnc_hd_fired", false]) && diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 121569498..93f64a3d0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -181,7 +181,7 @@ if (btc_p_animals_group_ratio > 0) then { }); for "_i" from 1 to _numberOfAnimalsGroup do { private _pos = [_city, _spawningRadius/3] call CBA_fnc_randPos; - for "_i" from 1 to (round (random 3)) do { + for "_i" from 1 to (round random 3) do { [selectRandom btc_animals_type, [_pos, 6] call CBA_fnc_randPos, nil, _city] call btc_delay_fnc_createAgent; }; }; @@ -354,6 +354,6 @@ if (_numberOfCivVeh < _p_civ_max_veh) then { }; }; -if (btc_debug) then { - [format ["%1 - %2ms", _id, (serverTime - (_city getVariable ["serverTime", serverTime])) * 1000] , __FILE__, [btc_debug, false, true]] call btc_debug_fnc_message; +if (btc_debug || btc_debug_log) then { + [format ["%1 - %2ms", _id, (serverTime - (_city getVariable ["serverTime", serverTime])) * 1000] , __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/checkArea.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/checkArea.sqf index 41763c9c4..6912b783d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/checkArea.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/checkArea.sqf @@ -27,13 +27,13 @@ params [ ["_distance", 5, [0]] ]; -if ({ - !( +if ({!( _x isKindOf "Animal" || _x isKindOf "Module_F" || _x isKindOf "WeaponHolder" || _x isKindOf "DeconShower_01_sound_F" - )} count (nearestObjects [_create_obj, ["All"], _distance]) > 1) exitWith { + )} count (nearestObjects [_create_obj, ["All"], _distance]) > 1 +) exitWith { (localize "STR_BTC_HAM_LOG_BASICS_CLEARAREA") call CBA_fnc_notify; true }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 44fe4f3e9..9c288c4a6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -63,7 +63,7 @@ private _cities_status = []; if (btc_debug_log) then { [format ["ID %1 - IsOccupied %2", _x getVariable "id", _x getVariable "occupied"], __FILE__, [false]] call btc_debug_fnc_message; }; -} forEach (btc_city_all select {!(isNull _x)}); +} forEach (btc_city_all select {!isNull _x}); profileNamespace setVariable [format ["btc_hm_%1_cities", _name], +_cities_status]; //HIDEOUT diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/CuratorObjectPlaced.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/CuratorObjectPlaced.sqf index 6f926e04f..ae074d615 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/CuratorObjectPlaced.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/CuratorObjectPlaced.sqf @@ -26,7 +26,7 @@ params [ ["_object_placed", objNull, [objNull]] ]; -if !((_object_placed isKindOf "AllVehicles") || (_object_placed isKindOf "Module_F")) then { +if !((_object_placed isKindOf "allVehicles") || (_object_placed isKindOf "Module_F")) then { [_object_placed] remoteExecCall ["btc_log_fnc_init", 2]; if (btc_debug_log) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index dd2fd58ee..d32f8dc22 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -60,7 +60,7 @@ _player addEventHandler ["WeaponAssembled", { }] call CBA_fnc_addEventHandler; if (btc_p_chem) then { - // Add biopsy + // Add biopsy [missionNamespace, "probingEnded", btc_chem_fnc_biopsy] call BIS_fnc_addScriptedEventHandler; // Disable BI shower diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf index 0919b4942..93beec9b0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf @@ -29,11 +29,8 @@ if (_array isEqualTo []) exitWith {}; private _ieds = _array apply {_x call btc_ied_fnc_create}; -if (btc_debug) then { - [format ["START CITY ID %1", _city getVariable "id"], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; -}; -if (btc_debug_log) then { - [format ["START CITY ID %1", _city getVariable "id"], __FILE__, [false]] call btc_debug_fnc_message; +if (btc_debug || btc_debug_log) then { + [format ["START CITY ID %1", _city getVariable "id"], __FILE__, [btc_debug, btc_debug_log]] call btc_debug_fnc_message; }; private _ieds_check = _ieds select {(_x select 2) isNotEqualTo objNull}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf index 53981fc5a..4a646636f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/checkLoop.sqf @@ -68,11 +68,8 @@ Author: _city setVariable ["ieds", _data]; - if (btc_debug) then { - [format ["END CITY ID %1", _city getVariable "id"], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; - }; - if (btc_debug_log) then { - [format ["END CITY ID %1", _city getVariable "id"], __FILE__, [false]] call btc_debug_fnc_message; + if (btc_debug || btc_debug_log) then { + [format ["END CITY ID %1", _city getVariable "id"], __FILE__, [btc_debug, btc_debug_log]] call btc_debug_fnc_message; }; }, _this, 1] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf index aa02beaf9..83ca41836 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf @@ -26,7 +26,7 @@ params [ ["_caller", objNull, [objNull]] ]; -if (!isPlayer _caller) exitWith {}; +if !(isPlayer _caller) exitWith {}; if (alive _caller) then { private _distance = (getPos _caller) distance _pos; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf index f2d6d143e..407296319 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/hook.sqf @@ -27,12 +27,10 @@ params [ private _array = [_chopper] call btc_lift_fnc_getLiftable; private _cargo_array = nearestObjects [_chopper, _array, 30]; _cargo_array = _cargo_array - [_chopper]; -_cargo_array = _cargo_array select { - !( +_cargo_array = _cargo_array select {!( _x isKindOf "ACE_friesBase" OR _x isKindOf "ace_fastroping_helper" - ) -}; +)}; if (_cargo_array isEqualTo []) exitWith {}; private _cargo = _cargo_array select 0; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf index fec399dcd..193412ae2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf @@ -51,7 +51,7 @@ if (_vehicle isKindOf "Air") then { [_group, _pos, -1, "MOVE", _behaviorMode, _combatMode, "LIMITED", "STAG COLUMN", "", [0, 0, 0], 50] call CBA_fnc_addWaypoint; private _roadBlackList = []; - for "_i" from 0 to (2 + (floor (random 3))) do { + for "_i" from 0 to (2 + (floor random 3)) do { private _nearestRoad = [_pos getPos [100, random 360], 100, _roadBlackList] call BIS_fnc_nearestRoad; private _newPos = []; if (isNull _nearestRoad) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf index 3ea0c8641..edc023395 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf @@ -27,7 +27,7 @@ params [ ]; if (btc_debug || btc_debug_log) then { - [format ["GLOBAL %1 - CHANGE %2", btc_global_reputation, _reputation], __FILE__, [btc_debug, btc_debug_log]] call btc_debug_fnc_message; + [format ["GLOBAL %1 - CHANGE %2", btc_global_reputation, _reputation], __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; }; btc_global_reputation = btc_global_reputation + _reputation; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf index be9ea2767..007a3a482 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf @@ -47,7 +47,7 @@ if ( } ) exitWith {_dam}; -if (!isServer) exitWith { +if !(isServer) exitWith { _this remoteExecCall ["btc_rep_fnc_hd", 2]; _dam }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf index d448b30ca..7cf4f5145 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf @@ -40,7 +40,7 @@ private _array = [ ['\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa', _color, [_create_object_pos_x, _create_object_pos_y, _create_object_pos_z + 2.5], 0.9, 0.9, 0, "", 1], ['\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa', _color, _create_object_pos, 0.9, 0.9, 0, localize "STR_BTC_HAM_INTRO_LOGPOINT", 1] //Rearm/Repair and Objects ]; -if (!isNil "btc_veh_respawnable_1") then { +if !(isNil "btc_veh_respawnable_1") then { _array pushBack ['\A3\ui_f\data\map\vehicleicons\iconhelicopter_ca.paa', [0.7, 0, 0,1], getPos btc_veh_respawnable_1, 1.1, 1.1, 0, localize "STR_BTC_HAM_INTRO_ONLYRESPAWN", 1]; //Only Respawnable }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf index 7bfe55b9f..c1ad5e14e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf @@ -29,7 +29,7 @@ private _useful = btc_city_all select { !(_x getVariable ["occupied", false]) && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) }; -if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)});}; +if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!isNull _x});}; private _city = selectRandom _useful; private _pos = [getPos _city, 0, _city getVariable ["cachingRadius", 100], 30, false] call btc_fnc_findsafepos; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf index 424f34aa0..5c67a85f7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf @@ -28,7 +28,7 @@ private _useful = btc_city_all select { !isNull _x && !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) }; -if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)});}; +if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!isNull _x});}; private _city = selectRandom _useful; private _pos = [getPos _city, 0, _city getVariable ["cachingRadius", 100], 30, false] call btc_fnc_findsafepos; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf index 90b3f07fc..a313ca86c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf @@ -26,7 +26,7 @@ params [ private _minNumberOfSubTask = 2; private _useful = btc_city_all select { - !(isNull _x) && + !isNull _x && {_x getVariable ["type", ""] != "NameMarine"} && {!(_x getVariable ["active", false])} && { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf index fe8c74e10..9bcaf6de8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf @@ -29,7 +29,7 @@ private _useful = btc_city_all select { !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) }; -if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!(isNull _x)});}; +if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!isNull _x});}; private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/checkLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/checkLoop.sqf index ae4af579e..f9771483a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/checkLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/spect/checkLoop.sqf @@ -27,7 +27,7 @@ if !(btc_p_spect) exitWith {}; if (_emp isEqualTo []) exitWith {}; - private _vehiclesOn = vehicles select {isEngineOn _x && {_x isKindOf "AllVehicles"}}; + private _vehiclesOn = vehicles select {isEngineOn _x && {_x isKindOf "allVehicles"}}; private _vehiclesAround = []; { _vehiclesAround append (_vehiclesOn inAreaArray [getPosWorld _x, _range, _range]); From c9b508e70fee83c1ce8e4159306993cea65e8672 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 30 Oct 2021 15:16:27 +0200 Subject: [PATCH 254/354] Reduce the number of patrol and traffic This should avoid to reach too quickly the maximum of patrol and traffic --- .../core/fnc/city/activate.sqf | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 93f64a3d0..bb2679494 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -327,14 +327,9 @@ if (_civKilled isNotEqualTo []) then { btc_patrol_active = btc_patrol_active - [grpNull]; private _numberOfPatrol = count btc_patrol_active; if (_numberOfPatrol < _p_patrol_max) then { - private _offset = 0; - private _max = 2; - if (_has_en) then { - _max = 3; - _offset = 3/2; - }; - private _r = (_offset + random _max) min (_p_patrol_max - _numberOfPatrol); - for "_i" from 1 to round _r do { + private _min = [0, 1] select _has_en; + private _addMilPatrol = (_min + random 1) min (_p_patrol_max - _numberOfPatrol); + for "_i" from 1 to round _addMilPatrol do { private _group = createGroup btc_enemy_side; btc_patrol_active pushBack _group; _group setVariable ["no_cache", true]; @@ -345,8 +340,8 @@ if (_numberOfPatrol < _p_patrol_max) then { btc_civ_veh_active = btc_civ_veh_active - [grpNull]; private _numberOfCivVeh = count btc_civ_veh_active; if (_numberOfCivVeh < _p_civ_max_veh) then { - private _r = (3/2 + random 3) min (_p_civ_max_veh - _numberOfCivVeh); - for "_i" from 1 to round _r do { + private _addCivVeh = (random 2) min (_p_civ_max_veh - _numberOfCivVeh); + for "_i" from 1 to round _addCivVeh do { private _group = createGroup civilian; btc_civ_veh_active pushBack _group; _group setVariable ["no_cache", true]; From a9fc2091814554d1307b6ca81c64e34ddfecd355 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 30 Oct 2021 16:25:53 +0200 Subject: [PATCH 255/354] fix use btc_veh_fnc_addVehFromSQM not the btc_veh_fnc_addRespawnableFromSQM --- =BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 60225ea01..f720315aa 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -2265,7 +2265,7 @@ class Mission { position[]={7119.1475,319.94186,1145.6367}; }; - init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " _x call btc_veh_fnc_addVehFromSQM;" \n "} forEach (synchronizedObjects this);"; id=251; type="Logic"; atlOffset=57.17511; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index bf96005af..1038069d1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -2286,7 +2286,7 @@ class Mission { position[]={4182.6475,73.417297,3945.7617}; }; - init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; + init="{" \n " _x call btc_veh_fnc_addVehFromSQM;" \n "} forEach (synchronizedObjects this);"; id=251; type="Logic"; atlOffset=54.424332; From 2786d8b6e39101eb4c2fc1bf60ff3e1ab2593183 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 31 Oct 2021 12:47:05 +0100 Subject: [PATCH 256/354] Migrate to a proper function --- .../core/fnc/compile.sqf | 3 + .../core/fnc/tow/int.sqf | 68 +++++++++++++++++++ .../core/fnc/veh/init.sqf | 24 ++----- 3 files changed, 75 insertions(+), 20 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 3f7ec025c..7d8f829e7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -269,6 +269,9 @@ btc_rep_fnc_foodRemoved = compileScript ["core\fnc\rep\foodRemoved.sqf"]; //ARSENAL btc_arsenal_fnc_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; +//TOW +btc_tow_fnc_int = compileScript ["core\fnc\tow\int.sqf"]; + //VEH btc_veh_fnc_init = compileScript ["core\fnc\veh\init.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf new file mode 100644 index 000000000..4f289f3a2 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf @@ -0,0 +1,68 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_tow_fnc_int + +Description: + _tower ----rope--- (hook)_towed, Show feedback message when trying to tow a vehicle. + +Parameters: + _tower - Tower vehicle. [Object] + _towed - Towed vehicle. [Object] + +Returns: + _canTow - Can tow or not. [Boolean] + +Examples: + (begin example) + [typeOf cursorObject] call btc_tow_fnc_int; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_type", "", [""]] +]; + +private _action = [ + "Logistic", + localize "STR_BTC_HAM_ACTION_LOC_MAIN", + "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", + {}, + {isNull isVehicleCargo attachedto _target && isNull isVehicleCargo _target} +] call ace_interact_menu_fnc_createAction; +[_type, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; + +if ( + !(_type isKindOf "Helicopter") || + !(_type isKindOf "Plane") +) then { + _action = [ + "log_tow", + localize "STR_BTC_HAM_ACTION_VEHINIT_TOW", + "\z\ace\addons\attach\UI\attach_ca.paa", + {_target call btc_tow_fnc_ropeCreate;}, + {!isNull btc_tow_vehicleSelected && {btc_tow_vehicleSelected != _target}} + ] call ace_interact_menu_fnc_createAction; + [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; +}; + +_action = [ + "log_hook", + localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK", + "\z\ace\addons\attach\UI\attach_ca.paa", + {btc_tow_vehicleSelected = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, + {true} +] call ace_interact_menu_fnc_createAction; +[_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; + +_action = [ + "log_hook", + localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", + "\z\ace\addons\attach\UI\detach_ca.paa", + {_target call btc_tow_fnc_unhook;}, + {!isNull (_target getVariable ["btc_towing", objNull]);} +] call ace_interact_menu_fnc_createAction; +[_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index 67a5dc4bf..95875e5a8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -31,14 +31,7 @@ switch true do { case (_type isKindOf "UGV_02_Base_F") : {}; case (_type isKindOf "StaticWeapon") : {}; case (_type isKindOf "LandVehicle" || {_type isKindOf "Ship"}) : { - private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {isNull isVehicleCargo attachedto _target && isNull isVehicleCargo _target}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_tow", localize "STR_BTC_HAM_ACTION_VEHINIT_TOW", "\z\ace\addons\attach\UI\attach_ca.paa", {_target call btc_tow_fnc_ropeCreate;}, {!isNull btc_tow_vehicleSelected && {btc_tow_vehicleSelected != _target}}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK", "\z\ace\addons\attach\UI\attach_ca.paa", {btc_tow_vehicleSelected = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, {true}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; + _type call btc_tow_fnc_int; private _action = ["btc_flag_deployVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_DEPLOYFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { btc_p_flag > 0 && @@ -56,12 +49,8 @@ switch true do { [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; }; case (_type isKindOf "Helicopter") : { - private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK", "\z\ace\addons\attach\UI\attach_ca.paa", {btc_tow_vehicleSelected = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, {true}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; + _type call btc_tow_fnc_int; + //Lift _action = ["Deploy_ropes", localize "STR_ACE_Fastroping_Interaction_deployRopes", "\A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa", {[] spawn btc_lift_fnc_deployRopes;}, {!btc_ropes_deployed && {(driver vehicle player) isEqualTo player} && {(getPosATL player) select 2 > 4}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; @@ -84,12 +73,7 @@ switch true do { [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; }; case (_type isKindOf "Plane") : { - private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK", "\z\ace\addons\attach\UI\attach_ca.paa", {btc_tow_vehicleSelected = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, {true}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; - [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; + _type call btc_tow_fnc_int; }; }; From 2f3ca23bfe9ca2705666f4aa0cf3134736cf3116 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 31 Oct 2021 12:57:54 +0100 Subject: [PATCH 257/354] Add btc_flag_fnc_int --- .../core/fnc/compile.sqf | 3 ++ .../core/fnc/flag/int.sqf | 41 +++++++++++++++++++ .../core/fnc/veh/init.sqf | 30 +------------- 3 files changed, 46 insertions(+), 28 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/int.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 3f7ec025c..337e69fda 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -239,6 +239,9 @@ btc_debug_fnc_message = compileScript ["core\fnc\debug\message.sqf"]; //EH btc_eh_fnc_trackItem = compileScript ["core\fnc\eh\trackItem.sqf"]; +//FLAG +btc_flag_fnc_int = compileScript ["core\fnc\flag\int.sqf"]; + //CIV btc_civ_fnc_class = compileScript ["core\fnc\civ\class.sqf"]; btc_civ_fnc_addWP = compileScript ["core\fnc\civ\addWP.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/int.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/int.sqf new file mode 100644 index 000000000..7374787fa --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/flag/int.sqf @@ -0,0 +1,41 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_flag_fnc_int + +Description: + Add flag interaction for vehicle. + +Parameters: + _type - Type of vehicle. [String] + +Returns: + +Examples: + (begin example) + [typeOf cursorObject] call btc_flag_fnc_int; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_type", "", [""]] +]; + +private _action = ["btc_flag_deployVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_DEPLOYFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { + btc_p_flag > 0 && + {getForcedFlagTexture _target isEqualTo ""} && + {(driver vehicle player) isEqualTo player} +}, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; +[_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; + +_action = ["btc_flag_cutVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { + _target forceFlagTexture ""; +}, { + btc_p_flag > 0 && + {getForcedFlagTexture _target isNotEqualTo ""} && + {(driver vehicle player) isEqualTo player} +}] call ace_interact_menu_fnc_createAction; +[_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf index 67a5dc4bf..e26f13c0e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/init.sqf @@ -40,20 +40,7 @@ switch true do { _action = ["log_hook", localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - private _action = ["btc_flag_deployVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_DEPLOYFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { - btc_p_flag > 0 && - {getForcedFlagTexture _target isEqualTo ""} && - {(driver vehicle player) isEqualTo player} - }, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["btc_flag_cutVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { - _target forceFlagTexture ""; - }, { - btc_p_flag > 0 && - {getForcedFlagTexture _target isNotEqualTo ""} && - {(driver vehicle player) isEqualTo player} - }] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; + _type call btc_flag_fnc_int; }; case (_type isKindOf "Helicopter") : { private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; @@ -68,20 +55,7 @@ switch true do { _action = ["Cut_ropes", localize "STR_ACE_Fastroping_Interaction_cutRopes", "\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa", {[] call btc_lift_fnc_destroyRopes;}, {btc_ropes_deployed && {(driver vehicle player) isEqualTo player}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; - private _action = ["btc_flag_deployVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_DEPLOYFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", {}, { - btc_p_flag > 0 && - {getForcedFlagTexture _target isEqualTo ""} && - {(driver vehicle player) isEqualTo player} - }, btc_flag_fnc_deploy] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["btc_flag_cutVeh", localize "STR_BTC_HAM_ACTION_VEHINIT_CUTFLAG", "\A3\ui_f\data\map\markers\handdrawn\flag_CA.paa", { - _target forceFlagTexture ""; - }, { - btc_p_flag > 0 && - {getForcedFlagTexture _target isNotEqualTo ""} && - {(driver vehicle player) isEqualTo player} - }] call ace_interact_menu_fnc_createAction; - [_type, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; + _type call btc_flag_fnc_int; }; case (_type isKindOf "Plane") : { private _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; From fd9b122b5d4ded630f7c0bd38672eac950bcb81e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 31 Oct 2021 17:07:48 +0100 Subject: [PATCH 258/354] Invert tower and towed --- .../core/def/mission.sqf | 2 +- .../core/fnc/lift/deployRopes.sqf | 2 +- .../core/fnc/tow/ViV.sqf | 2 +- .../core/fnc/tow/check.sqf | 2 +- .../core/fnc/tow/int.sqf | 24 +++++----- .../core/fnc/tow/ropeCreate.sqf | 6 +-- .../stringtable.xml | 45 +++++-------------- 7 files changed, 29 insertions(+), 54 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 35d0fc7fe..908e5ffb2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -528,7 +528,7 @@ btc_log_def_can_load = _cContainers; btc_log_def_placeable = (_cFortifications + _cContainers + _cSupplies + _cFOB + _cDecontamination + _cVehicle_logistic + flatten btc_supplies_mat + btc_type_hazmat) select { getNumber(_cfgVehicles >> _x >> "ace_dragging_canCarry") isEqualTo 0 }; -btc_tow_vehicleSelected = objNull; +btc_tow_vehicleTowing = objNull; btc_log_placing_max_h = 12; btc_log_placing = false; btc_log_obj_created = []; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf index b1f864cc6..2e6e8f9a2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/lift/deployRopes.sqf @@ -40,7 +40,7 @@ btc_lift_action_hud = player addAction ["" + (localize "STR [] call btc_lift_fnc_hud; }; }, [], -8, false, false, "", "true"]; //"" + ("Hud On\Off") + "" -btc_lift_action = player addAction ["" + (localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK") + "",{[] call btc_lift_fnc_hook}, [], 9, true, false, "", "[] call btc_lift_fnc_check"]; //"" + ("Hook") + "" +btc_lift_action = player addAction ["" + (localize "STR_BTC_HAM_LOG_HOOK") + "",{[] call btc_lift_fnc_hook}, [], 9, true, false, "", "[] call btc_lift_fnc_check"]; //"" + ("Hook") + "" waitUntil {sleep 5; (vehicle player isEqualTo player)}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf index 37af04257..9eb91e34a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ViV.sqf @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [btc_tow_vehicleSelected, cursorObject] call btc_tow_fnc_ViV; + [cursorObject, btc_tow_vehicleTowing] call btc_tow_fnc_ViV; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf index fe0bb8de8..6bb548392 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _canTow = [cursorObject, btc_tow_vehicleSelected] call btc_tow_fnc_check; + _canTow = [btc_tow_vehicleTowing, cursorObject] call btc_tow_fnc_check; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf index 4f289f3a2..34e837231 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf @@ -3,14 +3,12 @@ Function: btc_tow_fnc_int Description: - _tower ----rope--- (hook)_towed, Show feedback message when trying to tow a vehicle. + Add towing interactions. Parameters: - _tower - Tower vehicle. [Object] - _towed - Towed vehicle. [Object] + _type - Type of vehicle. [String] Returns: - _canTow - Can tow or not. [Boolean] Examples: (begin example) @@ -41,26 +39,26 @@ if ( ) then { _action = [ "log_tow", - localize "STR_BTC_HAM_ACTION_VEHINIT_TOW", - "\z\ace\addons\attach\UI\attach_ca.paa", - {_target call btc_tow_fnc_ropeCreate;}, - {!isNull btc_tow_vehicleSelected && {btc_tow_vehicleSelected != _target}} + localize "STR_ACE_Towing_displayName", + "", + {btc_tow_vehicleTowing = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, + {isNull (_target getVariable ["btc_towing", objNull]);} ] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; }; _action = [ "log_hook", - localize "STR_BTC_HAM_ACTION_VEHINIT_HOOK", + localize "STR_ACE_Towing_attach", "\z\ace\addons\attach\UI\attach_ca.paa", - {btc_tow_vehicleSelected = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, - {true} + {[btc_tow_vehicleTowing, _target] call btc_tow_fnc_ropeCreate;}, + {!isNull btc_tow_vehicleTowing && {btc_tow_vehicleTowing != _target}} ] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; _action = [ - "log_hook", - localize "STR_BTC_HAM_ACTION_VEHINIT_UHOOK", + "log_unhook", + localize "STR_ACE_Towing_detach", "\z\ace\addons\attach\UI\detach_ca.paa", {_target call btc_tow_fnc_unhook;}, {!isNull (_target getVariable ["btc_towing", objNull]);} diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf index 4f49849c0..083c824b0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/ropeCreate.sqf @@ -23,7 +23,7 @@ Author: params [ ["_tower", objNull, [objNull]], - ["_vehicleSelected", btc_tow_vehicleSelected, [objNull]] + ["_vehicleSelected", objNull, [objNull]] ]; if !([_tower, _vehicleSelected] call btc_tow_fnc_check) exitWith {}; @@ -41,7 +41,7 @@ if (_alreadyLoaded) then { }; if (_canViV_wreck) exitWith { [_vehicleSelected, _tower] remoteExecCall ["btc_tow_fnc_ViV", 2]; - btc_tow_vehicleSelected = objNull; + btc_tow_vehicleTowing = objNull; }; private _model_selected = (0 boundingBoxReal _vehicleSelected) select 1; @@ -73,4 +73,4 @@ private _rope2 = ropeCreate [_tower, _model_rear_tower, _helper, [0.4, 0, 0]]; [_tower, getMass _tower + (getMass _vehicleSelected)/1.5] remoteExecCall ["setMass", _tower]; _tower setVariable ["btc_towing", _vehicleSelected, true]; _vehicleSelected setVariable ["btc_towing", _tower, true]; -btc_tow_vehicleSelected = objNull; +btc_tow_vehicleTowing = objNull; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index dd8838e49..3adfb4b2c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -177,11 +177,9 @@ - <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Cargo System:</marker><br/> Use ACE 3 Cargo system. <br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Towing system:</marker><br/> To tow a vehicle interact with it and select the option 'HOOK'.<br/>After that place the tow vehicle in front of it and select 'TOW' in the interaction menu.<br/> If the two vehicles are too far away or the vehicle can't tow that load (Car can't tow truck or tank), the option will be disabled.<br/> To unhook interact with one of the two vehicles and select the option 'UNHOOK'.<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\VehicleCargoIconOn2_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Vehicle in vehicle system:</marker><br/> BI Vehicle in Vehicle (ViV) system is extended to allow load of any vehicle in a vehicle. To move ViV use the towing system. To unload, move in driver seat of the tower vehicle and select in scroll menu "unload all objects".<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /><br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Place option:</marker><br/> With this option you can move heavy objects to build small outpost or base.<br/> When you select the option an hint will show all the keys required to move the object. - <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Fracht-System:</marker><br/>Siehe ACE3 Dokumentation. <br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Abschleppsystem:</marker><br/> Um ein Fahrzeug abzuschleppen muss man mit diesem interagieren und 'EINHACKEN' auswählen.<br/>Als nächstes muss man das Zugfahrzeug vor das abzuschleppende Fahrzeug stellen und über das Interagtionsmenü die Option 'ABSCHLEPPEN' aktivieren.<br/> Zu beachten ist dabei, dass die beiden Fahrzeuge nicht zu weit von einander entfernt sein dürfen. Ebenso ist daruf zu achten, dass das Zugfahrzeug auch das andere Fahrzeug abschleppen kann (zB. Autos können keine Lkw/Panzer abschleppen).<br/> Um das Abschleppseil wieder zu entfernen muss man einen bei einem der beiden Fahrzeuge die Option 'AUSHACKEN' auswählen.<br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Platzierung von Objekten:</marker><br/> Mit dieser Option können Sie schwere Objekte bewegen, um einen kleinen Außenposten oder eine Basis zu bauen.<br/> Wenn Sie die Option auswählen, zeigt ein Hinweis alle Tasten an, die zum Verschieben des Objekts erforderlich sind.<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /> - <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Cargo System:</marker><br/> Use ACE 3 Cargo system. <br/><br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Towing system:</marker><br/> Para rebocar um veículo, interaja com ele e selecione a opção "GANCHO".<br/> Depois disso, coloque o veículo de reboque na frente dele e selecione "REBOCAR" no menu de interação.<br/> Se os dois veículos estiverem muito distantes ou o veículo não puder rebocar essa carga (o carro não poderá rebocar o caminhão ou o tanque), a opção será desativada.<br/> Para desengatar, interaja com um dos dois veículos e selecione a opção "DESENGANCHAR".<br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Place option:</marker><br/> Com esta opção, você pode mover objetos pesados para construir um posto avançado ou uma base pequena.<br/> Quando você selecionar a opção, uma dica mostrará todas as ações necessárias para mover o objeto.<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /> + <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Cargo System:</marker><br/> Use ACE 3 Cargo system. <br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Towing system:</marker><br/> To tow a vehicle interact with the tower and select the option 'Towing'.<br/>After that, place the tower vehicle in front of it and select 'Attach Tow Rope' in the interaction menu.<br/> If the two vehicles are too far away or the vehicle can't tow that load (Car can't tow truck or tank), the option will be disabled.<br/> To unhook interact with one of the two vehicles and select the option 'UNHOOK'.<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\VehicleCargoIconOn2_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Vehicle in vehicle system:</marker><br/> BI Vehicle in Vehicle (ViV) system is extended to allow load of any vehicle in a vehicle. To move ViV use the towing system. To unload, move in driver seat of the tower vehicle and select in scroll menu "unload all objects".<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /><br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Place option:</marker><br/> With this option you can move heavy objects to build small outpost or base.<br/> When you select the option an hint will show all the keys required to move the object. <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>货运系统:</marker><br/> 使用ACE3货运系统。<br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>牵引系统:</marker><br/> 如需牵引一辆载具, 与其互动并选择"启用牵引"。<br/>然后, 将牵引车辆(前车)置于被牵引车辆(后车)前方, 并在互动菜单中选择"牵引"。<br/> 如果两辆车的距离过远, 或前车无法牵引这一载荷(比如汽车(Car)无法牵引卡车(Truck)或坦克(Tank)), 则该选项不可用。<br/> 如需取消牵引, 与两车之一互动并选择"取消牵引"。<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\VehicleCargoIconOn2_ca.paa' width='20' height='20'/> <marker name='blufor_base'>托运系统:</marker><br/> 本任务扩展了BI内置的托运(ViV)系统, 使其支持托运任何类型的载具。通过和牵引系统相同的方式来使用载具托运功能。如需取消托运, 进入托运车辆(前车)的驾驶员座位, 选择滚轮菜单中的"卸载货物"。<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /><br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>物体放置:</marker><br/> 您可以使用该选项来移动重物, 从而建造一个小的前哨或基地。<br/> 选择该选项后, 移动对象所需键位的提示将会出现。 - <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système de cargaison:</marker><br/> Utilisez le système ACE 3 Cargo. <br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système de remorquage:</marker><br/> Pour remorquer un véhicule, interagissez avec lui et sélectionnez l'option «ACCROCHER».<br/>Ensuite, placez le véhicule remorqueur devant lui et sélectionnez «REMORQUER» dans le menu d'interaction.<br/> Si les deux véhicules sont trop éloignés ou si le véhicule ne peut pas remorquer cette charge (la voiture ne peut pas dépanner ou remorquer le réservoir), l'option sera désactivée.<br/> Pour décrocher interagissez avec l'un des deux véhicules et sélectionnez l'option «DÉCROCHER».<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\VehicleCargoIconOn2_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Vehicle in vehicle system:</marker><br/> Le système BI Vehicle in Vehicle (ViV) est étendu pour permettre le chargement de n'importe quel véhicule dans un véhicule. Pour déplacer ViV, utilisez le système de remorquage. Pour décharger, placez-vous dans le siège conducteur du véhicule tour et sélectionnez dans le menu déroulant «décharger tous les objets».<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /><br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Place option:</marker><br/> Avec cette option, vous pouvez déplacer des objets lourds pour construire un petit avant-poste ou une base.<br/> Lorsque vous sélectionnez l'option, un indice affichera toutes les touches nécessaires pour déplacer l'objet. + <img image='\z\ace\addons\cargo\UI\Icon_Module_Cargo_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système de cargaison:</marker><br/> Utilisez le système ACE 3 Cargo. <br/><br/> <img image='\z\ace\addons\attach\UI\attach_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système de remorquage:</marker><br/> Pour remorquer un véhicule, interagissez avec le remorqueur et sélectionnez l'option «Remorquage».<br/>Ensuite, placez le véhicule remorqueur devant lui et sélectionnez «Attacher la corde de remorquage» dans le menu d'interaction.<br/> Si les deux véhicules sont trop éloignés ou si le véhicule ne peut pas remorquer cette charge (la voiture ne peut pas dépanner ou remorquer le réservoir), l'option sera désactivée.<br/> Pour décrocher interagissez avec l'un des deux véhicules et sélectionnez l'option «DÉCROCHER».<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\VehicleCargoIconOn2_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Vehicle in vehicle system:</marker><br/> Le système BI Vehicle in Vehicle (ViV) est étendu pour permettre le chargement de n'importe quel véhicule dans un véhicule. Pour déplacer ViV, utilisez le système de remorquage. Pour décharger, placez-vous dans le siège conducteur du véhicule tour et sélectionnez dans le menu déroulant «décharger tous les objets».<br/><br/> <img image='\A3\Data_F_Exp\Images\FeatureVehicleInVehicle_co.paa' width='355' height='200' /><br/><br/> <img image='\z\ace\addons\dragging\UI\icons\box_carry.paa' width='20' height='20'/> <marker name='blufor_base'>Place option:</marker><br/> Avec cette option, vous pouvez déplacer des objets lourds pour construire un petit avant-poste ou une base.<br/> Lorsque vous sélectionnez l'option, un indice affichera toutes les touches nécessaires pour déplacer l'objet. @@ -1770,30 +1768,6 @@ - - Tow - Remolcar - Abschleppen - Reboque - 牵引 - Remorquer - - - Hook - Enganchar - Einhacken - Enganchar - 启用牵引 - Accrocher - - - Unhook - Desenganchar - Aushaken - Desenganchar - 取消牵引 - Décrocher - Deploy flag 悬挂旗帜 @@ -2501,12 +2475,7 @@ Impossible de remorquer !<br/>(Ce véhicule ne peut pas remorquer %1) - Interact with a vehicle to tow it! - Interactúe con un vehículo para remolcarlo! - Interagieren Sie mit dem Zug-Fahrzeug, um es abzuschleppen! - Interaja com o veículo para rebocá-lo! - 与牵引车(前车)互动以牵引它! - Interagissez avec un véhicule pour le remorquer ! + Towing vehicle selected, interact with the vehicle to tow! Too far! @@ -2531,6 +2500,14 @@ 启用/关闭抬头显示(HUD) Hud On\Off + + Hook + Enganchar + Einhacken + Enganchar + 启用牵引 + Accrocher + From 4390c8415e0f24caab5adf60549930e1d87643ac Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 31 Oct 2021 18:43:10 +0100 Subject: [PATCH 259/354] Waypoints for drone and suicider take 15ms --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf | 2 +- .../core/fnc/ied/suicider_create.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf index bf4ece4d4..1d350daba 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf @@ -44,7 +44,7 @@ createVehicleCrew _drone; [driver _drone] joinSilent _group; _group setVariable ["btc_ied_drone", true]; -[_group, _rpos, _area, 4] call CBA_fnc_taskPatrol; +[[_group, _rpos, _area, 4], CBA_fnc_taskPatrol] call btc_delay_fnc_exec; _drone flyInHeight 10; [driver _drone, _rpos, _area, []] call btc_ied_fnc_droneLoop; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf index 3a63dbe9b..49f585c7c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf @@ -46,7 +46,7 @@ private _group = createGroup [civilian, true]; _group setVariable ["btc_city", _city]; private _suicider = _group createUnit [_type_units, _rpos, [], 0, "CAN_COLLIDE"]; -[_group] call btc_civ_fnc_addWP; +[_group, btc_civ_fnc_addWP] call btc_delay_fnc_exec; _group setVariable ["suicider", true]; [_suicider] call btc_ied_fnc_suiciderLoop; From 9df0dc304b0c6d9489d3c2dfffe55799933f4b4a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 1 Nov 2021 13:47:54 +0100 Subject: [PATCH 260/354] Waypoint for road are in the sky --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf index 193412ae2..a84ee9e7d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/addWP.sqf @@ -58,7 +58,7 @@ if (_vehicle isKindOf "Air") then { _newPos = [_pos, 150] call CBA_fnc_randPos; } else { _roadBlackList pushBackUnique _nearestRoad; - _newPos = getPosASL _nearestRoad; + _newPos = _nearestRoad; }; [_group, _newPos, -1, "MOVE", "UNCHANGED", "RED", "UNCHANGED", "NO CHANGE", "", [0, 0, 0], 20] call CBA_fnc_addWaypoint; }; From 594cac534fce509ea7db36b003e5209223e0d549 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 6 Nov 2021 11:14:56 +0100 Subject: [PATCH 261/354] fix drone run out of fuel --- .../core/fnc/ied/drone_create.sqf | 4 ++++ =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/eh.sqf | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf index 1d350daba..37f005d29 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf @@ -40,6 +40,10 @@ if (_rpos isEqualTo []) then { private _group = createGroup [btc_enemy_side, true]; _group setVariable ["btc_city", _city]; private _drone = createVehicle ["C_IDAP_UAV_06_antimine_F", _rpos, [], 0, "FLY"]; +[_drone, "Fuel", { + params ["_drone", "_hasFuel"]; + [{_this setFuel 1;}, _drone, random 120] call CBA_fnc_waitAndExecute; +}] call CBA_fnc_addBISEventHandler; createVehicleCrew _drone; [driver _drone] joinSilent _group; _group setVariable ["btc_ied_drone", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/eh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/eh.sqf index cb6990f29..db7b89472 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/eh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/patrol/eh.sqf @@ -49,7 +49,7 @@ if (_veh isEqualType objNull) then { [[], [_veh, _group]] call btc_fnc_delete; } else { - private _vehicle = (assignedVehicle leader _veh); + private _vehicle = assignedVehicle leader _veh; _vehicle setVariable ["btc_patrol_fnc_eh_fired", true, true]; [[], [_vehicle, _veh]] call btc_fnc_delete; }; From 02634a86b3f5771982936f9c628da80d63e997e3 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 6 Nov 2021 11:51:14 +0100 Subject: [PATCH 262/354] drone have small radius of patrol --- .../core/fnc/city/activate.sqf | 4 ++-- .../core/fnc/data/spawn_group.sqf | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 93f64a3d0..e3cf9a0b4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -97,7 +97,7 @@ if (!(_city getVariable ["initialized", false])) then { private _delay = 0; if (_data_units isNotEqualTo []) then { { - _delay = _delay + ([_x, _city] call btc_data_fnc_spawn_group); + _delay = _delay + ([_x, _city, _spawningRadius] call btc_data_fnc_spawn_group); } forEach _data_units; } else { // Maximum number of enemy group @@ -256,7 +256,7 @@ if !(_city getVariable ["has_suicider", false]) then { btc_ied_suic_spawned = time; _city setVariable ["has_suicider", true]; if (selectRandom [false, false, btc_p_ied_drone]) then { - [[_city, _spawningRadius], btc_ied_fnc_drone_create] call btc_delay_fnc_exec; + [[_city, _spawningRadius, getPosATL _city], btc_ied_fnc_drone_create] call btc_delay_fnc_exec; } else { [[_city, _spawningRadius], btc_ied_fnc_suicider_create] call btc_delay_fnc_exec; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf index 7695dcfde..8154a141b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf @@ -16,6 +16,7 @@ Parameters: _array_wp - Waypoints of group. [Array] _array_veh - Vehicle occupied by the group. [Array, String] _city - City. [Object] + _spawningRadius - Spawning radius. [Number] Returns: _delay - Delay due to vehicle spawn. [Number] @@ -32,7 +33,8 @@ Author: params [ ["_data_unit", [], [[]]], - ["_city", objNull, [objNull]] + ["_city", objNull, [objNull]], + ["_spawningRadius", 100, [0]] ]; _data_unit params [ ["_type", 1, [0]], @@ -47,11 +49,11 @@ _data_unit params [ private _delay = 0; if (_type isEqualTo 5) exitWith { - [_city, 100, _array_pos select 0, _array_type select 0] call btc_ied_fnc_suicider_create; + [_city, _spawningRadius, _array_pos select 0, _array_type select 0] call btc_ied_fnc_suicider_create; _delay }; if (_type isEqualTo 7) exitWith { - [_city, 100, _array_pos select 0] call btc_ied_fnc_drone_create; + [_city, _spawningRadius, _array_pos select 0] call btc_ied_fnc_drone_create; _delay }; From ecb91ec7dc257e3c1c8b9594a47bc7f6ff268753 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 7 Nov 2021 15:10:18 +0100 Subject: [PATCH 263/354] FIX: some weapon have dummy magazine Spectrum device have dummy magazine whitch create an error when picking from an inventory after a saving --- .../core/fnc/log/inventoryGet.sqf | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf index 9c8341555..e5e8199a7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/inventoryGet.sqf @@ -29,9 +29,17 @@ private _everyContainer = everyContainer _object; _x set [1, (_x select 1) call btc_log_fnc_inventoryGet]; } forEach _everyContainer; +private _weaponsItemsCargo = weaponsItemsCargo _object; +{ + private _magazine = _x select 4 select 0; + if (((_magazine call BIS_fnc_itemType) select 1) isEqualTo "UnknownMagazine") then { + _x set [4, []]; // Remove dummy magazine + }; +} forEach _weaponsItemsCargo; + [ getMagazineCargo _object, - weaponsItemsCargo _object, + _weaponsItemsCargo, itemCargo _object, _everyContainer ] From 4874d5e1cf658c5a910ddac7711f8e1c0fd47397 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 9 Nov 2021 23:30:03 +0100 Subject: [PATCH 264/354] civilian stop when they hear siren --- .../core/def/mission.sqf | 1 + .../core/fnc/eh/player.sqf | 36 ++++++++++++++++++- .../core/fnc/int/orders.sqf | 5 +-- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 908e5ffb2..0e402e0e5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -402,6 +402,7 @@ btc_ied_deleteOn = -1; //Int btc_int_radius_orders = 25; btc_int_search_intel_time = 4; +btc_int_sirenRadius_orders = 50; //Info btc_info_intel_chance = _info_chance; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index d32f8dc22..bd16d1d95 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -91,7 +91,41 @@ if (btc_p_respawn_location >= 4) then { ["ace_killed", { params ["_unit"]; if (_unit isNotEqualTo player) exitWith {}; - private _group = group player; + private _group = group player; [_group, leader _group] call BIS_fnc_addRespawnPosition; }] call CBA_fnc_addEventHandler; }; + +["btc_inGameUISetEventHandler", { + params ["_target", "_caller", "_index", "_engineName", "_text", "_priority", "_showWindow", "_hideOnUse", "_shortcut", "_visibleMenu", "_eventName"]; + systemChat str [_index, _engineName, _text, _eventName]; +}] call CBA_fnc_addEventHandler; +["btc_inGameUISetEventHandler", { + params ["_target", "_caller", "_index", "_engineName", "_text", "_priority", "_showWindow", "_hideOnUse", "_shortcut", "_visibleMenu", "_eventName"]; + if ( + _index isEqualTo 10 + {isText(configOf _target >> "UserActions" >> "siren_Start" >> "displayName") isEqualTo _text} + ) exitWith { + systemChat "siren_Start"; + btc_int_sirenStart = true; + /*[{ + params ["_arguments", "_idPFH"]; + _arguments params [ + ["_obj", controlNull, [controlNull]] + ]; + + if !(visibleWatch) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + [1, objNull, btc_int_sirenRadius_orders] call btc_int_fnc_orders; + }, 1] call CBA_fnc_addPerFrameHandler;*/ + }; + if ( + _index isEqualTo 11 + {isText(configOf _target >> "UserActions" >> "siren_stop" >> "displayName") isEqualTo _text} + ) exitWith { + systemChat "siren_stop"; + btc_int_isSiren = true; + }; +}] call CBA_fnc_addEventHandler; +inGameUISetEventHandler ["Action", '["btc_inGameUISetEventHandler", _this] call CBA_fnc_localEvent;']; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf index fdf867c5a..4b020bb7d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf @@ -23,7 +23,8 @@ Author: params [ ["_order", 0, [0]], - ["_unit", objNull, [objNull]] + ["_unit", objNull, [objNull]], + ["_radius", btc_int_radius_orders, [0]] ]; private _gesture = ["", "gestureFreeze", "gestureCover", "gestureGo", "gestureGo"] select _order; @@ -32,7 +33,7 @@ player playActionNow _gesture; private _pos = getPos player; private _dir = getDir player; -private _units = (_pos nearEntities [["Car", "Civilian_F"] + btc_civ_type_units, btc_int_radius_orders]) apply {driver _x}; +private _units = (_pos nearEntities [["Car", "Civilian_F"] + btc_civ_type_units, _radius]) apply {driver _x}; if (_units isEqualTo []) exitWith {true}; From fca93a11a9c36ba621e3715eab56d5219e6e4ba5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Nov 2021 00:26:16 +0100 Subject: [PATCH 265/354] send order from vehicle --- .../core/def/mission.sqf | 4 +-- .../core/fnc/arsenal/garage.sqf | 2 +- .../core/fnc/eh/player.sqf | 30 +++++++++---------- .../core/fnc/int/orders.sqf | 14 +++++---- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 0e402e0e5..521cffb2f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -400,9 +400,9 @@ btc_type_ieds_ace = ["IEDLandBig_F", "IEDLandSmall_F"]; btc_ied_deleteOn = -1; //Int -btc_int_radius_orders = 25; +btc_int_ordersRadius = 25; btc_int_search_intel_time = 4; -btc_int_sirenRadius_orders = 50; +btc_int_sirenRadius = 50; //Info btc_info_intel_chance = _info_chance; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/garage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/garage.sqf index e7163777e..fd1f6800b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/garage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/garage.sqf @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [btc_create_object_point] call btc_arsenal_fnc_garage; + [btc_create_object_point] spawn btc_arsenal_fnc_garage; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index bd16d1d95..50307e07e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -102,30 +102,28 @@ if (btc_p_respawn_location >= 4) then { }] call CBA_fnc_addEventHandler; ["btc_inGameUISetEventHandler", { params ["_target", "_caller", "_index", "_engineName", "_text", "_priority", "_showWindow", "_hideOnUse", "_shortcut", "_visibleMenu", "_eventName"]; + + private _userActions = configOf _target >> "UserActions"; if ( - _index isEqualTo 10 - {isText(configOf _target >> "UserActions" >> "siren_Start" >> "displayName") isEqualTo _text} + getText (_userActions >> "siren_Start" >> "displayName") isEqualTo _text ) exitWith { - systemChat "siren_Start"; - btc_int_sirenStart = true; - /*[{ + _target setVariable ["btc_int_sirenStart", true, true]; + systemChat "pfd on"; + [{ params ["_arguments", "_idPFH"]; - _arguments params [ - ["_obj", controlNull, [controlNull]] - ]; + _arguments params ["_veh"]; - if !(visibleWatch) exitWith { + if !(_veh getVariable "btc_int_sirenStart") exitWith { + systemChat "pfd off"; [_idPFH] call CBA_fnc_removePerFrameHandler; }; - [1, objNull, btc_int_sirenRadius_orders] call btc_int_fnc_orders; - }, 1] call CBA_fnc_addPerFrameHandler;*/ + [1, objNull, btc_int_sirenRadius, _veh] call btc_int_fnc_orders; + }, 0.5, _target] call CBA_fnc_addPerFrameHandler; }; if ( - _index isEqualTo 11 - {isText(configOf _target >> "UserActions" >> "siren_stop" >> "displayName") isEqualTo _text} + getText (_userActions >> "siren_stop" >> "displayName") isEqualTo _text ) exitWith { - systemChat "siren_stop"; - btc_int_isSiren = true; + _target setVariable ["btc_int_sirenStart", false, true]; }; }] call CBA_fnc_addEventHandler; -inGameUISetEventHandler ["Action", '["btc_inGameUISetEventHandler", _this] call CBA_fnc_localEvent;']; +inGameUISetEventHandler ["Action", '["btc_inGameUISetEventHandler", _this] call CBA_fnc_localEvent; false']; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf index 4b020bb7d..390f2c335 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf @@ -24,15 +24,17 @@ Author: params [ ["_order", 0, [0]], ["_unit", objNull, [objNull]], - ["_radius", btc_int_radius_orders, [0]] + ["_radius", btc_int_ordersRadius, [0]], + ["_vehicle", player, [objNull]] ]; -private _gesture = ["", "gestureFreeze", "gestureCover", "gestureGo", "gestureGo"] select _order; - -player playActionNow _gesture; +if (_vehicle isEqualTo player) then { + private _gesture = ["", "gestureFreeze", "gestureCover", "gestureGo", "gestureGo"] select _order; + _vehicle playActionNow _gesture; +}; -private _pos = getPos player; -private _dir = getDir player; +private _pos = getPos _vehicle; +private _dir = getDir _vehicle; private _units = (_pos nearEntities [["Car", "Civilian_F"] + btc_civ_type_units, _radius]) apply {driver _x}; if (_units isEqualTo []) exitWith {true}; From 90fb7b681fc1904e16e9c0765ac4ec97a67c3d0a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Nov 2021 01:37:20 +0100 Subject: [PATCH 266/354] combine beacons and siren --- .../core/def/mission.sqf | 3 +- .../core/fnc/compile.sqf | 1 + .../core/fnc/eh/player.sqf | 26 +------ .../core/fnc/int/ordersLoop.sqf | 70 +++++++++++++++++++ 4 files changed, 75 insertions(+), 25 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ordersLoop.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 521cffb2f..f8e68e5cf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -402,7 +402,8 @@ btc_ied_deleteOn = -1; //Int btc_int_ordersRadius = 25; btc_int_search_intel_time = 4; -btc_int_sirenRadius = 50; +btc_int_sirenRadius = 35; +btc_int_beaconRadius = 15; //Info btc_info_intel_chance = _info_chance; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 564f57017..45e0b5511 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -341,6 +341,7 @@ if (!isDedicated) then { btc_int_fnc_shortcuts = compileScript ["core\fnc\int\shortcuts.sqf"]; btc_int_fnc_terminal = compileScript ["core\fnc\int\terminal.sqf"]; btc_int_fnc_foodGive = compileScript ["core\fnc\int\foodGive.sqf"]; + btc_int_fnc_ordersLoop = compileScript ["core\fnc\int\ordersLoop.sqf"]; //INFO btc_info_fnc_ask = compileScript ["core\fnc\info\ask.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 50307e07e..940b612cf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -98,32 +98,10 @@ if (btc_p_respawn_location >= 4) then { ["btc_inGameUISetEventHandler", { params ["_target", "_caller", "_index", "_engineName", "_text", "_priority", "_showWindow", "_hideOnUse", "_shortcut", "_visibleMenu", "_eventName"]; - systemChat str [_index, _engineName, _text, _eventName]; + [_target, _text, ["siren_Start", "siren_stop"] , "btc_int_sirenStart"] call btc_int_fnc_ordersLoop; }] call CBA_fnc_addEventHandler; ["btc_inGameUISetEventHandler", { params ["_target", "_caller", "_index", "_engineName", "_text", "_priority", "_showWindow", "_hideOnUse", "_shortcut", "_visibleMenu", "_eventName"]; - - private _userActions = configOf _target >> "UserActions"; - if ( - getText (_userActions >> "siren_Start" >> "displayName") isEqualTo _text - ) exitWith { - _target setVariable ["btc_int_sirenStart", true, true]; - systemChat "pfd on"; - [{ - params ["_arguments", "_idPFH"]; - _arguments params ["_veh"]; - - if !(_veh getVariable "btc_int_sirenStart") exitWith { - systemChat "pfd off"; - [_idPFH] call CBA_fnc_removePerFrameHandler; - }; - [1, objNull, btc_int_sirenRadius, _veh] call btc_int_fnc_orders; - }, 0.5, _target] call CBA_fnc_addPerFrameHandler; - }; - if ( - getText (_userActions >> "siren_stop" >> "displayName") isEqualTo _text - ) exitWith { - _target setVariable ["btc_int_sirenStart", false, true]; - }; + [_target, _text, ["beacons_start", "beacons_stop"] , "btc_int_beaconsStart"] call btc_int_fnc_ordersLoop; }] call CBA_fnc_addEventHandler; inGameUISetEventHandler ["Action", '["btc_inGameUISetEventHandler", _this] call CBA_fnc_localEvent; false']; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ordersLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ordersLoop.sqf new file mode 100644 index 000000000..9e3e4a076 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ordersLoop.sqf @@ -0,0 +1,70 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_int_fnc_ordersLoop + +Description: + Execute in loop STOP order. + +Parameters: + _veh - Vehicle. [Object] + +Returns: + +Examples: + (begin example) + cursorObject call btc_int_fnc_ordersLoop; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + "_veh", + "_text", + "_typesConfig", + "_typeVariable" +]; +_typesConfig params ["_start", "_stop"]; + +private _orderLoop = { + if ( + _veh getVariable ["btc_int_sirenStart", false] || + _veh getVariable ["btc_int_beaconsStart", false] + ) exitWith {}; + + [{ + params ["_arguments", "_idPFH"]; + _arguments params ["_veh"]; + + private _sirenStart = _veh getVariable ["btc_int_sirenStart", false]; + private _beaconsStart = _veh getVariable ["btc_int_beaconsStart", false]; + if ( + !_sirenStart && + !_beaconsStart + ) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + + [ + 1, + objNull, + ([0, btc_int_sirenRadius] select _sirenStart) + ([0, btc_int_beaconRadius] select _beaconsStart), + _veh + ] call btc_int_fnc_orders; + }, 0.5, _target] call CBA_fnc_addPerFrameHandler; +}; + +private _userActions = configOf _target >> "UserActions"; +if ( + getText (_userActions >> _start >> "displayName") isEqualTo _text +) exitWith { + _target call _orderLoop; + _target setVariable [_typeVariable, true, true]; +}; +if ( + getText (_userActions >> _stop >> "displayName") isEqualTo _text +) exitWith { + _target setVariable [_typeVariable, false, true]; +}; From 578a62713f1699bd931a15842e6cb192d7841988 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Nov 2021 17:57:57 +0100 Subject: [PATCH 267/354] add btc_int_fnc_horn --- .../core/fnc/compile.sqf | 1 + .../core/fnc/eh/player.sqf | 4 +++ .../core/fnc/int/horn.sqf | 36 +++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 45e0b5511..e5ddcde93 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -342,6 +342,7 @@ if (!isDedicated) then { btc_int_fnc_terminal = compileScript ["core\fnc\int\terminal.sqf"]; btc_int_fnc_foodGive = compileScript ["core\fnc\int\foodGive.sqf"]; btc_int_fnc_ordersLoop = compileScript ["core\fnc\int\ordersLoop.sqf"]; + btc_int_fnc_horn = compileScript ["core\fnc\int\horn.sqf"]; //INFO btc_info_fnc_ask = compileScript ["core\fnc\info\ask.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 940b612cf..68e9fb92a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -105,3 +105,7 @@ if (btc_p_respawn_location >= 4) then { [_target, _text, ["beacons_start", "beacons_stop"] , "btc_int_beaconsStart"] call btc_int_fnc_ordersLoop; }] call CBA_fnc_addEventHandler; inGameUISetEventHandler ["Action", '["btc_inGameUISetEventHandler", _this] call CBA_fnc_localEvent; false']; + +[{!isNull (findDisplay 46)}, { + (findDisplay 46) displayAddEventHandler ["MouseButtonDown", btc_int_fnc_horn]; +}] call CBA_fnc_waitUntilAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf new file mode 100644 index 000000000..d36c062dc --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf @@ -0,0 +1,36 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_int_fnc_horn + +Description: + Execute STOP order if player use horn. + +Parameters: + +Returns: + +Examples: + (begin example) + cursorObject call btc_int_fnc_horn; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +systemChat str _this; +if (vehicle player isEqualTo player) exitWith {}; +if (driver vehicle player isNotEqualTo player) exitWith {}; + +params ["_displayOrControl", "_button"]; + +if (_button isNotEqualTo 0) exitWith {}; + +systemChat str [_displayOrControl, _button]; +[ + 1, + objNull, + btc_int_beaconRadius, + vehicle player +] call btc_int_fnc_orders; From 629e69ad7e32ecbaaf0bf9feb31801b0f505e5cf Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Nov 2021 18:30:41 +0100 Subject: [PATCH 268/354] Check if horn is used --- .../core/fnc/int/horn.sqf | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf index d36c062dc..ed3b4e9b3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf @@ -11,7 +11,7 @@ Returns: Examples: (begin example) - cursorObject call btc_int_fnc_horn; + [] call btc_int_fnc_horn; (end) Author: @@ -19,18 +19,22 @@ Author: ---------------------------------------------------------------------------- */ -systemChat str _this; -if (vehicle player isEqualTo player) exitWith {}; -if (driver vehicle player isNotEqualTo player) exitWith {}; +private _veh = vehicle player; +if (_veh isEqualTo player) exitWith {}; +if (driver _veh isNotEqualTo player) exitWith {}; params ["_displayOrControl", "_button"]; - if (_button isNotEqualTo 0) exitWith {}; -systemChat str [_displayOrControl, _button]; +private _weapon = currentWeapon _veh; +if ( + _weapon isNotEqualTo "" && + {!(_weapon isKindOf ["CarHorn", configFile >> "CfgWeapons"])} +) exitWith {}; + [ 1, objNull, btc_int_beaconRadius, - vehicle player + _veh ] call btc_int_fnc_orders; From 0061f55b91d62b69e6929d560157ecd426bbce4e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Nov 2021 18:49:55 +0100 Subject: [PATCH 269/354] Rewrite --- .../core/fnc/compile.sqf | 1 + .../core/fnc/eh/player.sqf | 8 +-- .../core/fnc/int/checkSirenBeacons.sqf | 45 +++++++++++++ .../core/fnc/int/ordersLoop.sqf | 67 +++++++------------ 4 files changed, 74 insertions(+), 47 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/checkSirenBeacons.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 45e0b5511..7b11010a2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -342,6 +342,7 @@ if (!isDedicated) then { btc_int_fnc_terminal = compileScript ["core\fnc\int\terminal.sqf"]; btc_int_fnc_foodGive = compileScript ["core\fnc\int\foodGive.sqf"]; btc_int_fnc_ordersLoop = compileScript ["core\fnc\int\ordersLoop.sqf"]; + btc_int_fnc_checkSirenBeacons = compileScript ["core\fnc\int\checkSirenBeacons.sqf"]; //INFO btc_info_fnc_ask = compileScript ["core\fnc\info\ask.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 940b612cf..00565aa6c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -97,11 +97,11 @@ if (btc_p_respawn_location >= 4) then { }; ["btc_inGameUISetEventHandler", { - params ["_target", "_caller", "_index", "_engineName", "_text", "_priority", "_showWindow", "_hideOnUse", "_shortcut", "_visibleMenu", "_eventName"]; - [_target, _text, ["siren_Start", "siren_stop"] , "btc_int_sirenStart"] call btc_int_fnc_ordersLoop; + params ["_target", "", "", "", "_text"]; + [_target, _text, ["siren_Start", "siren_stop"], "btc_int_sirenStart"] call btc_int_fnc_checkSirenBeacons; }] call CBA_fnc_addEventHandler; ["btc_inGameUISetEventHandler", { - params ["_target", "_caller", "_index", "_engineName", "_text", "_priority", "_showWindow", "_hideOnUse", "_shortcut", "_visibleMenu", "_eventName"]; - [_target, _text, ["beacons_start", "beacons_stop"] , "btc_int_beaconsStart"] call btc_int_fnc_ordersLoop; + params ["_target", "", "", "", "_text"]; + [_target, _text, ["beacons_start", "beacons_stop"], "btc_int_beaconsStart"] call btc_int_fnc_checkSirenBeacons; }] call CBA_fnc_addEventHandler; inGameUISetEventHandler ["Action", '["btc_inGameUISetEventHandler", _this] call CBA_fnc_localEvent; false']; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/checkSirenBeacons.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/checkSirenBeacons.sqf new file mode 100644 index 000000000..e4a1a239e --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/checkSirenBeacons.sqf @@ -0,0 +1,45 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_int_fnc_checkSirenBeacons + +Description: + Check if player turn ON siren or beacons. + +Parameters: + _veh - Vehicle. [Object] + _text - Text displayed. [String] + _typesConfig - Type of config to check. [Array] + _typeVariable - Variable name. [String] + +Returns: + +Examples: + (begin example) + [cursorObject, configOf _veh >> "UserActions" >> siren_Start >> "displayName", ["siren_Start", "siren_stop"] , "btc_int_sirenStart"] call btc_int_fnc_checkSirenBeacons; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + "_veh", + "_text", + "_typesConfig", + "_typeVariable" +]; +_typesConfig params ["_start", "_stop"]; + +private _userActions = configOf _veh >> "UserActions"; +if ( + getText (_userActions >> _start >> "displayName") isEqualTo _text +) exitWith { + _veh call btc_int_fnc_ordersLoop; + _veh setVariable [_typeVariable, true, true]; +}; +if ( + getText (_userActions >> _stop >> "displayName") isEqualTo _text +) exitWith { + _veh setVariable [_typeVariable, false, true]; +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ordersLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ordersLoop.sqf index 9e3e4a076..00b727f57 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ordersLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ordersLoop.sqf @@ -21,50 +21,31 @@ Author: ---------------------------------------------------------------------------- */ params [ - "_veh", - "_text", - "_typesConfig", - "_typeVariable" + "_veh" ]; -_typesConfig params ["_start", "_stop"]; -private _orderLoop = { - if ( - _veh getVariable ["btc_int_sirenStart", false] || - _veh getVariable ["btc_int_beaconsStart", false] - ) exitWith {}; - - [{ - params ["_arguments", "_idPFH"]; - _arguments params ["_veh"]; - - private _sirenStart = _veh getVariable ["btc_int_sirenStart", false]; - private _beaconsStart = _veh getVariable ["btc_int_beaconsStart", false]; - if ( - !_sirenStart && - !_beaconsStart - ) exitWith { - [_idPFH] call CBA_fnc_removePerFrameHandler; - }; +if ( + _veh getVariable ["btc_int_sirenStart", false] || + _veh getVariable ["btc_int_beaconsStart", false] +) exitWith {}; - [ - 1, - objNull, - ([0, btc_int_sirenRadius] select _sirenStart) + ([0, btc_int_beaconRadius] select _beaconsStart), - _veh - ] call btc_int_fnc_orders; - }, 0.5, _target] call CBA_fnc_addPerFrameHandler; -}; +[{ + params ["_arguments", "_idPFH"]; + _arguments params ["_veh"]; -private _userActions = configOf _target >> "UserActions"; -if ( - getText (_userActions >> _start >> "displayName") isEqualTo _text -) exitWith { - _target call _orderLoop; - _target setVariable [_typeVariable, true, true]; -}; -if ( - getText (_userActions >> _stop >> "displayName") isEqualTo _text -) exitWith { - _target setVariable [_typeVariable, false, true]; -}; + private _sirenStart = _veh getVariable ["btc_int_sirenStart", false]; + private _beaconsStart = _veh getVariable ["btc_int_beaconsStart", false]; + if ( + !_sirenStart && + !_beaconsStart + ) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + + [ + 1, + objNull, + ([0, btc_int_sirenRadius] select _sirenStart) + ([0, btc_int_beaconRadius] select _beaconsStart), + _veh + ] call btc_int_fnc_orders; +}, 0.5, _veh] call CBA_fnc_addPerFrameHandler; From e82392ef05668b4764e9210a58ed94c14f71195d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Nov 2021 19:59:57 +0100 Subject: [PATCH 270/354] Update doc --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 4 ++-- docs/InGame-documentation.md | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 3adfb4b2c..9d42a20ff 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -232,12 +232,12 @@ - Any player can give orders to civilians.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> To do this, just open your self interaction menu and select 'ORDERS' or use one of the shortcuts. Shortcuts can changed under 'configure' >> 'controls' >> 'configure addons' >> 'Hearts and Minds: Mission' (drop down menu).<br/> Your options are:<br/> - STOP<br/> - GET DOWN<br/> - GO AWAY<br/><br/> If you want to give an order to just one unit, interact with it (ace object interaction).<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> You can also drop leaflets to ask all civilians in a circle of 200m to evacuate to a religious building (if not available a safe area) with a AR-2 drone.<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> + Any player can give orders to civilians.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> To do this, just open your self interaction menu and select 'ORDERS' or use one of the shortcuts. Shortcuts can changed under 'configure' >> 'controls' >> 'configure addons' >> 'Hearts and Minds: Mission' (drop down menu).<br/> Your options are:<br/> - STOP<br/> - GET DOWN<br/> - GO AWAY<br/><br/> If you want to give an order to just one unit, interact with it (ace object interaction).<br/> You can also use a horn to ask civilians to stop their mouvement from a vehicle. Turning ON beacons or siren will continuously ask civilians to let you pass first. Combining beacons and siren will increase the range of effectiveness.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> You can also drop leaflets to ask all civilians in a circle of 200m to evacuate to a religious building (if not available a safe area) with a AR-2 drone.<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> Cualquier jugador puede dar órdenes a civiles.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> Para ello, sólo tienes que abrir el menú de auto-interacción y seleccionar `ORDENES' o utilizar uno de los accesos directos. Los accesos directos pueden cambiarse en 'configuración'. >> 'controls' >> 'configure addons' >> 'Hearts and Minds: Mission' (menu desplegable).<br/> Tus opciones son:<br/> - ALTO<br/> - AGACHATE<br/> - FUERA DE AQUI<br/><br/> Si quieres dar una orden a una sola unidad, interactúa con ella (ace object interaction).<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> También puede tirar panfletos para pedir a todos los civiles en un círculo de 200 metros que evacuen a un edificio religioso (si no está disponible un área segura) con un drone<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> Jeder Spieler kann einem Zivlisten Anweisungen geben.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> Dies geht recht einfach in dem man das Eigen-Interaktionsmenü öffnet und dann 'BEFEHLE(ZIVILISTEN)' auswählt. Oder in dem man Kurztasten nutzt. Diese können unter 'Konfigurieren' >> 'Steuerung' >> 'Modifikationen anpassen' >> Hearts and Minds: Mission' (Drop-Down-Menü) geändert werden.<br/><br/> Folgende Optionen stehen zur Verfügung:<br/> - STOPP!<br/> - AUF DEN BODEN!<br/> - GEH WEG!<br/><br/> Wenn Sie einen Befehl an eine bestimmte Person geben wollen, so können Sie auch direkt mir dieser Interagieren (ACE Objekt-Interaction).<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Sie können mithilfe einer Drohne Broschüren abwerfen, um die Zivilisten im Umkreis von ca. 200 m aufzufordern, sich in dem nächsten religiösen Gebäude einzufinden (sollte kein Gebäude vorhanden sein, so wird ein sicherer Bereich festgelegt).<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> Qualquer jogador pode dar instruções a um civil.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> Para fazer isso, basta abrir o menu de interação do civil e selecionar a opção "ORDENS" ou usar tecla de atalho. Atalhos podem ser alterados no menu "CONFIGURAÇÃO" >> "CONTROLES" >> "CONFIGURAR COMPLEMENTOS (ADDONS)" >> Corações e Mentes: Missão (Menu suspenso).<br/><br/> As seguintes opções estão disponíveis: <br/> - PARE!<br/> - DEITADO!<br/> - VÁ EMBORA!<br/><br/> Se você quiser dar uma ordem para apenas uma unidade, interaja com ela (interação do objeto ACE).<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Você pode usar um drone para soltar panfletos solicitando que civis, dentro de um raio de 200m, se abriguem em um prédio religioso mais próximo (se não houver prédio, uma área segura será definida).<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> 任何玩家都可以向平民发出指令。<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> 如要向平民发出指令, 只需打开自我互动菜单并选择"命令平民", 或使用已设定的快捷键即可。快捷键可以在"设置" >> "控制设定" >> "模组设定选项" >> "Hearts and Minds: Mission"(下拉菜单) 中进行变更。<br/> 可以使用的命令如下:<br/> - 站住<br/> - 趴下<br/> - 走开<br/><br/> 如果你希望只对某个单位发出指令, 与该单位进行互动即可(ACE物体互动)。<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> 你也可以使用 AR-2 无人机投放传单, 要求200米范围内的平民疏散至最近的宗教建筑避难(若无宗教建筑, 则前往安全区域)。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> - Tous les joueurs peuvent donner des ordres aux civils.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> pour ce faire, ouvrez simplement votre menu d'auto-interaction et sélectionnez «COMMANDES» ou utilisez l'un des raccourcis. Les raccourcis peuvent être modifiés sous «configurer» >> 'contrôles' >> 'configure addons' >> 'Hearts and Minds: Mission' (drop down menu).<br/> Les options sont:<br/> - HALTE<br/> - A TERRE<br/> - PARTEZ<br/><br/> Si vous voulez donner l'ordre à un seul civil, alors utilisez l'intéraction ACE sur celui-ci.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Vous pouvez également déposer des tracts pour demander à tous les civils dans un cercle de 200m d'évacuer vers un édifice religieux (si non disponible une zone de sécurité) avec un drone AR-2.<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> + Tous les joueurs peuvent donner des ordres aux civils.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> pour ce faire, ouvrez simplement votre menu d'auto-interaction et sélectionnez «COMMANDES» ou utilisez l'un des raccourcis. Les raccourcis peuvent être modifiés sous «configurer» >> 'contrôles' >> 'configure addons' >> 'Hearts and Minds: Mission' (drop down menu).<br/> Les options sont:<br/> - HALTE<br/> - A TERRE<br/> - PARTEZ<br/><br/> Si vous voulez donner l'ordre à un seul civil, alors utilisez l'intéraction ACE sur celui-ci.<br/> Vous pouvez aussi utiliser un klaxon pour demander aux civils de se stopper depuis un vehicule. En activant les gyrophares ou une sirène les civiles vont vous céder le passage. Le rayon d'efficacité augmente en combinant les gyrophares et la sirène.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Vous pouvez également déposer des tracts pour demander à tous les civils dans un cercle de 200m d'évacuer vers un édifice religieux (si non disponible une zone de sécurité) avec un drone AR-2.<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index 56a292948..183d7868b 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -151,6 +151,8 @@ Any player can give orders to civilians. To do this, just open your self interac If you want to give an order to just one unit, interact with it (object interaction). +You can also use a horn to ask civilians to stop their mouvement from a vehicle. Turning ON beacons or siren will continuously ask civilians to let you pass first. Combining beacons and siren will increase the range of effectiveness. + You can also drop leaflets to ask all civilians in a circle of 200m to evacuate to a religious building (if not available a safe area) with a AR-2 drone. ## Traffic From 45294e6a3e50d9647e2705c7d9aefeda2b96b5f0 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Nov 2021 20:25:36 +0100 Subject: [PATCH 271/354] add btc_int_hornRadius --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index f8e68e5cf..b3da33389 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -404,6 +404,7 @@ btc_int_ordersRadius = 25; btc_int_search_intel_time = 4; btc_int_sirenRadius = 35; btc_int_beaconRadius = 15; +btc_int_hornRadius = 20; //Info btc_info_intel_chance = _info_chance; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf index ed3b4e9b3..0ceaf4918 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf @@ -35,6 +35,6 @@ if ( [ 1, objNull, - btc_int_beaconRadius, + btc_int_hornRadius, _veh ] call btc_int_fnc_orders; From d3b821a2bee88e316ca5dca8e043750bea6903f4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 Nov 2021 21:21:43 +0100 Subject: [PATCH 272/354] Add offroad beacons and siren --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 310 ++++++++++++++++-- .../mission__Enoch.sqm | 283 +++++++++++++++- .../mission__Tanoa.sqm | 283 +++++++++++++++- 3 files changed, 833 insertions(+), 43 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 5e5633ece..7c1649aca 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -1,14 +1,14 @@ version=54; class EditorData { - moveGridStep=2; + moveGridStep=0.125; angleGridStep=0.2617994; scaleGridStep=1; autoGroupingDist=10; - toggles=525; + toggles=517; class ItemIDProvider { - nextID=238; + nextID=244; }; class MarkerIDProvider { @@ -20,10 +20,10 @@ class EditorData }; class Camera { - pos[]={8392.8252,232.25304,10207.24}; - dir[]={-0.51171321,-0.70974857,-0.4842326}; - up[]={-0.51556087,0.70439893,-0.48787403}; - aside[]={-0.68735826,-5.8131991e-007,0.72636133}; + pos[]={8451.0586,159.01505,10174.087}; + dir[]={-0.76327658,-0.4804768,-0.43194857}; + up[]={-0.4181695,0.87700278,-0.23664887}; + aside[]={-0.49252242,4.399335e-007,0.87031251}; }; }; binarizationWanted=0; @@ -51,18 +51,20 @@ addons[]= "A3_Soft_F_Exp_LSV_01", "A3_Soft_F_MRAP_01", "A3_Armor_F_Beta_APC_Wheeled_01", + "ace_vehicle_damage", "A3_Air_F_Beta_Heli_Transport_01", "A3_Air_F_Beta_Heli_Attack_01", "A3_Props_F_Enoch_Military_Decontamination", "A3_Signs_F", "A3_Armor_F_Beta_APC_Tracked_01", - "A3_Modules_F" + "A3_Modules_F", + "A3_Soft_F_Offroad_01" }; class AddonsMetaData { class List { - items=23; + items=24; class Item0 { className="A3_Ui_F"; @@ -197,27 +199,34 @@ class AddonsMetaData url="https://www.arma3.com"; }; class Item19 + { + className="ace_vehicle_damage"; + name="ACE3 - Vehicle Damage"; + author="ACE-Team"; + url="http://ace3mod.com/"; + }; + class Item20 { className="A3_Air_F_Beta"; name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item20 + class Item21 { className="A3_Props_F_Enoch"; name="Arma 3 Contact Platform - Decorative and Mission Objects"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item21 + class Item22 { className="A3_Signs_F"; name="Arma 3 - Signs"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item22 + class Item23 { className="A3_Modules_F"; name="Arma 3 Alpha - Scripted Modules"; @@ -244,26 +253,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - singleType="SCALAR"; - value=1; + singleType="ARRAY"; }; }; }; class Attribute1 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - singleType="ARRAY"; + singleType="SCALAR"; + value=1; }; }; }; @@ -511,7 +520,7 @@ class Mission }; class Entities { - items=65; + items=66; class Item0 { dataType="Marker"; @@ -825,11 +834,11 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8305.6074,76.029839,10067.188}; - angles[]={6.2418771,2.5247488,0}; + position[]={7902.625,83.779564,8865.6748}; + angles[]={0,2.5247488,0}; }; side="West"; - flags=6; + flags=2; class Attributes { skill=0.60000002; @@ -2351,16 +2360,261 @@ class Mission id=237; atlOffset=-0.070457458; }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={8384.3652,72.168678,10119.767}; + angles[]={6.2698536,5.7034392,6.2126365}; + }; + side="Empty"; + flags=4; + class Attributes + { + textures="Beige"; + }; + id=243; + type="C_Offroad_01_F"; + atlOffset=-0.0020446777; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + singleType="STRING"; + value="[[[[""FirstAidKit""],[4]],[[],[]],[[],[]],[[],[]]],false]"; + }; + }; + }; + class Attribute1 + { + property="VehicleCustomization"; + expression="if (local _this) then {([_this] + _value + [true]) call (uinamespace getvariable 'BIS_fnc_initVehicle')};"; + class Value + { + class data + { + singleType="ARRAY"; + class value + { + items=2; + class Item0 + { + class data + { + singleType="ARRAY"; + }; + }; + class Item1 + { + class data + { + singleType="ARRAY"; + class value + { + items=22; + class Item0 + { + class data + { + singleType="STRING"; + value="HideDoor1"; + }; + }; + class Item1 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item2 + { + class data + { + singleType="STRING"; + value="HideDoor2"; + }; + }; + class Item3 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item4 + { + class data + { + singleType="STRING"; + value="HideDoor3"; + }; + }; + class Item5 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item6 + { + class data + { + singleType="STRING"; + value="HideBackpacks"; + }; + }; + class Item7 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item8 + { + class data + { + singleType="STRING"; + value="HideBumper1"; + }; + }; + class Item9 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item10 + { + class data + { + singleType="STRING"; + value="HideBumper2"; + }; + }; + class Item11 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item12 + { + class data + { + singleType="STRING"; + value="HideConstruction"; + }; + }; + class Item13 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item14 + { + class data + { + singleType="STRING"; + value="hidePolice"; + }; + }; + class Item15 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item16 + { + class data + { + singleType="STRING"; + value="HideServices"; + }; + }; + class Item17 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item18 + { + class data + { + singleType="STRING"; + value="BeaconsStart"; + }; + }; + class Item19 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item20 + { + class data + { + singleType="STRING"; + value="BeaconsServicesStart"; + }; + }; + class Item21 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + }; + }; + }; + }; + }; + }; + nAttributes=2; + }; + }; }; class Connections { class LinkIDProvider { - nextID=19; + nextID=20; }; class Links { - items=19; + items=20; class Item0 { linkID=0; @@ -2551,6 +2805,16 @@ class Mission type="Sync"; }; }; + class Item19 + { + linkID=19; + item0=243; + item1=232; + class CustomData + { + type="Sync"; + }; + }; }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index f720315aa..59e59c153 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -8,7 +8,7 @@ class EditorData toggles=581; class ItemIDProvider { - nextID=255; + nextID=256; }; class MarkerIDProvider { @@ -16,10 +16,10 @@ class EditorData }; class Camera { - pos[]={7278.502,354.62857,1072.3011}; - dir[]={-0.91686517,-0.39400658,0.065640062}; - up[]={-0.39315882,0.91903657,0.028148815}; - aside[]={0.071411498,1.2805685e-007,0.99753571}; + pos[]={7245.3691,345.55545,1018.076}; + dir[]={-0.88144642,-0.37574396,0.28616184}; + up[]={-0.35743123,0.92670357,0.11604057}; + aside[]={0.308788,-5.310867e-007,0.95113927}; }; }; binarizationWanted=0; @@ -47,13 +47,14 @@ addons[]= "A3_Soft_F_Exp_Truck_01", "A3_Soft_F_Enoch_Truck_01", "A3_Armor_F_Exp_APC_Tracked_01", - "A3_Modules_F" + "A3_Modules_F", + "A3_Soft_F_Offroad_01" }; class AddonsMetaData { class List { - items=17; + items=18; class Item0 { className="A3_Ui_F"; @@ -173,6 +174,13 @@ class AddonsMetaData author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item17 + { + className="A3_Soft_F"; + name="Arma 3 Alpha - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; }; }; randomSeed=2442963; @@ -460,7 +468,7 @@ class Mission }; class Entities { - items=65; + items=66; class Item0 { dataType="Marker"; @@ -2306,16 +2314,261 @@ class Mission description=$STR_BTC_HAM_MSQM_MRK_HELODESC; id=254; }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={7148.3696,268.43997,1015.9185}; + angles[]={6.2575908,0.55949318,6.1448755}; + }; + side="Empty"; + flags=4; + class Attributes + { + textures="Green"; + }; + id=255; + type="C_Offroad_01_F"; + atlOffset=-0.0020141602; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + singleType="STRING"; + value="[[[[""FirstAidKit""],[4]],[[],[]],[[],[]],[[],[]]],false]"; + }; + }; + }; + class Attribute1 + { + property="VehicleCustomization"; + expression="if (local _this) then {([_this] + _value + [true]) call (uinamespace getvariable 'BIS_fnc_initVehicle')};"; + class Value + { + class data + { + singleType="ARRAY"; + class value + { + items=2; + class Item0 + { + class data + { + singleType="ARRAY"; + }; + }; + class Item1 + { + class data + { + singleType="ARRAY"; + class value + { + items=22; + class Item0 + { + class data + { + singleType="STRING"; + value="HideDoor1"; + }; + }; + class Item1 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item2 + { + class data + { + singleType="STRING"; + value="HideDoor2"; + }; + }; + class Item3 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item4 + { + class data + { + singleType="STRING"; + value="HideDoor3"; + }; + }; + class Item5 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item6 + { + class data + { + singleType="STRING"; + value="HideBackpacks"; + }; + }; + class Item7 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item8 + { + class data + { + singleType="STRING"; + value="HideBumper1"; + }; + }; + class Item9 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item10 + { + class data + { + singleType="STRING"; + value="HideBumper2"; + }; + }; + class Item11 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item12 + { + class data + { + singleType="STRING"; + value="HideConstruction"; + }; + }; + class Item13 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item14 + { + class data + { + singleType="STRING"; + value="hidePolice"; + }; + }; + class Item15 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item16 + { + class data + { + singleType="STRING"; + value="HideServices"; + }; + }; + class Item17 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item18 + { + class data + { + singleType="STRING"; + value="BeaconsStart"; + }; + }; + class Item19 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item20 + { + class data + { + singleType="STRING"; + value="BeaconsServicesStart"; + }; + }; + class Item21 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + }; + }; + }; + }; + }; + }; + nAttributes=2; + }; + }; }; class Connections { class LinkIDProvider { - nextID=19; + nextID=20; }; class Links { - items=19; + items=20; class Item0 { linkID=0; @@ -2506,6 +2759,16 @@ class Mission type="Sync"; }; }; + class Item19 + { + linkID=19; + item0=255; + item1=251; + class CustomData + { + type="Sync"; + }; + }; }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 1038069d1..04d9fe933 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -8,7 +8,7 @@ class EditorData toggles=581; class ItemIDProvider { - nextID=255; + nextID=256; }; class MarkerIDProvider { @@ -16,10 +16,10 @@ class EditorData }; class Camera { - pos[]={4242.52,142.11111,3857.8276}; - dir[]={0.06053013,-0.71224612,0.6993981}; - up[]={0.061415773,0.70191073,0.70961803}; - aside[]={0.99633914,-3.7785503e-007,-0.08623068}; + pos[]={4275.5796,137.8134,3802.7356}; + dir[]={-0.095338792,-0.58100772,0.80836862}; + up[]={-0.068056092,0.81387329,0.577052}; + aside[]={0.99318218,-7.0797978e-007,0.11713432}; }; }; binarizationWanted=0; @@ -47,13 +47,14 @@ addons[]= "A3_Soft_F_Exp_Truck_01", "A3_Soft_F_Enoch_Truck_01", "A3_Armor_F_Exp_APC_Tracked_01", - "A3_Modules_F" + "A3_Modules_F", + "A3_Soft_F_Offroad_01" }; class AddonsMetaData { class List { - items=17; + items=18; class Item0 { className="A3_Ui_F"; @@ -173,6 +174,13 @@ class AddonsMetaData author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item17 + { + className="A3_Soft_F"; + name="Arma 3 Alpha - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; }; }; randomSeed=2442963; @@ -460,7 +468,7 @@ class Mission }; class Entities { - items=65; + items=66; class Item0 { dataType="Marker"; @@ -2327,16 +2335,261 @@ class Mission description=$STR_BTC_HAM_MSQM_MRK_HELODESC; id=254; }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={4244.9482,21.994968,3888.4963}; + angles[]={6.259192,1.6371639,0.010664274}; + }; + side="Empty"; + flags=4; + class Attributes + { + textures="Green"; + }; + id=255; + type="C_Offroad_01_F"; + atlOffset=0.017175674; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + singleType="STRING"; + value="[[[[""FirstAidKit""],[4]],[[],[]],[[],[]],[[],[]]],false]"; + }; + }; + }; + class Attribute1 + { + property="VehicleCustomization"; + expression="if (local _this) then {([_this] + _value + [true]) call (uinamespace getvariable 'BIS_fnc_initVehicle')};"; + class Value + { + class data + { + singleType="ARRAY"; + class value + { + items=2; + class Item0 + { + class data + { + singleType="ARRAY"; + }; + }; + class Item1 + { + class data + { + singleType="ARRAY"; + class value + { + items=22; + class Item0 + { + class data + { + singleType="STRING"; + value="HideDoor1"; + }; + }; + class Item1 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item2 + { + class data + { + singleType="STRING"; + value="HideDoor2"; + }; + }; + class Item3 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item4 + { + class data + { + singleType="STRING"; + value="HideDoor3"; + }; + }; + class Item5 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item6 + { + class data + { + singleType="STRING"; + value="HideBackpacks"; + }; + }; + class Item7 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item8 + { + class data + { + singleType="STRING"; + value="HideBumper1"; + }; + }; + class Item9 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item10 + { + class data + { + singleType="STRING"; + value="HideBumper2"; + }; + }; + class Item11 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item12 + { + class data + { + singleType="STRING"; + value="HideConstruction"; + }; + }; + class Item13 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item14 + { + class data + { + singleType="STRING"; + value="hidePolice"; + }; + }; + class Item15 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item16 + { + class data + { + singleType="STRING"; + value="HideServices"; + }; + }; + class Item17 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item18 + { + class data + { + singleType="STRING"; + value="BeaconsStart"; + }; + }; + class Item19 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item20 + { + class data + { + singleType="STRING"; + value="BeaconsServicesStart"; + }; + }; + class Item21 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + }; + }; + }; + }; + }; + }; + nAttributes=2; + }; + }; }; class Connections { class LinkIDProvider { - nextID=19; + nextID=20; }; class Links { - items=19; + items=20; class Item0 { linkID=0; @@ -2527,6 +2780,16 @@ class Mission type="Sync"; }; }; + class Item19 + { + linkID=19; + item0=255; + item1=251; + class CustomData + { + type="Sync"; + }; + }; }; }; }; From e1b3b746ab960be1178c008e5115a59bb7f95ad4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 Nov 2021 16:42:21 +0100 Subject: [PATCH 273/354] fix spaming horn --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 + .../core/fnc/int/horn.sqf | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index b3da33389..72bdda87c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -405,6 +405,7 @@ btc_int_search_intel_time = 4; btc_int_sirenRadius = 35; btc_int_beaconRadius = 15; btc_int_hornRadius = 20; +btc_int_hornDelay = time; //Info btc_info_intel_chance = _info_chance; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf index 0ceaf4918..2835d637a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf @@ -20,8 +20,11 @@ Author: ---------------------------------------------------------------------------- */ private _veh = vehicle player; -if (_veh isEqualTo player) exitWith {}; -if (driver _veh isNotEqualTo player) exitWith {}; +if ( + _veh isEqualTo player || + {driver _veh isNotEqualTo player} || + {time < btc_int_hornDelay + 1} +) exitWith {}; params ["_displayOrControl", "_button"]; if (_button isNotEqualTo 0) exitWith {}; @@ -31,7 +34,8 @@ if ( _weapon isNotEqualTo "" && {!(_weapon isKindOf ["CarHorn", configFile >> "CfgWeapons"])} ) exitWith {}; - + +btc_int_hornDelay = time; [ 1, objNull, From 82bee335bec94305f7da831ea229f62cf147d56a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 Nov 2021 17:03:03 +0100 Subject: [PATCH 274/354] Fix map --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf index 2835d637a..a2d19d8ee 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf @@ -21,7 +21,8 @@ Author: private _veh = vehicle player; if ( - _veh isEqualTo player || + _veh isEqualTo player || + {visibleMap} || {driver _veh isNotEqualTo player} || {time < btc_int_hornDelay + 1} ) exitWith {}; From 0a52cd52d46f262f73e12ffac166f10074e3a693 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 Nov 2021 20:16:49 +0100 Subject: [PATCH 275/354] Don't use hideout position to show side mission --- .../core/fnc/city/activate.sqf | 8 ++++---- .../core/fnc/hideout/create.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf | 2 +- .../core/fnc/side/capture_officer.sqf | 2 +- .../core/fnc/side/chemicalLeak.sqf | 2 +- .../core/fnc/side/get_city.sqf | 3 +-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf | 2 +- .../core/fnc/side/rescue.sqf | 2 +- .../core/fnc/side/supply.sqf | 2 +- .../core/fnc/task/create.sqf | 3 +++ 10 files changed, 15 insertions(+), 13 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index e3cf9a0b4..6189fa879 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -228,11 +228,11 @@ if ( if (_has_ho && {!(_city getVariable ["ho_units_spawned", false])}) then { _city setVariable ["ho_units_spawned", true]; - private _pos = _city getVariable ["ho_pos", getPos _city]; - [_pos, 20, 10 + round (_p_mil_group_ratio * random 6), "SENTRY"] call btc_mil_fnc_create_group; - [_pos, 120, 1 + round random 2, "SENTRY"] call btc_mil_fnc_create_group; - [_pos, 120, 1 + round random 2, "SENTRY"] call btc_mil_fnc_create_group; + [_city, 20, 10 + round (_p_mil_group_ratio * random 6), "SENTRY"] call btc_mil_fnc_create_group; + [_city, 120, 1 + round random 2, "SENTRY"] call btc_mil_fnc_create_group; + [_city, 120, 1 + round random 2, "SENTRY"] call btc_mil_fnc_create_group; private _random = random 1; + private _pos = getPos _city; switch (true) do { case (_random <= 0.3) : {}; case (_random > 0.3 && _random <= 0.75) : { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf index 18e90c7b5..dff4b6dd8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf @@ -75,8 +75,8 @@ if (_pos isEqualTo []) then { _city = btc_city_all select _id; }; +_city setVariable ["city_realPos", getPos _city]; _city setPos _pos; -_city setVariable ["ho_pos", _pos]; if (btc_debug) then {deleteMarker format ["loc_%1", _id];}; deleteVehicle (_city getVariable ["trigger_player_side", objNull]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf index 8e2f3bb0d..f04493f1a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf @@ -32,7 +32,7 @@ private _useful = btc_city_all select { if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; -[_taskID, 36, [objNull, getPos _city] select (btc_p_spect), _city getVariable "name"] call btc_task_fnc_create; +[_taskID, 36, [objNull, _city] select (btc_p_spect), _city getVariable "name"] call btc_task_fnc_create; _city setVariable ["spawn_more", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 5deb0199c..fb93c1ccc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -51,7 +51,7 @@ private _road = selectRandom _roads; private _pos1 = getPosATL _road; private _pos2 = getPos _city2; -[_taskID, 14, _pos2, _city2 getVariable "name"] call btc_task_fnc_create; +[_taskID, 14, _city2, _city2 getVariable "name"] call btc_task_fnc_create; //// Create markers \\\\ private _marker1 = createMarker [format ["sm_2_%1", _pos1], _pos1]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf index c1ad5e14e..fa98122f0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf @@ -34,7 +34,7 @@ if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!isNull _x});} private _city = selectRandom _useful; private _pos = [getPos _city, 0, _city getVariable ["cachingRadius", 100], 30, false] call btc_fnc_findsafepos; -[_taskID, 30, getPos _city, _city getVariable "name"] call btc_task_fnc_create; +[_taskID, 30, _city, _city getVariable "name"] call btc_task_fnc_create; private _distance_between_fences = 3; private _number_of_fences = 2 * (3 + floor random 2); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf index 855d7fc15..06836b18c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf @@ -32,9 +32,8 @@ private _useful = btc_city_all select { if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; -private _pos = getPos _city; -[_taskID, 6, _pos, _city getVariable "name"] call btc_task_fnc_create; +[_taskID, 6, _city, _city getVariable "name"] call btc_task_fnc_create; _city setVariable ["spawn_more", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf index 04c8f29e0..30f2b2049 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf @@ -40,7 +40,7 @@ private _house = selectRandom ([_pos, 100] call btc_fnc_getHouses); if (isNil "_house") exitWith {[] spawn btc_side_fnc_create;}; _pos = selectRandom (_house buildingPos -1); -[_taskID, 16, getPos _city, _city getVariable "name"] call btc_task_fnc_create; +[_taskID, 16, _city, _city getVariable "name"] call btc_task_fnc_create; _city setVariable ["spawn_more",true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index 5bc647013..3ed16b679 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -69,7 +69,7 @@ _group setVariable ["no_cache", true]; private _crew = getText (configfile >> "CfgVehicles" >> _heli_type >> "crew"); _crew createUnit [_pos, _group]; -[_taskID, 13, getPos _city, _city getVariable "name"] call btc_task_fnc_create; +[_taskID, 13, _city, _city getVariable "name"] call btc_task_fnc_create; private _find_taskID = _taskID + "mv"; [[_find_taskID, _taskID], 20, objNull, _crew] call btc_task_fnc_create; private _back_taskID = _taskID + "bk"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf index 9bcaf6de8..e168353ba 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf @@ -35,7 +35,7 @@ private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; _pos = [_pos, 0, _city getVariable ["cachingRadius", 100], 20, false] call btc_fnc_findsafepos; -[_taskID, 3, getPos _city, _city getVariable "name"] call btc_task_fnc_create; +[_taskID, 3, _city, _city getVariable "name"] call btc_task_fnc_create; private _move_taskID = _taskID + "mv"; [[_move_taskID, _taskID], 18, _pos, btc_supplies_cargo] call btc_task_fnc_create; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf index 01d7bf95d..25d93bc0b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf @@ -35,5 +35,8 @@ params [ ["_showNotification", true, [true]] ]; +if (_destination in btc_city_all) then { + _destination = _destination getVariable ["city_realPos", getPos _destination]; +}; [btc_player_side, _task_ids, nil, _destination, ["CREATED", "ASSIGNED" ] select _isCurrent] call BIS_fnc_taskCreate; [_task_ids, btc_player_side, _description, _destination, 2, _showNotification, _location] remoteExecCall ["btc_task_fnc_setDescription", [0, -2] select isDedicated, true]; From 4492cb45cd5c816f67259b661b56f39424578f15 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 12 Nov 2021 12:09:20 +0100 Subject: [PATCH 276/354] Switch btc_int_hornDelay at the end --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf index a2d19d8ee..cc40e7414 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf @@ -36,10 +36,11 @@ if ( {!(_weapon isKindOf ["CarHorn", configFile >> "CfgWeapons"])} ) exitWith {}; -btc_int_hornDelay = time; [ 1, objNull, btc_int_hornRadius, _veh ] call btc_int_fnc_orders; + +btc_int_hornDelay = time; From b028da2166f8238a3bb965cc6ed36f2f2dd4e93f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 13 Nov 2021 09:55:43 +0100 Subject: [PATCH 277/354] fix hideout may cook off and destroy the ammo box --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf index dff4b6dd8..d7a0c5287 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf @@ -97,6 +97,7 @@ _hideout setVariable ["cap_time", _cap_time]; _hideout setVariable ["assigned_to", _city]; _hideout addEventHandler ["HandleDamage", btc_hideout_fnc_hd]; +_hideout setVariable ["ace_cookoff_enable", false, true]; private _markers = []; { From bcd6992e8a9266f0886d928ef3c965f73b5e23db Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 13 Nov 2021 12:37:51 +0100 Subject: [PATCH 278/354] Main task is show in map corner --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf index 25d93bc0b..9fad20ddb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf @@ -35,7 +35,10 @@ params [ ["_showNotification", true, [true]] ]; -if (_destination in btc_city_all) then { +if ( + _destination isNotEqualTo objNull && + {_destination in btc_city_all} +) then { _destination = _destination getVariable ["city_realPos", getPos _destination]; }; [btc_player_side, _task_ids, nil, _destination, ["CREATED", "ASSIGNED" ] select _isCurrent] call BIS_fnc_taskCreate; From 375c155368038d858f18f8f42b8baecfafa0dccc Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 14 Nov 2021 11:45:37 +0100 Subject: [PATCH 279/354] Remove bigshower variable --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- .../core/fnc/eh/player.sqf | 4 ++-- .../core/fnc/eh/server.sqf | 10 ++++++++-- .../core/fnc/log/init.sqf | 7 ------- .../core/fnc/side/chemicalLeak.sqf | 1 - =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 3 +-- =BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm | 3 +-- =BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm | 3 +-- 8 files changed, 14 insertions(+), 19 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 72bdda87c..886707f33 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -180,7 +180,7 @@ if (isServer) then { btc_rep_delayed = [0, []]; //Chem - btc_chem_decontaminate = [btc_bigShower]; + btc_chem_decontaminate = []; btc_chem_contaminated = []; publicVariable "btc_chem_contaminated"; //Preserve reference //Spect diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 64f0038d3..e827dd902 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -64,8 +64,8 @@ if (btc_p_chem) then { [missionNamespace, "probingEnded", btc_chem_fnc_biopsy] call BIS_fnc_addScriptedEventHandler; // Disable BI shower - ["DeconShower_01_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction', true];}] call CBA_fnc_addClassEventHandler; - ["DeconShower_02_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction', true];}] call CBA_fnc_addClassEventHandler; + ["DeconShower_01_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction', true];}, true, [], true] call CBA_fnc_addClassEventHandler; + ["DeconShower_02_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction', true];}, true, [], true] call CBA_fnc_addClassEventHandler; [] call btc_chem_fnc_ehDetector; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index ddd0ba324..2b918bc90 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -58,8 +58,14 @@ if (btc_p_auto_db) then { if (btc_p_chem) then { ["ace_cargoLoaded", btc_chem_fnc_propagate] call CBA_fnc_addEventHandler; ["AllVehicles", "GetIn", {[_this select 0, _this select 2] call btc_chem_fnc_propagate}] call CBA_fnc_addClassEventHandler; - ["DeconShower_01_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction',true]}] call CBA_fnc_addClassEventHandler; - ["DeconShower_02_F", "init", {(_this select 0) setVariable ['bin_deconshower_disableAction',true]}] call CBA_fnc_addClassEventHandler; + ["DeconShower_01_F", "init", { + btc_chem_decontaminate pushBack (_this select 0); + (_this select 0) setVariable ['bin_deconshower_disableAction', true]; + }, true, [], true] call CBA_fnc_addClassEventHandler; + ["DeconShower_02_F", "init", { + btc_chem_decontaminate pushBack (_this select 0); + (_this select 0) setVariable ['bin_deconshower_disableAction', true]; + }, true, [], true] call CBA_fnc_addClassEventHandler; }; ["GroundWeaponHolder", "InitPost", {btc_groundWeaponHolder append _this}] call CBA_fnc_addClassEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf index 40937f338..1a8aa1518 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf @@ -27,13 +27,6 @@ params [ if (btc_log_obj_created pushBackUnique _obj isEqualTo -1) exitWith {}; btc_curator addCuratorEditableObjects [[_obj], false]; -if ( - _obj isKindOf "DeconShower_01_F" || - _obj isKindOf "DeconShower_02_F" -) then { - btc_chem_decontaminate pushBackUnique _obj; -}; - private _type = typeOf _obj; if ( _type in btc_log_def_loadable && diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf index fa98122f0..b810f6e26 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf @@ -140,7 +140,6 @@ _composition_pattern append [ ]; private _composition_objects = [_pos, random 360, _composition_pattern] call btc_fnc_create_composition; -btc_chem_decontaminate append (_composition_objects select {_x isKindOf "DeconShower_01_F"}); private _chemical = []; for "_i" from 1 to (5 + round random 5) do { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 7c1649aca..b72a5b782 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -2139,8 +2139,7 @@ class Mission flags=4; class Attributes { - init="call{this setVariable ['bin_deconshower_disableAction',true];}"; - name="btc_bigShower"; + init=""; }; id=200; type="DeconShower_02_F"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 59e59c153..419771e89 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -1874,8 +1874,7 @@ class Mission flags=4; class Attributes { - init="call{this setVariable ['bin_deconshower_disableAction',true];}"; - name="btc_bigShower"; + init=""; }; id=200; type="DeconShower_02_F"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 04d9fe933..70aa74c21 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -1882,8 +1882,7 @@ class Mission flags=4; class Attributes { - init="call{this setVariable ['bin_deconshower_disableAction',true];}"; - name="btc_bigShower"; + init=""; }; id=200; type="DeconShower_02_F"; From 756087275b8d6d2bd715d2607380783cf3b26771 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 14 Nov 2021 17:35:34 +0100 Subject: [PATCH 280/354] Remove wheels of civilian vehicles decrease reputation --- .../core/def/mission.sqf | 2 + .../core/fnc/compile.sqf | 1 + .../core/fnc/eh/headless.sqf | 7 +-- .../core/fnc/eh/player.sqf | 3 ++ .../core/fnc/eh/server.sqf | 15 ++++--- .../core/fnc/rep/wheelChange.sqf | 45 +++++++++++++++++++ .../core/fnc/side/vehicle.sqf | 2 - .../stringtable.xml | 4 +- docs/InGame-documentation.md | 2 +- 9 files changed, 67 insertions(+), 14 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/wheelChange.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 72bdda87c..6e98eb442 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -651,6 +651,7 @@ btc_rep_bonus_IEDCleanUp = 10; btc_rep_bonus_removeTag = 3; btc_rep_bonus_removeTagLetter = 0.5; btc_rep_bonus_foodGive = 0.5; +btc_rep_bonus_wheelChange = 15; btc_rep_malus_civ_hd = - 2; btc_rep_malus_animal_hd = - 1; @@ -663,6 +664,7 @@ btc_rep_malus_building_damaged = - 2.5; btc_rep_malus_building_destroyed = - 5; btc_rep_malus_foodRemove = - btc_rep_bonus_foodGive; btc_rep_malus_breakDoor = - 2; +btc_rep_malus_wheelChange = - btc_rep_bonus_wheelChange; //Skill btc_AI_skill = _p_skill; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index a3d5dc49a..8fba69592 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -157,6 +157,7 @@ if (isServer) then { btc_rep_fnc_explosives_defuse = compileScript ["core\fnc\rep\explosives_defuse.sqf"]; btc_rep_fnc_notify = compileScript ["core\fnc\rep\notify.sqf"]; btc_rep_fnc_killed = compileScript ["core\fnc\rep\killed.sqf"]; + btc_rep_fnc_wheelChange = compileScript ["core\fnc\rep\wheelChange.sqf"]; //RESPAWN btc_respawn_fnc_addTicket = compileScript ["core\fnc\respawn\addTicket.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf index 22c86ce85..4288f77d0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf @@ -22,7 +22,6 @@ Author: ["Animal", "InitPost", { [_this select 0, "HandleDamage", btc_rep_fnc_hd] call CBA_fnc_addBISEventHandler; }, true, [], true] call CBA_fnc_addClassEventHandler; - { [_x, "InitPost", { [_this select 0, "Suppressed", btc_rep_fnc_suppressed] call CBA_fnc_addBISEventHandler; @@ -34,11 +33,13 @@ Author: [_this select 0, "HandleDamage", btc_rep_fnc_hd] call CBA_fnc_addBISEventHandler; }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; +["ace_disarming_dropItems", btc_rep_fnc_foodRemoved] call CBA_fnc_addEventHandler; +["ace_repair_setWheelHitPointDamage", { + _this remoteExecCall ["btc_rep_fnc_wheelChange", 2]; +}] call CBA_fnc_addEventHandler; { [_x, "InitPost", { [_this select 0, "HandleDamage", btc_patrol_fnc_disabled] call CBA_fnc_addBISEventHandler; }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; - -["ace_disarming_dropItems", btc_rep_fnc_foodRemoved] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 64f0038d3..61b752999 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -39,6 +39,9 @@ params [ }] call CBA_fnc_addEventHandler; _player addEventHandler ["CuratorObjectPlaced", btc_eh_fnc_CuratorObjectPlaced]; ["ace_treatmentSucceded", btc_rep_fnc_treatment] call CBA_fnc_addEventHandler; +["ace_repair_setWheelHitPointDamage", { + _this remoteExecCall ["btc_rep_fnc_wheelChange", 2]; +}] call CBA_fnc_addEventHandler; _player addEventHandler ["WeaponAssembled", btc_civ_fnc_add_leaflets]; [_player, "WeaponAssembled", {[_thisType, _this] call btc_fob_fnc_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; [_player, "WeaponDisassembled", {[_thisType, _this] call btc_fob_fnc_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index ddd0ba324..10fc5d976 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -41,6 +41,14 @@ addMissionEventHandler ["BuildingChanged", btc_rep_fnc_buildingchanged]; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; ["ace_killed", btc_mil_fnc_unit_killed] call CBA_fnc_addEventHandler; +["ace_repair_setWheelHitPointDamage", { + _this remoteExecCall ["btc_rep_fnc_wheelChange", 2]; +}] call CBA_fnc_addEventHandler; +["ace_disarming_dropItems", btc_rep_fnc_foodRemoved] call CBA_fnc_addEventHandler; +["btc_respawn_player", { + params ["", "_player"]; + [btc_rep_malus_player_respawn, _player] call btc_rep_fnc_change; +}] call CBA_fnc_addEventHandler; addMissionEventHandler ["HandleDisconnect", { params ["_headless"]; @@ -81,12 +89,7 @@ if (btc_p_set_skill) then { [_this select 0, "HandleDamage", btc_patrol_fnc_disabled] call CBA_fnc_addBISEventHandler; }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; -["ace_tagCreated", btc_tag_fnc_eh] call CBA_fnc_addEventHandler; -["ace_disarming_dropItems", btc_rep_fnc_foodRemoved] call CBA_fnc_addEventHandler; -["btc_respawn_player", { - params ["", "_player"]; - [btc_rep_malus_player_respawn, _player] call btc_rep_fnc_change; -}] call CBA_fnc_addEventHandler; +["ace_tagCreated", btc_tag_fnc_eh] call CBA_fnc_addEventHandler; if (btc_p_respawn_ticketsAtStart >= 0) then { ["btc_respawn_player", { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/wheelChange.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/wheelChange.sqf new file mode 100644 index 000000000..a724150ad --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/wheelChange.sqf @@ -0,0 +1,45 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_rep_fnc_wheelChange + +Description: + Change reputation when a player change a wheel of a civilian car. + +Parameters: + _object - Vehicle. [Object] + _hitPoint - Hitpoint. [String] + _damage - Damage value. [Number] + +Returns: + +Examples: + (begin example) + [cursorObject, "", 1] call btc_rep_fnc_wheelChange; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + "_object", + "_hitPoint", + "_damage" +]; + +if ( + _object in btc_veh_respawnable || + {_object in btc_vehicles} || + {getNumber(configOf _object >> "side") isNotEqualTo 3} +) exitWith {}; + +private _instigator = nearestObject [_object, btc_player_type]; +[ + [btc_rep_bonus_wheelChange, btc_rep_malus_wheelChange] select _damage, + _instigator +] call btc_rep_fnc_change; + +if (btc_debug_log) then { + [format ["THIS = %1 _instigator = %2", _this, _instigator], __FILE__, [false]] call btc_debug_fnc_message; +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf index 7c5016024..d9dd54da2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf @@ -56,6 +56,4 @@ if (!alive _veh) exitWith { [_taskID, "FAILED"] call BIS_fnc_taskSetState; }; -15 call btc_rep_fnc_change; - [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 9d42a20ff..5a9d92ebb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -222,12 +222,12 @@ Réputation - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Good actions:</marker><br/> Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, give banana, remove tag with spraypaint , remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bad actions:</marker><br/> Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, remove banana, damaging/destroying buildings, breaking door lock, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Good actions:</marker><br/> Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, give banana, remove tag with spraypaint , remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bad actions:</marker><br/> Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, remove wheels, remove banana, damaging/destroying buildings, breaking door lock, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> La reputación se puede solicitar a los civiles<br/> Las malas acciones causan malos efectos sobre la reputacion.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ayudar a la población local luchando contra los Oplitas y desarmando los artefactos explosivos improvisados aumentará tu reputación; matar civiles, mutilar civiles vivos/muertos, disparar cerca de civiles sin razón alguna, disparar a vehículos civiles, dañar/destruir edificios, perder vehículos, respawns de jugadores disminuirá tu reputación. Al principio tienes un nivel de reputación muy bajo, por lo que los civiles no te ayudarán a revelar información importante sobre los Oplitas, es probable que mientan en su lugar.<br/> Abortar una misión secundaria no afecta a la reputación. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Ihr Ansehen bei der Bevölkerung können Sie bei Zivilisten erfragen <br/> Schlechte bzw. böse Handlungen habe zur Folge das ihr Ansehen sinkt. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Das Unterstützen der lokalen Bevölkerung, das Entschärfen von IEDs und der aktive Kampf gegen die Oplitas wird sich positiv auf ihr Ansehen auswirken. Negative Aktionen wie zb. das Töten oder verstümmeln von Zivlisten, das grundlose Abfeueren einer Waffe in der Nähe von Zivilisten, das Zerstören oder Beschädigen von Gebäuden, der Angriff auf zivile Fahrzeuge, der Verlust von Fahrzeugen im Allgemeinen oder das Respawnen haben hingegen einen nicht so guten Effekt. Zu Beginn ist Ihr Ansehen nur recht gering, weshalb es sein kann das Zivlisten eher zruückhaltend mit Informationen sind. In manchen Fällen werden die Zivilisten Sie auch einfach belügen.<br/> Das Abbrechen von Nebenaufgaben hat keine Auswirkung auf Ihr Ansehen. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> A Reputação entre a população é obtida por meio dos civis <br/> Ações ruins ou más fazem a reputação diminuir. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ajudar a população local combatendo os inimigos e desarmando os IED's aumentará sua reputação. Matar civis, mutilar civis vivos/mortos, atirar perto de civis sem motivo, atirar nos veículos civis, danificar/destruir prédios, perder veículos civis, respawns de jogadores diminuirão a reputação. No começo, o nível de reputação é muito baixo, então, os civis não irão ajudá-lo a revelar informações importantes sobre os inimigos ou provavelmente irão mentir.<br/> Cancelar tarefas secundárias não afeta a reputação. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>系统:</marker><br/> 在任务开始时, 你只有很低的声誉, 所以平民不会向你展示关于Oplitas的重要信息, 他们更倾向于说谎。可以通过询问平民来获知声誉状况。<br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>善举:</marker><br/> 帮助当地居民反抗Oplitas, 拆除IED, 救助平民, 把香蕉送给平民, 使用红色喷漆去除涂鸦, 完成支线任务和摧毁武器箱/藏匿点将会提升你的声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>恶行:</marker><br/> 恶行将会酿成恶果: 击杀或残害平民/动物, 毫无理由地向平民身边射击, 攻击平民车辆, 拿走平民的香蕉, 毁坏或摧毁建筑物, 损失我方载具和玩家重生均会降低声誉。中止支线任务不会影响声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, donner une banane, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, tirer sur une voiture civile, retirer une banane, endommager / détruire des bâtiments, casser les serrures des portes, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, donner une banane, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, tirer sur une voiture civile, retirer les roues, retirer une banane, endommager / détruire des bâtiments, casser les serrures des portes, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index 183d7868b..cdbe9faf1 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -141,7 +141,7 @@ At the beginning you have a very low reputation level, so civilians won't help y ### Good actions: Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, give banana, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. ### Bad actions: -Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, remove banana, damaging/destroying buildings, breaking locked door, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. +Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, remove wheels, remove banana, damaging/destroying buildings, breaking locked door, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. ## Civil Orders Any player can give orders to civilians. To do this, just open your self interaction menu and select 'ORDERS' or use one of the shortcuts. Shortcuts can changed under 'configure >> controls>> configure addons >> Hearts and Minds: Mission (drop down menu)'. Your options are: From 7dc7bfc92057ecf420958c3824bba97557574240 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 15 Nov 2021 20:22:48 +0100 Subject: [PATCH 281/354] Remove bonus --- .../core/def/mission.sqf | 3 +-- .../core/fnc/eh/player.sqf | 8 +++++--- .../core/fnc/rep/wheelChange.sqf | 5 +++-- .../core/fnc/side/vehicle.sqf | 13 ++++++++++--- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 6e98eb442..51c3380db 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -651,7 +651,6 @@ btc_rep_bonus_IEDCleanUp = 10; btc_rep_bonus_removeTag = 3; btc_rep_bonus_removeTagLetter = 0.5; btc_rep_bonus_foodGive = 0.5; -btc_rep_bonus_wheelChange = 15; btc_rep_malus_civ_hd = - 2; btc_rep_malus_animal_hd = - 1; @@ -664,7 +663,7 @@ btc_rep_malus_building_damaged = - 2.5; btc_rep_malus_building_destroyed = - 5; btc_rep_malus_foodRemove = - btc_rep_bonus_foodGive; btc_rep_malus_breakDoor = - 2; -btc_rep_malus_wheelChange = - btc_rep_bonus_wheelChange; +btc_rep_malus_wheelChange = - 7; //Skill btc_AI_skill = _p_skill; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 61b752999..117aed25d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -39,9 +39,11 @@ params [ }] call CBA_fnc_addEventHandler; _player addEventHandler ["CuratorObjectPlaced", btc_eh_fnc_CuratorObjectPlaced]; ["ace_treatmentSucceded", btc_rep_fnc_treatment] call CBA_fnc_addEventHandler; -["ace_repair_setWheelHitPointDamage", { - _this remoteExecCall ["btc_rep_fnc_wheelChange", 2]; -}] call CBA_fnc_addEventHandler; +if !(isServer) then { // Don't add twice the event in player host + ["ace_repair_setWheelHitPointDamage", { + _this remoteExecCall ["btc_rep_fnc_wheelChange", 2]; + }] call CBA_fnc_addEventHandler; +}; _player addEventHandler ["WeaponAssembled", btc_civ_fnc_add_leaflets]; [_player, "WeaponAssembled", {[_thisType, _this] call btc_fob_fnc_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; [_player, "WeaponDisassembled", {[_thisType, _this] call btc_fob_fnc_rallypointAssemble;}] call CBA_fnc_addBISEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/wheelChange.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/wheelChange.sqf index a724150ad..4e1cbb3e7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/wheelChange.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/wheelChange.sqf @@ -29,14 +29,15 @@ params [ ]; if ( - _object in btc_veh_respawnable || + _damage < 1 || + {_object in btc_veh_respawnable} || {_object in btc_vehicles} || {getNumber(configOf _object >> "side") isNotEqualTo 3} ) exitWith {}; private _instigator = nearestObject [_object, btc_player_type]; [ - [btc_rep_bonus_wheelChange, btc_rep_malus_wheelChange] select _damage, + btc_rep_malus_wheelChange, _instigator ] call btc_rep_fnc_change; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf index d9dd54da2..f567aaf6c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_side_fnc_vehicle; + [false, "btc_side_fnc_vehicle"] spawn btc_side_fnc_create; (end) Author: @@ -37,20 +37,27 @@ if (_roads isNotEqualTo []) then {_pos = getPos (selectRandom _roads);}; private _veh_type = selectRandom btc_civ_type_veh; private _veh = createVehicle [_veh_type, _pos, [], 0, "NONE"]; +(_veh call ace_repair_fnc_getWheelHitPointsWithSelections) params ["_wheelHitPoints", "_wheelHitPointSelections"]; _veh setDir (random 360); _veh setDamage 0.7; -_veh setHit ["wheel_1_1_steering", 1]; +private _damagedWheel = 1 + round random (count _wheelHitPointSelections - 1); +_wheelHitPointSelections = (_wheelHitPointSelections call BIS_fnc_arrayShuffle) select [0, _damagedWheel]; +{ + _veh setHit [_x, 1]; +} forEach _wheelHitPointSelections; [_taskID, 5, _veh, [_city getVariable "name", _veh_type]] call btc_task_fnc_create; waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || - _veh getHit "wheel_1_1_steering" < 1 || + ({_x} count (_wheelHitPointSelections apply {_veh getHit _x < 1})) isEqualTo _damagedWheel || !alive _veh }; [[], [_veh]] call btc_fnc_delete; +(- btc_rep_malus_wheelChange * _damagedWheel) call btc_rep_fnc_change; + if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; if (!alive _veh) exitWith { [_taskID, "FAILED"] call BIS_fnc_taskSetState; From ed71e2a0ea9d4fa0f6bf6d317536e340f961606c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 16 Nov 2021 17:28:11 +0100 Subject: [PATCH 282/354] general code improvements --- .../core/fnc/arsenal/trait.sqf | 12 ------------ .../core/fnc/cache/create.sqf | 7 +++---- .../core/fnc/common/set_markerTextLocal.sqf | 2 -- .../core/fnc/common/typeOf.sqf | 4 ++-- .../core/fnc/mil/send.sqf | 5 ++--- 5 files changed, 7 insertions(+), 23 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/trait.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/trait.sqf index a5b17a079..00ad96e83 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/trait.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/trait.sqf @@ -59,16 +59,4 @@ switch (true) do { }; }; -if (btc_debug || btc_debug_log) then { - [ - format ["IsMedic: %1 IsAdvEngineer: %2 IsExplosiveSpecialist: %3 IsAT: %4 IsAA: %5", - _player getUnitTrait "medic", - _player getVariable ["ace_isEngineer", 0], - _player getUnitTrait "explosiveSpecialist", - [typeOf _player, ["MissileLauncher", "128 + 512"]] call btc_mil_fnc_ammoUsage, - [typeOf _player, ["MissileLauncher", "256"]] call btc_mil_fnc_ammoUsage - ], __FILE__, [btc_debug, btc_debug_log] - ] call btc_debug_fnc_message; -}; - _type_ammoUsageAllowed diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf index 340dca538..2f67dfc84 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf @@ -8,7 +8,7 @@ Description: Parameters: _cache_pos - Position of the cache. [Array] _p_chem - Create a chemical cache. [Boolean] - _probilityNotChemical - Probability to not create a chemical cache. [Number] + _probabilityNotChemical - Probability to not create a chemical cache. [Number] Returns: @@ -29,12 +29,12 @@ Author: params [ ["_cache_pos", btc_cache_pos, [[]]], ["_p_chem", btc_p_chem, [true]], - ["_probilityNotChemical", 0.7, [0]] + ["_probabilityNotChemical", 0.7, [0]] ]; private _isChem = false; if (_p_chem) then { - _isChem = random 1 > _probilityNotChemical; + _isChem = random 1 > _probabilityNotChemical; }; private _cacheType = selectRandom (btc_cache_type select 0); btc_cache_obj = _cacheType createVehicle _cache_pos; @@ -73,7 +73,6 @@ if (btc_debug_log) then { if (btc_debug) then { [format ["in %1", _cache_pos], __FILE__, [btc_debug, false]] call btc_debug_fnc_message; - //Marker private _marker = createMarker [format ["%1", _cache_pos], _cache_pos]; _marker setMarkerType "mil_unknown"; _marker setMarkerText format ["Cache %1", btc_cache_n]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_markerTextLocal.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_markerTextLocal.sqf index cd00f848d..8a5e7899b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_markerTextLocal.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_markerTextLocal.sqf @@ -28,8 +28,6 @@ params [ ["_arg", "", ["", 0]] ]; -//check for localized text _text = if (isLocalized _text) then {localize _text}; -//set markerText _marker setMarkerTextLocal format [_text, _arg]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/typeOf.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/typeOf.sqf index 8c4eaaf12..2565e4136 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/typeOf.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/typeOf.sqf @@ -30,7 +30,7 @@ if (isNil "btc_modelNamespace") then { btc_modelNamespace = call CBA_fnc_createNamespace; }; -private _CfgVehicles = configFile >> "CfgVehicles"; +private _cfgVehicles = configFile >> "cfgVehicles"; _objectArray apply { private _type = typeOf _x; @@ -41,7 +41,7 @@ _objectArray apply { _type = btc_modelNamespace getVariable _model; if (isNil "_type") then { private _objects = configProperties [ - _CfgVehicles, + _cfgVehicles, "(isClass _x) && {(((getText (_x >> 'model')) select [1]) == _model) || {(getText (_x >> 'model')) == _model}}", true ]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf index 4404561f3..5f41c6523 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf @@ -8,7 +8,7 @@ Description: Parameters: _start - Starting point. [Object] _dest - Destination. [Array, Object] - _typeOf_patrol - Infantry or motorized. [String] + _typeOf_patrol - Infantry or motorized. [Number] _veh_type - Vehicle type for motorized. [String] _infFormation - Define the infantry formation. [String] @@ -40,11 +40,9 @@ private _delay = 0; switch (_typeOf_patrol) do { case 0 : { _group = ([_pos, 150, 3 + round random 6, "PATROL"] call btc_mil_fnc_create_group) select 0; - _group setVariable ["no_cache", true]; }; case 1 : { _group = createGroup btc_enemy_side; - _group setVariable ["no_cache", true]; if (_veh_type isEqualTo "") then {_veh_type = selectRandom btc_type_motorized}; private _return_pos = [_pos, 10, 500, 13, false] call btc_fnc_findsafepos; @@ -52,6 +50,7 @@ switch (_typeOf_patrol) do { _delay = [_group, _return_pos, _veh_type] call btc_mil_fnc_createVehicle; }; }; +_group setVariable ["no_cache", true]; [{ params ["_group", "_typeOf_patrol", "_dest", "_infFormation"]; From b826dfc0235fc27a94bceb0beaac0afb945fed4f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 17 Nov 2021 22:32:30 +0100 Subject: [PATCH 283/354] Migrate code in events to a proper fnc --- .../core/fnc/body/setBodyBag.sqf | 29 +++++++++++++ .../core/fnc/compile.sqf | 3 ++ .../core/fnc/eh/server.sqf | 41 ++----------------- .../core/fnc/respawn/player.sqf | 32 +++++++++++++++ .../core/fnc/respawn/playerConnected.sqf | 37 +++++++++++++++++ 5 files changed, 104 insertions(+), 38 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/player.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/playerConnected.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf new file mode 100644 index 000000000..8efc4b936 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf @@ -0,0 +1,29 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_body_fnc_setBodyBag + +Description: + Set bodybag variable from a patient. + +Parameters: + +Returns: + +Examples: + (begin example) + [] call btc_body_fnc_setBodyBag; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params ["_patient", "_bodyBag"]; + +deleteMarker (_patient getVariable ["btc_body_deadMarker", ""]); +if (_patient getVariable ["btc_dont_delete", false]) then { + _bodyBag setVariable ["btc_isDeadPlayer", true]; + _bodyBag setVariable ["btc_UID", _patient getVariable ["btc_UID", ""]]; +}; +[_bodyBag] call btc_log_fnc_init; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index a3d5dc49a..860df774e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -5,6 +5,7 @@ if (isServer) then { btc_body_fnc_createMarker = compileScript ["core\fnc\body\createMarker.sqf"]; btc_body_fnc_dogtagGet = compileScript ["core\fnc\body\dogtagGet.sqf"]; btc_body_fnc_dogtagSet = compileScript ["core\fnc\body\dogtagSet.sqf"]; + btc_body_fnc_setBodyBag = compileScript ["core\fnc\body\setBodyBag.sqf"]; //CACHE btc_cache_fnc_find_pos = compileScript ["core\fnc\cache\find_pos.sqf"]; @@ -160,6 +161,8 @@ if (isServer) then { //RESPAWN btc_respawn_fnc_addTicket = compileScript ["core\fnc\respawn\addTicket.sqf"]; + btc_respawn_fnc_playerConnected = compileScript ["core\fnc\respawn\playerConnected.sqf"]; + btc_respawn_fnc_player = compileScript ["core\fnc\respawn\player.sqf"]; //SIDE btc_side_fnc_create = compileScript ["core\fnc\side\create.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 2b918bc90..e1da71123 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -95,46 +95,11 @@ if (btc_p_set_skill) then { }] call CBA_fnc_addEventHandler; if (btc_p_respawn_ticketsAtStart >= 0) then { - ["btc_respawn_player", { - params ["_unit", "_player"]; - _unit setVariable ["btc_dont_delete", true]; - btc_body_deadPlayers pushBack _unit; - _unit setVariable ["btc_UID", getPlayerUID _player]; - if !(btc_p_respawn_ticketsShare) then { - btc_respawn_tickets set [getPlayerUID _player, ([_player] call BIS_fnc_respawnTickets) - 1]; - }; - - if (btc_p_body_timeBeforeShowMarker isEqualTo -1) exitwith {}; - [btc_body_fnc_createMarker, _unit, btc_p_body_timeBeforeShowMarker] call CBA_fnc_waitAndExecute; - }] call CBA_fnc_addEventHandler; - ["ace_placedInBodyBag", { - params ["_patient", "_bodyBag"]; - deleteMarker (_patient getVariable ["btc_body_deadMarker", ""]); - if (_patient getVariable ["btc_dont_delete", false]) then { - _bodyBag setVariable ["btc_isDeadPlayer", true]; - _bodyBag setVariable ["btc_UID", _patient getVariable ["btc_UID", ""]]; - }; - [_bodyBag] call btc_log_fnc_init; - }] call CBA_fnc_addEventHandler; + ["btc_respawn_player", btc_respawn_fnc_player] call CBA_fnc_addEventHandler; + ["ace_placedInBodyBag", btc_body_fnc_setBodyBag] call CBA_fnc_addEventHandler; if !(btc_p_respawn_ticketsShare) then { - addMissionEventHandler ["PlayerConnected", { - params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; - if (_name isEqualTo "__SERVER__") exitWith {}; - - [{ - !isNull (_this call BIS_fnc_getUnitByUID) - }, { - private _tickets = btc_respawn_tickets getOrDefault [_this, btc_p_respawn_ticketsAtStart]; - if (_tickets isEqualTo 0) then { - _tickets = -1; - }; - [ - _this call BIS_fnc_getUnitByUID, - _tickets - ] call BIS_fnc_respawnTickets; - }, _uid, 4 * 60] call CBA_fnc_waitUntilAndExecute; - }]; + addMissionEventHandler ["PlayerConnected", btc_respawn_fnc_playerConnected]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/player.sqf new file mode 100644 index 000000000..0f3ab5e46 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/player.sqf @@ -0,0 +1,32 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_respawn_fnc_player + +Description: + Process dead body, save new respawn tickets player and show KIA marker. + +Parameters: + +Returns: + +Examples: + (begin example) + [] call btc_respawn_fnc_player; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params ["_unit", "_player"]; + +_unit setVariable ["btc_dont_delete", true]; +btc_body_deadPlayers pushBack _unit; +_unit setVariable ["btc_UID", getPlayerUID _player]; +if !(btc_p_respawn_ticketsShare) then { + btc_respawn_tickets set [getPlayerUID _player, ([_player] call BIS_fnc_respawnTickets) - 1]; +}; + +if (btc_p_body_timeBeforeShowMarker isEqualTo -1) exitwith {}; +[btc_body_fnc_createMarker, _unit, btc_p_body_timeBeforeShowMarker] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/playerConnected.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/playerConnected.sqf new file mode 100644 index 000000000..2f80ab5ea --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/playerConnected.sqf @@ -0,0 +1,37 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_respawn_fnc_playerConnected + +Description: + Send the number of respawn tickets to a player during connection. + +Parameters: + +Returns: + +Examples: + (begin example) + [] call btc_respawn_fnc_playerConnected; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; + +if (_name isEqualTo "__SERVER__") exitWith {}; + +[{ + !isNull (_this call BIS_fnc_getUnitByUID) +}, { + private _tickets = btc_respawn_tickets getOrDefault [_this, btc_p_respawn_ticketsAtStart]; + if (_tickets isEqualTo 0) then { + _tickets = -1; + }; + [ + _this call BIS_fnc_getUnitByUID, + _tickets + ] call BIS_fnc_respawnTickets; +}, _uid, 4 * 60] call CBA_fnc_waitUntilAndExecute; From 148783262f2ece1927456fe1a90114c10597a35d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 21 Nov 2021 13:54:31 +0100 Subject: [PATCH 284/354] Dead body get removed when wreck repair --- .../core/fnc/common/moveOut.sqf | 26 +++++++++++++++++++ .../core/fnc/compile.sqf | 1 + .../core/fnc/log/server_repair_wreck.sqf | 7 ++--- .../core/fnc/veh/respawn.sqf | 4 +-- 4 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/moveOut.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/moveOut.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/moveOut.sqf new file mode 100644 index 000000000..af77800b4 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/moveOut.sqf @@ -0,0 +1,26 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_moveOut + +Description: + Move out crew of a vehicle each frame to avoid dead body colliding. + +Parameters: + _crew - Crew array. [Array] + +Returns: + +Examples: + (begin example) + crew cursorObject call btc_fnc_moveOut; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +if (_this isEqualTo []) exitWith {}; + +moveOut (_this deleteAt 0); +[btc_fnc_mouveOut, _this] call CBA_fnc_execNextFrame; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 77be85136..0c2251c71 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -28,6 +28,7 @@ if (isServer) then { btc_fnc_set_groupsOwner = compileScript ["core\fnc\common\set_groupsOwner.sqf"]; btc_fnc_typeOf = compileScript ["core\fnc\common\typeOf.sqf"]; btc_fnc_roof = compileScript ["core\fnc\common\roof.sqf"]; + btc_fnc_moveOut = compileScript ["core\fnc\common\moveOut.sqf"]; //CHEM btc_chem_fnc_checkLoop = compileScript ["core\fnc\chem\checkLoop.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index bec845aec..c29327108 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -48,10 +48,7 @@ if ((getVehicleCargo _veh) isNotEqualTo []) then { _veh setVehicleCargo objNull; }; -{moveOut _x} forEach crew _veh; - -[{ - deleteVehicle _this; -}, _veh] call CBA_fnc_execNextFrame; +crew _veh call btc_fnc_moveOut; +[{crew _this isEqualTo []}, CBA_fnc_deleteEntity, _veh] call CBA_fnc_waitUntilAndExecute; [btc_log_fnc_createVehicle, [_type, [_x, _y, 0.5 + _z], _dir] + _vehProperties + [_EDENinventory], 1] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index 601634a58..f1b4e8b1f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -38,8 +38,8 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); ["_helo", btc_veh_respawnable, [[]]] ]; - {moveOut _x} forEach crew _vehicle; - deleteVehicle _vehicle; + crew _vehicle call btc_fnc_moveOut; + [{crew _this isEqualTo []}, CBA_fnc_deleteEntity, _vehicle] call CBA_fnc_waitUntilAndExecute; _helo deleteAt (_helo find _vehicle); [{ From e8d71426bd5bb9eb0860daa33ba9e19c80f96404 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 22 Nov 2021 19:42:56 +0100 Subject: [PATCH 285/354] Remove btc_isDeadPlayer and unload body from respawn vehicle --- .../core/def/mission.sqf | 2 +- .../core/fnc/body/bagRecover_s.sqf | 17 +++++----- .../core/fnc/body/dogtagGet.sqf | 2 +- .../core/fnc/body/dogtagSet.sqf | 4 +-- .../core/fnc/body/setBodyBag.sqf | 3 +- .../core/fnc/common/moveOut.sqf | 2 +- .../core/fnc/db/load.sqf | 6 ++-- .../core/fnc/db/save.sqf | 6 ++-- .../core/fnc/log/server_repair_wreck.sqf | 9 ++++-- .../core/fnc/veh/addRespawn.sqf | 9 +++++- .../core/fnc/veh/respawn.sqf | 32 ++++++------------- 11 files changed, 44 insertions(+), 48 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index b8a95bd16..621c651b7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -1,7 +1,7 @@ btc_version = [ 1, - 21.1, + 21.2, 8 ]; diag_log format (["=BTC= HEARTS AND MINDS VERSION %1.%2.%3"] + btc_version); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf index 982e24757..4cf25d686 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover_s.sqf @@ -25,11 +25,13 @@ params [ ]; private _ticket = 0; -if (_bodyBag getVariable ["btc_isDeadPlayer", false]) then { +private _UID = _bodyBag getVariable ["btc_UID", ""]; +if (_UID isNotEqualTo "") then { _ticket = btc_body_bagTicketPlayer; -}; -if (_bodyBag isKindOf "CAManBase") then { - _ticket = btc_body_enemyTicket; +} else { + if (alive _bodyBag && _bodyBag isKindOf "CAManBase") then { + _ticket = btc_body_enemyTicket; + }; }; if (_ticket isEqualTo 0) exitWith { @@ -40,10 +42,9 @@ if (_ticket isEqualTo 0) exitWith { if (btc_p_respawn_ticketsShare) then { [btc_player_side, _ticket] call btc_respawn_fnc_addTicket; } else { - if (_bodyBag isKindOf "ACE_bodyBagObject") then { - private _uid = _bodyBag getVariable ["btc_UID", ""]; - private _player = _uid call BIS_fnc_getUnitByUID; - [_player, _ticket, _uid] call btc_respawn_fnc_addTicket; + if (_UID isNotEqualTo "") then { + private _player = _UID call BIS_fnc_getUnitByUID; + [_player, _ticket, _UID] call btc_respawn_fnc_addTicket; } else { private _players = (units btc_player_side) select {isPlayer _x}; { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf index 85153dc15..2e419562d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf @@ -27,5 +27,5 @@ params [ [ _unit call ace_dogtags_fnc_getDogtagData, !isNull (_unit getVariable ["ace_dogtags_dogtagTaken", objNull]), - _unit getVariable ["btc_isDeadPlayer", false] + _unit getVariable ["btc_UID", ""] ] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf index 3401ce40c..b0eca9caa 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagSet.sqf @@ -28,7 +28,7 @@ params [ _dogtagDataTaken params [ ["_dogtagData", [], [[]]], ["_dogtagTaken", false, [false]], - ["_isDeadPlayer", false, [false]] + ["_UID", "", [""]] ]; if (_dogtagData isNotEqualTo []) then { @@ -36,5 +36,5 @@ if (_dogtagData isNotEqualTo []) then { if (_dogtagTaken) then { _deadBody setVariable ["ace_dogtags_dogtagTaken", _deadBody, true]; }; - _deadBody setVariable ["btc_isDeadPlayer", _isDeadPlayer]; + _deadBody setVariable ["btc_UID", _UID]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf index 8efc4b936..9dc027c9f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf @@ -22,8 +22,7 @@ Author: params ["_patient", "_bodyBag"]; deleteMarker (_patient getVariable ["btc_body_deadMarker", ""]); -if (_patient getVariable ["btc_dont_delete", false]) then { - _bodyBag setVariable ["btc_isDeadPlayer", true]; +if (_patient getVariable ["btc_UID", ""] isNotEqualTo "") then { _bodyBag setVariable ["btc_UID", _patient getVariable ["btc_UID", ""]]; }; [_bodyBag] call btc_log_fnc_init; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/moveOut.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/moveOut.sqf index af77800b4..443cb20a0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/moveOut.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/moveOut.sqf @@ -23,4 +23,4 @@ Author: if (_this isEqualTo []) exitWith {}; moveOut (_this deleteAt 0); -[btc_fnc_mouveOut, _this] call CBA_fnc_execNextFrame; +[btc_fnc_moveOut, _this] call CBA_fnc_execNextFrame; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index d190ae740..2e0eb2f6d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -222,13 +222,12 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); private _group = createGroup btc_player_side; btc_body_deadPlayers = _deadBodyPlayers apply { - _x params ["_type", "_pos", "_dir", "_loadout", "_dogtagData", "_dogtagTaken", "_isContaminated", - ["_uid", "", [""]], + _x params ["_type", "_pos", "_dir", "_loadout", "_dogtag", "", "_isContaminated", "", ["_flagTexture", "", [""]] ]; private _body = _group createUnit [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; _body setUnitLoadout _loadout; - [_body, [_dogtagData, _dogtagTaken]] call btc_body_fnc_dogtagSet; + [_body, _dogtag] call btc_body_fnc_dogtagSet; if (_isContaminated) then { if ((btc_chem_contaminated pushBackUnique _body) > -1) then { @@ -237,7 +236,6 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { }; _body setDamage 1; _body setVariable ["btc_dont_delete", true]; - _body setVariable ["btc_UID", _uid]; _body forceFlagTexture _flagTexture; [{ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 9c288c4a6..b5623966b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -224,10 +224,10 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { getPosASL _x, getDir _x, getUnitLoadout _x, - _x call ace_dogtags_fnc_getDogtagData, - !isNull (_x getVariable ["ace_dogtags_dogtagTaken", objNull]), + _x call btc_body_fnc_dogtagGet, + nil, _x in btc_chem_contaminated, - _x getVariable ["btc_UID", ""], + nil, getForcedFlagTexture _x ]}; profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], +_deadBodyPlayers]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index c29327108..2b9a74cf8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -48,7 +48,10 @@ if ((getVehicleCargo _veh) isNotEqualTo []) then { _veh setVehicleCargo objNull; }; -crew _veh call btc_fnc_moveOut; -[{crew _this isEqualTo []}, CBA_fnc_deleteEntity, _veh] call CBA_fnc_waitUntilAndExecute; +{ + _x call btc_body_fnc_bagRecover_s; +} forEach crew _veh; +deleteVehicle _veh; -[btc_log_fnc_createVehicle, [_type, [_x, _y, 0.5 + _z], _dir] + _vehProperties + [_EDENinventory], 1] call CBA_fnc_waitAndExecute; +private _serialisedVeh = [_type, [_x, _y, 0.5 + _z], _dir] + _vehProperties + [_EDENinventory]; +[btc_log_fnc_createVehicle, _serialisedVeh, 1] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index b5079d09a..159e65d49 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -37,11 +37,18 @@ private _vehProperties = [_vehicle] call btc_veh_fnc_propertiesGet; _vehProperties set [5, false]; _vehicle setVariable ["data_respawn", [_type, _pos, _dir, _time, _vector] + _vehProperties]; +_vehicle setVariable ["btc_dont_delete", true]; if ((isNumber (configOf _vehicle >> "ace_fastroping_enabled")) && (typeOf _vehicle isNotEqualTo "RHS_UH1Y_d")) then {[_vehicle] call ace_fastroping_fnc_equipFRIES}; _vehicle addMPEventHandler ["MPKilled", { if (isServer) then { - _this call btc_veh_fnc_respawn; + params ["_vehicle", "_killer", "_instigator"]; + + private _data = _vehicle getVariable ["data_respawn", []]; + _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); + [btc_veh_fnc_respawn, [_vehicle, _data], _data select 3] call CBA_fnc_waitAndExecute; + + [btc_rep_malus_veh_killed, _instigator] call btc_rep_fnc_change; }; }]; if (btc_p_respawn_location > 0) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf index f1b4e8b1f..99a4e1de9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/respawn.sqf @@ -7,8 +7,7 @@ Description: Parameters: _vehicle - Vehicle object. [Object] - _killer - Killer. [Object] - _instigator - Person who pulled the trigger. [Object] + _serialisedVeh - Serialised vehicle. [Object] Returns: @@ -24,23 +23,18 @@ Author: params [ ["_vehicle", objNull, [objNull]], - ["_killer", objNull, [objNull]], - ["_instigator", objNull, [objNull]] + ["_serialisedVeh", [], [[]]] ]; -private _data = _vehicle getVariable ["data_respawn", []]; -_data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); +btc_veh_respawnable deleteAt (btc_veh_respawnable find _vehicle); +crew _vehicle call btc_fnc_moveOut; [{ - params [ - "_vehicle", - "_data", - ["_helo", btc_veh_respawnable, [[]]] - ]; + crew (_this select 0) isEqualTo [] +}, { + params ["_vehicle", "_serialisedVeh"]; - crew _vehicle call btc_fnc_moveOut; - [{crew _this isEqualTo []}, CBA_fnc_deleteEntity, _vehicle] call CBA_fnc_waitUntilAndExecute; - _helo deleteAt (_helo find _vehicle); + _vehicle call CBA_fnc_deleteEntity; [{ params [ @@ -75,11 +69,5 @@ _data pushBack (_vehicle getVariable ["btc_EDENinventory", []]); }; [_vehicle, _time] call btc_veh_fnc_addRespawn; - }, _data, 1] call CBA_fnc_waitAndExecute; -}, [_vehicle, _data], _data select 3] call CBA_fnc_waitAndExecute; - -if (isServer) then { - [btc_rep_malus_veh_killed, _instigator] call btc_rep_fnc_change; -} else { - [btc_rep_malus_veh_killed, _instigator] remoteExecCall ["btc_rep_fnc_change", 2]; -}; + }, _serialisedVeh, 2] call CBA_fnc_waitAndExecute; +}, [_vehicle, _serialisedVeh]] call CBA_fnc_waitUntilAndExecute; From cc1f87b2aebf4871cea5e2e03f0aa69fdbef714f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 22 Nov 2021 21:13:20 +0100 Subject: [PATCH 286/354] fix body bag for AI are saved --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- .../core/fnc/body/setBodyBag.sqf | 7 ++++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 2 +- .../core/fnc/db/loadObjectStatus.sqf | 4 +--- .../core/fnc/db/loadcargo.sqf | 4 +--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 6 +++--- .../core/fnc/db/saveObjectStatus.sqf | 6 ++---- 7 files changed, 13 insertions(+), 18 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 621c651b7..b8a95bd16 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -1,7 +1,7 @@ btc_version = [ 1, - 21.2, + 21.1, 8 ]; diag_log format (["=BTC= HEARTS AND MINDS VERSION %1.%2.%3"] + btc_version); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf index 9dc027c9f..40a14b488 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/setBodyBag.sqf @@ -21,8 +21,9 @@ Author: params ["_patient", "_bodyBag"]; +if (_patient getVariable ["btc_UID", ""] isEqualTo "") exitWith {}; + deleteMarker (_patient getVariable ["btc_body_deadMarker", ""]); -if (_patient getVariable ["btc_UID", ""] isNotEqualTo "") then { - _bodyBag setVariable ["btc_UID", _patient getVariable ["btc_UID", ""]]; -}; +_bodyBag setVariable ["btc_UID", _patient getVariable ["btc_UID", ""]]; + [_bodyBag] call btc_log_fnc_init; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 2e0eb2f6d..9e07aad71 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -222,7 +222,7 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { private _deadBodyPlayers = +(profileNamespace getVariable [format ["btc_hm_%1_deadBodyPlayers", _name], []]); private _group = createGroup btc_player_side; btc_body_deadPlayers = _deadBodyPlayers apply { - _x params ["_type", "_pos", "_dir", "_loadout", "_dogtag", "", "_isContaminated", "", + _x params ["_type", "_pos", "_dir", "_loadout", "_dogtag", "_isContaminated", ["_flagTexture", "", [""]] ]; private _body = _group createUnit [_type, ASLToAGL _pos, [], 0, "CAN_COLLIDE"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf index 05386669d..ccdba7584 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadObjectStatus.sqf @@ -27,13 +27,12 @@ _object_data params [ "_type", "_pos", "_dir", - "_magClass", + "", "_cargo", "_inventory", "_vectorPos", ["_isContaminated", false, [false]], ["_dogtagDataTaken", [], [[]]], - ["_uid", "", [""]], ["_flagTexture", "", [""]], ["_turretMagazines", [], [[]]], ["_customName", "", [""]] @@ -62,7 +61,6 @@ if (_turretMagazines isNotEqualTo []) then { }; [_obj, _dogtagDataTaken] call btc_body_fnc_dogtagSet; -_obj setVariable ["btc_UID", _uid]; if (_customName isNotEqualTo "") then { _obj setVariable ["ace_cargo_customName", _customName, true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index 70f547f65..58ad922bf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -27,10 +27,9 @@ Author: //handle cargo { - _x params ["_type", "_magClass", "_inventory", + _x params ["_type", "", "_inventory", ["_isContaminated", false, [false]], ["_dogtagDataTaken", [], [[]]], - ["_uid", "", [""]], ["_turretMagazines", [], [[]]], ["_customName", "", [""]] ]; @@ -50,7 +49,6 @@ Author: }; [_l, _dogtagDataTaken] call btc_body_fnc_dogtagSet; - _l setVariable ["btc_UID", _uid]; if (_turretMagazines isNotEqualTo []) then { [_l, _turretMagazines] call btc_db_fnc_setTurretMagazines; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index b5623966b..05a7d2cbe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -139,7 +139,9 @@ private _vehiclesNotInCargo = _vehicles select { }; private _vehiclesInCargo = _vehicles - _vehiclesNotInCargo; { - (_x call btc_db_fnc_saveObjectStatus) params ["_type", "_pos", "_dir", "", "_cargo", "_inventory", "_vectorPos", "_isContaminated", "", "", + (_x call btc_db_fnc_saveObjectStatus) params [ + "_type", "_pos", "_dir", "", "_cargo", + "_inventory", "_vectorPos", "_isContaminated", "", ["_flagTexture", "", [""]], ["_turretMagazines", [], [[]]] ]; @@ -225,9 +227,7 @@ if (btc_p_respawn_ticketsAtStart >= 0) then { getDir _x, getUnitLoadout _x, _x call btc_body_fnc_dogtagGet, - nil, _x in btc_chem_contaminated, - nil, getForcedFlagTexture _x ]}; profileNamespace setVariable [format ["btc_hm_%1_deadBodyPlayers", _name], +_deadBodyPlayers]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf index 562edf100..2d4ba1afc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/saveObjectStatus.sqf @@ -32,15 +32,14 @@ _data pushBack (getDir _object); _data pushBack ""; private _cargo = (_object getVariable ["ace_cargo_loaded", []]) apply { if (_x isEqualType "") then { - [_x, "", [[], [], []]] + [_x, nil, [[], [], []]] } else { [ typeOf _x, - "", + nil, _x call btc_log_fnc_inventoryGet, _x in btc_chem_contaminated, _x call btc_body_fnc_dogtagGet, - _x getVariable ["btc_UID", ""], magazinesAllTurrets _x, _x getVariable ["ace_cargo_customName", ""] ] @@ -51,7 +50,6 @@ _data pushBack (_object call btc_log_fnc_inventoryGet); _data pushBack [vectorDir _object, vectorUp _object]; _data pushBack (_object in btc_chem_contaminated); _data pushBack (_object call btc_body_fnc_dogtagGet); -_data pushBack (_object getVariable ["btc_UID", ""]); _data pushBack (getForcedFlagTexture _object); _data pushBack (magazinesAllTurrets _object); _data pushBack (_object getVariable ["ace_cargo_customName", ""]); From 926dfea0d200bd5ece8c0707bf9983103c24e718 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 22 Nov 2021 22:54:56 +0100 Subject: [PATCH 287/354] https://github.com/Vdauphin/HeartsAndMinds/commit/3a6e910054ed17b9eca7c016f2c44cf0a309ed19 --- .../core/fnc/log/server_repair_wreck.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index 2b9a74cf8..3ba3b9c15 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -51,7 +51,10 @@ if ((getVehicleCargo _veh) isNotEqualTo []) then { { _x call btc_body_fnc_bagRecover_s; } forEach crew _veh; -deleteVehicle _veh; + +[{ + deleteVehicle _this; +}, _veh] call CBA_fnc_execNextFrame; private _serialisedVeh = [_type, [_x, _y, 0.5 + _z], _dir] + _vehProperties + [_EDENinventory]; [btc_log_fnc_createVehicle, _serialisedVeh, 1] call CBA_fnc_waitAndExecute; From 277da9b96abd7571984176c5894b14c0348f9812 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 24 Nov 2021 22:30:44 +0100 Subject: [PATCH 288/354] disable hook interaction on dead vehicle --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf index 34e837231..3cf9144ea 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/int.sqf @@ -42,7 +42,10 @@ if ( localize "STR_ACE_Towing_displayName", "", {btc_tow_vehicleTowing = _target; (localize "STR_BTC_HAM_TOW_HOOK") call CBA_fnc_notify;}, - {isNull (_target getVariable ["btc_towing", objNull]);} + { + isNull (_target getVariable ["btc_towing", objNull]) && + alive _target + } ] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; }; From 674d105ca587c8794f7013b4a9a721b2b54ce4df Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 27 Nov 2021 11:49:38 +0100 Subject: [PATCH 289/354] fix getweapn locality --- .../core/fnc/civ/add_weapons.sqf | 10 +++------- .../core/fnc/civ/get_weapons.sqf | 19 ++++++++++++++----- .../core/fnc/compile.sqf | 2 +- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_weapons.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_weapons.sqf index dfc7f7f06..f4e247e50 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_weapons.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_weapons.sqf @@ -21,15 +21,11 @@ Author: ---------------------------------------------------------------------------- */ params [ - ["_unit", objNull, [objNull]] + ["_unit", objNull, [objNull]], + ["_weapon", "", [""]], + ["_magazine", "", [""]] ]; -private _playableUnits = playableUnits inAreaArray [getPosWorld _unit, 50, 50]; -private _hgun = _playableUnits findIf {[_x, _unit] call btc_fnc_check_los} != -1; - -private _weapon = selectRandom ([btc_w_civs select 0, btc_w_civs select 1] select _hgun); -private _magazine = (getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines")) select 0; - (uniformContainer _unit) addMagazineCargo [_magazine, 5]; _unit addWeapon _weapon; _unit selectWeapon _weapon; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf index 3a1c4cd52..c126a6b80 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf @@ -41,14 +41,23 @@ if (_units isEqualTo []) then { [format ["%1 - %2", _x, side _x], __FILE__, [false]] call btc_debug_fnc_message; }; - [_x, "", 2] call ace_common_fnc_doAnimation; - [_x] call btc_civ_fnc_add_weapons; + private _unit = _x; + + [_unit, "", 2] call ace_common_fnc_doAnimation; + + private _playableUnits = playableUnits inAreaArray [getPosWorld _unit, 50, 50]; + private _hgun = _playableUnits findIf {[_x, _unit] call btc_fnc_check_los} != -1; + + private _weapon = selectRandom ([btc_w_civs select 0, btc_w_civs select 1] select _hgun); + private _magazine = (getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines")) select 0; + + [_unit, _weapon, _magazine] remoteExecCall ["btc_civ_fnc_add_weapons", _unit]; private _group = createGroup [btc_enemy_side, true]; - _group setVariable ["btc_city", group _x getVariable ["btc_city", objNull]]; - [_x] joinSilent _group; + _group setVariable ["btc_city", group _unit getVariable ["btc_city", objNull]]; + [_unit] joinSilent _group; [_group] call CBA_fnc_clearWaypoints; _group setVariable ["getWeapons", true]; - [_group, getPos _x, -1, "GUARD", "AWARE", "RED", nil, nil, nil, nil, 10] call CBA_fnc_addWaypoint; + [_group, getPos _unit, -1, "GUARD", "AWARE", "RED", nil, nil, nil, nil, 10] call CBA_fnc_addWaypoint; } forEach _units; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 0c2251c71..185a04cd4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -51,7 +51,6 @@ if (isServer) then { btc_city_fnc_send = compileScript ["core\fnc\city\send.sqf"]; //CIV - btc_civ_fnc_add_weapons = compileScript ["core\fnc\civ\add_weapons.sqf"]; btc_civ_fnc_add_grenade = compileScript ["core\fnc\civ\add_grenade.sqf"]; btc_civ_fnc_get_weapons = compileScript ["core\fnc\civ\get_weapons.sqf"]; btc_civ_fnc_get_grenade = compileScript ["core\fnc\civ\get_grenade.sqf"]; @@ -250,6 +249,7 @@ btc_flag_fnc_int = compileScript ["core\fnc\flag\int.sqf"]; //CIV btc_civ_fnc_class = compileScript ["core\fnc\civ\class.sqf"]; btc_civ_fnc_addWP = compileScript ["core\fnc\civ\addWP.sqf"]; +btc_civ_fnc_add_weapons = compileScript ["core\fnc\civ\add_weapons.sqf"]; //IED btc_ied_fnc_belt = compileScript ["core\fnc\ied\belt.sqf"]; From e244b936c00b22b8fbfa39ee713dc043729c3c0d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 27 Nov 2021 11:49:57 +0100 Subject: [PATCH 290/354] add name to debug rep change --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf index edc023395..991d90949 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf @@ -27,7 +27,7 @@ params [ ]; if (btc_debug || btc_debug_log) then { - [format ["GLOBAL %1 - CHANGE %2", btc_global_reputation, _reputation], __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; + [format ["GLOBAL %1 - CHANGE %2 - %3", btc_global_reputation, _reputation, name _player], __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; }; btc_global_reputation = btc_global_reputation + _reputation; From e809b673246e7a4cb562c960d4cae1b550722d9f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 27 Nov 2021 13:00:49 +0100 Subject: [PATCH 291/354] disable headless temporaky --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 ++ .../core/fnc/civ/create_patrol.sqf | 1 + .../core/fnc/ied/suicider_active.sqf | 1 + .../core/fnc/ied/suicider_create.sqf | 1 + .../core/fnc/mil/create_patrol.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf | 4 +++- 6 files changed, 9 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 6189fa879..ab707fedd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -338,6 +338,7 @@ if (_numberOfPatrol < _p_patrol_max) then { private _group = createGroup btc_enemy_side; btc_patrol_active pushBack _group; _group setVariable ["no_cache", true]; + _group setVariable ["acex_headless_blacklist", true]; [[_group, 1 + round random 1, _city, _cachingRadius + btc_patrol_area], btc_mil_fnc_create_patrol] call btc_delay_fnc_exec; }; }; @@ -350,6 +351,7 @@ if (_numberOfCivVeh < _p_civ_max_veh) then { private _group = createGroup civilian; btc_civ_veh_active pushBack _group; _group setVariable ["no_cache", true]; + _group setVariable ["acex_headless_blacklist", true]; [[_group, _city, _cachingRadius + btc_patrol_area], btc_civ_fnc_create_patrol] call btc_delay_fnc_exec; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf index 68c3dd037..fbc2f892d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf @@ -69,6 +69,7 @@ private _delay = [_group, _veh_type, [selectRandom btc_civ_type_units], _safe_po [{ _this call btc_patrol_fnc_init; + (_this select 0) setVariable ["acex_headless_blacklist", false]; [[_this select 0]] call btc_fnc_set_groupsOwner; }, [_group, [_start_city, _active_city], _area, _pos_isWater], _delay] call btc_delay_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf index dc2d03021..a93cceab3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf @@ -27,6 +27,7 @@ params [ private _group = createGroup [btc_enemy_side, true]; [_suicider] joinSilent _group; _group setVariable ["suicider", true]; +_group setVariable ["acex_headless_blacklist", true]; [group _suicider] call CBA_fnc_clearWaypoints; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf index 49f585c7c..c25ac27d4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf @@ -44,6 +44,7 @@ if (_type_units isEqualTo "") then { private _group = createGroup [civilian, true]; _group setVariable ["btc_city", _city]; +_group setVariable ["acex_headless_blacklist", true]; private _suicider = _group createUnit [_type_units, _rpos, [], 0, "CAN_COLLIDE"]; [_group, btc_civ_fnc_addWP] call btc_delay_fnc_exec; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf index c537a114e..fe2543484 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf @@ -100,6 +100,7 @@ private _delay = switch (_random) do { [{ _this call btc_patrol_fnc_init; + (_this select 0) setVariable ["acex_headless_blacklist", false]; [[_this select 0]] call btc_fnc_set_groupsOwner; }, [_group, [_start_city, _active_city], _area, _pos_isWater], _delay] call btc_delay_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf index 5f41c6523..51ebcfd02 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf @@ -51,6 +51,7 @@ switch (_typeOf_patrol) do { }; }; _group setVariable ["no_cache", true]; +_group setVariable ["acex_headless_blacklist", true]; [{ params ["_group", "_typeOf_patrol", "_dest", "_infFormation"]; @@ -65,8 +66,9 @@ _group setVariable ["no_cache", true]; }; }; - [[_group]] call btc_fnc_set_groupsOwner; + [[_group]] call btc_fnc_set_groupsOwner; + _group setVariable ["acex_headless_blacklist", false]; _group deleteGroupWhenEmpty true; }, [_group, _typeOf_patrol, _dest, _infFormation], _delay] call btc_delay_fnc_waitAndExecute; From 4a896a52e870c0258148792adfeb48b380d3b05b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 27 Nov 2021 13:17:58 +0100 Subject: [PATCH 292/354] Handle the case when player send order from vehicle --- .../core/fnc/int/orders_behaviour.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf index a74e7f593..ba623e394 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf @@ -64,7 +64,11 @@ switch (_order) do { if (_order isEqualTo 4) then { waitUntil {sleep 3; (isNull _unit || !alive _unit || (_unit inArea [_wp_pos, 10, 10, 0, false]))}; } else { - waitUntil {sleep 3; (isNull _unit || !alive _unit || (count (getPos _unit nearEntities [btc_player_type, 50]) isEqualTo 0))}; + waitUntil {sleep 3; ( + isNull _unit || + {!alive _unit} || + {allPlayers inAreaArray [getPosWorld _unit, 50, 50] isEqualTo []} + )}; }; if (isNull _unit || !alive _unit) exitWith {}; From dd6e507db384b2bc07540e31a214c87c348e4cb5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 27 Nov 2021 13:29:13 +0100 Subject: [PATCH 293/354] Remove H&M Headless --- .../core/def/mission.sqf | 1 - .../core/def/param.hpp | 6 ---- .../core/fnc/civ/create_patrol.sqf | 1 - .../core/fnc/common/set_groupsowner.sqf | 35 ------------------- .../core/fnc/compile.sqf | 1 - .../core/fnc/mil/create_patrol.sqf | 1 - .../core/fnc/mil/send.sqf | 2 -- .../core/init_headless.sqf | 4 +-- .../stringtable.xml | 18 ++++------ README.md | 2 +- docs/InGame-documentation.md | 2 +- 11 files changed, 9 insertions(+), 64 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_groupsowner.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 9f5e51b09..4e9180f74 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -99,7 +99,6 @@ btc_p_city_free_trigger_condition = if (_p_city_free_trigger isEqualTo 0) then { format ["[thisList, %1] call btc_city_fnc_trigger_free_condition", _p_city_free_trigger] }; btc_p_flag = "btc_p_flag" call BIS_fnc_getParamValue; -btc_p_auto_headless = ("btc_p_auto_headless" call BIS_fnc_getParamValue) isEqualTo 1; btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue; switch (btc_p_debug) do { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index a559a43c5..874cc0cdb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -431,12 +431,6 @@ class Params { texts[]={$STR_DISABLED,$STR_BTC_HAM_PARAM_OTHER_FLAGVEH,$STR_BTC_HAM_PARAM_OTHER_FLAGVEHPLAYER}; default = 2; }; - class btc_p_auto_headless { // Autodetect Headless client: - title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_AUTOHEADLESS"]); - values[]={0,1}; - texts[]={$STR_DISABLED,$STR_ENABLED}; - default = 1; - }; class btc_p_debug { // Debug: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_DEBUG"]); values[]={0,1,2}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf index fbc2f892d..b201f2f21 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create_patrol.sqf @@ -70,7 +70,6 @@ private _delay = [_group, _veh_type, [selectRandom btc_civ_type_units], _safe_po [{ _this call btc_patrol_fnc_init; (_this select 0) setVariable ["acex_headless_blacklist", false]; - [[_this select 0]] call btc_fnc_set_groupsOwner; }, [_group, [_start_city, _active_city], _area, _pos_isWater], _delay] call btc_delay_fnc_waitAndExecute; true diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_groupsowner.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_groupsowner.sqf deleted file mode 100644 index c89131924..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_groupsowner.sqf +++ /dev/null @@ -1,35 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_fnc_set_groupsOwner - -Description: - Transfert groups to a headless client. - -Parameters: - _groups - Array of groups to transfert. [Array] - -Returns: - Returns array of true if locality was changed. [Array] - -Examples: - (begin example) - [btc_patrol_active + btc_civ_veh_active] call btc_fnc_set_groupsOwner; - (end) - -Author: - Vdauphin - ----------------------------------------------------------------------------- */ - -if !(btc_p_auto_headless) exitWith {}; -private _HCs = entities "HeadlessClient_F"; -if (_HCs isEqualTo []) exitWith {[]}; - -params [ - ["_groups", btc_patrol_active + btc_civ_veh_active, [[]]] -]; - -private _HC = owner (_HCs select 0); -_groups apply { - _x setGroupOwner _HC; -}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 185a04cd4..4486babbc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -25,7 +25,6 @@ if (isServer) then { btc_fnc_deleteEntities = compileScript ["core\fnc\common\deleteEntities.sqf"]; btc_fnc_final_phase = compileScript ["core\fnc\common\final_phase.sqf"]; btc_fnc_findPosOutsideRock = compileScript ["core\fnc\common\findposoutsiderock.sqf"]; - btc_fnc_set_groupsOwner = compileScript ["core\fnc\common\set_groupsOwner.sqf"]; btc_fnc_typeOf = compileScript ["core\fnc\common\typeOf.sqf"]; btc_fnc_roof = compileScript ["core\fnc\common\roof.sqf"]; btc_fnc_moveOut = compileScript ["core\fnc\common\moveOut.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf index fe2543484..b57cb05ed 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_patrol.sqf @@ -101,7 +101,6 @@ private _delay = switch (_random) do { [{ _this call btc_patrol_fnc_init; (_this select 0) setVariable ["acex_headless_blacklist", false]; - [[_this select 0]] call btc_fnc_set_groupsOwner; }, [_group, [_start_city, _active_city], _area, _pos_isWater], _delay] call btc_delay_fnc_waitAndExecute; true diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf index 51ebcfd02..0e25df6c0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf @@ -66,8 +66,6 @@ _group setVariable ["acex_headless_blacklist", true]; }; }; - - [[_group]] call btc_fnc_set_groupsOwner; _group setVariable ["acex_headless_blacklist", false]; _group deleteGroupWhenEmpty true; }, [_group, _typeOf_patrol, _dest, _infFormation], _delay] call btc_delay_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_headless.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_headless.sqf index 071ffd1ed..2df24c943 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_headless.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_headless.sqf @@ -1,4 +1,2 @@ -[] call btc_eh_fnc_headless; -//Move btc_patrol_active group to HC -[] remoteExecCall ["btc_fnc_set_groupsOwner", 2]; +[] call btc_eh_fnc_headless; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 5a9d92ebb..23f05c66a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -103,12 +103,12 @@ Headless et base de données - <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> This mission automatically uses one Headless client when available.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> This mission has a database system. Enemy units, towns, hideouts, cache, objects created or static weapons assembled by players or Zeus, vehicles, vehicle in vehicle, tag, players markers on global channel are saved. All admin can save mission progress at any time with his self interaction key.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> - <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> Esta mision usa automaticamente un Headless client si está disponible .<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> Esta misión tiene un sistema de base de datos. Se guardan unidades enemigas, ciudades, escondites, caché, objetos creados por jugadores o Zeus, vehículos, marcadores de jugadores (no líneas) en el canal global. Todos los administradores pueden guardar el progreso de la misión en cualquier momento con su clave de auto interacción.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> - <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> Sollte ein Headless Client vorhanden sein, so wird dieser durch die Mission automatisch genutzt.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> Diese Mission verfügt über ein eingenes Datenbanksystem, in welcher folgende Dinge gespeichert werden: feindliche Einheiten, Städte, Verstecke, feindliche Waffenlager, Fahrzeuge, vom Spieler oder vom Zeus erstelle Objecte und Marker (keine Linien) vom Spieler im Globalen-Channel. Jeder Admin kann zu jeder Zeit den Missionsfortschritt über das Eigen-Interaktionsmenü speichern.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> - <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> Esta missão usa automaticamente um cliente Headless quando disponível.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> Esta missão tem um sistema de banco de dados. Unidades inimigas, cidades, esconderijos, cache, objetos criados por jogadores ou Zeus, veículos, marcação de jogadores (sem linhas) no canal global são salvos. O administrador pode salvar o progresso da missão a qualquer momento usando botão de interação.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> - <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> 任务自动使用一台可用的无头客户端。<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> 本任务内置数据库系统。敌方单位, 城镇, 藏匿点, 武器箱, 由玩家或宙斯创建的物体或组装的固定式武器, 载具, 被托运的载具, 涂鸦, 以及公共频道中的地图标记(不含划线标记)将被存储。每个管理员都可以通过自我互动菜单随时保存任务进度。<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> - <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> La mission utilise automatiquement le client headless quand il est disponible.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> La mission utilise une base de données. Unités ennemies, villes, planque, cache d'arme , objets créés ou armes statiques assemblées par des joueurs ou Zeus, véhicules, véhicule dans véhicule, tag, les marqueurs de joueurs sur le canal global sont enregistrés. Tous les administrateurs peuvent enregistrer la progression de la mission à tout moment avec sa touche d'auto-interaction.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> + <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> This mission support ACE Headless.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> This mission has a database system. Enemy units, towns, hideouts, cache, objects created or static weapons assembled by players or Zeus, vehicles, vehicle in vehicle, tag, players markers on global channel are saved. All admin can save mission progress at any time with his self interaction key.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> + <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> This mission support ACE Headless.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> Esta misión tiene un sistema de base de datos. Se guardan unidades enemigas, ciudades, escondites, caché, objetos creados por jugadores o Zeus, vehículos, marcadores de jugadores (no líneas) en el canal global. Todos los administradores pueden guardar el progreso de la misión en cualquier momento con su clave de auto interacción.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> + <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> This mission support ACE Headless.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> Diese Mission verfügt über ein eingenes Datenbanksystem, in welcher folgende Dinge gespeichert werden: feindliche Einheiten, Städte, Verstecke, feindliche Waffenlager, Fahrzeuge, vom Spieler oder vom Zeus erstelle Objecte und Marker (keine Linien) vom Spieler im Globalen-Channel. Jeder Admin kann zu jeder Zeit den Missionsfortschritt über das Eigen-Interaktionsmenü speichern.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> + <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> This mission support ACE Headless.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> Esta missão tem um sistema de banco de dados. Unidades inimigas, cidades, esconderijos, cache, objetos criados por jogadores ou Zeus, veículos, marcação de jogadores (sem linhas) no canal global são salvos. O administrador pode salvar o progresso da missão a qualquer momento usando botão de interação.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> + <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> This mission support ACE Headless.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> 本任务内置数据库系统。敌方单位, 城镇, 藏匿点, 武器箱, 由玩家或宙斯创建的物体或组装的固定式武器, 载具, 被托运的载具, 涂鸦, 以及公共频道中的地图标记(不含划线标记)将被存储。每个管理员都可以通过自我互动菜单随时保存任务进度。<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> + <img image='\a3\ui_f\data\map\vehicleicons\iconvirtual_ca.paa' width='20' height='20'/> This mission support ACE Headless.<br/><br/> <img image='\a3\data_f_warlords\Data\preview_cp_transfer.jpg' width='355' height='200' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa' width='20' height='20'/> La mission utilise une base de données. Unités ennemies, villes, planque, cache d'arme , objets créés ou armes statiques assemblées par des joueurs ou Zeus, véhicules, véhicule dans véhicule, tag, les marqueurs de joueurs sur le canal global sont enregistrés. Tous les administrateurs peuvent enregistrer la progression de la mission à tout moment avec sa touche d'auto-interaction.<br/><br/> <img image='\a3\data_f_mark\Images\mark_popupImage_01_ca.paa' width='355' height='200' /> @@ -879,12 +879,6 @@ On vehicle and players 载具和玩家 - - Autodetect Headless client: - Headless-Client automatisch erkennen: - 自动检测无头客户端 - Auto-détection du Headless client: - Debug: Debug: diff --git a/README.md b/README.md index 63a906b02..f723bd1d3 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ At the beginning you have a very low reputation level, so civilians won't help y - More than 291 enemies and 27 civilians factions available - Full saving Database ([even player markers](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation#headless--database)) - Easy map change (See [here](http://vdauphin.github.io/HeartsAndMinds/Change-MAP-of-Hearts-and-Minds)) - - Auto Headless support + - ACE Headless support - Something I forgot for sure # :clap: Credits: diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index cdbe9faf1..deb3bfbbb 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -1,7 +1,7 @@ # InGame Documentation ## Headless & Database -This mission automatically uses one Headless client when available. +This mission support ACE Headless. This mission has a database system. Enemy units, towns, hideouts, cache, objects created or static weapons assembled by players or Zeus, vehicles, vehicle in vehicle, tag, players markers on global channel are saved. All admin can save mission progress at any time with his self interaction key. From 273313c907fd34a455a7c5ed4593771a5cd75c36 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 28 Nov 2021 12:09:42 +0100 Subject: [PATCH 294/354] fix pandemic --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 4486babbc..c8ad12dec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -235,6 +235,7 @@ btc_fnc_house_addWP_loop = compileScript ["core\fnc\common\house_addWP_loop.sqf" //CHEM btc_chem_fnc_damage = compileScript ["core\fnc\chem\damage.sqf"]; btc_chem_fnc_deconShowerAnimLarge = {(_this select 0) setVariable ["BIN_Shower_Stop",false]; _this call BIN_fnc_deconShowerAnimLarge;}; +btc_chem_fnc_damageLoop = compileScript ["core\fnc\chem\damageLoop.sqf"]; //DEBUG btc_debug_fnc_message = compileScript ["core\fnc\debug\message.sqf"]; @@ -299,7 +300,6 @@ if (!isDedicated) then { //CHEM btc_chem_fnc_biopsy = compileScript ["core\fnc\chem\biopsy.sqf"]; - btc_chem_fnc_damageLoop = compileScript ["core\fnc\chem\damageLoop.sqf"]; btc_chem_fnc_ehDetector = compileScript ["core\fnc\chem\ehDetector.sqf"]; btc_chem_fnc_updateDetector = compileScript ["core\fnc\chem\updateDetector.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf index a313ca86c..992cae3e7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf @@ -62,6 +62,7 @@ for "_i" from 0 to (_minNumberOfSubTask + _extraCiv - 1) do { }, { params ["_city", "_civPos", "_civType", "_deconta_taskID"]; private _civ = (nearestObjects [_civPos, [_civType], 10]) select 0; + (group _civ) setVariable ["acex_headless_blacklist", true]; btc_chem_contaminated pushBack _civ; publicVariable "btc_chem_contaminated"; From 4ecf1af222bf4d2de93a181c01c3b1b9f95f706d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 28 Nov 2021 13:35:18 +0100 Subject: [PATCH 295/354] disable headless for some side missions --- .../core/fnc/side/capture_officer.sqf | 1 + .../core/fnc/side/civtreatment.sqf | 1 + .../core/fnc/side/civtreatment_boat.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf | 2 +- 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index fb93c1ccc..3ee114bed 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -93,6 +93,7 @@ if (count _path <= 35) exitWith { //// Create convoy \\\\ private _group = createGroup btc_enemy_side; _group setVariable ["no_cache", true]; +_group setVariable ["acex_headless_blacklist", true]; [_group] call CBA_fnc_clearWaypoints; private _convoyLength = 2 + round random 1; private _listPositions = _path select [40, _convoyLength + 1]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf index 14aded8e6..75bf27019 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf @@ -77,6 +77,7 @@ if (_r < 1) then { private _unit_type = selectRandom btc_civ_type_units; private _group = createGroup civilian; _group setVariable ["no_cache", true]; +_group setVariable ["acex_headless_blacklist", true]; private _unit =_group createUnit [_unit_type, _pos, [], 0, "CAN_COLLIDE"]; _unit setBehaviour "CARELESS"; _unit setDir (random 360); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf index 7d2666eb7..a12bc177c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf @@ -49,6 +49,7 @@ _veh setPos _vehpos; private _unit_type = selectRandom btc_civ_type_units; private _group = createGroup civilian; _group setVariable ["no_cache", true]; +_group setVariable ["acex_headless_blacklist", true]; private _unit = _group createUnit [_unit_type, _pos, [], 0, "NONE"]; private _index = 1 + floor (random (_veh emptyPositions "cargo")); _unit assignAsCargoIndex [_veh, _index]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf index 31cee843e..f66d684b4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf @@ -93,6 +93,7 @@ if (count _path <= 35) exitWith { //// Create convoy \\\\ private _group = createGroup btc_enemy_side; _group setVariable ["no_cache", true]; +_group setVariable ["acex_headless_blacklist", true]; [_group] call CBA_fnc_clearWaypoints; private _convoyLength = 3 + round random 2; private _listPositions = _path select [40, _convoyLength + 1]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf index fe337d26b..b4165e561 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_side_fnc_hostage; + [false, "btc_side_fnc_hostage"] spawn btc_side_fnc_create; (end) Author: From cb8c74f01a7810841b22e94368a1d9a7148d271e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 28 Nov 2021 14:17:57 +0100 Subject: [PATCH 296/354] Add two HC slots --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 41 +++++++++++++--- .../mission__Enoch.sqm | 47 +++++++++++++++---- .../mission__Tanoa.sqm | 43 +++++++++++++---- 3 files changed, 105 insertions(+), 26 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index b72a5b782..85bb62d83 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -8,7 +8,7 @@ class EditorData toggles=517; class ItemIDProvider { - nextID=244; + nextID=246; }; class MarkerIDProvider { @@ -520,7 +520,7 @@ class Mission }; class Entities { - items=66; + items=68; class Item0 { dataType="Marker"; @@ -834,7 +834,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={7902.625,83.779564,8865.6748}; + position[]={8305.25,160.00143,10066.55}; angles[]={0,2.5247488,0}; }; side="West"; @@ -848,14 +848,14 @@ class Mission }; id=29; type="B_Soldier_F"; - atlOffset=-3.8146973e-005; + atlOffset=83.997978; }; }; class Attributes { }; id=28; - atlOffset=-3.8146973e-005; + atlOffset=83.997978; }; class Item14 { @@ -1877,7 +1877,8 @@ class Mission dataType="Logic"; class PositionInfo { - position[]={8302.7266,75.940002,10058.99}; + position[]={8176,60.82666,9896}; + angles[]={6.0476403,0,6.2498641}; }; name="btc_hc_1"; isPlayable=1; @@ -2139,7 +2140,6 @@ class Mission flags=4; class Attributes { - init=""; }; id=200; type="DeconShower_02_F"; @@ -2604,6 +2604,33 @@ class Mission nAttributes=2; }; }; + class Item66 + { + dataType="Logic"; + class PositionInfo + { + position[]={8144,65.454834,9896}; + angles[]={6.0064716,0,6.1914434}; + }; + name="btc_hc_2"; + isPlayable=1; + id=244; + type="HeadlessClient_F"; + atlOffset=-0.59116364; + }; + class Item67 + { + dataType="Logic"; + class PositionInfo + { + position[]={8112,70.19265,9896}; + angles[]={6.0691795,0,6.2525272}; + }; + name="btc_hc_3"; + isPlayable=1; + id=245; + type="HeadlessClient_F"; + }; }; class Connections { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 419771e89..305dd3da8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -8,7 +8,7 @@ class EditorData toggles=581; class ItemIDProvider { - nextID=256; + nextID=258; }; class MarkerIDProvider { @@ -201,26 +201,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - singleType="SCALAR"; - value=1; + singleType="ARRAY"; }; }; }; class Attribute1 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - singleType="ARRAY"; + singleType="SCALAR"; + value=1; }; }; }; @@ -468,7 +468,7 @@ class Mission }; class Entities { - items=66; + items=68; class Item0 { dataType="Marker"; @@ -1783,8 +1783,8 @@ class Mission dataType="Logic"; class PositionInfo { - position[]={7070.6885,276.85696,1075.5607}; - angles[]={0.055942677,1.3358874,6.1795592}; + position[]={6888,271.82526,896}; + angles[]={0,1.3358924,0}; }; name="btc_hc_1"; isPlayable=1; @@ -1874,7 +1874,6 @@ class Mission flags=4; class Attributes { - init=""; }; id=200; type="DeconShower_02_F"; @@ -2558,6 +2557,34 @@ class Mission nAttributes=2; }; }; + class Item66 + { + dataType="Logic"; + class PositionInfo + { + position[]={6856,272,896}; + angles[]={0,1.3358924,0}; + }; + name="btc_hc_2"; + isPlayable=1; + id=256; + type="HeadlessClient_F"; + atlOffset=-4.1008301; + }; + class Item67 + { + dataType="Logic"; + class PositionInfo + { + position[]={6824,281.67798,896}; + angles[]={5.9054394,1.3358924,5.9249415}; + }; + name="btc_hc_3"; + isPlayable=1; + id=257; + type="HeadlessClient_F"; + atlOffset=-0.85928345; + }; }; class Connections { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 70aa74c21..53b926702 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -201,26 +201,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - singleType="ARRAY"; + singleType="SCALAR"; + value=1; }; }; }; class Attribute1 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - singleType="SCALAR"; - value=1; + singleType="ARRAY"; }; }; }; @@ -468,7 +468,7 @@ class Mission }; class Entities { - items=66; + items=68; class Item0 { dataType="Marker"; @@ -1791,8 +1791,8 @@ class Mission dataType="Logic"; class PositionInfo { - position[]={4203.4429,19.608423,4027.6301}; - angles[]={0.010664274,1.7987723,6.2511988}; + position[]={4344,27.657982,4136}; + angles[]={0.22036223,1.7987711,6.2378831}; }; name="btc_hc_1"; isPlayable=1; @@ -1882,7 +1882,6 @@ class Mission flags=4; class Attributes { - init=""; }; id=200; type="DeconShower_02_F"; @@ -2579,6 +2578,32 @@ class Mission nAttributes=2; }; }; + class Item66 + { + dataType="Logic"; + class PositionInfo + { + position[]={4320,24.015329,4136}; + angles[]={0.061256282,1.7987711,0.09570726}; + }; + name="btc_hc_2"; + isPlayable=1; + id=256; + type="HeadlessClient_F"; + }; + class Item67 + { + dataType="Logic"; + class PositionInfo + { + position[]={4296,22.001394,4136}; + angles[]={0.013332055,1.7987711,0.16644555}; + }; + name="btc_hc_3"; + isPlayable=1; + id=257; + type="HeadlessClient_F"; + }; }; class Connections { From 83e940b3c11febb7bf22552aa98e0861d084a77e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 28 Nov 2021 20:52:55 +0100 Subject: [PATCH 297/354] Fix can spectate AI --- =BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf index 3abf6bb1a..15e7826c4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/define_mod.sqf @@ -9,7 +9,7 @@ btc_custom_loc = [ /* Here you can tweak spectator view during respawn screen. */ -BIS_respSpecAi = true; // Allow spectating of AI +BIS_respSpecAi = false; // Allow spectating of AI BIS_respSpecAllowFreeCamera = false; // Allow moving the camera independent from units (players) BIS_respSpecAllow3PPCamera = false; // Allow 3rd person camera BIS_respSpecShowFocus = false; // Show info about the selected unit (dissapears behind the respawn UI) From e9b85fb7dc4e05e0763119bcc059819c42fa26e4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 29 Nov 2021 21:22:04 +0100 Subject: [PATCH 298/354] CBA_fnc_taskPatrol is local --- .../core/fnc/ied/drone_create.sqf | 1 + .../core/fnc/mil/addWP.sqf | 14 ++++++++++++-- .../core/fnc/mil/create_group.sqf | 6 +++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf index 37f005d29..d665907ed 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf @@ -39,6 +39,7 @@ if (_rpos isEqualTo []) then { private _group = createGroup [btc_enemy_side, true]; _group setVariable ["btc_city", _city]; +_group setVariable ["acex_headless_blacklist", true]; private _drone = createVehicle ["C_IDAP_UAV_06_antimine_F", _rpos, [], 0, "FLY"]; [_drone, "Fuel", { params ["_drone", "_hasFuel"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf index 9daf9879c..66b1d875f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf @@ -41,11 +41,21 @@ switch (_wp) do { [_group, _house] call btc_fnc_house_addWP; _group setVariable ["btc_inHouse", typeOf _house]; } else { - [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", ["LIMITED", "NORMAL"] select ((vehicle leader _group) isKindOf "Air"), "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; + [ + _group, _rpos, + _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", + ["LIMITED", "NORMAL"] select ((vehicle leader _group) isKindOf "Air"), + "STAG COLUMN", "", [5, 10, 20] + ] remoteExecCall ["CBA_fnc_taskPatrol", groupOwner _group]; }; }; case ("PATROL") : { - [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "AWARE", "RED", ["LIMITED", "NORMAL"] select ((vehicle leader _group) isKindOf "Air"), "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; + [ + _group, _rpos, + _area, 2 + floor (random 4), "MOVE", "AWARE", "RED", + ["LIMITED", "NORMAL"] select ((vehicle leader _group) isKindOf "Air"), + "STAG COLUMN", "", [5, 10, 20] + ] remoteExecCall ["CBA_fnc_taskPatrol", groupOwner _group]; }; case ("SENTRY") : { [_group] call CBA_fnc_clearWaypoints; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 82a81ba3d..14ed555f2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -85,7 +85,11 @@ for "_i" from 1 to _numberOfGroup do { case ("PATROL") : { [{ params ["_group", "_hashMapGroup", "_area"]; - [_group, _hashMapGroup get "_pos", _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; + [ + _group, _hashMapGroup get "_pos", _area, + 2 + floor (random 4), "MOVE", "SAFE", "RED", + "LIMITED", "STAG COLUMN", "", [5, 10, 20] + ] remoteExecCall ["CBA_fnc_taskPatrol", groupOwner _group]; }, [_group, _hashMapGroup, _area], btc_delay_time] call CBA_fnc_waitAndExecute; }; case ("SENTRY") : { From 3f119c1a1085cf8b55f66a5d389736860ad7b78b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 1 Dec 2021 00:06:55 +0100 Subject: [PATCH 299/354] show the number of days since mission start --- .../core/def/mission.sqf | 2 ++ .../core/fnc/respawn/intro.sqf | 11 ++++++++++- .../core/init_server.sqf | 5 ++--- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 12 ++++++------ 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 9f5e51b09..ab29bb7b2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -688,3 +688,5 @@ btc_flag_textures = [ //Respawn btc_body_bagTicketPlayer = 1; btc_body_enemyTicket = 1; + +btc_startDate = [2035, 6, 24, 12, 15]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf index 7cf4f5145..d698db0f0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/respawn/intro.sqf @@ -44,6 +44,15 @@ if !(isNil "btc_veh_respawnable_1") then { _array pushBack ['\A3\ui_f\data\map\vehicleicons\iconhelicopter_ca.paa', [0.7, 0, 0,1], getPos btc_veh_respawnable_1, 1.1, 1.1, 0, localize "STR_BTC_HAM_INTRO_ONLYRESPAWN", 1]; //Only Respawnable }; -[getMarkerPos "btc_base", localize "STR_BTC_HAM_INTRO_LOADINGTXT", 20, 30, 240, 0, _array, 0] call BIS_fnc_establishingShot; +waitUntil {time > 0}; //Wait for date synchronisation + +private _startingDate = btc_startDate select [0, 3]; +private _date = date select [0, 3]; +private _days = (_date vectorDiff _startingDate) vectorDotProduct [365, 30.5, 1]; +[ + getMarkerPos "btc_base", + format [localize "STR_BTC_HAM_INTRO_LOADINGTXT", round _days], + 20, 30, 240, 0, _array, 0 +] call BIS_fnc_establishingShot; enableSaving [false, false]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index b4731713f..68819a64c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -22,9 +22,8 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN [] call btc_cache_fnc_init; - private _date = date; - _date set [3, btc_p_time]; - setDate _date; + btc_startDate set [3, btc_p_time]; + setDate btc_startDate; { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 5a9d92ebb..173e06590 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -83,12 +83,12 @@ Seul à réapparaitre - Base overview. Loading ... - Vista de la Base. Cargando ... - Basisübersicht. Lade ... - Visão geral da base. Carregando... - 基地总览. 加载中 ... - Aperçu de la base. Chargement en cours ... + Day %1. Base overview. + Day %1. Vista de la Base. + Day %1. Basisübersicht. + Day %1. Visão geral da base. + Day %1. 基地总览. + Jour %1. Aperçu de la base. From 76859853f1d8d9cdc9af0ac7ce8775709b28f36d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 7 Dec 2021 23:05:10 +0100 Subject: [PATCH 300/354] Update documentation lines --- docs/Add-factions.md | 6 +++--- docs/Add-vehicle-or-boat-to-H&M-system.md | 2 +- docs/Change-MAP-of-Hearts-and-Minds.md | 4 ++-- docs/Mods-dependency.md | 2 +- docs/Prevent-AI-from-spawning-near-the-base.md | 4 ++-- docs/faction_player.md | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/Add-factions.md b/docs/Add-factions.md index de781300f..b5d4f3d0e 100644 --- a/docs/Add-factions.md +++ b/docs/Add-factions.md @@ -4,15 +4,15 @@ You have two way to add new factions. First one need to know all class name of t ## First way - Get all class names of your faction. -- Replace `_allclasse select` by the corresponding array of faction name in [/core/def/mission.sqf#L639-L647](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L639-L647). +- Replace `_allclasse select` by the corresponding array of faction name in [/core/def/mission.sqf#L603-L611](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L603-L611). ## Second way - Launch your game with all factions mods you want to have in the H&M and launch the H&M mission. - Execute locally in [debug console](https://community.bistudio.com/wiki/Mission_Editor:_Debug_Console_(Arma_3)) : `copyToClipboard str (["EN"] call btc_fnc_get_class);`. - Open a text editor and paste the result. - You have an array of 4 array: [author name, text entry for mission parameters, faction name array, corresponding number for each faction]. - - text entry for mission parameters (second array): copy and paste it in [/core/def/param.hpp#L83](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/param.hpp#L83). - - corresponding number for each faction (fourth array): copy and paste it in [/core/def/param.hpp#L82](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/param.hpp#L82). + - text entry for mission parameters (second array): copy and paste it in [/core/def/param.hpp#L101](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/param.hpp#L101). + - corresponding number for each faction (fourth array): copy and paste it in [/core/def/param.hpp#L100](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/param.hpp#L100). - faction name array (third array): copy and paste it in [/core/def/mission.sqf#L634](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L634). Note: if you don't want some class name take a look here [/core/def/mission.sqf#L649-L670](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L649-L670). \ No newline at end of file diff --git a/docs/Add-vehicle-or-boat-to-H&M-system.md b/docs/Add-vehicle-or-boat-to-H&M-system.md index bf20622c7..80b849f03 100644 --- a/docs/Add-vehicle-or-boat-to-H&M-system.md +++ b/docs/Add-vehicle-or-boat-to-H&M-system.md @@ -19,4 +19,4 @@ You can add a new vehicle/boat to respawn system by: - Sync it to the module with the comment "Sync all respawnable vehicles to this logic" - OR add in the init field: `this call btc_veh_fnc_addRespawnableFromSQM;` -Note: you can tweak respawn time here: [/core/init_server.sqf L46](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L46) by changing 30s to what you want. +Note: you can tweak respawn time here: [/core/init_server.sqf L48](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L48) by changing 30s to what you want. diff --git a/docs/Change-MAP-of-Hearts-and-Minds.md b/docs/Change-MAP-of-Hearts-and-Minds.md index 7d498ce1b..06bef4c92 100644 --- a/docs/Change-MAP-of-Hearts-and-Minds.md +++ b/docs/Change-MAP-of-Hearts-and-Minds.md @@ -11,5 +11,5 @@ # Tips : - Some map does not provide enough city. You can add new cities by using `btc_custom_loc` in [/define_mod.sqf#L1](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/define_mod.sqf#L1) like it has been talk [here](https://forums.bohemia.net/forums/topic/165948-mp-btc-hearts-and-minds/?page=39&tab=comments#comment-3280136). -- For small map, you should tweak the safezone for hideout spawn ([/core/def/mission.sqf#L141](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L141)). -- [Some map](https://forums.bohemia.net/forums/topic/165948-mp-btc-hearts-and-minds/?page=52&tab=comments#comment-3348268) use only NameCity for the type of locations but H&M hideouts system looks for "NameLocal", "Hill", "NameVillage", "Airport". You should add in the array the "NameCity" [here](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout.sqf#L50). +- For small map, you should tweak the safezone for hideout spawn ([/core/def/mission.sqf#L155](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L155)). +- [Some map](https://forums.bohemia.net/forums/topic/165948-mp-btc-hearts-and-minds/?page=52&tab=comments#comment-3348268) use only NameCity for the type of locations but H&M hideouts system looks for "NameLocal", "Hill", "NameVillage", "Airport". You should add in the array the "NameCity" [here](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf#L50). diff --git a/docs/Mods-dependency.md b/docs/Mods-dependency.md index 7ec51610a..46b18e573 100644 --- a/docs/Mods-dependency.md +++ b/docs/Mods-dependency.md @@ -2,4 +2,4 @@ #### ACE3 dependency You can't remove ACE 3 mod dependency because H&M mission has a deep ACE3 implementation. -ACE3 gives a nice framework for all interaction (talk to civil and enemy), logistic system, rearm system and more complex side mission. \ No newline at end of file +ACE3 gives a nice framework for all interaction (talk to civil and enemy), logistic system, rearm system and more complex side mission. diff --git a/docs/Prevent-AI-from-spawning-near-the-base.md b/docs/Prevent-AI-from-spawning-near-the-base.md index 2f5b1e1dd..d59fffadb 100644 --- a/docs/Prevent-AI-from-spawning-near-the-base.md +++ b/docs/Prevent-AI-from-spawning-near-the-base.md @@ -1,7 +1,7 @@ @Giallustio implemented it by two way, the simpler, for me, is explain here: - in arma editor: create your base where you want. - in arma editor: create a marker next to your base name for exemple : YOUR_MARKER_AREA -- open with your text editor file [core/fnc/city/init.sqf L64-L67](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/fnc/city/init.sqf#L64-L67) , uncomment (remove `/*` and `*/` command): +- open with your text editor file [core/fnc/city/init.sqf L66-L69](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/fnc/city/init.sqf#L66-L69) , uncomment (remove `/*` and `*/` command): > /* > //if you want a safe area @@ -10,4 +10,4 @@ Note : you can tweak radius of desactivation by changing `500` meters by more or less. Make sure your marker radius is large enough to reach out and overlap the epicenter of the town you want to black out. -![107410_20170403172205_1](https://cloud.githubusercontent.com/assets/14364400/24616751/5158449c-1892-11e7-901c-47747c9c349d.png) \ No newline at end of file +![107410_20170403172205_1](https://cloud.githubusercontent.com/assets/14364400/24616751/5158449c-1892-11e7-901c-47747c9c349d.png) diff --git a/docs/faction_player.md b/docs/faction_player.md index 645bc6524..c91da5cd3 100644 --- a/docs/faction_player.md +++ b/docs/faction_player.md @@ -2,5 +2,5 @@ You can change player faction by: - Migrate all playable slot to the desired side in /mission.sqm. -- Define the correct player side in [/core/def/mission.sqf#L421](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L421). +- Define the correct player side in [/core/def/mission.sqf#L437](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/def/mission.sqf#L437). - Choose in mission parameter an enemy faction with a different side from player side. \ No newline at end of file From 8ca3c59cd605a5e9156c351961aa10b47469dba5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 9 Dec 2021 15:25:11 +0100 Subject: [PATCH 301/354] Can use explosive to open door --- .../core/fnc/compile.sqf | 5 +- .../core/fnc/door/break.sqf | 3 +- .../core/fnc/door/broke.sqf | 11 ++-- .../core/fnc/door/get.sqf | 54 +++++++++++++++++++ .../core/fnc/eh/server.sqf | 9 ++++ 5 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index c8ad12dec..886969aed 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -82,6 +82,7 @@ if (isServer) then { //DOOR btc_door_fnc_lock = compileScript ["core\fnc\door\lock.sqf"]; + btc_door_fnc_get = compileScript ["core\fnc\door\get.sqf"]; //EH btc_eh_fnc_server = compileScript ["core\fnc\eh\server.sqf"]; @@ -237,6 +238,9 @@ btc_chem_fnc_damage = compileScript ["core\fnc\chem\damage.sqf"]; btc_chem_fnc_deconShowerAnimLarge = {(_this select 0) setVariable ["BIN_Shower_Stop",false]; _this call BIN_fnc_deconShowerAnimLarge;}; btc_chem_fnc_damageLoop = compileScript ["core\fnc\chem\damageLoop.sqf"]; +//DOOR +btc_door_fnc_broke = compileScript ["core\fnc\door\broke.sqf"]; + //DEBUG btc_debug_fnc_message = compileScript ["core\fnc\debug\message.sqf"]; @@ -315,7 +319,6 @@ if (!isDedicated) then { //DOOR btc_door_fnc_break = compileScript ["core\fnc\door\break.sqf"]; - btc_door_fnc_broke = compileScript ["core\fnc\door\broke.sqf"]; //IED btc_ied_fnc_effects = compileScript ["core\fnc\ied\effects.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf index 3f75a9e15..c51ad15c5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf @@ -28,5 +28,6 @@ if (_door isEqualTo "") exitWith { [player, objNull, ["isnotinside"]] call ace_common_fnc_canInteractWith }, { params ["_args"]; + playSound3D ["\z\ace\addons\logistics_wirecutter\sound\wirecut.ogg", player]; _args call btc_door_fnc_broke; -}, {}, [_house, _door]] call CBA_fnc_progressBar; +}, {}, [_house, _door, 0.2, player]] call CBA_fnc_progressBar; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf index 7263076bb..2d575934c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf @@ -8,6 +8,8 @@ Description: Parameters: _house - House. [Object] _door - Door name. [String] + _instigator - Who broke the door. [Object] + _phase - Range 0 (start point of the animation) to 1 (end point of the animation). [Number] Returns: @@ -23,12 +25,13 @@ Author: params [ ["_house", objNull, [objNull]], - ["_door", "", [""]] + ["_door", "", [""]], + ["_player", player, [objNull]], + ["_phase", 1, [0]] ]; _house setVariable [format ["bis_disabled_%1", _door], 0, true]; -playSound3D ["\z\ace\addons\logistics_wirecutter\sound\wirecut.ogg", player]; -[btc_rep_malus_breakDoor, player] remoteExecCall ["btc_rep_fnc_change", 2]; +[btc_rep_malus_breakDoor, _player] remoteExecCall ["btc_rep_fnc_change", 2]; private _getDoorAnimations = [_house, _door] call ace_interaction_fnc_getDoorAnimations; _getDoorAnimations params ["_animations"]; @@ -41,5 +44,5 @@ if (typeOf _house == "Land_Carrier_01_island_01_F") then { }; // do incremental door opening { - _house animate [_x, 0.2]; + _house animate [_x, _phase]; } forEach _animations; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf new file mode 100644 index 000000000..c911b1620 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf @@ -0,0 +1,54 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_door_fnc_get + +Description: + Get door infront of an object. + +Parameters: + _distance - Distance to check intersect. [Number] + _object - From which ojects. [Object] + +Returns: + +Examples: + (begin example) + [2] call btc_door_fnc_get; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + "_distance", + ["_object", cameraOn, [objNull]] +]; + +private _position0 = _object modelToWorld [0, 0, 0]; +private _position1 = _object modelToWorld [0, _distance, 0]; + +private _intersections = lineIntersectsSurfaces [AGLToASL _position0, AGLToASL _position1, _object, objNull, true, 1, "GEOM"]; + +if (_intersections isEqualTo []) exitWith {[objNull, ""]}; + +private _house = _intersections select 0 select 2; + +// shithouse is bugged +if (typeOf _house == "") exitWith {[objNull, ""]}; + +_intersections = [_house, "GEOM"] intersect [_position0, _position1]; + +private _door = toLower (_intersections select 0 select 0); + +if (isNil "_door") exitWith {[_house, ""]}; + +//Check if door is glass because then we need to find the proper location of the door so we can use it +if ((_door find "glass") != -1) then { + _door = [_distance, _house, _door] call ace_interaction_fnc_getGlassDoor; +}; + +if (isNil "_door") exitWith {[_house, ""]}; + +[_house, _door] \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 00f9b7043..5f6d87420 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -50,6 +50,15 @@ addMissionEventHandler ["BuildingChanged", btc_rep_fnc_buildingchanged]; [btc_rep_malus_player_respawn, _player] call btc_rep_fnc_change; }] call CBA_fnc_addEventHandler; +["ace_explosives_detonate", { + params ["_player", "_explosive", "_delay"]; + [ + {_this + [player] call btc_door_fnc_broke}, + [3, _explosive] call btc_door_fnc_get, + _delay + ] call CBA_fnc_waitAndExecute; +}] call CBA_fnc_addEventHandler; + addMissionEventHandler ["HandleDisconnect", { params ["_headless"]; if (_headless in (entities "HeadlessClient_F")) then { From 6143bd80cdc255a4a01fd8e6a1ffbf25a7681315 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 9 Dec 2021 18:59:32 +0100 Subject: [PATCH 302/354] fix error when open a door with a wirecutter --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf | 8 +++++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 2 +- docs/InGame-documentation.md | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf index c51ad15c5..713613922 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/break.sqf @@ -30,4 +30,4 @@ if (_door isEqualTo "") exitWith { params ["_args"]; playSound3D ["\z\ace\addons\logistics_wirecutter\sound\wirecut.ogg", player]; _args call btc_door_fnc_broke; -}, {}, [_house, _door, 0.2, player]] call CBA_fnc_progressBar; +}, {}, [_house, _door, player, 0.2]] call CBA_fnc_progressBar; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf index c911b1620..094c15dc3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf @@ -8,6 +8,7 @@ Description: Parameters: _distance - Distance to check intersect. [Number] _object - From which ojects. [Object] + _offset - Off set for explosive. [Number] Returns: @@ -17,16 +18,17 @@ Examples: (end) Author: - Vdauphin + commy2 ---------------------------------------------------------------------------- */ params [ "_distance", - ["_object", cameraOn, [objNull]] + ["_object", cameraOn, [objNull]], + ["_offset", 0, [0]] ]; -private _position0 = _object modelToWorld [0, 0, 0]; +private _position0 = _object modelToWorld [0, 0, _offset]; private _position1 = _object modelToWorld [0, _distance, 0]; private _intersections = lineIntersectsSurfaces [AGLToASL _position0, AGLToASL _position1, _object, objNull, true, 1, "GEOM"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 5f6d87420..4a334bda7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -54,7 +54,7 @@ addMissionEventHandler ["BuildingChanged", btc_rep_fnc_buildingchanged]; params ["_player", "_explosive", "_delay"]; [ {_this + [player] call btc_door_fnc_broke}, - [3, _explosive] call btc_door_fnc_get, + [3, _explosive, 0.2] call btc_door_fnc_get, _delay ] call CBA_fnc_waitAndExecute; }] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 7f35933b7..836008df1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -291,7 +291,7 @@ 上锁的门 - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>House doors:</marker><br/> Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. <br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Break locked door:</marker><br/> You can still enter by breaking door lock with a wirecutter. <img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>House doors:</marker><br/> Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. <br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Break locked door:</marker><br/> You can still enter by breaking door lock with a wirecutter. <img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> Or by using explosive. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>屋门:</marker><br/> 平民居住的房屋可能会锁门。基于声誉水平, 平民将会锁上他们的屋门并待在屋里。在声誉低时, 所有屋门均会上锁, 在声誉一般时, 所有屋门均不会上锁。<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>撬锁:</marker><br/> 你仍然可以使用剪线钳来撬锁, 从而进入房屋。<img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index deb3bfbbb..df4e63872 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -28,7 +28,7 @@ You can detect the origin of electromagnetic field with spectrum devices. The am ### House doors: Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. ### Break locked door: -You can still enter by breaking door lock with a wirecutter. +You can still enter by breaking door lock with a wirecutter. Or by using explosive. ## Vehicles ### Respawn: From 6dcf8423f50012577830c7d497f3dafd088cc8e5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 9 Dec 2021 19:21:35 +0100 Subject: [PATCH 303/354] add speed for door animation --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf | 6 ++++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf index 2d575934c..e29e6b62a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf @@ -10,6 +10,7 @@ Parameters: _door - Door name. [String] _instigator - Who broke the door. [Object] _phase - Range 0 (start point of the animation) to 1 (end point of the animation). [Number] + _speed - Boolean or Number: When true animation is instant. Since Arma 3 v1.66 Number > 0 is treated as config speed value multiplier. Returns: @@ -27,7 +28,8 @@ params [ ["_house", objNull, [objNull]], ["_door", "", [""]], ["_player", player, [objNull]], - ["_phase", 1, [0]] + ["_phase", 1, [0]], + ["_speed", false, [0, true]] ]; _house setVariable [format ["bis_disabled_%1", _door], 0, true]; @@ -44,5 +46,5 @@ if (typeOf _house == "Land_Carrier_01_island_01_F") then { }; // do incremental door opening { - _house animate [_x, _phase]; + _house animate [_x, _phase, _speed]; } forEach _animations; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 4a334bda7..5f8ff785e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -53,7 +53,7 @@ addMissionEventHandler ["BuildingChanged", btc_rep_fnc_buildingchanged]; ["ace_explosives_detonate", { params ["_player", "_explosive", "_delay"]; [ - {_this + [player] call btc_door_fnc_broke}, + {_this + [player, 1, 3] call btc_door_fnc_broke}, [3, _explosive, 0.2] call btc_door_fnc_get, _delay ] call CBA_fnc_waitAndExecute; From 09ac84d7a663dacb1fafaae9455da655e1bcec29 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 9 Dec 2021 20:20:03 +0100 Subject: [PATCH 304/354] increase offset --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf index e29e6b62a..7402c81a2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/broke.sqf @@ -31,6 +31,7 @@ params [ ["_phase", 1, [0]], ["_speed", false, [0, true]] ]; +if (_door isEqualTo "") exitWith {}; _house setVariable [format ["bis_disabled_%1", _door], 0, true]; [btc_rep_malus_breakDoor, _player] remoteExecCall ["btc_rep_fnc_change", 2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf index 094c15dc3..baa13931c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf @@ -29,7 +29,7 @@ params [ ]; private _position0 = _object modelToWorld [0, 0, _offset]; -private _position1 = _object modelToWorld [0, _distance, 0]; +private _position1 = _object modelToWorld [0, _distance, _offset]; private _intersections = lineIntersectsSurfaces [AGLToASL _position0, AGLToASL _position1, _object, objNull, true, 1, "GEOM"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 5f8ff785e..849dd84cd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -53,8 +53,8 @@ addMissionEventHandler ["BuildingChanged", btc_rep_fnc_buildingchanged]; ["ace_explosives_detonate", { params ["_player", "_explosive", "_delay"]; [ - {_this + [player, 1, 3] call btc_door_fnc_broke}, - [3, _explosive, 0.2] call btc_door_fnc_get, + btc_door_fnc_broke, + ([3, _explosive, 0.5] call btc_door_fnc_get) + [_player, 1, 2], _delay ] call CBA_fnc_waitAndExecute; }] call CBA_fnc_addEventHandler; From 9f9269160dfe00169f44c9cd993f83b9a6ed2706 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 10 Dec 2021 13:58:35 +0100 Subject: [PATCH 305/354] Interpret fall from the sky --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 85bb62d83..8868b664e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -834,7 +834,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8305.25,160.00143,10066.55}; + position[]={8305.25,76.060417,10066.55}; angles[]={0,2.5247488,0}; }; side="West"; @@ -848,14 +848,12 @@ class Mission }; id=29; type="B_Soldier_F"; - atlOffset=83.997978; }; }; class Attributes { }; id=28; - atlOffset=83.997978; }; class Item14 { From 2e5538bd3a732122d0dacb034a33753baed456c5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Dec 2021 15:37:22 +0100 Subject: [PATCH 306/354] FIX: No reputation change if ACE detonateAfterCookoff disable https://github.com/acemod/ACE3/pull/8734 --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 9e07aad71..be37de50c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -174,7 +174,7 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] [_veh, _veh_cargo, _veh_inventory] call btc_db_fnc_loadCargo; if !(alive _veh) then { - [_veh, objNull, objNull, false] call btc_veh_fnc_killed; + [_veh, objNull, objNull, nil, false] call btc_veh_fnc_killed; }; if (_ViV isNotEqualTo []) then { { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 57545d7f7..958234d88 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -244,7 +244,7 @@ private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name] [_veh, _veh_cargo, _veh_cont call btc_load_fnc_migrateOldToNew_inventory] call btc_db_fnc_loadCargo; if !(alive _veh) then { - [_veh, objNull, objNull, false] call btc_veh_fnc_killed; + [_veh, objNull, objNull, nil, false] call btc_veh_fnc_killed; }; if !(_ViV isEqualTo []) then { { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf index 4b83dc46a..64d8d2487 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/killed.sqf @@ -9,6 +9,7 @@ Parameters: _vehicle - Vehicle object. [Object] _killer - Killer. [Object] _instigator - Person who pulled the trigger. [Object] + _useEffects - Same as useEffects in setDamage alt syntax. [Boolean] _allowRepChange - Allow reputation change. [Boolean] Returns: @@ -27,6 +28,7 @@ params [ ["_vehicle", objNull, [objNull]], ["_killer", objNull, [objNull]], ["_instigator", objNull, [objNull]], + ["_useEffects", true, [false]], ["_allowRepChange", true, [false]] ]; From ed07286c532fc9c7bcf9a5a418ff7a5959db7349 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Dec 2021 17:33:39 +0100 Subject: [PATCH 307/354] Horn doesn't work after firing from the vehicle --- .../core/fnc/int/horn.sqf | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf index cc40e7414..a813dcd93 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/horn.sqf @@ -23,19 +23,15 @@ private _veh = vehicle player; if ( _veh isEqualTo player || {visibleMap} || - {driver _veh isNotEqualTo player} || {time < btc_int_hornDelay + 1} ) exitWith {}; params ["_displayOrControl", "_button"]; if (_button isNotEqualTo 0) exitWith {}; -private _weapon = currentWeapon _veh; -if ( - _weapon isNotEqualTo "" && - {!(_weapon isKindOf ["CarHorn", configFile >> "CfgWeapons"])} -) exitWith {}; - +private _weapon = (weaponState [_veh, _veh unitTurret player]) select 0; +if !(_weapon isKindOf ["CarHorn", configFile >> "CfgWeapons"]) exitWith {}; + [ 1, objNull, From 900075f3144e881abbc665b3e977e3f417c1337d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Dec 2021 17:54:09 +0100 Subject: [PATCH 308/354] fix typo --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 2 +- docs/InGame-documentation.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 836008df1..c1176dc24 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -232,7 +232,7 @@ - Any player can give orders to civilians.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> To do this, just open your self interaction menu and select 'ORDERS' or use one of the shortcuts. Shortcuts can changed under 'configure' >> 'controls' >> 'configure addons' >> 'Hearts and Minds: Mission' (drop down menu).<br/> Your options are:<br/> - STOP<br/> - GET DOWN<br/> - GO AWAY<br/><br/> If you want to give an order to just one unit, interact with it (ace object interaction).<br/> You can also use a horn to ask civilians to stop their mouvement from a vehicle. Turning ON beacons or siren will continuously ask civilians to let you pass first. Combining beacons and siren will increase the range of effectiveness.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> You can also drop leaflets to ask all civilians in a circle of 200m to evacuate to a religious building (if not available a safe area) with a AR-2 drone.<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> + Any player can give orders to civilians.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> To do this, just open your self interaction menu and select 'ORDERS' or use one of the shortcuts. Shortcuts can changed under 'configure' >> 'controls' >> 'configure addons' >> 'Hearts and Minds: Mission' (drop down menu).<br/> Your options are:<br/> - STOP<br/> - GET DOWN<br/> - GO AWAY<br/><br/> If you want to give an order to just one unit, interact with it (ace object interaction).<br/> You can also use a horn to ask civilians to stop their movement from a vehicle. Turning ON beacons or siren will continuously ask civilians to let you pass first. Combining beacons and siren will increase the range of effectiveness.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> You can also drop leaflets to ask all civilians in a circle of 200m to evacuate to a religious building (if not available a safe area) with a AR-2 drone.<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> Cualquier jugador puede dar órdenes a civiles.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> Para ello, sólo tienes que abrir el menú de auto-interacción y seleccionar `ORDENES' o utilizar uno de los accesos directos. Los accesos directos pueden cambiarse en 'configuración'. >> 'controls' >> 'configure addons' >> 'Hearts and Minds: Mission' (menu desplegable).<br/> Tus opciones son:<br/> - ALTO<br/> - AGACHATE<br/> - FUERA DE AQUI<br/><br/> Si quieres dar una orden a una sola unidad, interactúa con ella (ace object interaction).<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> También puede tirar panfletos para pedir a todos los civiles en un círculo de 200 metros que evacuen a un edificio religioso (si no está disponible un área segura) con un drone<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> Jeder Spieler kann einem Zivlisten Anweisungen geben.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> Dies geht recht einfach in dem man das Eigen-Interaktionsmenü öffnet und dann 'BEFEHLE(ZIVILISTEN)' auswählt. Oder in dem man Kurztasten nutzt. Diese können unter 'Konfigurieren' >> 'Steuerung' >> 'Modifikationen anpassen' >> Hearts and Minds: Mission' (Drop-Down-Menü) geändert werden.<br/><br/> Folgende Optionen stehen zur Verfügung:<br/> - STOPP!<br/> - AUF DEN BODEN!<br/> - GEH WEG!<br/><br/> Wenn Sie einen Befehl an eine bestimmte Person geben wollen, so können Sie auch direkt mir dieser Interagieren (ACE Objekt-Interaction).<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Sie können mithilfe einer Drohne Broschüren abwerfen, um die Zivilisten im Umkreis von ca. 200 m aufzufordern, sich in dem nächsten religiösen Gebäude einzufinden (sollte kein Gebäude vorhanden sein, so wird ein sicherer Bereich festgelegt).<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> Qualquer jogador pode dar instruções a um civil.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\interact_ca.paa' width='20' height='20'/> Para fazer isso, basta abrir o menu de interação do civil e selecionar a opção "ORDENS" ou usar tecla de atalho. Atalhos podem ser alterados no menu "CONFIGURAÇÃO" >> "CONTROLES" >> "CONFIGURAR COMPLEMENTOS (ADDONS)" >> Corações e Mentes: Missão (Menu suspenso).<br/><br/> As seguintes opções estão disponíveis: <br/> - PARE!<br/> - DEITADO!<br/> - VÁ EMBORA!<br/><br/> Se você quiser dar uma ordem para apenas uma unidade, interaja com ela (interação do objeto ACE).<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Você pode usar um drone para soltar panfletos solicitando que civis, dentro de um raio de 200m, se abriguem em um prédio religioso mais próximo (se não houver prédio, uma área segura será definida).<br/><br/> <img image='\a3\missions_f_orange\Data\Img\orange_leaflets_overview_ca.paa' width='355' height='200'/> diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index df4e63872..103e7edf2 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -151,7 +151,7 @@ Any player can give orders to civilians. To do this, just open your self interac If you want to give an order to just one unit, interact with it (object interaction). -You can also use a horn to ask civilians to stop their mouvement from a vehicle. Turning ON beacons or siren will continuously ask civilians to let you pass first. Combining beacons and siren will increase the range of effectiveness. +You can also use a horn to ask civilians to stop their movement from a vehicle. Turning ON beacons or siren will continuously ask civilians to let you pass first. Combining beacons and siren will increase the range of effectiveness. You can also drop leaflets to ask all civilians in a circle of 200m to evacuate to a religious building (if not available a safe area) with a AR-2 drone. From 3cdd04ebe938a3c80591bae5bcd94b241550abe6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 12 Dec 2021 16:15:58 +0100 Subject: [PATCH 309/354] Allow more range for unit spawn coef --- .../core/def/param.hpp | 6 ++-- .../core/fnc/cache/create.sqf | 2 +- .../core/fnc/city/activate.sqf | 36 +++++++++---------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 874cc0cdb..bb632d9ec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -141,13 +141,13 @@ class Params { title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_ENEMY_DENSITY"]); values[]={0,10,20,30,40,50,60,70,80,90,100}; texts[]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"}; - default = 60; + default = 40; }; class btc_p_mil_static_group_ratio { // Enemy static density: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_ENEMY_STATIC_DENSITY"]); values[]={0,10,20,30,40,50,60,70,80,90,100}; texts[]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"}; - default = 50; + default = 30; }; class btc_p_civ_group_ratio { // Civilian density: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_CIVILIAN_DENSITY"]); @@ -161,7 +161,7 @@ class Params { texts[]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"}; default = 100; }; - class btc_p_wp_houseDensity { // Density of military in house: + class btc_p_wp_houseDensity { // Density of military in house: (Can't be above 100%) title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SPWAN_MIL_INHOUSE_DENSITY"]); values[]={0,10,20,30,40,50,60,70,80,90,100}; texts[]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf index a8d0556fd..6f7935e4f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf @@ -29,7 +29,7 @@ Author: params [ ["_cache_pos", btc_cache_pos, [[]]], ["_p_chem", btc_p_chem, [true]], - ["_probabilityNotChemical", 0.7, [0]] + ["_probabilityNotChemical", 0.5, [0]] ]; private _isChem = false; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index ab707fedd..479b495e5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -102,16 +102,16 @@ if (_data_units isNotEqualTo []) then { } else { // Maximum number of enemy group private _numberOfGroup = (switch _type do { - case "Hill" : {3}; - case "VegetationFir" : {3}; - case "BorderCrossing" : {5}; - case "NameLocal" : {5}; - case "StrongpointArea" : {6}; - case "NameVillage" : {6}; - case "NameCity" : {12}; - case "NameCityCapital" : {24}; - case "Airport" : {24}; - case "NameMarine" : {3}; + case "Hill" : {4}; + case "VegetationFir" : {4}; + case "BorderCrossing" : {7}; + case "NameLocal" : {7}; + case "StrongpointArea" : {8}; + case "NameVillage" : {8}; + case "NameCity" : {16}; + case "NameCityCapital" : {32}; + case "Airport" : {32}; + case "NameMarine" : {4}; default {0}; }); @@ -133,14 +133,14 @@ if (_data_units isNotEqualTo []) then { if (_has_en) then { private _numberOfStatic = (switch _type do { - case "VegetationFir" : {2}; - case "BorderCrossing" : {4}; - case "NameLocal" : {2}; - case "StrongpointArea" : {4}; - case "NameVillage" : {4}; - case "NameCity" : {8}; - case "NameCityCapital" : {10}; - case "Airport" : {4}; + case "VegetationFir" : {3}; + case "BorderCrossing" : {6}; + case "NameLocal" : {3}; + case "StrongpointArea" : {6}; + case "NameVillage" : {6}; + case "NameCity" : {12}; + case "NameCityCapital" : {15}; + case "Airport" : {6}; default {0}; }); [+_houses, round (_p_mil_static_group_ratio * _numberOfStatic), _city] call btc_mil_fnc_create_staticOnRoof; From b63450db172fb8ddb958a5d33eab057a60f31acb Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 13 Dec 2021 18:15:35 +0100 Subject: [PATCH 310/354] Add resupply interaction Add menu at logitic point fix can't refuel fuel source --- .../core/fnc/compile.sqf | 1 + .../core/fnc/int/add_actions.sqf | 7 ++- .../core/fnc/log/rearmSource.sqf | 44 +++++++++++++++++++ .../core/fnc/log/refuelSource.sqf | 2 +- .../core/fnc/log/server_repair_wreck.sqf | 7 ++- .../core/fnc/veh/addRespawn.sqf | 8 +++- .../core/fnc/veh/propertiesGet.sqf | 12 ++--- .../core/fnc/veh/propertiesSet.sqf | 2 +- .../stringtable.xml | 3 ++ 9 files changed, 74 insertions(+), 12 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/rearmSource.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 886969aed..fbec3bd66 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -383,6 +383,7 @@ if (!isDedicated) then { btc_log_fnc_copy = compileScript ["core\fnc\log\copy.sqf"]; btc_log_fnc_paste = compileScript ["core\fnc\log\paste.sqf"]; btc_log_fnc_refuelSource = compileScript ["core\fnc\log\refuelSource.sqf"]; + btc_log_fnc_rearmSource = compileScript ["core\fnc\log\rearmSource.sqf"]; //REP btc_rep_fnc_treatment = compileScript ["core\fnc\rep\treatment.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 529184867..4c33a079b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -47,7 +47,7 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title _action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject; - _action = ["Require_object", localize "STR_BTC_HAM_ACTION_LOGPOINT_REQOBJ", "\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa", { + _action = ["Require_object", localize "STR_BTC_HAM_ACTION_LOGPOINT_REQOBJ", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\D_ca.paa", { params ["", "", "_params"]; _params spawn btc_log_fnc_create }, {true}, {}, [_helipad], [0, 0, 0.4], 5] call ace_interact_menu_fnc_createAction; @@ -62,6 +62,11 @@ _action = ["Search_intel", localize "STR_A3_Showcase_Marksman_BIS_tskIntel_title _params call btc_log_fnc_refuelSource }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; + _action = ["Rearm", localize "STR_BTC_HAM_ACTION_LOGPOINT_REARMSOURCE", "\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa", { + params ["", "", "_params"]; + _params call btc_log_fnc_rearmSource + }, {true}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; + [_object, 0, ["ACE_MainActions", "Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; _action = ["Require_veh", localize "STR_BTC_HAM_ACTION_LOGPOINT_REQVEH", "\A3\ui_f\data\map\vehicleicons\iconCar_ca.paa", { params ["", "", "_params"]; _params spawn btc_arsenal_fnc_garage}, {(serverCommandAvailable "#logout" || !isMultiplayer) and btc_p_garage}, {}, [_helipad], [0, 0, 0], 5] call ace_interact_menu_fnc_createAction; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/rearmSource.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/rearmSource.sqf new file mode 100644 index 000000000..00d01b901 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/rearmSource.sqf @@ -0,0 +1,44 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_log_fnc_rearmSource + +Description: + Rearm a rearm source. + +Parameters: + _object - Rearm truck. [Object] + +Returns: + +Examples: + (begin example) + [] call btc_log_fnc_rearmSource; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_object", objNull, [objNull]] +]; + +private _array = (nearestObjects [_object, ["LandVehicle", "Air", "Ship", "Thing"], 10]) select {!( + _x isKindOf "ACE_friesBase" OR + _x isKindOf "ace_fastroping_helper" +)}; + +private _failNotify = [ + [localize "STR_ACE_Refuel_Failed"], + [""] +]; +if (_array isEqualTo []) exitWith {_failNotify call CBA_fnc_notify;}; + +private _rearmSource = _array select 0; +private _default_rearmCargo = getNumber (configOf _rearmSource >> "ace_rearm_defaultSupply"); + +if (_default_rearmCargo <= 0) exitWith {_failNotify call CBA_fnc_notify;}; + +[_rearmSource, _default_rearmCargo] call ace_rearm_fnc_makeSource; +(localize "STR_ACE_Refuel_Hint_Completed") call CBA_fnc_notify; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf index ca590b509..f08d376ea 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/refuelSource.sqf @@ -24,7 +24,7 @@ params [ ["_object", objNull, [objNull]] ]; -private _array = (nearestObjects [_object, ["LandVehicle", "Air", "Ship", "Thing", "NonStrategic"], 10]) select {!( +private _array = (nearestObjects [_object, ["LandVehicle", "Air", "Ship", "Thing"], 10]) select {!( _x isKindOf "ACE_friesBase" OR _x isKindOf "ace_fastroping_helper" )}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf index 3ba3b9c15..fec5b24a1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf @@ -33,8 +33,13 @@ private _type = typeOf _veh; (getPosASL _veh) params ["_x", "_y", "_z"]; private _dir = getDir _veh; private _marker = _veh getVariable ["marker", ""]; -private _vehProperties = [_veh] call btc_veh_fnc_propertiesGet; +private _vehProperties = _veh call btc_veh_fnc_propertiesGet; + +// Reset properties _vehProperties set [5, false]; +(_vehProperties select 3) set [0, getNumber (configOf _veh >> "ace_refuel_fuelCargo")]; +(_vehProperties select 6) set [1, getNumber (configOf _veh >> "ace_rearm_defaultSupply")]; + private _EDENinventory = _veh getVariable ["btc_EDENinventory", []]; btc_vehicles = btc_vehicles - [_veh]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 159e65d49..5b8aa4557 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -33,13 +33,17 @@ private _type = typeOf _vehicle; private _pos = getPosASL _vehicle; private _dir = getDir _vehicle; private _vector = [vectorDir _vehicle, vectorUp _vehicle]; -private _vehProperties = [_vehicle] call btc_veh_fnc_propertiesGet; +private _vehProperties = _vehicle call btc_veh_fnc_propertiesGet; + +// Reset properties _vehProperties set [5, false]; +(_vehProperties select 3) set [0, getNumber (configOf _veh >> "ace_refuel_fuelCargo")]; +(_vehProperties select 6) set [1, getNumber (configOf _veh >> "ace_rearm_defaultSupply")]; _vehicle setVariable ["data_respawn", [_type, _pos, _dir, _time, _vector] + _vehProperties]; _vehicle setVariable ["btc_dont_delete", true]; -if ((isNumber (configOf _vehicle >> "ace_fastroping_enabled")) && (typeOf _vehicle isNotEqualTo "RHS_UH1Y_d")) then {[_vehicle] call ace_fastroping_fnc_equipFRIES}; +if ((isNumber (configOf _vehicle >> "ace_fastroping_enabled")) && (typeOf _vehicle isNotEqualTo "RHS_UH1Y_d")) then {_vehicle call ace_fastroping_fnc_equipFRIES}; _vehicle addMPEventHandler ["MPKilled", { if (isServer) then { params ["_vehicle", "_killer", "_instigator"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesGet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesGet.sqf index eeefa85a7..5fb993b80 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesGet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesGet.sqf @@ -31,18 +31,18 @@ params [ ["_vehicle", objNull, [objNull]] ]; -private _customization = [_vehicle] call BIS_fnc_getVehicleCustomization; -private _isMedicalVehicle = [_vehicle] call ace_medical_treatment_fnc_isMedicalVehicle; -private _isRepairVehicle = [_vehicle] call ace_repair_fnc_isRepairVehicle; +private _customization = _vehicle call BIS_fnc_getVehicleCustomization; +private _isMedicalVehicle = _vehicle call ace_medical_treatment_fnc_isMedicalVehicle; +private _isRepairVehicle = _vehicle call ace_repair_fnc_isRepairVehicle; private _fuelSource = [ - [_vehicle] call ace_refuel_fnc_getFuel, + _vehicle call ace_refuel_fnc_getFuel, _vehicle getVariable ["ace_refuel_hooks", []] ]; private _pylons = getPylonMagazines _vehicle; private _isContaminated = _vehicle in btc_chem_contaminated; private _supplyVehicle = [ - [_vehicle] call ace_rearm_fnc_isSource, - _vehicle getVariable ["ace_rearm_currentSupply", -1] + _vehicle call ace_rearm_fnc_isSource, + _vehicle call ace_rearm_fnc_getSupplyCount ]; [_customization, _isMedicalVehicle, _isRepairVehicle, _fuelSource, _pylons, _isContaminated, _supplyVehicle] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesSet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesSet.sqf index 34a467eee..3f609d865 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesSet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/propertiesSet.sqf @@ -79,7 +79,7 @@ if (_supplyVehicle isNotEqualTo []) then { ["_currentSupply", -1, [0]] ]; - if (_isSupplyVehicle && !([_vehicle] call ace_rearm_fnc_isSource)) then { + if (_isSupplyVehicle) then { [_vehicle, _currentSupply] call ace_rearm_fnc_makeSource; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index c1176dc24..75af2e15f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -1611,6 +1611,9 @@ 为燃油卡车补给燃料 Ravitailler la source de carburant + + Resupply rearm source + Get tickets from body bag or prisoner 回收尸体袋或囚犯以获得重生票数 From 38b18f58244ab2867d01f1f990963d4261a69b21 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 17 Dec 2021 09:57:29 +0100 Subject: [PATCH 311/354] Simplify the doc site --- docs/index.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/index.md b/docs/index.md index 889329f41..b4463ae08 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,14 +1,12 @@ -# Welcome _Hearts and Minds_ Player - -* ## Introduction : +## Introduction : This mission is built for **dedicated server only**. You will found here some basic and specific informations related to _Hearts and Minds_ mission. Servers list : [battlemetrics.com](https://www.battlemetrics.com/servers/arma3?q=hearts%2Band%2Bminds&status=online&sort=-players) -* ## Mission gameplay documentation +## Mission gameplay documentation * ### [InGame Documentation](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation) * ### [Action has consequences](http://vdauphin.github.io/HeartsAndMinds/Action-has-consequences) -* ## Mission editing +## Mission editing * ### [Change MAP of H&M](http://vdauphin.github.io/HeartsAndMinds/Change-MAP-of-Hearts-and-Minds) * ### [Prevent AI from spawning near the base](http://vdauphin.github.io/HeartsAndMinds/Prevent-AI-from-spawning-near-the-base) * ### [Add new vehicle or boat to H&M system](http://vdauphin.github.io/HeartsAndMinds/Add-vehicle-or-boat-to-H&M-system) @@ -18,5 +16,5 @@ Servers list : [battlemetrics.com](https://www.battlemetrics.com/servers/arma3?q * #### [Player](http://vdauphin.github.io/HeartsAndMinds/faction_player) * ### [All H&M setting and tweak](http://vdauphin.github.io/HeartsAndMinds/All-H&M-setting-and-tweak) * ### [Mods dependency](http://vdauphin.github.io/HeartsAndMinds/Mods-dependency) -* ## [For developer and tester](http://vdauphin.github.io/HeartsAndMinds/For-developer-and-tester) -* ## [Video gameplay](http://vdauphin.github.io/HeartsAndMinds/Video-gameplay) +## [For developer and tester](http://vdauphin.github.io/HeartsAndMinds/For-developer-and-tester) +## [Video gameplay](http://vdauphin.github.io/HeartsAndMinds/Video-gameplay) From e13dffe93b1cc1f2df7f99632cc54a0f45ebafd9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 17 Dec 2021 10:00:55 +0100 Subject: [PATCH 312/354] tweak indentation --- docs/index.md | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/index.md b/docs/index.md index b4463ae08..58245e69e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,17 +4,20 @@ This mission is built for **dedicated server only**. You will found here some ba Servers list : [battlemetrics.com](https://www.battlemetrics.com/servers/arma3?q=hearts%2Band%2Bminds&status=online&sort=-players) ## Mission gameplay documentation - * ### [InGame Documentation](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation) - * ### [Action has consequences](http://vdauphin.github.io/HeartsAndMinds/Action-has-consequences) + ### [InGame Documentation](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation) + ### [Action has consequences](http://vdauphin.github.io/HeartsAndMinds/Action-has-consequences) + ## Mission editing - * ### [Change MAP of H&M](http://vdauphin.github.io/HeartsAndMinds/Change-MAP-of-Hearts-and-Minds) - * ### [Prevent AI from spawning near the base](http://vdauphin.github.io/HeartsAndMinds/Prevent-AI-from-spawning-near-the-base) - * ### [Add new vehicle or boat to H&M system](http://vdauphin.github.io/HeartsAndMinds/Add-vehicle-or-boat-to-H&M-system) - * ### [Enemy/Civilian spawn](http://vdauphin.github.io/HeartsAndMinds/spawn) - * ### Change Factions - * #### [AI](http://vdauphin.github.io/HeartsAndMinds/Add-factions) - * #### [Player](http://vdauphin.github.io/HeartsAndMinds/faction_player) - * ### [All H&M setting and tweak](http://vdauphin.github.io/HeartsAndMinds/All-H&M-setting-and-tweak) - * ### [Mods dependency](http://vdauphin.github.io/HeartsAndMinds/Mods-dependency) + ### [Change MAP of H&M](http://vdauphin.github.io/HeartsAndMinds/Change-MAP-of-Hearts-and-Minds) + ### [Prevent AI from spawning near the base](http://vdauphin.github.io/HeartsAndMinds/Prevent-AI-from-spawning-near-the-base) + ### [Add new vehicle or boat to H&M system](http://vdauphin.github.io/HeartsAndMinds/Add-vehicle-or-boat-to-H&M-system) + ### [Enemy/Civilian spawn](http://vdauphin.github.io/HeartsAndMinds/spawn) + ### Change Factions + #### [AI](http://vdauphin.github.io/HeartsAndMinds/Add-factions) + #### [Player](http://vdauphin.github.io/HeartsAndMinds/faction_player) + ### [All H&M setting and tweak](http://vdauphin.github.io/HeartsAndMinds/All-H&M-setting-and-tweak) + ### [Mods dependency](http://vdauphin.github.io/HeartsAndMinds/Mods-dependency) + ## [For developer and tester](http://vdauphin.github.io/HeartsAndMinds/For-developer-and-tester) + ## [Video gameplay](http://vdauphin.github.io/HeartsAndMinds/Video-gameplay) From 5e130a0438168bacc2c7ba93e6291436ad5d4a23 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 17 Dec 2021 10:02:22 +0100 Subject: [PATCH 313/354] use - --- docs/index.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/index.md b/docs/index.md index 58245e69e..59f30b6a8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,19 +4,19 @@ This mission is built for **dedicated server only**. You will found here some ba Servers list : [battlemetrics.com](https://www.battlemetrics.com/servers/arma3?q=hearts%2Band%2Bminds&status=online&sort=-players) ## Mission gameplay documentation - ### [InGame Documentation](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation) - ### [Action has consequences](http://vdauphin.github.io/HeartsAndMinds/Action-has-consequences) + - [InGame Documentation](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation) + - [Action has consequences](http://vdauphin.github.io/HeartsAndMinds/Action-has-consequences) ## Mission editing - ### [Change MAP of H&M](http://vdauphin.github.io/HeartsAndMinds/Change-MAP-of-Hearts-and-Minds) - ### [Prevent AI from spawning near the base](http://vdauphin.github.io/HeartsAndMinds/Prevent-AI-from-spawning-near-the-base) - ### [Add new vehicle or boat to H&M system](http://vdauphin.github.io/HeartsAndMinds/Add-vehicle-or-boat-to-H&M-system) - ### [Enemy/Civilian spawn](http://vdauphin.github.io/HeartsAndMinds/spawn) - ### Change Factions - #### [AI](http://vdauphin.github.io/HeartsAndMinds/Add-factions) - #### [Player](http://vdauphin.github.io/HeartsAndMinds/faction_player) - ### [All H&M setting and tweak](http://vdauphin.github.io/HeartsAndMinds/All-H&M-setting-and-tweak) - ### [Mods dependency](http://vdauphin.github.io/HeartsAndMinds/Mods-dependency) + - [Change MAP of H&M](http://vdauphin.github.io/HeartsAndMinds/Change-MAP-of-Hearts-and-Minds) + - [Prevent AI from spawning near the base](http://vdauphin.github.io/HeartsAndMinds/Prevent-AI-from-spawning-near-the-base) + - [Add new vehicle or boat to H&M system](http://vdauphin.github.io/HeartsAndMinds/Add-vehicle-or-boat-to-H&M-system) + - [Enemy/Civilian spawn](http://vdauphin.github.io/HeartsAndMinds/spawn) + - Change Factions + - [AI](http://vdauphin.github.io/HeartsAndMinds/Add-factions) + - [Player](http://vdauphin.github.io/HeartsAndMinds/faction_player) + - [All H&M setting and tweak](http://vdauphin.github.io/HeartsAndMinds/All-H&M-setting-and-tweak) + - [Mods dependency](http://vdauphin.github.io/HeartsAndMinds/Mods-dependency) ## [For developer and tester](http://vdauphin.github.io/HeartsAndMinds/For-developer-and-tester) From 6af182b95c38af9a41990dda6fe65f8ee8545525 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 18 Dec 2021 14:05:36 +0100 Subject: [PATCH 314/354] Add layer migrate btc_vehicles fix localization migrate vehicle to layer remove game logic Update marker text --- .../core/fnc/compile.sqf | 2 - .../core/fnc/db/add_veh.sqf | 7 +- .../core/fnc/db/load.sqf | 2 +- .../core/fnc/db/load_old.sqf | 2 +- .../core/fnc/veh/addRespawn.sqf | 10 +- .../core/fnc/veh/addRespawnableFromSQM.sqf | 30 - .../core/fnc/veh/addVehFromSQM.sqf | 30 - .../core/init_server.sqf | 4 +- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 1636 +++++++---------- .../stringtable.xml | 16 +- docs/Add-vehicle-or-boat-to-H&M-system.md | 8 +- 11 files changed, 737 insertions(+), 1010 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawnableFromSQM.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addVehFromSQM.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index fbec3bd66..5fd44d688 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -218,8 +218,6 @@ if (isServer) then { btc_veh_fnc_respawn = compileScript ["core\fnc\veh\respawn.sqf"]; btc_veh_fnc_propertiesGet = compileScript ["core\fnc\veh\propertiesGet.sqf"]; btc_veh_fnc_propertiesSet = compileScript ["core\fnc\veh\propertiesSet.sqf"]; - btc_veh_fnc_addVehFromSQM = compileScript ["core\fnc\veh\addVehFromSQM.sqf"]; - btc_veh_fnc_addRespawnableFromSQM = compileScript ["core\fnc\veh\addRespawnableFromSQM.sqf"]; }; /////////////////////CLIENT AND SERVER\\\\\\\\\\\\\\\\\\\\\ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index 23e225cbb..d7ac53037 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -25,14 +25,17 @@ params [ ["_veh", objNull, [objNull]] ]; -if (_veh getVariable ["btc_dont_delete", false]) exitWith { +if (isNil "btc_vehicles") then { + btc_vehicles = []; +}; + +if (btc_vehicles pushBackUnique _veh isEqualTo -1) exitWith { if (btc_debug || btc_debug_log) then { ["Vehicle added more than once in btc_vehicles", __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; }; }; _veh setVariable ["btc_dont_delete", true]; -btc_vehicles pushBackUnique _veh; _veh addMPEventHandler ["MPKilled", { if (isServer) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index be37de50c..73fb9ae36 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -125,7 +125,7 @@ private _fobs = +(profileNamespace getVariable [format ["btc_hm_%1_fobs", _name] btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep", _name], 0]; //Objects -{deleteVehicle _x} forEach btc_vehicles; +{deleteVehicle _x} forEach (getMissionLayerEntities "btc_vehicles" select 0); btc_vehicles = []; private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 958234d88..0e2e8ab7a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -123,7 +123,7 @@ private _fobs = +(profileNamespace getVariable [format ["btc_hm_%1_fobs", _name] btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep", _name], 0]; //Objects -{deleteVehicle _x} forEach btc_vehicles; +{deleteVehicle _x} forEach (getMissionLayerEntities "btc_vehicles" select 0); btc_vehicles = []; btc_load_fnc_migrateOldToNew_inventory = { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 5b8aa4557..0993ad3b5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -27,7 +27,15 @@ params [ ["_time", 30, [0]] ]; -btc_veh_respawnable pushBackUnique _vehicle; +if (isNil "btc_veh_respawnable") then { + btc_veh_respawnable = []; +}; + +if (btc_veh_respawnable pushBackUnique _vehicle isEqualTo -1) exitWith { + if (btc_debug || btc_debug_log) then { + ["Vehicle added more than once in btc_veh_respawnable", __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; + }; +}; private _type = typeOf _vehicle; private _pos = getPosASL _vehicle; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawnableFromSQM.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawnableFromSQM.sqf deleted file mode 100644 index 5774d570c..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawnableFromSQM.sqf +++ /dev/null @@ -1,30 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_veh_fnc_addRespawnableFromSQM - -Description: - Add a vehicle to the respawn array system. Only usefull in mission.sqm. - -Parameters: - _vehicle - Vehicle to add in respawn system. [Object] - -Returns: - -Examples: - (begin example) - this call btc_veh_fnc_addRespawnableFromSQM; - (end) - -Author: - Vdauphin - ----------------------------------------------------------------------------- */ - -params [ - ["_vehicle", objNull, [objNull]] -]; - -if (isNil "btc_veh_respawnable") then { - btc_veh_respawnable = []; -}; -btc_veh_respawnable pushBackUnique _vehicle diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addVehFromSQM.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addVehFromSQM.sqf deleted file mode 100644 index 5225a2a0a..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addVehFromSQM.sqf +++ /dev/null @@ -1,30 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_veh_fnc_addVehFromSQM - -Description: - Add vehicle to the wreck array system. Only usefull in mission.sqm. - -Parameters: - _vehicle - Vehicle to add in wreck system. [Object] - -Returns: - -Examples: - (begin example) - this call btc_veh_fnc_addVehFromSQM; - (end) - -Author: - Vdauphin - ----------------------------------------------------------------------------- */ - -params [ - ["_vehicle", objNull, [objNull]] -]; - -if (isNil "btc_vehicles") then { - btc_vehicles = []; -}; -btc_vehicles pushBackUnique _vehicle diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 68819a64c..dc96ccca9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -28,7 +28,7 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; _x call btc_db_fnc_add_veh; - } forEach btc_vehicles; + } forEach (getMissionLayerEntities "btc_vehicles" select 0); }; [] call btc_eh_fnc_server; @@ -49,7 +49,7 @@ if (btc_p_db_autoRestart > 0) then { if (_forEachIndex isEqualTo 0) then { missionNamespace setVariable ["btc_veh_respawnable_1", _x, true]; }; -} forEach btc_veh_respawnable; +} forEach (getMissionLayerEntities "btc_veh_respawnable" select 0); if (btc_p_side_mission_cycle > 0) then { for "_i" from 1 to btc_p_side_mission_cycle do { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 8868b664e..5ef60b0f2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -8,7 +8,7 @@ class EditorData toggles=517; class ItemIDProvider { - nextID=246; + nextID=248; }; class MarkerIDProvider { @@ -16,14 +16,14 @@ class EditorData }; class LayerIndexProvider { - nextID=1; + nextID=3; }; class Camera { - pos[]={8451.0586,159.01505,10174.087}; - dir[]={-0.76327658,-0.4804768,-0.43194857}; - up[]={-0.4181695,0.87700278,-0.23664887}; - aside[]={-0.49252242,4.399335e-007,0.87031251}; + pos[]={8456.0693,183.07834,10202.41}; + dir[]={-0.71679336,-0.51150566,-0.47391981}; + up[]={-0.42668703,0.85927457,-0.28211212}; + aside[]={-0.55152744,4.9441587e-007,0.83417183}; }; }; binarizationWanted=0; @@ -33,38 +33,37 @@ addons[]= "A3_Structures_F_Ind_Cargo", "ace_cargo", "A3_Structures_F_Mil_Helipads", - "A3_Soft_F_Gamma_Truck_01", - "A3_Soft_F_Exp_Truck_01", - "ace_realisticnames", - "ace_rearm", - "ace_refuel", - "ace_repair", "A3_Structures_F_Mil_Flags", "A3_Characters_F", "ace_explosives", "A3_Modules_F_Curator_Curator", "A3_Characters_F_Enoch", "A3_Characters_F_Mark", - "A3_Air_F_Heli_Heli_Transport_03", - "A3_Soft_F_Beta_Truck_01", - "A3_Soft_F_Enoch_Truck_01", - "A3_Soft_F_Exp_LSV_01", - "A3_Soft_F_MRAP_01", "A3_Armor_F_Beta_APC_Wheeled_01", + "ace_realisticnames", "ace_vehicle_damage", - "A3_Air_F_Beta_Heli_Transport_01", - "A3_Air_F_Beta_Heli_Attack_01", "A3_Props_F_Enoch_Military_Decontamination", "A3_Signs_F", + "A3_Air_F_Heli_Heli_Transport_03", + "A3_Soft_F_Gamma_Truck_01", + "A3_Soft_F_Exp_Truck_01", + "ace_refuel", + "ace_repair", + "ace_rearm", + "A3_Soft_F_Enoch_Truck_01", + "A3_Soft_F_Beta_Truck_01", + "A3_Soft_F_MRAP_01", "A3_Armor_F_Beta_APC_Tracked_01", - "A3_Modules_F", - "A3_Soft_F_Offroad_01" + "A3_Soft_F_Exp_LSV_01", + "A3_Air_F_Beta_Heli_Attack_01", + "A3_Soft_F_Offroad_01", + "A3_Air_F_Beta_Heli_Transport_01" }; class AddonsMetaData { class List { - items=24; + items=23; class Item0 { className="A3_Ui_F"; @@ -95,141 +94,134 @@ class AddonsMetaData }; class Item4 { - className="A3_Soft_F_Gamma"; - name="Arma 3 - Unarmored Land Vehicles"; + className="A3_Characters_F"; + name="Arma 3 Alpha - Characters and Clothing"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item5 { - className="A3_Soft_F_Exp"; - name="Arma 3 Apex - Unarmored Land Vehicles"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; + className="ace_explosives"; + name="ACE3 - Explosives"; + author="ACE-Team"; + url="http://ace3mod.com/"; }; class Item6 { - className="A3_Characters_F"; - name="Arma 3 Alpha - Characters and Clothing"; + className="A3_Modules_F_Curator"; + name="Arma 3 Zeus Update - Scripted Modules"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item7 { - className="ace_rearm"; - name="ACE3 - Rearm"; - author="ACE-Team"; - url="http://ace3mod.com/"; + className="A3_Characters_F_Enoch"; + name="Arma 3 Contact Platform - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; }; class Item8 { - className="ace_refuel"; - name="ACE3 - Refuel"; - author="ACE-Team"; - url="http://ace3mod.com/"; + className="A3_Characters_F_Mark"; + name="Arma 3 Marksmen - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; }; class Item9 { - className="ace_repair"; - name="ACE3 - Repair"; - author="ACE-Team"; - url="http://ace3mod.com/"; + className="A3_Armor_F_Beta"; + name="Arma 3 Beta - Armored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; }; class Item10 { - className="ace_explosives"; - name="ACE3 - Explosives"; + className="ace_vehicle_damage"; + name="ACE3 - Vehicle Damage"; author="ACE-Team"; url="http://ace3mod.com/"; }; class Item11 { - className="A3_Modules_F_Curator"; - name="Arma 3 Zeus Update - Scripted Modules"; + className="A3_Props_F_Enoch"; + name="Arma 3 Contact Platform - Decorative and Mission Objects"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item12 { - className="A3_Characters_F_Enoch"; - name="Arma 3 Contact Platform - Characters and Clothing"; + className="A3_Signs_F"; + name="Arma 3 - Signs"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item13 { - className="A3_Characters_F_Mark"; - name="Arma 3 Marksmen - Characters and Clothing"; + className="A3_Air_F_Heli"; + name="Arma 3 Helicopters - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item14 { - className="A3_Air_F_Heli"; - name="Arma 3 Helicopters - Aircraft"; + className="A3_Soft_F_Gamma"; + name="Arma 3 - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item15 { - className="A3_Soft_F_Beta"; - name="Arma 3 Beta - Unarmored Land Vehicles"; + className="A3_Soft_F_Exp"; + name="Arma 3 Apex - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item16 { - className="A3_Soft_F_Enoch"; - name="Arma 3 Contact Platform - Unarmored Land Vehicles"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; + className="ace_refuel"; + name="ACE3 - Refuel"; + author="ACE-Team"; + url="http://ace3mod.com/"; }; class Item17 { - className="A3_Soft_F"; - name="Arma 3 Alpha - Unarmored Land Vehicles"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; + className="ace_repair"; + name="ACE3 - Repair"; + author="ACE-Team"; + url="http://ace3mod.com/"; }; class Item18 { - className="A3_Armor_F_Beta"; - name="Arma 3 Beta - Armored Land Vehicles"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; - }; - class Item19 - { - className="ace_vehicle_damage"; - name="ACE3 - Vehicle Damage"; + className="ace_rearm"; + name="ACE3 - Rearm"; author="ACE-Team"; url="http://ace3mod.com/"; }; - class Item20 + class Item19 { - className="A3_Air_F_Beta"; - name="Arma 3 Beta - Aircraft"; + className="A3_Soft_F_Enoch"; + name="Arma 3 Contact Platform - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item21 + class Item20 { - className="A3_Props_F_Enoch"; - name="Arma 3 Contact Platform - Decorative and Mission Objects"; + className="A3_Soft_F_Beta"; + name="Arma 3 Beta - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item22 + class Item21 { - className="A3_Signs_F"; - name="Arma 3 - Signs"; + className="A3_Soft_F"; + name="Arma 3 Alpha - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item23 + class Item22 { - className="A3_Modules_F"; - name="Arma 3 Alpha - Scripted Modules"; + className="A3_Air_F_Beta"; + name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; @@ -253,26 +245,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - singleType="ARRAY"; + singleType="SCALAR"; + value=1; }; }; }; class Attribute1 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - singleType="SCALAR"; - value=1; + singleType="ARRAY"; }; }; }; @@ -520,7 +512,7 @@ class Mission }; class Entities { - items=68; + items=47; class Item0 { dataType="Marker"; @@ -703,57 +695,6 @@ class Mission type="Land_HelipadSquare_F"; }; class Item7 - { - dataType="Object"; - class PositionInfo - { - position[]={8358.7637,75.290886,10101.058}; - angles[]={0.078504913,5.6318107,6.244544}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=18; - type="B_Truck_01_ammo_F"; - }; - class Item8 - { - dataType="Object"; - class PositionInfo - { - position[]={8353.5449,75.482193,10097.687}; - angles[]={0.025324726,5.6318107,6.2471962}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=19; - type="B_Truck_01_fuel_F"; - }; - class Item9 - { - dataType="Object"; - class PositionInfo - { - position[]={8348.8496,76.139534,10094.677}; - angles[]={6.2471962,5.6318107,6.2418733}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=20; - type="B_Truck_01_Repair_F"; - }; - class Item10 { dataType="Object"; class PositionInfo @@ -771,7 +712,7 @@ class Mission type="Flag_NATO_F"; atlOffset=0.0030288696; }; - class Item11 + class Item8 { dataType="Object"; class PositionInfo @@ -788,7 +729,7 @@ class Mission id=23; type="Land_HelipadSquare_F"; }; - class Item12 + class Item9 { dataType="Group"; side="West"; @@ -822,7 +763,7 @@ class Mission }; id=24; }; - class Item13 + class Item10 { dataType="Group"; side="West"; @@ -838,7 +779,7 @@ class Mission angles[]={0,2.5247488,0}; }; side="West"; - flags=2; + flags=6; class Attributes { skill=0.60000002; @@ -848,14 +789,16 @@ class Mission }; id=29; type="B_Soldier_F"; + atlOffset=0.05695343; }; }; class Attributes { }; id=28; + atlOffset=0.05695343; }; - class Item14 + class Item11 { dataType="Group"; side="West"; @@ -917,7 +860,7 @@ class Mission }; id=30; }; - class Item15 + class Item12 { dataType="Logic"; class PositionInfo @@ -998,7 +941,7 @@ class Mission nAttributes=5; }; }; - class Item16 + class Item13 { dataType="Group"; side="West"; @@ -1028,7 +971,7 @@ class Mission }; id=89; }; - class Item17 + class Item14 { dataType="Group"; side="West"; @@ -1058,7 +1001,7 @@ class Mission }; id=91; }; - class Item18 + class Item15 { dataType="Group"; side="West"; @@ -1105,7 +1048,7 @@ class Mission }; id=93; }; - class Item19 + class Item16 { dataType="Group"; side="West"; @@ -1152,7 +1095,7 @@ class Mission }; id=95; }; - class Item20 + class Item17 { dataType="Group"; side="West"; @@ -1199,7 +1142,7 @@ class Mission }; id=97; }; - class Item21 + class Item18 { dataType="Group"; side="West"; @@ -1246,7 +1189,7 @@ class Mission }; id=99; }; - class Item22 + class Item19 { dataType="Group"; side="West"; @@ -1293,7 +1236,7 @@ class Mission }; id=101; }; - class Item23 + class Item20 { dataType="Group"; side="West"; @@ -1340,7 +1283,7 @@ class Mission }; id=103; }; - class Item24 + class Item21 { dataType="Group"; side="West"; @@ -1389,7 +1332,7 @@ class Mission id=105; atlOffset=0.028999329; }; - class Item25 + class Item22 { dataType="Group"; side="West"; @@ -1438,7 +1381,7 @@ class Mission id=107; atlOffset=0.071998596; }; - class Item26 + class Item23 { dataType="Group"; side="West"; @@ -1485,7 +1428,7 @@ class Mission }; id=109; }; - class Item27 + class Item24 { dataType="Group"; side="West"; @@ -1532,7 +1475,7 @@ class Mission }; id=111; }; - class Item28 + class Item25 { dataType="Group"; side="West"; @@ -1579,7 +1522,7 @@ class Mission }; id=113; }; - class Item29 + class Item26 { dataType="Group"; side="West"; @@ -1626,7 +1569,7 @@ class Mission }; id=115; }; - class Item30 + class Item27 { dataType="Group"; side="West"; @@ -1656,7 +1599,7 @@ class Mission }; id=117; }; - class Item31 + class Item28 { dataType="Group"; side="West"; @@ -1686,7 +1629,7 @@ class Mission }; id=119; }; - class Item32 + class Item29 { dataType="Group"; side="West"; @@ -1716,7 +1659,7 @@ class Mission }; id=121; }; - class Item33 + class Item30 { dataType="Group"; side="West"; @@ -1746,7 +1689,7 @@ class Mission }; id=123; }; - class Item34 + class Item31 { dataType="Group"; side="West"; @@ -1778,7 +1721,7 @@ class Mission id=125; atlOffset=0.0039749146; }; - class Item35 + class Item32 { dataType="Group"; side="West"; @@ -1810,7 +1753,7 @@ class Mission id=127; atlOffset=0.0039749146; }; - class Item36 + class Item33 { dataType="Group"; side="West"; @@ -1840,7 +1783,7 @@ class Mission }; id=129; }; - class Item37 + class Item34 { dataType="Group"; side="West"; @@ -1870,7 +1813,7 @@ class Mission }; id=131; }; - class Item38 + class Item35 { dataType="Logic"; class PositionInfo @@ -1883,13 +1826,13 @@ class Mission id=153; type="HeadlessClient_F"; }; - class Item39 + class Item36 { dataType="Object"; class PositionInfo { - position[]={8332.2158,78.290398,10088.188}; - angles[]={0.049288094,5.7068777,6.232553}; + position[]={8295.166,78.402374,10052.533}; + angles[]={0,5.7184839,0}; }; side="Empty"; flags=4; @@ -1897,242 +1840,17 @@ class Mission { skill=0.60000002; }; - id=156; - type="B_Heli_Transport_03_F"; + id=170; + type="B_APC_Wheeled_01_cannon_F"; + atlOffset=-0.077003479; }; - class Item40 + class Item37 { dataType="Object"; class PositionInfo { - position[]={8309.2617,77.485207,10096.77}; - angles[]={0.066566855,0.94293159,6.2405472}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=158; - type="B_Truck_01_transport_F"; - }; - class Item41 - { - dataType="Object"; - class PositionInfo - { - position[]={8299.4082,78.879555,10089.423}; - angles[]={0.0013439035,0.94247776,6.232553}; - }; - side="Empty"; - flags=4; - class Attributes - { - }; - id=160; - type="B_Truck_01_flatbed_F"; - }; - class Item42 - { - dataType="Object"; - class PositionInfo - { - position[]={8288.4736,79.124588,10081.791}; - angles[]={0.058590703,0.94293159,6.2179446}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=161; - type="B_Truck_01_transport_F"; - }; - class Item43 - { - dataType="Object"; - class PositionInfo - { - position[]={8317.3564,77.744057,10084.226}; - angles[]={0.013334315,5.6580257,6.2591867}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=164; - type="B_LSV_01_armed_F"; - atlOffset=7.6293945e-006; - }; - class Item44 - { - dataType="Object"; - class PositionInfo - { - position[]={8303.251,78.377045,10074.778}; - angles[]={0.0080110608,5.6580257,6.2392201}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=165; - type="B_LSV_01_armed_F"; - }; - class Item45 - { - dataType="Object"; - class PositionInfo - { - position[]={8297.6436,78.618568,10071.089}; - angles[]={6.2418733,5.6580257,6.2325706}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=166; - type="B_LSV_01_armed_F"; - atlOffset=7.6293945e-006; - }; - class Item46 - { - dataType="Object"; - class PositionInfo - { - position[]={8272.083,80.946983,10065.467}; - angles[]={0.17032668,0.95726073,6.2392201}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=168; - type="B_MRAP_01_hmg_F"; - atlOffset=0.0019989014; - }; - class Item47 - { - dataType="Object"; - class PositionInfo - { - position[]={8277.1621,80.921516,10059.937}; - angles[]={0.12205087,0.3543193,6.1297359}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=169; - type="B_MRAP_01_hmg_F"; - }; - class Item48 - { - dataType="Object"; - class PositionInfo - { - position[]={8295.166,78.402374,10052.533}; - angles[]={0,5.7184839,0}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=170; - type="B_APC_Wheeled_01_cannon_F"; - atlOffset=-0.077003479; - }; - class Item49 - { - dataType="Object"; - class PositionInfo - { - position[]={8241.4209,79.516441,10048.122}; - angles[]={6.2591867,5.6199079,0.01733112}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=174; - type="B_Heli_Transport_01_camo_F"; - atlOffset=7.6293945e-006; - class CustomAttributes - { - class Attribute0 - { - property="ace_fastroping_equipFRIES"; - expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}"; - class Value - { - class data - { - singleType="BOOL"; - value=0; - }; - }; - }; - nAttributes=1; - }; - }; - class Item50 - { - dataType="Object"; - class PositionInfo - { - position[]={8213.7646,78.413101,10024.694}; - angles[]={6.2631841,5.5749655,6.2139654}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=175; - type="B_Heli_Attack_01_dynamicLoadout_F"; - }; - class Item51 - { - dataType="Object"; - class PositionInfo - { - position[]={8278.1592,79.402664,10076.555}; - angles[]={0.030647982,1.4514159,0.033318337}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=178; - type="B_LSV_01_armed_F"; - atlOffset=-7.6293945e-006; - }; - class Item52 - { - dataType="Object"; - class PositionInfo - { - position[]={8346.3516,77.140343,10107.095}; - angles[]={0.0066671576,5.5850534,6.2485409}; + position[]={8346.3516,77.140343,10107.095}; + angles[]={0.0066671576,5.5850534,6.2485409}; }; side="Empty"; flags=4; @@ -2173,7 +1891,7 @@ class Mission nAttributes=2; }; }; - class Item53 + class Item38 { dataType="Object"; class PositionInfo @@ -2190,7 +1908,7 @@ class Mission type="Tarp_01_Large_Black_F"; atlOffset=7.6293945e-006; }; - class Item54 + class Item39 { dataType="Object"; class PositionInfo @@ -2207,7 +1925,7 @@ class Mission type="RoadCone_L_F"; atlOffset=7.6293945e-006; }; - class Item55 + class Item40 { dataType="Object"; class PositionInfo @@ -2224,7 +1942,7 @@ class Mission type="RoadCone_L_F"; atlOffset=5.3405762e-005; }; - class Item56 + class Item41 { dataType="Object"; class PositionInfo @@ -2241,7 +1959,7 @@ class Mission type="RoadCone_L_F"; atlOffset=6.1035156e-005; }; - class Item57 + class Item42 { dataType="Object"; class PositionInfo @@ -2258,587 +1976,649 @@ class Mission type="RoadCone_L_F"; atlOffset=0.00016784668; }; - class Item58 - { - dataType="Object"; - class PositionInfo - { - position[]={8363.5918,75.697517,10104.818}; - angles[]={0.0066671576,5.6318107,6.1914506}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=225; - type="B_Truck_01_flatbed_F"; - }; - class Item59 - { - dataType="Object"; - class PositionInfo - { - position[]={8368.6865,74.666542,10110.126}; - angles[]={0.012007865,5.5935359,6.1861625}; - }; - side="Empty"; - flags=4; - class Attributes - { - }; - id=230; - type="B_Truck_01_medical_F"; - }; - class Item60 - { - dataType="Object"; - class PositionInfo - { - position[]={8373.0576,74.504128,10115.97}; - angles[]={6.279171,5.5569015,6.1848359}; - }; - side="Empty"; - flags=4; - class Attributes - { - }; - id=231; - type="B_APC_Tracked_01_CRV_F"; - atlOffset=7.6293945e-006; - }; - class Item61 + class Item43 { dataType="Logic"; class PositionInfo { - position[]={8216.1475,119.96858,10155.762}; - }; - init="{" \n " _x call btc_veh_fnc_addVehFromSQM;" \n "} forEach (synchronizedObjects this);"; - id=232; - type="Logic"; - atlOffset=65.032745; - }; - class Item62 - { - dataType="Comment"; - class PositionInfo - { - position[]={8216,104,10156}; + position[]={8144,65.454834,9896}; + angles[]={6.0064716,0,6.1914434}; }; - title=$STR_BTC_HAM_MSQM_MRK_VEH; - description=$STR_BTC_HAM_MSQM_MRK_VEHDESC; - id=233; - atlOffset=49.158176; + name="btc_hc_2"; + isPlayable=1; + id=244; + type="HeadlessClient_F"; + atlOffset=-0.59116364; }; - class Item63 + class Item44 { dataType="Logic"; class PositionInfo { - position[]={8374,132,10056}; + position[]={8112,70.19265,9896}; + angles[]={6.0691795,0,6.2525272}; }; - init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; - id=235; - type="Logic"; - atlOffset=62.830055; + name="btc_hc_3"; + isPlayable=1; + id=245; + type="HeadlessClient_F"; }; - class Item64 + class Item45 { - dataType="Comment"; - class PositionInfo + dataType="Layer"; + name="btc_veh_respawnable"; + class Entities { - position[]={8374,69.099487,10056}; - angles[]={6.1076765,0,6.1480145}; + items=2; + class Item0 + { + dataType="Comment"; + class PositionInfo + { + position[]={8346.75,73.839577,10064}; + angles[]={0.12205668,0,5.9650393}; + }; + title=$STR_BTC_HAM_MSQM_MRK_HELO; + description=$STR_BTC_HAM_MSQM_MRK_HELODESC; + id=237; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={8332.2158,78.290398,10088.188}; + angles[]={0.049288094,5.7068777,6.232553}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=156; + type="B_Heli_Transport_03_F"; + }; }; - title=$STR_BTC_HAM_MSQM_MRK_HELO; - description=$STR_BTC_HAM_MSQM_MRK_HELODESC; - id=237; - atlOffset=-0.070457458; + id=246; + atlOffset=-0.41073608; }; - class Item65 + class Item46 { - dataType="Object"; - class PositionInfo + dataType="Layer"; + name="btc_vehicles"; + class Entities { - position[]={8384.3652,72.168678,10119.767}; - angles[]={6.2698536,5.7034392,6.2126365}; - }; - side="Empty"; - flags=4; - class Attributes - { - textures="Beige"; - }; - id=243; - type="C_Offroad_01_F"; - atlOffset=-0.0020446777; - class CustomAttributes - { - class Attribute0 + items=19; + class Item0 { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value + dataType="Comment"; + class PositionInfo { - class data - { - singleType="STRING"; - value="[[[[""FirstAidKit""],[4]],[[],[]],[[],[]],[[],[]]],false]"; - }; + position[]={8286.75,74,10104.75}; }; + title=$STR_BTC_HAM_MSQM_MRK_VEH; + description=$STR_BTC_HAM_MSQM_MRK_VEHDESC; + id=233; + atlOffset=-1.3179169; }; - class Attribute1 + class Item1 { - property="VehicleCustomization"; - expression="if (local _this) then {([_this] + _value + [true]) call (uinamespace getvariable 'BIS_fnc_initVehicle')};"; - class Value + dataType="Object"; + class PositionInfo { - class data - { - singleType="ARRAY"; - class value - { - items=2; - class Item0 - { - class data - { - singleType="ARRAY"; - }; - }; - class Item1 - { - class data - { - singleType="ARRAY"; - class value - { - items=22; - class Item0 - { - class data - { - singleType="STRING"; - value="HideDoor1"; - }; - }; - class Item1 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item2 - { - class data - { - singleType="STRING"; - value="HideDoor2"; - }; - }; - class Item3 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item4 - { - class data - { - singleType="STRING"; - value="HideDoor3"; - }; - }; - class Item5 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item6 - { - class data - { - singleType="STRING"; - value="HideBackpacks"; - }; - }; - class Item7 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item8 - { - class data - { - singleType="STRING"; - value="HideBumper1"; - }; - }; - class Item9 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item10 - { - class data - { - singleType="STRING"; - value="HideBumper2"; - }; - }; - class Item11 - { - class data - { - singleType="SCALAR"; - value=1; - }; - }; - class Item12 - { - class data - { - singleType="STRING"; - value="HideConstruction"; - }; - }; - class Item13 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item14 - { - class data - { - singleType="STRING"; - value="hidePolice"; - }; - }; - class Item15 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item16 - { - class data - { - singleType="STRING"; - value="HideServices"; - }; - }; - class Item17 - { - class data - { - singleType="SCALAR"; - value=1; - }; - }; - class Item18 - { - class data - { - singleType="STRING"; - value="BeaconsStart"; - }; - }; - class Item19 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item20 - { - class data - { - singleType="STRING"; - value="BeaconsServicesStart"; - }; - }; - class Item21 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - }; - }; - }; - }; - }; + position[]={8353.5449,75.482193,10097.687}; + angles[]={0.025324726,5.6318107,6.2471962}; }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=19; + type="B_Truck_01_fuel_F"; }; - nAttributes=2; - }; - }; - class Item66 - { - dataType="Logic"; - class PositionInfo - { - position[]={8144,65.454834,9896}; - angles[]={6.0064716,0,6.1914434}; - }; - name="btc_hc_2"; - isPlayable=1; - id=244; - type="HeadlessClient_F"; - atlOffset=-0.59116364; - }; - class Item67 - { - dataType="Logic"; - class PositionInfo - { - position[]={8112,70.19265,9896}; - angles[]={6.0691795,0,6.2525272}; - }; - name="btc_hc_3"; - isPlayable=1; - id=245; - type="HeadlessClient_F"; - }; - }; - class Connections - { - class LinkIDProvider - { - nextID=20; - }; - class Links - { - items=20; - class Item0 - { - linkID=0; - item0=174; - item1=232; - class CustomData - { - type="Sync"; - }; - }; - class Item1 - { - linkID=1; - item0=175; - item1=232; - class CustomData - { - type="Sync"; - }; - }; - class Item2 - { - linkID=2; - item0=168; - item1=232; - class CustomData - { - type="Sync"; - }; - }; - class Item3 - { - linkID=3; - item0=169; - item1=232; - class CustomData + class Item2 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8368.6865,74.666542,10110.126}; + angles[]={0.012007865,5.5935359,6.1861625}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=230; + type="B_Truck_01_medical_F"; }; - }; - class Item4 - { - linkID=4; - item0=170; - item1=232; - class CustomData + class Item3 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8358.7637,75.290886,10101.058}; + angles[]={0.078504913,5.6318107,6.244544}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=18; + type="B_Truck_01_ammo_F"; }; - }; - class Item5 - { - linkID=5; - item0=178; - item1=232; - class CustomData + class Item4 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8299.4082,78.879555,10089.423}; + angles[]={0.0013439035,0.94247776,6.232553}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=160; + type="B_Truck_01_flatbed_F"; }; - }; - class Item6 - { - linkID=6; - item0=165; - item1=232; - class CustomData + class Item5 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8363.5918,75.697517,10104.818}; + angles[]={0.0066671576,5.6318107,6.1914506}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=225; + type="B_Truck_01_flatbed_F"; }; - }; - class Item7 - { - linkID=7; - item0=166; - item1=232; - class CustomData + class Item6 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8348.8496,76.139534,10094.677}; + angles[]={6.2471962,5.6318107,6.2418733}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=20; + type="B_Truck_01_Repair_F"; }; - }; - class Item8 - { - linkID=8; - item0=158; - item1=232; - class CustomData + class Item7 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8309.2617,77.485207,10096.77}; + angles[]={0.066566855,0.94293159,6.2405472}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=158; + type="B_Truck_01_transport_F"; }; - }; - class Item9 - { - linkID=9; - item0=160; - item1=232; - class CustomData + class Item8 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8288.4736,79.124588,10081.791}; + angles[]={0.058590703,0.94293159,6.2179446}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=161; + type="B_Truck_01_transport_F"; }; - }; - class Item10 - { - linkID=10; - item0=161; - item1=232; - class CustomData + class Item9 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8272.083,80.946983,10065.467}; + angles[]={0.17032668,0.95726073,6.2392201}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=168; + type="B_MRAP_01_hmg_F"; + atlOffset=0.0019989014; }; - }; - class Item11 - { - linkID=11; - item0=18; - item1=232; - class CustomData + class Item10 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8277.1621,80.921516,10059.937}; + angles[]={0.12205087,0.3543193,6.1297359}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=169; + type="B_MRAP_01_hmg_F"; }; - }; - class Item12 - { - linkID=12; - item0=19; - item1=232; - class CustomData + class Item11 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8373.0576,74.504128,10115.97}; + angles[]={6.279171,5.5569015,6.1848359}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=231; + type="B_APC_Tracked_01_CRV_F"; + atlOffset=7.6293945e-006; }; - }; - class Item13 - { - linkID=13; - item0=20; - item1=232; - class CustomData + class Item12 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8317.3564,77.744057,10084.226}; + angles[]={0.013334315,5.6580257,6.2591867}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=164; + type="B_LSV_01_armed_F"; + atlOffset=7.6293945e-006; }; - }; - class Item14 - { - linkID=14; - item0=225; - item1=232; - class CustomData + class Item13 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8303.251,78.377045,10074.778}; + angles[]={0.0080110608,5.6580257,6.2392201}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=165; + type="B_LSV_01_armed_F"; }; - }; - class Item15 - { - linkID=15; - item0=230; - item1=232; - class CustomData + class Item14 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8297.6436,78.618568,10071.089}; + angles[]={6.2418733,5.6580257,6.2325706}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=166; + type="B_LSV_01_armed_F"; + atlOffset=7.6293945e-006; }; - }; - class Item16 - { - linkID=16; - item0=231; - item1=232; - class CustomData + class Item15 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8278.1592,79.402664,10076.555}; + angles[]={0.030647982,1.4514159,0.033318337}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=178; + type="B_LSV_01_armed_F"; + atlOffset=-7.6293945e-006; }; - }; - class Item17 - { - linkID=17; - item0=164; - item1=232; - class CustomData + class Item16 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8213.7646,78.413101,10024.694}; + angles[]={6.2631841,5.5749655,6.2139654}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=175; + type="B_Heli_Attack_01_dynamicLoadout_F"; }; - }; - class Item18 - { - linkID=18; - item0=235; - item1=156; - class CustomData + class Item17 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8384.3652,72.168678,10119.767}; + angles[]={6.2698536,5.7034392,6.2126365}; + }; + side="Empty"; + flags=4; + class Attributes + { + textures="Beige"; + }; + id=243; + type="C_Offroad_01_F"; + atlOffset=-0.0020446777; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + singleType="STRING"; + value="[[[[""FirstAidKit""],[4]],[[],[]],[[],[]],[[],[]]],false]"; + }; + }; + }; + class Attribute1 + { + property="VehicleCustomization"; + expression="if (local _this) then {([_this] + _value + [true]) call (uinamespace getvariable 'BIS_fnc_initVehicle')};"; + class Value + { + class data + { + singleType="ARRAY"; + class value + { + items=2; + class Item0 + { + class data + { + singleType="ARRAY"; + }; + }; + class Item1 + { + class data + { + singleType="ARRAY"; + class value + { + items=22; + class Item0 + { + class data + { + singleType="STRING"; + value="HideDoor1"; + }; + }; + class Item1 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item2 + { + class data + { + singleType="STRING"; + value="HideDoor2"; + }; + }; + class Item3 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item4 + { + class data + { + singleType="STRING"; + value="HideDoor3"; + }; + }; + class Item5 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item6 + { + class data + { + singleType="STRING"; + value="HideBackpacks"; + }; + }; + class Item7 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item8 + { + class data + { + singleType="STRING"; + value="HideBumper1"; + }; + }; + class Item9 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item10 + { + class data + { + singleType="STRING"; + value="HideBumper2"; + }; + }; + class Item11 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item12 + { + class data + { + singleType="STRING"; + value="HideConstruction"; + }; + }; + class Item13 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item14 + { + class data + { + singleType="STRING"; + value="hidePolice"; + }; + }; + class Item15 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item16 + { + class data + { + singleType="STRING"; + value="HideServices"; + }; + }; + class Item17 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item18 + { + class data + { + singleType="STRING"; + value="BeaconsStart"; + }; + }; + class Item19 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item20 + { + class data + { + singleType="STRING"; + value="BeaconsServicesStart"; + }; + }; + class Item21 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + }; + }; + }; + }; + }; + }; + nAttributes=2; + }; }; - }; - class Item19 - { - linkID=19; - item0=243; - item1=232; - class CustomData + class Item18 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={8241.4209,79.516441,10048.122}; + angles[]={6.2591867,5.6199079,0.01733112}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=174; + type="B_Heli_Transport_01_camo_F"; + atlOffset=7.6293945e-006; + class CustomAttributes + { + class Attribute0 + { + property="ace_fastroping_equipFRIES"; + expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; }; }; + id=247; + atlOffset=-2.0925522; }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 75af2e15f..31e0cf712 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -39,20 +39,20 @@ Point logistique - Sync all vehicles to this logic - 将所有载具同步与此逻辑同步 + Add vehicles to this layer + Add vehicles to this layer - Sync all vehicles that should NOT automatically respawn to this logic. If a vehicle SHOULD automatically respawn, sync it to the logic named "Sync all respawnable vehicles to this logic". - 将所有不应该自动重生的载具同步至此逻辑。如果一辆载具应该自动重生, 将其同步至名为"将所有可重生载具与此逻辑同步"的逻辑。 + Add all vehicles that should NOT automatically respawn to "btc_vehicles" layer. If a vehicle SHOULD automatically respawn, add it to the layer named "btc_veh_respawnable". + Add all vehicles that should NOT automatically respawn to "btc_vehicles" layer. If a vehicle SHOULD automatically respawn, add it to the layer named "btc_veh_respawnable" - Sync all respawnable vehicles to this logic - 将所有可重生载具与此逻辑同步 + Add respawnable vehicles to this layer + Add respawnable vehicles to this layer - Sync all vehicles that should automatically respawn to this logic. If a vehicle should NOT automatically respawn, sync it to the logic named "Sync all vehicles to this logic". - 将所有应该自动重生的载具同步至此逻辑。如果一辆载具不应该自动重生, 将其同步至名为"将所有载具与此逻辑同步"的逻辑。 + Add all vehicles that should automatically respawn to "btc_veh_respawnable" layer. If a vehicle should NOT automatically respawn, add it to the layer named "btc_vehicles". + Add all vehicles that should automatically respawn to "btc_veh_respawnable" layer. If a vehicle should NOT automatically respawn, add it to the layer named "btc_vehicles". diff --git a/docs/Add-vehicle-or-boat-to-H&M-system.md b/docs/Add-vehicle-or-boat-to-H&M-system.md index 80b849f03..9d72e93e8 100644 --- a/docs/Add-vehicle-or-boat-to-H&M-system.md +++ b/docs/Add-vehicle-or-boat-to-H&M-system.md @@ -6,8 +6,7 @@ If the vehicle is destroyed, a wreck will be left. You will need to tow or lift You can add new vehicle in the mision.sqm : - Open the mission in the editor (mission.sqm). - Add vehicles. - - Sync it to the module with the comment "Sync all vehicles to this logic" - - OR add in the init field: `this call btc_veh_fnc_addVehFromSQM;` +- Drag and drop them to [EDEN layers](https://community.bistudio.com/wiki/Eden_Editor:_Layer) named "btc_vehicles". - Save. #### 2: In game @@ -16,7 +15,6 @@ A garage is available for admin only. Activate the garage through mission parame ### 2: Add respawn to vehicle or boat You can add a new vehicle/boat to respawn system by: -- Sync it to the module with the comment "Sync all respawnable vehicles to this logic" -- OR add in the init field: `this call btc_veh_fnc_addRespawnableFromSQM;` +- Drag and drop them to [EDEN layers](https://community.bistudio.com/wiki/Eden_Editor:_Layer) named "btc_veh_respawnable". -Note: you can tweak respawn time here: [/core/init_server.sqf L48](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L48) by changing 30s to what you want. +Note: you can tweak respawn time here: [/core/init_server.sqf L50](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L48) by changing 30s to what you want. From 2e60968146a79ace5098e98484c313f0dafb23f2 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 18 Dec 2021 15:22:49 +0100 Subject: [PATCH 315/354] Update fix missing header --- .../core/fnc/body/createMarker.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf | 2 +- .../core/fnc/common/create_composition.sqf | 2 +- .../core/fnc/common/deleteEntities.sqf | 2 +- .../core/fnc/delay/createAgent.sqf | 2 +- .../core/fnc/delay/waitAndExecute.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf index 28eaac635..169b38d8f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/createMarker.sqf @@ -6,7 +6,7 @@ Description: Create a KIA marker on dead body. Parameters: - _deadBody - Dead body or body bag. [Object] + _deadBody - Dead body. [Object] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf index 2e419562d..4a11a65ec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/dogtagGet.sqf @@ -3,7 +3,7 @@ Function: btc_body_fnc_dogtagGet Description: - Get ACE dogtag data. + Get ACE dogtag data and player UID. Parameters: _deadBody - Dead body or body bag. [Object] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf index 6f7935e4f..11e028676 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf @@ -7,7 +7,7 @@ Description: Parameters: _cache_pos - Position of the cache. [Array] - _p_chem - Create a chemical cache. [Boolean] + _p_chem - Allow chemical cache. [Boolean] _probabilityNotChemical - Probability to not create a chemical cache. [Number] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_composition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_composition.sqf index 945a14ae2..5b1090ff2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_composition.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_composition.sqf @@ -3,7 +3,7 @@ Function: btc_fnc_create_composition Description: - Create a composition based on an array containing line for each object of a composition. An objects is describe by : [type of object, direction, real position]. + Create a composition based on an array containing line for each object of a composition. An objects is describe by: [type of object, direction, real position]. Parameters: _pos - Position where the composition will be created. [Array] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteEntities.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteEntities.sqf index b94880413..f5ef28036 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteEntities.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteEntities.sqf @@ -3,7 +3,7 @@ Function: btc_fnc_deleteEntities Description: - This deletes objects or groups when they are far away from a player. + This delete objects or groups when they are far away from a player. Parameters: _entities - Entities deleted when _playableUnits are far. [Array] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf index 5c1af3d2c..a185ea937 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createAgent.sqf @@ -3,7 +3,7 @@ Function: btc_delay_fnc_createAgent Description: - Create agent when all previous agents have been created. btc_delay_createagent define the time (in second) when the agent will be created. + Create agent when all previous agents have been created. btc_delay_time define the time (in second) when the agent will be created. Parameters: _agentType - Type of agents to create. [Array] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf index 1b2ae7071..c8388269f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/waitAndExecute.sqf @@ -3,7 +3,7 @@ Function: btc_delay_fnc_waitAndExecute Description: - Wait and execute a function with a _delay. Usefull when used after btc_delay_fnc_createVehicle. + Wait and execute a function with a _delay. Usefull when used after btc_delay_fnc_createVehicle that return a delay. Parameters: _code - Code to execute. [Code] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf index baa13931c..7846440c8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/get.sqf @@ -3,7 +3,7 @@ Function: btc_door_fnc_get Description: - Get door infront of an object. + Get door in front of an object. Parameters: _distance - Distance to check intersect. [Number] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf index d7a0c5287..9fccaa12b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf @@ -11,7 +11,7 @@ Parameters: _rinf_time - Not used. [Number] _cap_time - Time for next capture of city around. [Number] _id - Id of the city where the hideout is. [Number] - _markers_saved - Merkers find by player. [Array] + _markers_saved - Markers found by players. [Array] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf index 651a3619f..2cdeddfa4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/hd.sqf @@ -3,7 +3,7 @@ Function: btc_hideout_fnc_hd Description: - Fill me when you edit me ! + Trigger hideout explosion if all condition are met. Parameters: _hideout - Object to destroy. [Object] From f4c172e3fc2f6f2d005be23978ec3b13597c15f7 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 18 Dec 2021 16:31:36 +0100 Subject: [PATCH 316/354] change fnc name btc_db_fnc_add_veh to btc_veh_fnc_add --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 2 +- .../core/fnc/log/createVehicle.sqf | 2 +- .../core/fnc/{db/add_veh.sqf => veh/add.sqf} | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 2 +- docs/Add-vehicle-or-boat-to-H&M-system.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/{db/add_veh.sqf => veh/add.sqf} (94%) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 5fd44d688..0f85f1fb6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -70,7 +70,6 @@ if (isServer) then { btc_db_fnc_saveObjectStatus = compileScript ["core\fnc\db\saveObjectStatus.sqf"]; btc_db_fnc_loadCargo = compileScript ["core\fnc\db\loadcargo.sqf"]; btc_db_fnc_autoRestart = compileScript ["core\fnc\db\autoRestart.sqf"]; - btc_db_fnc_add_veh = compileScript ["core\fnc\db\add_veh.sqf"]; btc_db_fnc_setTurretMagazines = compileScript ["core\fnc\db\setTurretMagazines.sqf"]; //DELAY @@ -218,6 +217,7 @@ if (isServer) then { btc_veh_fnc_respawn = compileScript ["core\fnc\veh\respawn.sqf"]; btc_veh_fnc_propertiesGet = compileScript ["core\fnc\veh\propertiesGet.sqf"]; btc_veh_fnc_propertiesSet = compileScript ["core\fnc\veh\propertiesSet.sqf"]; + btc_veh_fnc_add = compileScript ["core\fnc\veh\add.sqf"]; }; /////////////////////CLIENT AND SERVER\\\\\\\\\\\\\\\\\\\\\ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 8fa775b5e..94aa38f2d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -74,6 +74,6 @@ if (_flagTexture isNotEqualTo "") then { _veh forceFlagTexture _flagTexture; }; -_veh call btc_db_fnc_add_veh; +_veh call btc_veh_fnc_add; _veh diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/add.sqf similarity index 94% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/add.sqf index d7ac53037..aea547d1f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/add.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_db_fnc_add_veh +Function: btc_veh_fnc_add Description: Add vehicle to the wreck system. @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - cursorObject remoteExecCall ["btc_db_fnc_add_veh", 2]; + cursorObject remoteExecCall ["btc_veh_fnc_add", 2]; btc_curator addCuratorEditableObjects [btc_vehicles, false]; (end) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index dc96ccca9..e5e936279 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -27,7 +27,7 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN { _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; - _x call btc_db_fnc_add_veh; + _x call btc_veh_fnc_add; } forEach (getMissionLayerEntities "btc_vehicles" select 0); }; diff --git a/docs/Add-vehicle-or-boat-to-H&M-system.md b/docs/Add-vehicle-or-boat-to-H&M-system.md index 9d72e93e8..f0297463e 100644 --- a/docs/Add-vehicle-or-boat-to-H&M-system.md +++ b/docs/Add-vehicle-or-boat-to-H&M-system.md @@ -17,4 +17,4 @@ A garage is available for admin only. Activate the garage through mission parame You can add a new vehicle/boat to respawn system by: - Drag and drop them to [EDEN layers](https://community.bistudio.com/wiki/Eden_Editor:_Layer) named "btc_veh_respawnable". -Note: you can tweak respawn time here: [/core/init_server.sqf L50](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L48) by changing 30s to what you want. +Note: you can tweak respawn time here: [/core/init_server.sqf L48](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L48) by changing 30s to what you want. From de24f0b68a7576967f6a1648d68ae0b347097ff5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 19 Dec 2021 13:33:26 +0100 Subject: [PATCH 317/354] Most of the time cache are outside city --- .../core/fnc/cache/find_pos.sqf | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf index 151fcc3a6..51eab1a29 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf @@ -29,16 +29,14 @@ private _useful = _city_all select {_x getVariable ["occupied", false] && {!(_x if (_useful isEqualTo []) then {_useful = _city_all;}; -private _id = floor random count _useful; -private _city = _useful select _id; +private _city = selectRandom _useful; if (_city getVariable ["type", ""] in ["NameLocal", "Hill", "NameMarine"]) exitWith { [] call btc_cache_fnc_find_pos; }; private _radius = _city getVariable ["cachingRadius", 200]; -private _pos = [getPos _city, _radius] call btc_fnc_randomize_pos; -private _houses = [_pos, 50] call btc_fnc_getHouses; +private _houses = [getPos _city, _radius] call btc_fnc_getHouses; if (_houses isEqualTo []) then { [] call btc_cache_fnc_find_pos From 586a4a2049ae4b67e9984d9a61dba4c39d9b4451 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 19 Dec 2021 14:22:30 +0100 Subject: [PATCH 318/354] improve int and info header --- .../core/fnc/ied/check.sqf | 2 +- .../core/fnc/ied/deleteLoop.sqf | 3 +++ .../core/fnc/info/ask_reputation.sqf | 6 +++--- .../core/fnc/info/has_intel.sqf | 6 +++--- .../core/fnc/info/hideout_asked.sqf | 8 ++++---- .../core/fnc/info/search_for_intel.sqf | 4 ++-- .../core/fnc/int/add_actions.sqf | 2 +- .../core/fnc/int/orders.sqf | 8 +++++--- .../core/fnc/int/orders_behaviour.sqf | 10 +++++----- .../core/fnc/int/orders_give.sqf | 10 +++++----- .../core/fnc/int/shortcuts.sqf | 2 +- .../core/fnc/int/terminal.sqf | 4 ++-- 12 files changed, 35 insertions(+), 30 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf index 93beec9b0..f8c0483ae 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf @@ -3,7 +3,7 @@ Function: btc_ied_fnc_check Description: - Contantly check if player is around by calling btc_ied_fnc_checkLoop. If yes, trigger the explosion. + Constantly check if player is around by calling btc_ied_fnc_checkLoop. If yes, trigger the explosion. Parameters: _city - City where IED has been created. [Object] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/deleteLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/deleteLoop.sqf index b17d31146..b808a932f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/deleteLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/deleteLoop.sqf @@ -6,6 +6,9 @@ Description: Remove wreck generated around IED. Parameters: + _unit - Not used. [Object] + _role - Not used. [String] + _vehicle - Vehice used. [Object] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf index 8f1a741be..15d2458d6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf @@ -3,16 +3,16 @@ Function: btc_info_fnc_ask_reputation Description: - Fill me when you edit me ! + Ask reputation level and display it. Parameters: - _man - [Object] + _man - Man. [Object] Returns: Examples: (begin example) - _result = [] call btc_info_fnc_ask_reputation; + cursorObject call btc_info_fnc_ask_reputation; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf index bbe6bd56c..cac1cd572 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf @@ -3,11 +3,11 @@ Function: btc_info_fnc_has_intel Description: - Fill me when you edit me ! + Check if the body or object have intel. Parameters: - _body - [Object] - _asker - [Object] + _body - Body or object to check. [Object] + _asker - Player asking for intel. [Object] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf index c7304fdf1..bbea6acb2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf @@ -3,12 +3,12 @@ Function: btc_info_fnc_hideout_asked Description: - Fill me when you edit me ! + Send real or false information about a hideout around. Parameters: - _name - [String] - _is_real - [Boolean] - _text - [String] + _name - Name of the player. [String] + _is_real - If the information is true or not. [Boolean] + _text - Not used. [String] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf index 1c358c356..b662cd7a4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf @@ -3,10 +3,10 @@ Function: btc_info_fnc_search_for_intel Description: - Fill me when you edit me ! + Search a body for intel. Parameters: - _target - [Object] + _target - Body to search. [Object] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index 4c33a079b..a6fa61e68 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -3,7 +3,7 @@ Function: btc_int_fnc_add_actions Description: - Fill me when you edit me ! + Add actions use in game. Parameters: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf index 390f2c335..c6062c452 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf @@ -3,11 +3,13 @@ Function: btc_int_fnc_orders Description: - Fill me when you edit me ! + Send order to a unit or multiple units. Parameters: - _order - [Number] - _unit - [Object] + _order - Type of order [Number] + _unit - Unit targeted or not. [Object] + _radius - Radius of units search. [Number] + _vehicle - Who sent the order, player or vehicle. [Object] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf index ba623e394..04d095c47 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_behaviour.sqf @@ -3,18 +3,18 @@ Function: btc_int_fnc_orders_behaviour Description: - Fill me when you edit me ! + Change the behaviour of a unit accordingly to the type of order. Parameters: - _unit - [Object] - _order - [Number] - _wp_pos - [Array] + _unit - Unit targeted. [Object] + _order - Type of order. [Number] + _wp_pos - Position the unit must go. [Array] Returns: Examples: (begin example) - _result = [] call btc_int_fnc_orders_behaviour; + [cursorObject, 0] remoteExec ["btc_int_fnc_orders_behaviour", cursorObject]; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_give.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_give.sqf index a5f8e1c85..78a599fce 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_give.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders_give.sqf @@ -3,13 +3,13 @@ Function: btc_int_fnc_orders_give Description: - Fill me when you edit me ! + Send order to units Parameters: - _units - [Array] - _dir - [Number] - _order - [Number] - _wp_pos - [Array] + _units - Units. [Array] + _dir - Direction of the order. [Number] + _order - Type of order. [Number] + _wp_pos - Position to reach (taxi). [Array] Returns: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/shortcuts.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/shortcuts.sqf index e4dfcad39..2b16dd576 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/shortcuts.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/shortcuts.sqf @@ -3,7 +3,7 @@ Function: btc_int_fnc_shortcuts Description: - Fill me when you edit me ! + Create CBA keybinds to orders. Parameters: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/terminal.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/terminal.sqf index ce1edfd90..fba524a04 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/terminal.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/terminal.sqf @@ -3,10 +3,10 @@ Function: btc_int_fnc_terminal Description: - Fill me when you edit me ! + Create interaction to terminal. Only used to side mission hack. Parameters: - _terminal - [Object] + _terminal - Terminal to interact. [Object] Returns: From 6ff986567a6acc9de8a4b8e01f60e379a931ae2a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 20 Dec 2021 10:41:51 +0100 Subject: [PATCH 319/354] use the spawning distance instead of caching distance --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf index 51eab1a29..e4485bbaf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf @@ -35,8 +35,8 @@ if (_city getVariable ["type", ""] in ["NameLocal", "Hill", "NameMarine"]) exitW [] call btc_cache_fnc_find_pos; }; -private _radius = _city getVariable ["cachingRadius", 200]; -private _houses = [getPos _city, _radius] call btc_fnc_getHouses; +private _cachingRadius = _city getVariable ["cachingRadius", 200]; +private _houses = [getPos _city, _cachingRadius/2] call btc_fnc_getHouses; if (_houses isEqualTo []) then { [] call btc_cache_fnc_find_pos From 42273a3d953e5f63bdb07d123c61d0e9234b6e3f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 20 Dec 2021 11:40:54 +0100 Subject: [PATCH 320/354] ingMigrate game logic to layer for enoch and tanoa --- .../mission__Enoch.sqm | 1532 +++++++---------- .../mission__Tanoa.sqm | 1525 +++++++--------- 2 files changed, 1312 insertions(+), 1745 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 305dd3da8..8b4a9abf8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -8,18 +8,22 @@ class EditorData toggles=581; class ItemIDProvider { - nextID=258; + nextID=260; }; class MarkerIDProvider { nextID=3; }; + class LayerIndexProvider + { + nextID=2; + }; class Camera { - pos[]={7245.3691,345.55545,1018.076}; - dir[]={-0.88144642,-0.37574396,0.28616184}; - up[]={-0.35743123,0.92670357,0.11604057}; - aside[]={0.308788,-5.310867e-007,0.95113927}; + pos[]={7197.4136,319.86118,1018.6057}; + dir[]={-0.76664788,-0.48228309,0.42388633}; + up[]={-0.42210731,0.8759892,0.23338729}; + aside[]={0.48387721,-5.1857205e-007,0.87514752}; }; }; binarizationWanted=0; @@ -35,26 +39,25 @@ addons[]= "A3_Modules_F_Curator_Curator", "A3_Characters_F_Enoch", "A3_Characters_F_Mark", - "A3_Air_F_Heli_Heli_Transport_03", - "ace_realisticnames", - "A3_Air_F_Beta_Heli_Transport_01", - "A3_Air_F_Beta_Heli_Attack_01", "A3_Props_F_Enoch_Military_Decontamination", "A3_Signs_F", - "A3_Armor_F_Exp_APC_Wheeled_01", - "A3_Soft_F_Exp_MRAP_01", - "A3_Soft_F_Exp_LSV_01", + "A3_Air_F_Heli_Heli_Transport_03", + "ace_realisticnames", "A3_Soft_F_Exp_Truck_01", "A3_Soft_F_Enoch_Truck_01", "A3_Armor_F_Exp_APC_Tracked_01", - "A3_Modules_F", - "A3_Soft_F_Offroad_01" + "A3_Soft_F_Exp_MRAP_01", + "A3_Soft_F_Exp_LSV_01", + "A3_Armor_F_Exp_APC_Wheeled_01", + "A3_Soft_F_Offroad_01", + "A3_Air_F_Beta_Heli_Transport_01", + "A3_Air_F_Beta_Heli_Attack_01" }; class AddonsMetaData { class List { - items=18; + items=17; class Item0 { className="A3_Ui_F"; @@ -120,64 +123,57 @@ class AddonsMetaData }; class Item9 { - className="A3_Air_F_Heli"; - name="Arma 3 Helicopters - Aircraft"; + className="A3_Props_F_Enoch"; + name="Arma 3 Contact Platform - Decorative and Mission Objects"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item10 { - className="A3_Air_F_Beta"; - name="Arma 3 Beta - Aircraft"; + className="A3_Signs_F"; + name="Arma 3 - Signs"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item11 { - className="A3_Props_F_Enoch"; - name="Arma 3 Contact Platform - Decorative and Mission Objects"; + className="A3_Air_F_Heli"; + name="Arma 3 Helicopters - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item12 { - className="A3_Signs_F"; - name="Arma 3 - Signs"; + className="A3_Soft_F_Exp"; + name="Arma 3 Apex - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item13 { - className="A3_Armor_F_Exp"; - name="Arma 3 Apex - Armored Land Vehicles"; + className="A3_Soft_F_Enoch"; + name="Arma 3 Contact Platform - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item14 { - className="A3_Soft_F_Exp"; - name="Arma 3 Apex - Unarmored Land Vehicles"; + className="A3_Armor_F_Exp"; + name="Arma 3 Apex - Armored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item15 { - className="A3_Soft_F_Enoch"; - name="Arma 3 Contact Platform - Unarmored Land Vehicles"; + className="A3_Soft_F"; + name="Arma 3 Alpha - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item16 { - className="A3_Modules_F"; - name="Arma 3 Alpha - Scripted Modules"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; - }; - class Item17 - { - className="A3_Soft_F"; - name="Arma 3 Alpha - Unarmored Land Vehicles"; + className="A3_Air_F_Beta"; + name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; @@ -201,26 +197,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - singleType="ARRAY"; + singleType="SCALAR"; + value=1; }; }; }; class Attribute1 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - singleType="SCALAR"; - value=1; + singleType="ARRAY"; }; }; }; @@ -468,7 +464,7 @@ class Mission }; class Entities { - items=68; + items=46; class Item0 { dataType="Marker"; @@ -1790,79 +1786,9 @@ class Mission isPlayable=1; id=153; type="HeadlessClient_F"; + atlOffset=0.83200073; }; class Item36 - { - dataType="Object"; - class PositionInfo - { - position[]={7105.269,275.83667,1053.0665}; - angles[]={0,0.75957966,0}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=156; - type="B_Heli_Transport_03_F"; - atlOffset=-0.31341553; - }; - class Item37 - { - dataType="Object"; - class PositionInfo - { - position[]={7052.8164,281.54712,1058.9121}; - angles[]={0.03358667,0.84832954,6.2033553}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=174; - type="B_Heli_Transport_01_camo_F"; - atlOffset=-0.035400391; - class CustomAttributes - { - class Attribute0 - { - property="ace_fastroping_equipFRIES"; - expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}"; - class Value - { - class data - { - singleType="BOOL"; - value=0; - }; - }; - }; - nAttributes=1; - }; - }; - class Item38 - { - dataType="Object"; - class PositionInfo - { - position[]={7023.2051,283.01917,1080.9238}; - angles[]={0.070284568,0.84832954,6.1480141}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=175; - type="B_Heli_Attack_01_dynamicLoadout_F"; - atlOffset=-0.012207031; - }; - class Item39 { dataType="Object"; class PositionInfo @@ -1896,7 +1822,7 @@ class Mission nAttributes=1; }; }; - class Item40 + class Item37 { dataType="Object"; class PositionInfo @@ -1912,7 +1838,7 @@ class Mission id=203; type="Tarp_01_Large_Black_F"; }; - class Item41 + class Item38 { dataType="Object"; class PositionInfo @@ -1929,7 +1855,7 @@ class Mission type="RoadCone_L_F"; atlOffset=-0.001373291; }; - class Item42 + class Item39 { dataType="Object"; class PositionInfo @@ -1946,7 +1872,7 @@ class Mission type="RoadCone_L_F"; atlOffset=-0.0036621094; }; - class Item43 + class Item40 { dataType="Object"; class PositionInfo @@ -1963,7 +1889,7 @@ class Mission type="RoadCone_L_F"; atlOffset=-0.0035705566; }; - class Item44 + class Item41 { dataType="Object"; class PositionInfo @@ -1980,821 +1906,679 @@ class Mission type="RoadCone_L_F"; atlOffset=-0.0051269531; }; - class Item45 - { - dataType="Object"; - class PositionInfo - { - position[]={7069.064,278.51117,1087.5159}; - angles[]={0.12100255,0.77119118,6.160605}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=232; - type="B_T_APC_Wheeled_01_cannon_F"; - atlOffset=-0.0048522949; - }; - class Item46 - { - dataType="Object"; - class PositionInfo - { - position[]={7064.6611,277.72958,1100.2162}; - angles[]={0.13360496,1.6902118,6.1606107}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=233; - type="B_T_MRAP_01_hmg_F"; - atlOffset=0.10321045; - }; - class Item47 - { - dataType="Object"; - class PositionInfo - { - position[]={7068.6914,275.73096,1106.2517}; - angles[]={0.14145893,2.2931533,6.1558809}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=234; - type="B_T_MRAP_01_hmg_F"; - atlOffset=-0.54574585; - }; - class Item48 - { - dataType="Object"; - class PositionInfo - { - position[]={7080.8252,274.54797,1103.3436}; - angles[]={0.15554373,2.7873082,6.1386023}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=237; - type="B_T_LSV_01_armed_F"; - atlOffset=-0.054992676; - }; - class Item49 - { - dataType="Object"; - class PositionInfo - { - position[]={7080.8096,277.03772,1083.1549}; - angles[]={0.10520844,0.710733,6.1339073}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=238; - type="B_T_LSV_01_armed_F"; - atlOffset=0.070037842; - }; - class Item50 + class Item42 { - dataType="Object"; + dataType="Logic"; class PositionInfo { - position[]={7085.7305,276.43085,1078.4639}; - angles[]={0.067107908,0.710733,6.1214104}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; + position[]={6856,272,896}; + angles[]={0,1.3358924,0}; }; - id=239; - type="B_T_LSV_01_armed_F"; - atlOffset=-0.12496948; + name="btc_hc_2"; + isPlayable=1; + id=256; + type="HeadlessClient_F"; + atlOffset=-4.1008301; }; - class Item51 + class Item43 { - dataType="Object"; + dataType="Logic"; class PositionInfo { - position[]={7098.165,275.39944,1066.9797}; - angles[]={0.0095993113,0.710733,6.1763887}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; + position[]={6824,281.67798,896}; + angles[]={5.9054394,1.3358924,5.9249415}; }; - id=240; - type="B_T_LSV_01_armed_F"; - atlOffset=-0.092956543; + name="btc_hc_3"; + isPlayable=1; + id=257; + type="HeadlessClient_F"; + atlOffset=-0.85928345; }; - class Item52 + class Item44 { - dataType="Object"; - class PositionInfo - { - position[]={7088.9854,274.68829,1092.5779}; - angles[]={0.092537358,2.2788241,6.1198573}; - }; - side="Empty"; - flags=4; - class Attributes + dataType="Layer"; + name="btc_veh_respawnable"; + class Entities { - skill=0.60000002; + items=2; + class Item0 + { + dataType="Comment"; + class PositionInfo + { + position[]={7084.875,274.98788,1038}; + angles[]={0.05115639,0,6.0072088}; + }; + title=$STR_BTC_HAM_MSQM_MRK_HELO; + description=$STR_BTC_HAM_MSQM_MRK_HELODESC; + id=254; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={7105.269,275.83667,1053.0665}; + angles[]={0,0.75957966,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=156; + type="B_Heli_Transport_03_F"; + atlOffset=-0.31341553; + }; }; - id=241; - type="B_T_Truck_01_transport_F"; - atlOffset=0.00048828125; + id=258; + atlOffset=0.10791016; }; - class Item53 + class Item45 { - dataType="Object"; - class PositionInfo - { - position[]={7099.8633,274.62213,1084.2837}; - angles[]={0.15241256,2.2783701,6.1637564}; - }; - side="Empty"; - flags=4; - class Attributes + dataType="Layer"; + name="btc_vehicles"; + class Entities { - }; - id=243; - type="B_T_Truck_01_flatbed_F"; - atlOffset=-0.0012512207; - }; - class Item54 - { - dataType="Object"; - class PositionInfo - { - position[]={7110.1313,273.8912,1076.689}; - angles[]={0.028797932,2.2788241,6.2240534}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=244; - type="B_T_Truck_01_transport_F"; - }; - class Item55 - { - dataType="Object"; - class PositionInfo - { - position[]={7115.6528,273.66119,1038.8058}; - angles[]={6.2543874,0.68451816,6.1684823}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=245; - type="B_T_Truck_01_Repair_F"; - atlOffset=-0.10299683; - }; - class Item56 - { - dataType="Object"; - class PositionInfo - { - position[]={7119.8477,272.70474,1035.047}; - angles[]={6.249588,0.68451816,6.1716585}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=246; - type="B_T_Truck_01_fuel_F"; - atlOffset=-0.058990479; - }; - class Item57 - { - dataType="Object"; - class PositionInfo - { - position[]={7124.3345,272.08392,1030.8234}; - angles[]={6.2655926,0.68451816,6.1716585}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=247; - type="B_T_Truck_01_ammo_F"; - atlOffset=-0.050994873; - }; - class Item58 - { - dataType="Object"; - class PositionInfo - { - position[]={7129.0771,272.34521,1026.9546}; - angles[]={6.2655749,0.68451816,6.1922359}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=248; - type="B_T_Truck_01_flatbed_F"; - atlOffset=-0.050994873; - }; - class Item59 - { - dataType="Object"; - class PositionInfo - { - position[]={7135.4209,270.89554,1023.1991}; - angles[]={6.2448053,0.64624304,6.1323361}; - }; - side="Empty"; - flags=4; - class Attributes - { - }; - id=249; - type="B_T_Truck_01_medical_F"; - atlOffset=-0.091003418; - }; - class Item60 - { - dataType="Object"; - class PositionInfo - { - position[]={7142.0708,270.33746,1020.1888}; - angles[]={6.2448053,0.60960865,6.1669116}; - }; - side="Empty"; - flags=4; - class Attributes - { - }; - id=250; - type="B_T_APC_Tracked_01_CRV_F"; - atlOffset=-0.092987061; - }; - class Item61 - { - dataType="Logic"; - class PositionInfo - { - position[]={7119.1475,319.94186,1145.6367}; - }; - init="{" \n " _x call btc_veh_fnc_addVehFromSQM;" \n "} forEach (synchronizedObjects this);"; - id=251; - type="Logic"; - atlOffset=57.17511; - }; - class Item62 - { - dataType="Comment"; - class PositionInfo - { - position[]={7119.5,309.375,1145.875}; - }; - title=$STR_BTC_HAM_MSQM_MRK_VEH; - description=$STR_BTC_HAM_MSQM_MRK_VEHDESC; - id=252; - atlOffset=46.634003; - }; - class Item63 - { - dataType="Logic"; - class PositionInfo - { - position[]={7056.625,334.03586,1003.625}; - }; - init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; - id=253; - type="Logic"; - atlOffset=55.541168; - }; - class Item64 - { - dataType="Comment"; - class PositionInfo - { - position[]={7056.625,278.51709,1004.125}; - angles[]={6.2384152,0,6.1043167}; - }; - title=$STR_BTC_HAM_MSQM_MRK_HELO; - description=$STR_BTC_HAM_MSQM_MRK_HELODESC; - id=254; - }; - class Item65 - { - dataType="Object"; - class PositionInfo - { - position[]={7148.3696,268.43997,1015.9185}; - angles[]={6.2575908,0.55949318,6.1448755}; - }; - side="Empty"; - flags=4; - class Attributes - { - textures="Green"; - }; - id=255; - type="C_Offroad_01_F"; - atlOffset=-0.0020141602; - class CustomAttributes - { - class Attribute0 + items=20; + class Item0 { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value + dataType="Comment"; + class PositionInfo { - class data - { - singleType="STRING"; - value="[[[[""FirstAidKit""],[4]],[[],[]],[[],[]],[[],[]]],false]"; - }; + position[]={7099.875,270.4924,1099.625}; + angles[]={0.10678962,0,6.1858959}; }; + title=$STR_BTC_HAM_MSQM_MRK_VEH; + description=$STR_BTC_HAM_MSQM_MRK_VEHDESC; + id=252; }; - class Attribute1 + class Item1 { - property="VehicleCustomization"; - expression="if (local _this) then {([_this] + _value + [true]) call (uinamespace getvariable 'BIS_fnc_initVehicle')};"; - class Value + dataType="Object"; + class PositionInfo { - class data - { - singleType="ARRAY"; - class value - { - items=2; - class Item0 - { - class data - { - singleType="ARRAY"; - }; - }; - class Item1 - { - class data - { - singleType="ARRAY"; - class value - { - items=22; - class Item0 - { - class data - { - singleType="STRING"; - value="HideDoor1"; - }; - }; - class Item1 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item2 - { - class data - { - singleType="STRING"; - value="HideDoor2"; - }; - }; - class Item3 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item4 - { - class data - { - singleType="STRING"; - value="HideDoor3"; - }; - }; - class Item5 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item6 - { - class data - { - singleType="STRING"; - value="HideBackpacks"; - }; - }; - class Item7 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item8 - { - class data - { - singleType="STRING"; - value="HideBumper1"; - }; - }; - class Item9 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item10 - { - class data - { - singleType="STRING"; - value="HideBumper2"; - }; - }; - class Item11 - { - class data - { - singleType="SCALAR"; - value=1; - }; - }; - class Item12 - { - class data - { - singleType="STRING"; - value="HideConstruction"; - }; - }; - class Item13 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item14 - { - class data - { - singleType="STRING"; - value="hidePolice"; - }; - }; - class Item15 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item16 - { - class data - { - singleType="STRING"; - value="HideServices"; - }; - }; - class Item17 - { - class data - { - singleType="SCALAR"; - value=1; - }; - }; - class Item18 - { - class data - { - singleType="STRING"; - value="BeaconsStart"; - }; - }; - class Item19 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item20 - { - class data - { - singleType="STRING"; - value="BeaconsServicesStart"; - }; - }; - class Item21 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - }; - }; - }; - }; - }; + position[]={7119.8477,272.70474,1035.047}; + angles[]={6.249588,0.68451816,6.1716585}; }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=246; + type="B_T_Truck_01_fuel_F"; + atlOffset=-0.058990479; }; - nAttributes=2; - }; - }; - class Item66 - { - dataType="Logic"; - class PositionInfo - { - position[]={6856,272,896}; - angles[]={0,1.3358924,0}; - }; - name="btc_hc_2"; - isPlayable=1; - id=256; - type="HeadlessClient_F"; - atlOffset=-4.1008301; - }; - class Item67 - { - dataType="Logic"; - class PositionInfo - { - position[]={6824,281.67798,896}; - angles[]={5.9054394,1.3358924,5.9249415}; - }; - name="btc_hc_3"; - isPlayable=1; - id=257; - type="HeadlessClient_F"; - atlOffset=-0.85928345; - }; - }; - class Connections - { - class LinkIDProvider - { - nextID=20; - }; - class Links - { - items=20; - class Item0 - { - linkID=0; - item0=156; - item1=253; - class CustomData - { - type="Sync"; - }; - }; - class Item1 - { - linkID=1; - item0=244; - item1=251; - class CustomData - { - type="Sync"; - }; - }; - class Item2 - { - linkID=2; - item0=243; - item1=251; - class CustomData + class Item2 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7135.4209,270.89554,1023.1991}; + angles[]={6.2448053,0.64624304,6.1323361}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=249; + type="B_T_Truck_01_medical_F"; + atlOffset=-0.091003418; }; - }; - class Item3 - { - linkID=3; - item0=241; - item1=251; - class CustomData + class Item3 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7124.3345,272.08392,1030.8234}; + angles[]={6.2655926,0.68451816,6.1716585}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=247; + type="B_T_Truck_01_ammo_F"; + atlOffset=-0.050994873; }; - }; - class Item4 - { - linkID=4; - item0=237; - item1=251; - class CustomData + class Item4 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7129.0771,272.34521,1026.9546}; + angles[]={6.2655749,0.68451816,6.1922359}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=248; + type="B_T_Truck_01_flatbed_F"; + atlOffset=-0.050994873; }; - }; - class Item5 - { - linkID=5; - item0=234; - item1=251; - class CustomData + class Item5 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7115.6528,273.66119,1038.8058}; + angles[]={6.2543874,0.68451816,6.1684823}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=245; + type="B_T_Truck_01_Repair_F"; + atlOffset=-0.10299683; }; - }; - class Item6 - { - linkID=6; - item0=233; - item1=251; - class CustomData + class Item6 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7142.0708,270.33746,1020.1888}; + angles[]={6.2448053,0.60960865,6.1669116}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=250; + type="B_T_APC_Tracked_01_CRV_F"; + atlOffset=-0.092987061; }; - }; - class Item7 - { - linkID=7; - item0=232; - item1=251; - class CustomData + class Item7 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7099.8633,274.62213,1084.2837}; + angles[]={0.15241256,2.2783701,6.1637564}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=243; + type="B_T_Truck_01_flatbed_F"; + atlOffset=-0.0012512207; }; - }; - class Item8 - { - linkID=8; - item0=238; - item1=251; - class CustomData + class Item8 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7088.9854,274.68829,1092.5779}; + angles[]={0.092537358,2.2788241,6.1198573}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=241; + type="B_T_Truck_01_transport_F"; + atlOffset=0.00048828125; }; - }; - class Item9 - { - linkID=9; - item0=239; - item1=251; - class CustomData + class Item9 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7064.6611,277.72958,1100.2162}; + angles[]={0.13360496,1.6902118,6.1606107}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=233; + type="B_T_MRAP_01_hmg_F"; + atlOffset=0.10321045; }; - }; - class Item10 - { - linkID=10; - item0=240; - item1=251; - class CustomData + class Item10 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7068.6914,275.73096,1106.2517}; + angles[]={0.14145893,2.2931533,6.1558809}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=234; + type="B_T_MRAP_01_hmg_F"; + atlOffset=-0.54574585; }; - }; - class Item11 - { - linkID=11; - item0=174; - item1=251; - class CustomData + class Item11 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7080.8252,274.54797,1103.3436}; + angles[]={0.15554373,2.7873082,6.1386023}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=237; + type="B_T_LSV_01_armed_F"; + atlOffset=-0.054992676; }; - }; - class Item12 - { - linkID=12; - item0=175; - item1=251; - class CustomData + class Item12 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7080.8096,277.03772,1083.1549}; + angles[]={0.10520844,0.710733,6.1339073}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=238; + type="B_T_LSV_01_armed_F"; + atlOffset=0.070037842; }; - }; - class Item13 - { - linkID=13; - item0=245; - item1=251; - class CustomData + class Item13 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7085.7305,276.43085,1078.4639}; + angles[]={0.067107908,0.710733,6.1214104}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=239; + type="B_T_LSV_01_armed_F"; + atlOffset=-0.12496948; }; - }; - class Item14 - { - linkID=14; - item0=246; - item1=251; - class CustomData + class Item14 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7098.165,275.39944,1066.9797}; + angles[]={0.0095993113,0.710733,6.1763887}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=240; + type="B_T_LSV_01_armed_F"; + atlOffset=-0.092956543; }; - }; - class Item15 - { - linkID=15; - item0=247; - item1=251; - class CustomData + class Item15 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7069.064,278.51117,1087.5159}; + angles[]={0.12100255,0.77119118,6.160605}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=232; + type="B_T_APC_Wheeled_01_cannon_F"; + atlOffset=-0.0048522949; }; - }; - class Item16 - { - linkID=16; - item0=248; - item1=251; - class CustomData + class Item16 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7148.3696,268.43997,1015.9185}; + angles[]={6.2575908,0.55949318,6.1448755}; + }; + side="Empty"; + flags=4; + class Attributes + { + textures="Green"; + }; + id=255; + type="C_Offroad_01_F"; + atlOffset=-0.0020141602; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + singleType="STRING"; + value="[[[[""FirstAidKit""],[4]],[[],[]],[[],[]],[[],[]]],false]"; + }; + }; + }; + class Attribute1 + { + property="VehicleCustomization"; + expression="if (local _this) then {([_this] + _value + [true]) call (uinamespace getvariable 'BIS_fnc_initVehicle')};"; + class Value + { + class data + { + singleType="ARRAY"; + class value + { + items=2; + class Item0 + { + class data + { + singleType="ARRAY"; + }; + }; + class Item1 + { + class data + { + singleType="ARRAY"; + class value + { + items=22; + class Item0 + { + class data + { + singleType="STRING"; + value="HideDoor1"; + }; + }; + class Item1 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item2 + { + class data + { + singleType="STRING"; + value="HideDoor2"; + }; + }; + class Item3 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item4 + { + class data + { + singleType="STRING"; + value="HideDoor3"; + }; + }; + class Item5 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item6 + { + class data + { + singleType="STRING"; + value="HideBackpacks"; + }; + }; + class Item7 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item8 + { + class data + { + singleType="STRING"; + value="HideBumper1"; + }; + }; + class Item9 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item10 + { + class data + { + singleType="STRING"; + value="HideBumper2"; + }; + }; + class Item11 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item12 + { + class data + { + singleType="STRING"; + value="HideConstruction"; + }; + }; + class Item13 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item14 + { + class data + { + singleType="STRING"; + value="hidePolice"; + }; + }; + class Item15 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item16 + { + class data + { + singleType="STRING"; + value="HideServices"; + }; + }; + class Item17 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item18 + { + class data + { + singleType="STRING"; + value="BeaconsStart"; + }; + }; + class Item19 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item20 + { + class data + { + singleType="STRING"; + value="BeaconsServicesStart"; + }; + }; + class Item21 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + }; + }; + }; + }; + }; + }; + nAttributes=2; + }; }; - }; - class Item17 - { - linkID=17; - item0=249; - item1=251; - class CustomData + class Item17 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7052.8164,281.54712,1058.9121}; + angles[]={0.03358667,0.84832954,6.2033553}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=174; + type="B_Heli_Transport_01_camo_F"; + atlOffset=-0.035400391; + class CustomAttributes + { + class Attribute0 + { + property="ace_fastroping_equipFRIES"; + expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; }; - }; - class Item18 - { - linkID=18; - item0=250; - item1=251; - class CustomData + class Item18 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7023.2051,283.01917,1080.9238}; + angles[]={0.070284568,0.84832954,6.1480141}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=175; + type="B_Heli_Attack_01_dynamicLoadout_F"; + atlOffset=-0.012207031; }; - }; - class Item19 - { - linkID=19; - item0=255; - item1=251; - class CustomData + class Item19 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={7110.1313,273.8912,1076.689}; + angles[]={0.028797932,2.2788241,6.2240534}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=244; + type="B_T_Truck_01_transport_F"; }; }; + id=259; + atlOffset=-0.61547852; }; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 53b926702..71d8d200e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -8,18 +8,22 @@ class EditorData toggles=581; class ItemIDProvider { - nextID=256; + nextID=258; }; class MarkerIDProvider { nextID=3; }; + class LayerIndexProvider + { + nextID=2; + }; class Camera { - pos[]={4275.5796,137.8134,3802.7356}; - dir[]={-0.095338792,-0.58100772,0.80836862}; - up[]={-0.068056092,0.81387329,0.577052}; - aside[]={0.99318218,-7.0797978e-007,0.11713432}; + pos[]={4276.6519,86.843605,3845.5249}; + dir[]={-0.038926367,-0.67886484,0.73331231}; + up[]={-0.035985876,0.7342419,0.67794168}; + aside[]={0.99865949,-5.3909753e-007,0.053010438}; }; }; binarizationWanted=0; @@ -35,26 +39,25 @@ addons[]= "A3_Modules_F_Curator_Curator", "A3_Characters_F_Enoch", "A3_Characters_F_Mark", - "A3_Air_F_Heli_Heli_Transport_03", - "ace_realisticnames", - "A3_Air_F_Beta_Heli_Transport_01", - "A3_Air_F_Beta_Heli_Attack_01", "A3_Props_F_Enoch_Military_Decontamination", "A3_Signs_F", - "A3_Armor_F_Exp_APC_Wheeled_01", - "A3_Soft_F_Exp_MRAP_01", - "A3_Soft_F_Exp_LSV_01", + "A3_Air_F_Heli_Heli_Transport_03", + "ace_realisticnames", "A3_Soft_F_Exp_Truck_01", "A3_Soft_F_Enoch_Truck_01", "A3_Armor_F_Exp_APC_Tracked_01", - "A3_Modules_F", - "A3_Soft_F_Offroad_01" + "A3_Soft_F_Offroad_01", + "A3_Soft_F_Exp_MRAP_01", + "A3_Soft_F_Exp_LSV_01", + "A3_Armor_F_Exp_APC_Wheeled_01", + "A3_Air_F_Beta_Heli_Attack_01", + "A3_Air_F_Beta_Heli_Transport_01" }; class AddonsMetaData { class List { - items=18; + items=17; class Item0 { className="A3_Ui_F"; @@ -120,64 +123,57 @@ class AddonsMetaData }; class Item9 { - className="A3_Air_F_Heli"; - name="Arma 3 Helicopters - Aircraft"; + className="A3_Props_F_Enoch"; + name="Arma 3 Contact Platform - Decorative and Mission Objects"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item10 { - className="A3_Air_F_Beta"; - name="Arma 3 Beta - Aircraft"; + className="A3_Signs_F"; + name="Arma 3 - Signs"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item11 { - className="A3_Props_F_Enoch"; - name="Arma 3 Contact Platform - Decorative and Mission Objects"; + className="A3_Air_F_Heli"; + name="Arma 3 Helicopters - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item12 { - className="A3_Signs_F"; - name="Arma 3 - Signs"; + className="A3_Soft_F_Exp"; + name="Arma 3 Apex - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item13 { - className="A3_Armor_F_Exp"; - name="Arma 3 Apex - Armored Land Vehicles"; + className="A3_Soft_F_Enoch"; + name="Arma 3 Contact Platform - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item14 { - className="A3_Soft_F_Exp"; - name="Arma 3 Apex - Unarmored Land Vehicles"; + className="A3_Armor_F_Exp"; + name="Arma 3 Apex - Armored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item15 { - className="A3_Soft_F_Enoch"; - name="Arma 3 Contact Platform - Unarmored Land Vehicles"; + className="A3_Soft_F"; + name="Arma 3 Alpha - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item16 { - className="A3_Modules_F"; - name="Arma 3 Alpha - Scripted Modules"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; - }; - class Item17 - { - className="A3_Soft_F"; - name="Arma 3 Alpha - Unarmored Land Vehicles"; + className="A3_Air_F_Beta"; + name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; @@ -201,26 +197,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - singleType="SCALAR"; - value=1; + singleType="ARRAY"; }; }; }; class Attribute1 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - singleType="ARRAY"; + singleType="SCALAR"; + value=1; }; }; }; @@ -468,7 +464,7 @@ class Mission }; class Entities { - items=68; + items=46; class Item0 { dataType="Marker"; @@ -780,7 +776,7 @@ class Mission class Attributes { skill=0.60000002; - description="Ing. avancé"; + description=$STR_ACE_Repair_AssignEngineerRole_role_advanced; isPlayable=1; }; id=31; @@ -1800,77 +1796,6 @@ class Mission type="HeadlessClient_F"; }; class Item36 - { - dataType="Object"; - class PositionInfo - { - position[]={4324.4912,25.521086,3989.5818}; - angles[]={6.2618566,5.0764017,0.013332055}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=156; - type="B_Heli_Transport_03_F"; - atlOffset=-0.002538681; - }; - class Item37 - { - dataType="Object"; - class PositionInfo - { - position[]={4303.5229,24.441528,3962.5347}; - angles[]={0.0053265258,3.5745981,0.015998369}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=174; - type="B_Heli_Transport_01_camo_F"; - atlOffset=-0.00088119507; - class CustomAttributes - { - class Attribute0 - { - property="ace_fastroping_equipFRIES"; - expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}"; - class Value - { - class data - { - singleType="BOOL"; - value=0; - }; - }; - }; - nAttributes=1; - }; - }; - class Item38 - { - dataType="Object"; - class PositionInfo - { - position[]={4339.3516,25.185259,3954.3325}; - angles[]={0,3.5745981,0.023993526}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=175; - type="B_Heli_Attack_01_dynamicLoadout_F"; - atlOffset=-0.0016689301; - }; - class Item39 { dataType="Object"; class PositionInfo @@ -1917,7 +1842,7 @@ class Mission nAttributes=2; }; }; - class Item40 + class Item37 { dataType="Object"; class PositionInfo @@ -1933,7 +1858,7 @@ class Mission id=203; type="Tarp_01_Large_Black_F"; }; - class Item41 + class Item38 { dataType="Object"; class PositionInfo @@ -1950,7 +1875,7 @@ class Mission type="RoadCone_L_F"; atlOffset=-6.1035156e-005; }; - class Item42 + class Item39 { dataType="Object"; class PositionInfo @@ -1967,7 +1892,7 @@ class Mission type="RoadCone_L_F"; atlOffset=-0.00011634827; }; - class Item43 + class Item40 { dataType="Object"; class PositionInfo @@ -1984,7 +1909,7 @@ class Mission type="RoadCone_L_F"; atlOffset=-0.0013942719; }; - class Item44 + class Item41 { dataType="Object"; class PositionInfo @@ -2001,571 +1926,433 @@ class Mission type="RoadCone_L_F"; atlOffset=-0.00078582764; }; - class Item45 - { - dataType="Object"; - class PositionInfo - { - position[]={4264.5,22.915401,3982.5}; - angles[]={6.2751846,3.9608302,0.087773547}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=232; - type="B_T_APC_Wheeled_01_cannon_F"; - atlOffset=-0.0098495483; - }; - class Item46 - { - dataType="Object"; - class PositionInfo - { - position[]={4259.5957,22.704597,3987.4392}; - angles[]={0,3.8548572,0.082478598}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=233; - type="B_T_MRAP_01_hmg_F"; - atlOffset=-0.01962471; - }; - class Item47 - { - dataType="Object"; - class PositionInfo - { - position[]={4255.0957,22.370762,3990.4468}; - angles[]={6.2671871,3.7254124,0.058600098}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=234; - type="B_T_MRAP_01_hmg_F"; - atlOffset=-0.012031555; - }; - class Item48 - { - dataType="Object"; - class PositionInfo - { - position[]={4249.1157,21.364624,3994.2046}; - angles[]={0.0026520467,3.6889343,0.093063653}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=237; - type="B_T_LSV_01_armed_F"; - atlOffset=-0.023923874; - }; - class Item49 - { - dataType="Object"; - class PositionInfo - { - position[]={4235.5518,21.07881,4001.5029}; - angles[]={0.0026520467,3.5902662,0.010664274}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=238; - type="B_T_LSV_01_armed_F"; - atlOffset=-0.016025543; - }; - class Item50 + class Item42 { - dataType="Object"; + dataType="Logic"; class PositionInfo { - position[]={4240.5957,21.096165,3998.999}; - angles[]={6.2698536,3.6248398,0.021328852}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; + position[]={4320,24.015329,4136}; + angles[]={0.061256282,1.7987711,0.09570726}; }; - id=239; - type="B_T_LSV_01_armed_F"; - atlOffset=-0.056703568; + name="btc_hc_2"; + isPlayable=1; + id=256; + type="HeadlessClient_F"; }; - class Item51 + class Item43 { - dataType="Object"; + dataType="Logic"; class PositionInfo { - position[]={4245.0928,21.241991,3996.6523}; - angles[]={6.2698536,3.6488891,0.037314966}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; + position[]={4296,22.001394,4136}; + angles[]={0.013332055,1.7987711,0.16644555}; }; - id=240; - type="B_T_LSV_01_armed_F"; - atlOffset=-0.0080337524; + name="btc_hc_3"; + isPlayable=1; + id=257; + type="HeadlessClient_F"; }; - class Item52 + class Item44 { - dataType="Object"; - class PositionInfo - { - position[]={4265.3164,22.575714,3970.8711}; - angles[]={6.2725158,3.2976959,0.063913256}; - }; - side="Empty"; - flags=4; - class Attributes + dataType="Layer"; + name="btc_veh_respawnable"; + class Entities { - skill=0.60000002; + items=2; + class Item0 + { + dataType="Comment"; + class PositionInfo + { + position[]={4354.5,22.813993,3985.5}; + angles[]={0.050623242,0,0.0080009829}; + }; + title=$STR_BTC_HAM_MSQM_MRK_HELO; + description=$STR_BTC_HAM_MSQM_MRK_HELODESC; + id=254; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={4324.4912,25.521086,3989.5818}; + angles[]={6.2618566,5.0764017,0.013332055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=156; + type="B_Heli_Transport_03_F"; + atlOffset=-0.002538681; + }; }; - id=241; - type="B_T_Truck_01_transport_F"; - atlOffset=-0.049983978; + id=256; + atlOffset=0.063152313; }; - class Item53 + class Item45 { - dataType="Object"; - class PositionInfo - { - position[]={4250.3638,22.626858,3965.2366}; - angles[]={0.087773547,0.7540167,0.050624419}; - }; - side="Empty"; - flags=4; - class Attributes + dataType="Layer"; + name="btc_vehicles"; + class Entities { - }; - id=243; - type="B_T_Truck_01_flatbed_F"; - }; - class Item54 - { - dataType="Object"; - class PositionInfo - { - position[]={4245.1362,21.351154,3968.5237}; - angles[]={0.029324362,0.6698088,0.12468291}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=244; - type="B_T_Truck_01_transport_F"; - atlOffset=-0.039049149; - }; - class Item55 - { - dataType="Object"; - class PositionInfo - { - position[]={4249.3608,22.590536,3935.8831}; - angles[]={0.0053265258,1.7390807,0.029324362}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=245; - type="B_T_Truck_01_Repair_F"; - atlOffset=-0.01051712; - }; - class Item56 - { - dataType="Object"; - class PositionInfo - { - position[]={4248.1382,22.161657,3930.3477}; - angles[]={0.095706634,1.7390807,0.095706634}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=246; - type="B_T_Truck_01_fuel_F"; - atlOffset=-0.039800644; - }; - class Item57 - { - dataType="Object"; - class PositionInfo - { - position[]={4246.8911,22.124918,3924.3018}; - angles[]={0.039977662,1.7390807,0.12730782}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=247; - type="B_T_Truck_01_ammo_F"; - atlOffset=-0.077253342; - }; - class Item58 - { - dataType="Object"; - class PositionInfo - { - position[]={4246.1084,22.954084,3918.2583}; - angles[]={0.058599081,1.7390807,0.090419561}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=248; - type="B_T_Truck_01_flatbed_F"; - atlOffset=-0.10356903; - }; - class Item59 - { - dataType="Object"; - class PositionInfo - { - position[]={4245.4639,22.709036,3910.6943}; - angles[]={0,1.7008055,0.034652505}; - }; - side="Empty"; - flags=4; - class Attributes - { - }; - id=249; - type="B_T_Truck_01_medical_F"; - atlOffset=-0.013309479; - }; - class Item60 - { - dataType="Object"; - class PositionInfo - { - position[]={4245.9893,23.198921,3903.3372}; - angles[]={6.2805333,1.6641712,0.0026520467}; - }; - side="Empty"; - flags=4; - class Attributes - { - }; - id=250; - type="B_T_APC_Tracked_01_CRV_F"; - atlOffset=-0.021877289; - }; - class Item61 - { - dataType="Logic"; - class PositionInfo - { - position[]={4182.6475,73.417297,3945.7617}; - }; - init="{" \n " _x call btc_veh_fnc_addVehFromSQM;" \n "} forEach (synchronizedObjects this);"; - id=251; - type="Logic"; - atlOffset=54.424332; - }; - class Item62 - { - dataType="Comment"; - class PositionInfo - { - position[]={4183,56,3946}; - }; - title=$STR_BTC_HAM_MSQM_MRK_VEH; - description=$STR_BTC_HAM_MSQM_MRK_VEHDESC; - id=252; - atlOffset=37.028019; - }; - class Item63 - { - dataType="Logic"; - class PositionInfo - { - position[]={4355,73.873901,4038.5}; - }; - init="{" \n " _x call btc_veh_fnc_addRespawnableFromSQM;" \n "} forEach (synchronizedObjects this);"; - id=253; - type="Logic"; - atlOffset=52.790607; - }; - class Item64 - { - dataType="Comment"; - class PositionInfo - { - position[]={4355,21.008617,4039}; - angles[]={0.058599081,0,6.1193347}; - }; - title=$STR_BTC_HAM_MSQM_MRK_HELO; - description=$STR_BTC_HAM_MSQM_MRK_HELODESC; - id=254; - }; - class Item65 - { - dataType="Object"; - class PositionInfo - { - position[]={4244.9482,21.994968,3888.4963}; - angles[]={6.259192,1.6371639,0.010664274}; - }; - side="Empty"; - flags=4; - class Attributes - { - textures="Green"; - }; - id=255; - type="C_Offroad_01_F"; - atlOffset=0.017175674; - class CustomAttributes - { - class Attribute0 + items=20; + class Item0 { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value + dataType="Comment"; + class PositionInfo { - class data - { - singleType="STRING"; - value="[[[[""FirstAidKit""],[4]],[[],[]],[[],[]],[[],[]]],false]"; - }; + position[]={4227,19.340015,3931}; + angles[]={0.0080009829,0,0.063913256}; }; + title=$STR_BTC_HAM_MSQM_MRK_VEH; + description=$STR_BTC_HAM_MSQM_MRK_VEHDESC; + id=252; }; - class Attribute1 + class Item1 { - property="VehicleCustomization"; - expression="if (local _this) then {([_this] + _value + [true]) call (uinamespace getvariable 'BIS_fnc_initVehicle')};"; - class Value + dataType="Object"; + class PositionInfo { - class data + position[]={4248.1382,22.161657,3930.3477}; + angles[]={0.095706634,1.7390807,0.095706634}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=246; + type="B_T_Truck_01_fuel_F"; + atlOffset=-0.039800644; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={4245.4639,22.709036,3910.6943}; + angles[]={0,1.7008055,0.034652505}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=249; + type="B_T_Truck_01_medical_F"; + atlOffset=-0.013309479; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={4246.8911,22.124918,3924.3018}; + angles[]={0.039977662,1.7390807,0.12730782}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=247; + type="B_T_Truck_01_ammo_F"; + atlOffset=-0.077253342; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={4246.1084,22.954084,3918.2583}; + angles[]={0.058599081,1.7390807,0.090419561}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=248; + type="B_T_Truck_01_flatbed_F"; + atlOffset=-0.10356903; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={4249.3608,22.590536,3935.8831}; + angles[]={0.0053265258,1.7390807,0.029324362}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=245; + type="B_T_Truck_01_Repair_F"; + atlOffset=-0.01051712; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={4245.9893,23.198921,3903.3372}; + angles[]={6.2805333,1.6641712,0.0026520467}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=250; + type="B_T_APC_Tracked_01_CRV_F"; + atlOffset=-0.021877289; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={4244.9482,21.994968,3888.4963}; + angles[]={6.259192,1.6371639,0.010664274}; + }; + side="Empty"; + flags=4; + class Attributes + { + textures="Green"; + }; + id=255; + type="C_Offroad_01_F"; + atlOffset=0.017175674; + class CustomAttributes + { + class Attribute0 { - singleType="ARRAY"; - class value + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value { - items=2; - class Item0 - { - class data - { - singleType="ARRAY"; - }; - }; - class Item1 + class data { - class data - { - singleType="ARRAY"; - class value - { - items=22; - class Item0 - { - class data - { - singleType="STRING"; - value="HideDoor1"; - }; - }; - class Item1 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item2 - { - class data - { - singleType="STRING"; - value="HideDoor2"; - }; - }; - class Item3 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item4 - { - class data - { - singleType="STRING"; - value="HideDoor3"; - }; - }; - class Item5 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item6 - { - class data - { - singleType="STRING"; - value="HideBackpacks"; - }; - }; - class Item7 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item8 - { - class data - { - singleType="STRING"; - value="HideBumper1"; - }; - }; - class Item9 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item10 - { - class data - { - singleType="STRING"; - value="HideBumper2"; - }; - }; - class Item11 - { - class data - { - singleType="SCALAR"; - value=1; - }; - }; - class Item12 - { - class data - { - singleType="STRING"; - value="HideConstruction"; - }; - }; - class Item13 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item14 - { - class data - { - singleType="STRING"; - value="hidePolice"; - }; - }; - class Item15 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item16 - { - class data - { - singleType="STRING"; - value="HideServices"; - }; - }; - class Item17 - { - class data - { - singleType="SCALAR"; - value=1; - }; - }; - class Item18 - { - class data - { - singleType="STRING"; - value="BeaconsStart"; - }; - }; - class Item19 - { - class data - { - singleType="SCALAR"; - value=0; - }; - }; - class Item20 + singleType="STRING"; + value="[[[[""FirstAidKit""],[4]],[[],[]],[[],[]],[[],[]]],false]"; + }; + }; + }; + class Attribute1 + { + property="VehicleCustomization"; + expression="if (local _this) then {([_this] + _value + [true]) call (uinamespace getvariable 'BIS_fnc_initVehicle')};"; + class Value + { + class data + { + singleType="ARRAY"; + class value + { + items=2; + class Item0 + { + class data { - class data - { - singleType="STRING"; - value="BeaconsServicesStart"; - }; + singleType="ARRAY"; }; - class Item21 + }; + class Item1 + { + class data { - class data + singleType="ARRAY"; + class value { - singleType="SCALAR"; - value=0; + items=22; + class Item0 + { + class data + { + singleType="STRING"; + value="HideDoor1"; + }; + }; + class Item1 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item2 + { + class data + { + singleType="STRING"; + value="HideDoor2"; + }; + }; + class Item3 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item4 + { + class data + { + singleType="STRING"; + value="HideDoor3"; + }; + }; + class Item5 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item6 + { + class data + { + singleType="STRING"; + value="HideBackpacks"; + }; + }; + class Item7 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item8 + { + class data + { + singleType="STRING"; + value="HideBumper1"; + }; + }; + class Item9 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item10 + { + class data + { + singleType="STRING"; + value="HideBumper2"; + }; + }; + class Item11 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item12 + { + class data + { + singleType="STRING"; + value="HideConstruction"; + }; + }; + class Item13 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item14 + { + class data + { + singleType="STRING"; + value="hidePolice"; + }; + }; + class Item15 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item16 + { + class data + { + singleType="STRING"; + value="HideServices"; + }; + }; + class Item17 + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + class Item18 + { + class data + { + singleType="STRING"; + value="BeaconsStart"; + }; + }; + class Item19 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + class Item20 + { + class data + { + singleType="STRING"; + value="BeaconsServicesStart"; + }; + }; + class Item21 + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; }; }; }; @@ -2573,247 +2360,243 @@ class Mission }; }; }; + nAttributes=2; }; }; - nAttributes=2; - }; - }; - class Item66 - { - dataType="Logic"; - class PositionInfo - { - position[]={4320,24.015329,4136}; - angles[]={0.061256282,1.7987711,0.09570726}; - }; - name="btc_hc_2"; - isPlayable=1; - id=256; - type="HeadlessClient_F"; - }; - class Item67 - { - dataType="Logic"; - class PositionInfo - { - position[]={4296,22.001394,4136}; - angles[]={0.013332055,1.7987711,0.16644555}; - }; - name="btc_hc_3"; - isPlayable=1; - id=257; - type="HeadlessClient_F"; - }; - }; - class Connections - { - class LinkIDProvider - { - nextID=20; - }; - class Links - { - items=20; - class Item0 - { - linkID=0; - item0=253; - item1=156; - class CustomData - { - type="Sync"; - }; - }; - class Item1 - { - linkID=1; - item0=238; - item1=251; - class CustomData - { - type="Sync"; - }; - }; - class Item2 - { - linkID=2; - item0=239; - item1=251; - class CustomData - { - type="Sync"; - }; - }; - class Item3 - { - linkID=3; - item0=240; - item1=251; - class CustomData - { - type="Sync"; - }; - }; - class Item4 - { - linkID=4; - item0=237; - item1=251; - class CustomData - { - type="Sync"; - }; - }; - class Item5 - { - linkID=5; - item0=234; - item1=251; - class CustomData - { - type="Sync"; - }; - }; - class Item6 - { - linkID=6; - item0=233; - item1=251; - class CustomData - { - type="Sync"; - }; - }; - class Item7 - { - linkID=7; - item0=232; - item1=251; - class CustomData - { - type="Sync"; - }; - }; - class Item8 - { - linkID=8; - item0=241; - item1=251; - class CustomData + class Item8 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4250.3638,22.626858,3965.2366}; + angles[]={0.087773547,0.7540167,0.050624419}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=243; + type="B_T_Truck_01_flatbed_F"; }; - }; - class Item9 - { - linkID=9; - item0=244; - item1=251; - class CustomData + class Item9 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4265.3164,22.575714,3970.8711}; + angles[]={6.2725158,3.2976959,0.063913256}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=241; + type="B_T_Truck_01_transport_F"; + atlOffset=-0.049983978; }; - }; - class Item10 - { - linkID=10; - item0=243; - item1=251; - class CustomData + class Item10 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4245.1362,21.351154,3968.5237}; + angles[]={0.029324362,0.6698088,0.12468291}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=244; + type="B_T_Truck_01_transport_F"; + atlOffset=-0.039049149; }; - }; - class Item11 - { - linkID=11; - item0=245; - item1=251; - class CustomData + class Item11 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4259.5957,22.704597,3987.4392}; + angles[]={0,3.8548572,0.082478598}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=233; + type="B_T_MRAP_01_hmg_F"; + atlOffset=-0.01962471; }; - }; - class Item12 - { - linkID=12; - item0=246; - item1=251; - class CustomData + class Item12 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4255.0957,22.370762,3990.4468}; + angles[]={6.2671871,3.7254124,0.058600098}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=234; + type="B_T_MRAP_01_hmg_F"; + atlOffset=-0.012031555; }; - }; - class Item13 - { - linkID=13; - item0=247; - item1=251; - class CustomData + class Item13 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4249.1157,21.364624,3994.2046}; + angles[]={0.0026520467,3.6889343,0.093063653}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=237; + type="B_T_LSV_01_armed_F"; + atlOffset=-0.023923874; }; - }; - class Item14 - { - linkID=14; - item0=248; - item1=251; - class CustomData + class Item14 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4235.5518,21.07881,4001.5029}; + angles[]={0.0026520467,3.5902662,0.010664274}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=238; + type="B_T_LSV_01_armed_F"; + atlOffset=-0.016025543; }; - }; - class Item15 - { - linkID=15; - item0=249; - item1=251; - class CustomData + class Item15 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4240.5957,21.096165,3998.999}; + angles[]={6.2698536,3.6248398,0.021328852}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=239; + type="B_T_LSV_01_armed_F"; + atlOffset=-0.056703568; }; - }; - class Item16 - { - linkID=16; - item0=250; - item1=251; - class CustomData + class Item16 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4245.0928,21.241991,3996.6523}; + angles[]={6.2698536,3.6488891,0.037314966}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=240; + type="B_T_LSV_01_armed_F"; + atlOffset=-0.0080337524; }; - }; - class Item17 - { - linkID=17; - item0=174; - item1=251; - class CustomData + class Item17 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4264.5,22.915401,3982.5}; + angles[]={6.2751846,3.9608302,0.087773547}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=232; + type="B_T_APC_Wheeled_01_cannon_F"; + atlOffset=-0.0098495483; }; - }; - class Item18 - { - linkID=18; - item0=175; - item1=251; - class CustomData + class Item18 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4339.3516,25.185259,3954.3325}; + angles[]={0,3.5745981,0.023993526}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=175; + type="B_Heli_Attack_01_dynamicLoadout_F"; + atlOffset=-0.0016689301; }; - }; - class Item19 - { - linkID=19; - item0=255; - item1=251; - class CustomData + class Item19 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={4303.5229,24.441528,3962.5347}; + angles[]={0.0053265258,3.5745981,0.015998369}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=174; + type="B_Heli_Transport_01_camo_F"; + atlOffset=-0.00088119507; + class CustomAttributes + { + class Attribute0 + { + property="ace_fastroping_equipFRIES"; + expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; }; }; + id=257; + atlOffset=-0.35071373; }; }; }; From 860438c0e4613d206be69746f0be8f747fe83fcd Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 26 Dec 2021 13:50:53 +0100 Subject: [PATCH 321/354] typo weapopns --- .../core/fnc/arsenal/ammoUsage.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/ammoUsage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/ammoUsage.sqf index bb35f2ece..128ec87e5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/ammoUsage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/ammoUsage.sqf @@ -9,7 +9,7 @@ Description: - and is not/is parent to a parent Parameters: - _weapons - Array of weapopns. [Array] + _weapons - Array of weapons. [Array] _itemType_ammo_usageAllowed - Weapons allowed filter: array of item type ("AssaultRifle", "MissileLauncher"...), allowed ammo usage ("128 + 512": ammo against vehicles and armored vehicles) and array to check if weapons are parent to a parent. [Array] Returns: From ad8db72d89b8374e77fe3416b42b24a87fbbc277 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 26 Dec 2021 22:26:44 +0100 Subject: [PATCH 322/354] migrate to getRoadInfo --- .../core/fnc/common/road_direction.sqf | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/road_direction.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/road_direction.sqf index 98ab4539b..09fa92050 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/road_direction.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/road_direction.sqf @@ -25,9 +25,5 @@ params [ ["_road", objNull, [objNull]] ]; -private _roadConnectedTo = roadsConnectedTo _road; -if (_roadConnectedTo isEqualTo []) exitWith {0}; -private _connectedRoad = _roadConnectedTo select 0; -private _direction = _road getDir _connectedRoad; - -_direction +private _info = getRoadInfo _road; +(_info select 6) getDir (_info select 7) From 213c05ea43a93877116a4b7abad7fbd4fec36081 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 27 Dec 2021 11:13:33 +0100 Subject: [PATCH 323/354] btc_bigShower doesn't existe anymore --- .../core/fnc/side/chemicalLeak.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf index b810f6e26..222163135 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf @@ -175,7 +175,8 @@ if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith { private _locate_taskID = _taskID + "lc"; [[_locate_taskID, _taskID], 32, _pos, typeOf((_chemical arrayIntersect btc_chem_contaminated) select 0)] call btc_task_fnc_create; private _clean_taskID = _taskID + "cl"; -[[_clean_taskID, _taskID], 33, btc_bigShower, typeOf btc_bigShower] call btc_task_fnc_create; +private _bigShower = selectRandom (btc_chem_decontaminate select {_x isKindOf "DeconShower_02_F"}); +[[_clean_taskID, _taskID], 33, _bigShower, typeOf _bigShower] call btc_task_fnc_create; waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || From 9d1b3ffcc2ba232b10aef0ef72cfa2ecae5af251 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 28 Dec 2021 14:57:08 +0100 Subject: [PATCH 324/354] FIX: Static don't spawn in city without entrerable buildings --- .../core/fnc/cache/find_pos.sqf | 2 +- .../core/fnc/city/activate.sqf | 8 +++--- .../core/fnc/city/getHouses.sqf | 8 ++++-- .../core/fnc/civ/addWP.sqf | 2 +- .../core/fnc/common/getHouses.sqf | 21 ++++++++++---- .../core/fnc/common/house_addWP.sqf | 2 +- .../core/fnc/common/house_addWP_loop.sqf | 2 +- .../core/fnc/common/roof.sqf | 28 ++++++++++++------- .../core/fnc/door/lock.sqf | 2 +- .../core/fnc/info/createIntels.sqf | 2 +- .../core/fnc/mil/addWP.sqf | 2 +- .../core/fnc/mil/create_staticOnRoof.sqf | 2 +- .../core/fnc/side/civtreatment.sqf | 2 +- .../core/fnc/side/hack.sqf | 2 +- .../core/fnc/side/hostage.sqf | 2 +- .../core/fnc/side/kill.sqf | 2 +- 16 files changed, 54 insertions(+), 35 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf index e4485bbaf..63f820c70 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf @@ -36,7 +36,7 @@ if (_city getVariable ["type", ""] in ["NameLocal", "Hill", "NameMarine"]) exitW }; private _cachingRadius = _city getVariable ["cachingRadius", 200]; -private _houses = [getPos _city, _cachingRadius/2] call btc_fnc_getHouses; +private _houses = ([getPos _city, _cachingRadius/2] call btc_fnc_getHouses) select 0; if (_houses isEqualTo []) then { [] call btc_cache_fnc_find_pos diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 37563151d..69bc461e0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -129,7 +129,7 @@ if (_data_units isNotEqualTo []) then { }; if !(_type in ["Hill", "NameMarine"]) then { - private _houses = [_city, _spawningRadius/3] call btc_city_fnc_getHouses; + ([_city, _spawningRadius/3] call btc_city_fnc_getHouses) params ["_housesEntrerable", "_housesNotEntrerable"]; if (_has_en) then { private _numberOfStatic = (switch _type do { @@ -143,7 +143,7 @@ if (_data_units isNotEqualTo []) then { case "Airport" : {6}; default {0}; }); - [+_houses, round (_p_mil_static_group_ratio * _numberOfStatic), _city] call btc_mil_fnc_create_staticOnRoof; + [_housesEntrerable+_housesNotEntrerable, round (_p_mil_static_group_ratio * _numberOfStatic), _city] call btc_mil_fnc_create_staticOnRoof; }; // Spawn civilians @@ -158,7 +158,7 @@ if (_data_units isNotEqualTo []) then { case "Airport" : {6}; default {2}; }); - [+_houses, round (_p_civ_group_ratio * _numberOfCivi), _city] call btc_civ_fnc_populate; + [+_housesEntrerable, round (_p_civ_group_ratio * _numberOfCivi), _city] call btc_civ_fnc_populate; }; }; if (btc_p_animals_group_ratio > 0) then { @@ -292,7 +292,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { if ( !(_type in ["Hill", "NameMarine"]) && - _city getVariable ["btc_city_houses", []] isEqualTo [] + _city getVariable ["btc_city_housesEntrerable", []] isEqualTo [] ) then { [[_city, _spawningRadius/3], btc_city_fnc_getHouses] call btc_delay_fnc_exec; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf index b0d666cc5..f4708a00c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf @@ -27,7 +27,9 @@ params [ ["_radius", 100, [0]] ]; -private _houses = ([_city, _radius] call btc_fnc_getHouses) call BIS_fnc_arrayShuffle; -_city setVariable ["btc_city_houses", _houses]; +([_city, _radius] call btc_fnc_getHouses) params ["_housesEntrerable", "_housesNotEntrerable"] -_houses +_city setVariable ["btc_city_housesEntrerable", _housesEntrerable call BIS_fnc_arrayShuffle]; +_city setVariable ["btc_city_housesNotEntrerable", _housesNotEntrerable call BIS_fnc_arrayShuffle]; + +[_housesEntrerable, _housesNotEntrerable] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf index 518ebc735..e494da10e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf @@ -31,7 +31,7 @@ params [ [_group] call CBA_fnc_clearWaypoints; [_group, _pos, -1, "MOVE", "SAFE", "NO CHANGE", "LIMITED"] call CBA_fnc_addWaypoint; -private _houses = [_pos, _radius] call btc_fnc_getHouses; +private _houses = ([_pos, _radius] call btc_fnc_getHouses) select 0; if (_houses isNotEqualTo []) then { private _house = selectRandom _houses; [_group, _house] call btc_fnc_house_addWP_loop; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf index 0a0d6ea1e..8d1ddcd42 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf @@ -3,14 +3,15 @@ Function: btc_fnc_getHouses Description: - Get open houses around a position. + Get enterable and not enterable houses around a position. Parameters: _pos - Position to search for houses. [Array] _radius - Radius of search. [Number] Returns: - _useful - Useful open houses. [Array] + _enterable - Useful open houses. [Array] + _notEnterable - Useful not open houses. [Array] Examples: (begin example) @@ -27,7 +28,15 @@ params [ ["_radius", 100, [0]] ]; -private _buildings = nearestObjects [_pos, ["Building"], _radius]; -private _useful = _buildings select {(_x buildingPos -1) isNotEqualTo [] && {damage _x isEqualTo 0}}; - -_useful +private _enterable = []; +private _notEnterable = []; +{ + if (damage _x isNotEqualTo 0) then {continue;}; + if ((_x buildingPos -1) isEqualTo []) then { + _notEnterable pushBack _x; + } else { + _enterable pushBack _x; + }; +} forEach (nearestObjects [_pos, ["Building"], _radius]); + +[_enterable, _notEnterable] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP.sqf index 27e066354..a67cd67b2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP.sqf @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [group player, ([getPos player] call btc_fnc_getHouses) select 0] call btc_fnc_house_addWP; + [group player, (([getPos player] call btc_fnc_getHouses) select 0) select 0] call btc_fnc_house_addWP; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf index 9f322f62c..6dea6713d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _allpositions = [group player, ([getPos player] call btc_fnc_getHouses) select 0] call btc_fnc_house_addWP_loop; + _allpositions = [group player, (([getPos player] call btc_fnc_getHouses) select 0) select 0] call btc_fnc_house_addWP_loop; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf index d55f34f51..dfed3e333 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [([position player, 30] call btc_fnc_getHouses) select 0] call btc_fnc_roof; + _result = [(([position player, 30] call btc_fnc_getHouses) select 0) select 0] call btc_fnc_roof; (end) Author: @@ -27,13 +27,21 @@ params [ ]; private _positions = _house buildingPos -1; -{ - reverse _x -} forEach _positions; -_positions sort false; -private _higherPos = _positions select 0; -reverse _higherPos; -private _ASL = AGLToASL _higherPos; +if (_positions isEqualTo []) then { + private _bbr = (0 boundingBoxReal _house); + private _p1 = _bbr select 0; + private _p2 = _bbr select 1; + private _maxHeight = abs ((_p2 select 2) - (_p1 select 2)); + _ASL = (getPosASL _house) vectorAdd [0, 0, _maxHeight]; +} else { + { + reverse _x + } forEach _positions; + _positions sort false; + private _higherPos = _positions select 0; + reverse _higherPos; + _ASL = AGLToASL _higherPos; +}; private _surface = lineIntersectsSurfaces [_ASL vectorAdd [0, 0, 10], _ASL]; @@ -49,8 +57,8 @@ if (_surface isNotEqualTo []) then { (_intersect select 2) isEqualTo _house && {(_spawnPos select 2) + 0.5 < (_intersect select 0 select 2)} ) then { - _spawnPos = (_intersect select 0) vectorAdd [0, 0, 0.2]; - _surfaceNormal = _intersect select 1; + _spawnPos = (_intersect select 0) vectorAdd [0, 0, 0.2]; + _surfaceNormal = _intersect select 1; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf index 2a15a1126..227a65e79 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/door/lock.sqf @@ -26,7 +26,7 @@ params [ ["_rep", btc_global_reputation, [0]] ]; -private _houses = +(_city getVariable ["btc_city_houses", []]); +private _houses = +(_city getVariable ["btc_city_housesEntrerable", []]); private _ratio = switch (true) do { case (_rep < 200): {1}; case (_rep >= 200 && _rep < 500): {1/2}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf index 75cd2d208..53d99b6a5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/createIntels.sqf @@ -24,7 +24,7 @@ params [ ["_city", objNull, [objNull]] ]; -private _houses = +(_city getVariable ["btc_city_houses", []]); +private _houses = +(_city getVariable ["btc_city_housesEntrerable", []]); private _numberOfHouses = count _houses; _houses = _houses select [0, round (_numberOfHouses * btc_p_info_houseDensity / 100)]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf index 66b1d875f..632900a87 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf @@ -35,7 +35,7 @@ private _rpos = [_pos, _area] call btc_fnc_randomize_pos; switch (_wp) do { case ("HOUSE") : { - private _houses = [_city, _area] call btc_fnc_getHouses; + private _houses = ([_city, _area] call btc_fnc_getHouses) select 0; if (_houses isNotEqualTo []) then { private _house = selectRandom _houses; [_group, _house] call btc_fnc_house_addWP; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf index a03bbcadb..f16af7efd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf @@ -14,7 +14,7 @@ Returns: Examples: (begin example) - _result = [[position player, 30] call btc_fnc_getHouses, 3] call btc_mil_fnc_create_staticOnRoof; + _result = [flatten ([position player, 30] call btc_fnc_getHouses), 3] call btc_mil_fnc_create_staticOnRoof; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf index 75bf27019..422e562d4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf @@ -44,7 +44,7 @@ if ( _r < 1) then { _pos = getPos (selectRandom _roads); _vehpos = [_pos, 10] call btc_fnc_randomize_pos; } else { - _houses = [[_pos select 0, _pos select 1, 0], 200] call btc_fnc_getHouses; + _houses = ([[_pos select 0, _pos select 1, 0], 200] call btc_fnc_getHouses) select 0; _pos = selectRandom ((selectRandom _houses) buildingPos -1); _vehpos = [_pos select 0, _pos select 1, (_pos select 2) + 0.1]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf index 30f2b2049..56cdaeb31 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf @@ -36,7 +36,7 @@ if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; -private _house = selectRandom ([_pos, 100] call btc_fnc_getHouses); +private _house = selectRandom (([_pos, 100] call btc_fnc_getHouses) select 0); if (isNil "_house") exitWith {[] spawn btc_side_fnc_create;}; _pos = selectRandom (_house buildingPos -1); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf index b4165e561..8fd24a312 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf @@ -36,7 +36,7 @@ if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; //// Randomise position \\\\ -private _houses = [getPos _city, 100] call btc_fnc_getHouses; +private _houses = ([getPos _city, 100] call btc_fnc_getHouses) select 0; if (_houses isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; _houses = _houses apply {[count (_x buildingPos -1), _x]}; _houses sort false; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf index eda25fa07..58b7b1b92 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf @@ -36,7 +36,7 @@ if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; //// Randomise position \\\\ -private _houses = [getPos _city, 100] call btc_fnc_getHouses; +private _houses = ([getPos _city, 100] call btc_fnc_getHouses) select 0; if (_houses isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; _houses = _houses apply {[count (_x buildingPos -1), _x]}; From 0594f32b30ac4a57fa64fb067ef9b2bdcd700d4c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 30 Dec 2021 11:54:39 +0100 Subject: [PATCH 325/354] Improve performance of chem fnc checkloop with big array --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf index 0632edd9d..22e504e04 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/checkLoop.sqf @@ -35,7 +35,7 @@ private _bodyParts = ["head","body","hand_l","hand_r","leg_l","leg_r"]; } forEach allUnitsUAV; private _units = allUnits - _allUnitsUAV; private _objtToDecontaminate = []; - private _unitsContaminated = _contaminated select {_x in _units}; + private _unitsContaminated = _contaminated arrayIntersect _units; { (0 boundingBoxReal _x) params ["_p1", "_p2"]; private _maxWidth = abs ((_p2 select 0) - (_p1 select 0)); @@ -75,6 +75,7 @@ private _bodyParts = ["head","body","hand_l","hand_r","leg_l","leg_r"]; } forEach _contaminated; if (_unitContaminate isEqualTo []) exitWith {}; + private _periode = 3 / count _unitContaminate; { private _notAlready = _contaminated pushBackUnique _x > -1; From 8e57be0af279dd3f4fa4d0c87f98b2128dd9333a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 1 Jan 2022 15:47:44 +0100 Subject: [PATCH 326/354] Move btc_EDENinventory in add and addRespawn fnc --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 5 ++++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf | 5 ++++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/add.sqf | 3 +++ .../core/fnc/veh/addRespawn.sqf | 3 +++ =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 2 -- docs/Add-vehicle-or-boat-to-H&M-system.md | 2 +- 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 73fb9ae36..74205a890 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -126,7 +126,10 @@ btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep", _ //Objects {deleteVehicle _x} forEach (getMissionLayerEntities "btc_vehicles" select 0); -btc_vehicles = []; +if !(isNil "btc_vehicles") then { + {deleteVehicle _x} forEach btc_vehicles; + btc_vehicles = []; +}; private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]); [{ // Can't use ace_cargo for objects created during first frame. diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 0e2e8ab7a..6621bbf4f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -124,7 +124,10 @@ btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep", _ //Objects {deleteVehicle _x} forEach (getMissionLayerEntities "btc_vehicles" select 0); -btc_vehicles = []; +if !(isNil "btc_vehicles") then { + {deleteVehicle _x} forEach btc_vehicles; + btc_vehicles = []; +}; btc_load_fnc_migrateOldToNew_inventory = { params [ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/add.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/add.sqf index aea547d1f..8ee0103e9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/add.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/add.sqf @@ -28,6 +28,9 @@ params [ if (isNil "btc_vehicles") then { btc_vehicles = []; }; +if (isNil {_veh getVariable "btc_EDENinventory"}) then { + _veh setVariable ["btc_EDENinventory", _veh call btc_log_fnc_inventoryGet]; +}; if (btc_vehicles pushBackUnique _veh isEqualTo -1) exitWith { if (btc_debug || btc_debug_log) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf index 0993ad3b5..e8f3d6621 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/veh/addRespawn.sqf @@ -30,6 +30,9 @@ params [ if (isNil "btc_veh_respawnable") then { btc_veh_respawnable = []; }; +if (isNil {_vehicle getVariable "btc_EDENinventory"}) then { + _vehicle setVariable ["btc_EDENinventory", _vehicle call btc_log_fnc_inventoryGet]; +}; if (btc_veh_respawnable pushBackUnique _vehicle isEqualTo -1) exitWith { if (btc_debug || btc_debug_log) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index e5e936279..1d95ee665 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -26,7 +26,6 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldN setDate btc_startDate; { - _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; _x call btc_veh_fnc_add; } forEach (getMissionLayerEntities "btc_vehicles" select 0); }; @@ -44,7 +43,6 @@ if (btc_p_db_autoRestart > 0) then { }; { - _x setVariable ["btc_EDENinventory", _x call btc_log_fnc_inventoryGet]; [_x, 30] call btc_veh_fnc_addRespawn; if (_forEachIndex isEqualTo 0) then { missionNamespace setVariable ["btc_veh_respawnable_1", _x, true]; diff --git a/docs/Add-vehicle-or-boat-to-H&M-system.md b/docs/Add-vehicle-or-boat-to-H&M-system.md index f0297463e..2bfec8640 100644 --- a/docs/Add-vehicle-or-boat-to-H&M-system.md +++ b/docs/Add-vehicle-or-boat-to-H&M-system.md @@ -17,4 +17,4 @@ A garage is available for admin only. Activate the garage through mission parame You can add a new vehicle/boat to respawn system by: - Drag and drop them to [EDEN layers](https://community.bistudio.com/wiki/Eden_Editor:_Layer) named "btc_veh_respawnable". -Note: you can tweak respawn time here: [/core/init_server.sqf L48](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L48) by changing 30s to what you want. +Note: you can tweak respawn time here: [/core/init_server.sqf L46](https://github.com/Vdauphin/HeartsAndMinds/blob/master/%3DBTC%3Dco%4030_Hearts_and_Minds.Altis/core/init_server.sqf#L46) by changing 30s to what you want. From 96dacdc4f533abb9748dbe224f076bd38c04ad56 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 3 Jan 2022 21:07:16 +0100 Subject: [PATCH 327/354] fix addCuratorEditableObjects not added to all curators --- .../core/fnc/body/bagRecover.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf | 4 +++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf | 4 +++- .../core/fnc/side/capture_officer.sqf | 8 ++++++-- .../core/fnc/side/convoy.sqf | 4 +++- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf index ca89f7c75..c2b954f9a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/body/bagRecover.sqf @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - btc_curator addCuratorEditableObjects [btc_body_deadPlayers, false]; + {_x addCuratorEditableObjects [btc_body_deadPlayers, false];} forEach allCurators; [btc_log_create_obj] call btc_body_fnc_bagRecover; (end) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index 23e225cbb..fb5c5ecde 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -13,7 +13,7 @@ Returns: Examples: (begin example) cursorObject remoteExecCall ["btc_db_fnc_add_veh", 2]; - btc_curator addCuratorEditableObjects [btc_vehicles, false]; + {_x addCuratorEditableObjects [btc_vehicles, false];} forEach allCurators; (end) Author: diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index fbabb9400..46fafedd9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -37,7 +37,9 @@ params [ if (isObjectHidden player) exitWith {}; ["btc_respawn_player", [_unit, player]] call CBA_fnc_serverEvent; }] call CBA_fnc_addEventHandler; -_player addEventHandler ["CuratorObjectPlaced", btc_eh_fnc_CuratorObjectPlaced]; +{ + _x addEventHandler ["CuratorObjectPlaced", btc_eh_fnc_CuratorObjectPlaced]; +} forEach allCurators; ["ace_treatmentSucceded", btc_rep_fnc_treatment] call CBA_fnc_addEventHandler; if !(isServer) then { // Don't add twice the event in player host ["ace_repair_setWheelHitPointDamage", { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf index 1a8aa1518..9e9787091 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/init.sqf @@ -25,7 +25,9 @@ params [ ]; if (btc_log_obj_created pushBackUnique _obj isEqualTo -1) exitWith {}; -btc_curator addCuratorEditableObjects [[_obj], false]; +{ + _x addCuratorEditableObjects [[_obj], false]; +} forEach allCurators; private _type = typeOf _obj; if ( diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 3ee114bed..800cb1126 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -113,7 +113,9 @@ for "_i" from 1 to _convoyLength do { [12] remoteExecCall ["btc_fnc_show_hint", [0, -2] select isDedicated]; private _vehs = (units _group) apply {assignedVehicle _x}; - btc_curator addCuratorEditableObjects [_vehs arrayIntersect _vehs, false]; + { + _x addCuratorEditableObjects [_vehs arrayIntersect _vehs, false]; + } forEach allCurators; }, [ _group, _pos2, -1, "MOVE", "SAFE", "RED", "LIMITED", "COLUMN", format ["['%1', 'FAILED'] call BIS_fnc_taskSetState;", _taskID], [0, 0, 0], _radius/2 @@ -125,7 +127,9 @@ for "_i" from 1 to _convoyLength do { private _captive = leader _group; removeAllWeapons _captive; private _vehs = (units _group) apply {assignedVehicle _x}; - btc_curator addCuratorEditableObjects [_vehs arrayIntersect _vehs, false]; + { + _x addCuratorEditableObjects [_vehs arrayIntersect _vehs, false]; + } forEach allCurators; private _surrender_taskID = _taskID + "su"; [[_surrender_taskID, _taskID], 24, objNull, typeOf _captive] call btc_task_fnc_create; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf index f66d684b4..ea8d4f31a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf @@ -113,7 +113,9 @@ for "_i" from 1 to _convoyLength do { [12] remoteExecCall ["btc_fnc_show_hint", [0, -2] select isDedicated]; private _vehs = (units _group) apply {assignedVehicle _x}; - btc_curator addCuratorEditableObjects [_vehs arrayIntersect _vehs, false]; + { + _x addCuratorEditableObjects [_vehs arrayIntersect _vehs, false]; + } forEach allCurators; }, [ _group, _pos2, -1, "MOVE", "SAFE", "RED", "LIMITED", "COLUMN", format ["['%1', 'FAILED'] call BIS_fnc_taskSetState;", _taskID], [0, 0, 0], _radius/2 From 5d843cecc16230d2cce9257ce7b6eeacaae26a5f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 3 Jan 2022 21:15:13 +0100 Subject: [PATCH 328/354] remove curator --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 8868b664e..dd7cbb923 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -924,8 +924,8 @@ class Mission { position[]={8255.6289,55.908749,9942.9063}; }; - name="btc_curator"; - init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_eh_fnc_CuratorObjectPlaced}];"; + name=""; + init=""; id=71; type="ModuleCurator_F"; class CustomAttributes diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm index 305dd3da8..9e3b70bd5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Enoch.sqm @@ -828,8 +828,8 @@ class Mission position[]={6924.2217,276.28888,943.07422}; angles[]={6.104322,0,6.2176785}; }; - name="btc_curator"; - init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_eh_fnc_CuratorObjectPlaced}];"; + name=""; + init=""; id=71; type="ModuleCurator_F"; class CustomAttributes diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm index 53b926702..179bd553a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission__Tanoa.sqm @@ -832,8 +832,8 @@ class Mission position[]={4159.5,14.44014,4017.5}; angles[]={0.023993526,0,0.47951955}; }; - name="btc_curator"; - init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_eh_fnc_CuratorObjectPlaced}];"; + name=""; + init=""; id=71; type="ModuleCurator_F"; class CustomAttributes From 683b2e241e4f8b25649bc82a489af18acaf3f7d0 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 3 Jan 2022 23:30:16 +0100 Subject: [PATCH 329/354] fix when intersect proxy --- .../core/fnc/city/getHouses.sqf | 2 +- .../core/fnc/common/getHouses.sqf | 5 +++++ =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf | 3 ++- .../core/fnc/mil/create_staticOnRoof.sqf | 7 +++---- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf index f4708a00c..cb1a4c90e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/getHouses.sqf @@ -27,7 +27,7 @@ params [ ["_radius", 100, [0]] ]; -([_city, _radius] call btc_fnc_getHouses) params ["_housesEntrerable", "_housesNotEntrerable"] +([_city, _radius] call btc_fnc_getHouses) params ["_housesEntrerable", "_housesNotEntrerable"]; _city setVariable ["btc_city_housesEntrerable", _housesEntrerable call BIS_fnc_arrayShuffle]; _city setVariable ["btc_city_housesNotEntrerable", _housesNotEntrerable call BIS_fnc_arrayShuffle]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf index 8d1ddcd42..05dd5cd41 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf @@ -33,6 +33,11 @@ private _notEnterable = []; { if (damage _x isNotEqualTo 0) then {continue;}; if ((_x buildingPos -1) isEqualTo []) then { + if ( + _x isKindOf "Lamps_base_F" || + {_x isKindOf "PowerLines_Small_base_F"} || + {_x isKindOf "PowerLines_Wires_base_F"} + ) then {continue;}; _notEnterable pushBack _x; } else { _enterable pushBack _x; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf index dfed3e333..5990cc710 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/roof.sqf @@ -27,6 +27,7 @@ params [ ]; private _positions = _house buildingPos -1; +private "_ASL"; if (_positions isEqualTo []) then { private _bbr = (0 boundingBoxReal _house); private _p1 = _bbr select 0; @@ -54,7 +55,7 @@ if (_surface isEqualTo []) then { // Try to find again the roof with house posit if (_surface isNotEqualTo []) then { private _intersect = _surface select 0; if ( - (_intersect select 2) isEqualTo _house && + _house in _intersect && {(_spawnPos select 2) + 0.5 < (_intersect select 0 select 2)} ) then { _spawnPos = (_intersect select 0) vectorAdd [0, 0, 0.2]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf index f16af7efd..e93103c02 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf @@ -34,11 +34,10 @@ while { {_houses isNotEqualTo []} } do { private _house = _houses deleteAt 0; - private _houseType = typeOf _house; if ( - !(_houseType isKindOf "Ruins") && - {!(_houseType isKindOf "Church")} && - {!("Chapel" in _houseType)} + !(_house isKindOf "Ruins") && + {!(_house isKindOf "Church")} && + {!("Chapel" in typeOf _house)} ) then { ([_house] call btc_fnc_roof) params ["_spawnPos", "_surfaceNormal"]; From 63c8cece4397b684e0cadca572ab8345b674f565 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 3 Jan 2022 23:59:15 +0100 Subject: [PATCH 330/354] avoid wall --- .../core/fnc/common/getHouses.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf index 05dd5cd41..cd062ccc2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/getHouses.sqf @@ -36,7 +36,8 @@ private _notEnterable = []; if ( _x isKindOf "Lamps_base_F" || {_x isKindOf "PowerLines_Small_base_F"} || - {_x isKindOf "PowerLines_Wires_base_F"} + {_x isKindOf "PowerLines_Wires_base_F"} || + {_x isKindOf "Wall"} ) then {continue;}; _notEnterable pushBack _x; } else { From bcfe0b23f59012127d060a207646084781b4ba78 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 4 Jan 2022 22:02:33 +0100 Subject: [PATCH 331/354] tweak angle --- .../core/fnc/mil/create_staticOnRoof.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf index e93103c02..d4555732c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_staticOnRoof.sqf @@ -41,7 +41,7 @@ while { ) then { ([_house] call btc_fnc_roof) params ["_spawnPos", "_surfaceNormal"]; - if (acos (_surfaceNormal vectorCos [0, 0, 1]) < 30) then { + if (acos (_surfaceNormal vectorCos [0, 0, 1]) < 37) then { [ASLToATL _spawnPos, btc_type_mg + btc_type_gl, (_house getDir _spawnPos) + (random [-15, 0, 15]), _surfaceNormal, _city] call btc_mil_fnc_create_static; _i = _i + 1; }; From 18f414618916dbd57763f5626b224106415800a7 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 4 Jan 2022 22:42:12 +0100 Subject: [PATCH 332/354] fix inconsistecy for number of ied or tag --- .../core/fnc/city/activate.sqf | 35 +++++++++---------- .../core/fnc/tag/initArea.sqf | 2 +- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 37563151d..0d1042277 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -57,7 +57,7 @@ private _ieds = _city getVariable ["ieds", []]; private _spawningRadius = _cachingRadius/2; if (!(_city getVariable ["initialized", false])) then { - private _ratio = (switch _type do { + private _numberOfIED = (switch _type do { case "Hill" : {1}; case "VegetationFir" : {1}; case "BorderCrossing" : {2}; @@ -71,23 +71,22 @@ if (!(_city getVariable ["initialized", false])) then { default {0}; }); - private _ratio_ied = random _ratio; if (_has_en) then { - _ratio_ied = _ratio_ied * 1.5; + _numberOfIED = _numberOfIED * 1.5; } else { - _ratio_ied = _ratio_ied * 0.75; + _numberOfIED = _numberOfIED * 0.75; }; if (_has_ho) then { - _ratio_ied = _ratio_ied * 2; + _numberOfIED = _numberOfIED * 2; }; if (btc_debug_log) then { - [format ["_ratio_ied %1 - p %2", _ratio_ied, _ratio_ied * btc_p_ied], __FILE__, [false]] call btc_debug_fnc_message; + [format ["_numberOfIED %1 - p %2", _numberOfIED, _numberOfIED * btc_p_ied], __FILE__, [false]] call btc_debug_fnc_message; }; - _ratio_ied = _ratio_ied * btc_p_ied; - if (_ratio_ied > 0) then { - [[_city, _spawningRadius, (_ratio_ied / 2) + (random _ratio_ied)], btc_ied_fnc_initArea] call btc_delay_fnc_exec; + _numberOfIED = _numberOfIED * btc_p_ied / 2; + if (_numberOfIED > 0) then { + [[_city, _spawningRadius, _numberOfIED + (random _numberOfIED)], btc_ied_fnc_initArea] call btc_delay_fnc_exec; }; _city setVariable ["initialized", true]; @@ -265,14 +264,14 @@ if !(_city getVariable ["has_suicider", false]) then { if (_city getVariable ["data_tags", []] isEqualTo []) then { private _tag_number = (switch _type do { - case "Hill" : {random 1}; - case "BorderCrossing" : {random 1}; - case "NameLocal" : {random 2.5}; - case "StrongpointArea" : {random 3}; - case "NameVillage" : {random 3.5}; - case "NameCity" : {random 5}; - case "NameCityCapital" : {random 6}; - case "Airport" : {random 6}; + case "Hill" : {1}; + case "BorderCrossing" : {1}; + case "NameLocal" : {2.5}; + case "StrongpointArea" : {3}; + case "NameVillage" : {3.5}; + case "NameCity" : {5}; + case "NameCityCapital" : {6}; + case "Airport" : {6}; case "NameMarine" : {0}; default {0}; }); @@ -285,7 +284,7 @@ if (_city getVariable ["data_tags", []] isEqualTo []) then { }; if (_tag_number > 0) then { - [[_city, _spawningRadius, _tag_number], btc_tag_fnc_initArea] call btc_delay_fnc_exec; + [[_city, _spawningRadius, _tag_number / 2 + random _tag_number / 2], btc_tag_fnc_initArea] call btc_delay_fnc_exec; }; }; [_city, btc_tag_fnc_create] call btc_delay_fnc_exec; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf index 077b327b1..84ef500cb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tag/initArea.sqf @@ -36,7 +36,7 @@ private _road = if (_roads isEqualTo []) then { } else { selectRandom _roads }; -for "_i" from 1 to (_n * 1.5) do { +for "_i" from 1 to _n do { private _sel_pos = [_city, _area] call CBA_fnc_randPos; private _sel_dir = 0; if !(surfaceIsWater _sel_pos) then { From b092f95c3d474bf62fa63422a6e48d7203d5e947 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 7 Jan 2022 18:20:38 +0100 Subject: [PATCH 333/354] StrongpointArea coulb be choose for strong point --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf | 2 +- .../core/fnc/side/capture_officer.sqf | 4 ++-- .../core/fnc/side/checkpoint.sqf | 2 +- .../core/fnc/side/chemicalLeak.sqf | 2 +- .../core/fnc/side/civtreatment.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf | 2 +- .../core/fnc/side/removeRubbish.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf | 2 +- 17 files changed, 19 insertions(+), 19 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf index f04493f1a..37c8716c3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/EMP.sqf @@ -27,7 +27,7 @@ params [ private _useful = btc_city_all select { !isNull _x && _x getVariable ["occupied", false] && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 800cb1126..6c643f0f4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf @@ -27,7 +27,7 @@ params [ //// Choose two Cities \\\\ private _usefuls = btc_city_all select { !isNull _x && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) && !(_x getVariable ["occupied", false]) }; if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; @@ -36,7 +36,7 @@ private _city2 = selectRandom _usefuls; private _area = (getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize"))/4; private _cities = btc_city_all select {!isNull _x && _x distance _city2 > _area}; _usefuls = _cities select { - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) && _x getVariable ["occupied", false] }; if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf index c0be831aa..65262ad90 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf @@ -28,7 +28,7 @@ params [ private _useful = btc_city_all select { !isNull _x && _x getVariable ["occupied", false] && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf index 222163135..d00c7dff7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/chemicalLeak.sqf @@ -27,7 +27,7 @@ params [ private _useful = btc_city_all select { !isNull _x && !(_x getVariable ["occupied", false]) && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!isNull _x});}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf index 422e562d4..8e3208b94 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf @@ -28,7 +28,7 @@ params [ private _useful = btc_city_all select { !isNull _x && !(_x getVariable ["occupied", false]) && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf index ea8d4f31a..097f7e6ac 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf @@ -27,7 +27,7 @@ params [ //// Choose two Cities \\\\ private _usefuls = btc_city_all select { !isNull _x && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) && !(_x getVariable ["occupied", false]) }; if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; @@ -36,7 +36,7 @@ private _city2 = selectRandom _usefuls; private _area = (getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize"))/4; private _cities = btc_city_all select {!isNull _x && _x distance _city2 > _area}; _usefuls = _cities select { - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) && + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) && _x getVariable ["occupied", false] }; if (_usefuls isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf index 06836b18c..9b47cea63 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf @@ -27,7 +27,7 @@ params [ private _useful = btc_city_all select { !isNull _x && _x getVariable ["occupied", false] && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf index 56cdaeb31..64dc04c71 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf @@ -29,7 +29,7 @@ params [ private _useful = btc_city_all select { !isNull _x && _x getVariable ["occupied", false] && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf index 8fd24a312..65456b78d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf @@ -28,7 +28,7 @@ params [ private _useful = btc_city_all select { !isNull _x && _x getVariable ["occupied", false] && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf index 58b7b1b92..4981d4a21 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf @@ -28,7 +28,7 @@ params [ private _useful = btc_city_all select { !isNull _x && _x getVariable ["occupied", false] && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf index 5c67a85f7..c085a58ce 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf @@ -26,7 +26,7 @@ params [ private _useful = btc_city_all select { !isNull _x && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!isNull _x});}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf index 992cae3e7..4ff1de6c0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/pandemic.sqf @@ -27,7 +27,7 @@ params [ private _minNumberOfSubTask = 2; private _useful = btc_city_all select { !isNull _x && - {_x getVariable ["type", ""] != "NameMarine"} && + {!(_x getVariable ["type", ""] in ["NameMarine", "StrongpointArea"])} && {!(_x getVariable ["active", false])} && { private _city = _x; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf index b58ed4955..774812df1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/removeRubbish.sqf @@ -27,7 +27,7 @@ params [ private _minNumberOfSubTask = 2; private _useful = btc_city_all select { !isNull _x && - {_x getVariable ["type", ""] != "NameMarine"} && + {!(_x getVariable ["type", ""] in ["NameMarine", "StrongpointArea"])} && { private _city = _x; ({ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index c24dc1a85..ec3c34917 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -28,7 +28,7 @@ params [ private _useful = btc_city_all select { !isNull _x && _x getVariable ["occupied", false] && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf index e168353ba..99f6da027 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf @@ -26,7 +26,7 @@ params [ private _useful = btc_city_all select { !isNull _x && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) then {_useful = + (btc_city_all select {!isNull _x});}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf index 7740ccac1..75e4887bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf @@ -27,7 +27,7 @@ params [ private _useful = btc_city_all select { !isNull _x && _x getVariable ["occupied", false] && - !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine"]) + !((_x getVariable ["type", ""]) in ["NameLocal", "Hill", "NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf index f567aaf6c..386b93821 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf @@ -26,7 +26,7 @@ params [ private _useful = btc_city_all select { !isNull _x && - _x getVariable ["type", ""] != "NameMarine" + !((_x getVariable ["type", ""]) in ["NameMarine", "StrongpointArea"]) }; if (_useful isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; private _city = selectRandom _useful; From 3e0c4aeb259496ae0a269a0e565c96e0ea236df8 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 7 Jan 2022 20:16:14 +0100 Subject: [PATCH 334/354] Fix APC not in layer --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 132 +++++++++--------- 1 file changed, 65 insertions(+), 67 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 1368b1678..402875877 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -16,11 +16,11 @@ class EditorData }; class LayerIndexProvider { - nextID=3; + nextID=5; }; class Camera { - pos[]={8456.0693,183.07834,10202.41}; + pos[]={8441.1865,179.74254,10200.943}; dir[]={-0.71679336,-0.51150566,-0.47391981}; up[]={-0.42668703,0.85927457,-0.28211212}; aside[]={-0.55152744,4.9441587e-007,0.83417183}; @@ -39,12 +39,10 @@ addons[]= "A3_Modules_F_Curator_Curator", "A3_Characters_F_Enoch", "A3_Characters_F_Mark", - "A3_Armor_F_Beta_APC_Wheeled_01", - "ace_realisticnames", - "ace_vehicle_damage", "A3_Props_F_Enoch_Military_Decontamination", "A3_Signs_F", "A3_Air_F_Heli_Heli_Transport_03", + "ace_realisticnames", "A3_Soft_F_Gamma_Truck_01", "A3_Soft_F_Exp_Truck_01", "ace_refuel", @@ -54,10 +52,12 @@ addons[]= "A3_Soft_F_Beta_Truck_01", "A3_Soft_F_MRAP_01", "A3_Armor_F_Beta_APC_Tracked_01", + "ace_vehicle_damage", "A3_Soft_F_Exp_LSV_01", "A3_Air_F_Beta_Heli_Attack_01", "A3_Soft_F_Offroad_01", - "A3_Air_F_Beta_Heli_Transport_01" + "A3_Air_F_Beta_Heli_Transport_01", + "A3_Armor_F_Beta_APC_Wheeled_01" }; class AddonsMetaData { @@ -128,96 +128,96 @@ class AddonsMetaData url="https://www.arma3.com"; }; class Item9 - { - className="A3_Armor_F_Beta"; - name="Arma 3 Beta - Armored Land Vehicles"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; - }; - class Item10 - { - className="ace_vehicle_damage"; - name="ACE3 - Vehicle Damage"; - author="ACE-Team"; - url="http://ace3mod.com/"; - }; - class Item11 { className="A3_Props_F_Enoch"; name="Arma 3 Contact Platform - Decorative and Mission Objects"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item12 + class Item10 { className="A3_Signs_F"; name="Arma 3 - Signs"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item13 + class Item11 { className="A3_Air_F_Heli"; name="Arma 3 Helicopters - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item14 + class Item12 { className="A3_Soft_F_Gamma"; name="Arma 3 - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item15 + class Item13 { className="A3_Soft_F_Exp"; name="Arma 3 Apex - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item16 + class Item14 { className="ace_refuel"; name="ACE3 - Refuel"; author="ACE-Team"; url="http://ace3mod.com/"; }; - class Item17 + class Item15 { className="ace_repair"; name="ACE3 - Repair"; author="ACE-Team"; url="http://ace3mod.com/"; }; - class Item18 + class Item16 { className="ace_rearm"; name="ACE3 - Rearm"; author="ACE-Team"; url="http://ace3mod.com/"; }; - class Item19 + class Item17 { className="A3_Soft_F_Enoch"; name="Arma 3 Contact Platform - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item20 + class Item18 { className="A3_Soft_F_Beta"; name="Arma 3 Beta - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item21 + class Item19 { className="A3_Soft_F"; name="Arma 3 Alpha - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item20 + { + className="A3_Armor_F_Beta"; + name="Arma 3 Beta - Armored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item21 + { + className="ace_vehicle_damage"; + name="ACE3 - Vehicle Damage"; + author="ACE-Team"; + url="http://ace3mod.com/"; + }; class Item22 { className="A3_Air_F_Beta"; @@ -245,26 +245,26 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { class data { - singleType="SCALAR"; - value=1; + singleType="ARRAY"; }; }; }; class Attribute1 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { class data { - singleType="ARRAY"; + singleType="SCALAR"; + value=1; }; }; }; @@ -512,7 +512,7 @@ class Mission }; class Entities { - items=47; + items=46; class Item0 { dataType="Marker"; @@ -867,8 +867,6 @@ class Mission { position[]={8255.6289,55.908749,9942.9063}; }; - name=""; - init=""; id=71; type="ModuleCurator_F"; class CustomAttributes @@ -1827,24 +1825,6 @@ class Mission type="HeadlessClient_F"; }; class Item36 - { - dataType="Object"; - class PositionInfo - { - position[]={8295.166,78.402374,10052.533}; - angles[]={0,5.7184839,0}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - }; - id=170; - type="B_APC_Wheeled_01_cannon_F"; - atlOffset=-0.077003479; - }; - class Item37 { dataType="Object"; class PositionInfo @@ -1891,7 +1871,7 @@ class Mission nAttributes=2; }; }; - class Item38 + class Item37 { dataType="Object"; class PositionInfo @@ -1908,7 +1888,7 @@ class Mission type="Tarp_01_Large_Black_F"; atlOffset=7.6293945e-006; }; - class Item39 + class Item38 { dataType="Object"; class PositionInfo @@ -1925,7 +1905,7 @@ class Mission type="RoadCone_L_F"; atlOffset=7.6293945e-006; }; - class Item40 + class Item39 { dataType="Object"; class PositionInfo @@ -1942,7 +1922,7 @@ class Mission type="RoadCone_L_F"; atlOffset=5.3405762e-005; }; - class Item41 + class Item40 { dataType="Object"; class PositionInfo @@ -1959,7 +1939,7 @@ class Mission type="RoadCone_L_F"; atlOffset=6.1035156e-005; }; - class Item42 + class Item41 { dataType="Object"; class PositionInfo @@ -1976,7 +1956,7 @@ class Mission type="RoadCone_L_F"; atlOffset=0.00016784668; }; - class Item43 + class Item42 { dataType="Logic"; class PositionInfo @@ -1990,7 +1970,7 @@ class Mission type="HeadlessClient_F"; atlOffset=-0.59116364; }; - class Item44 + class Item43 { dataType="Logic"; class PositionInfo @@ -2003,7 +1983,7 @@ class Mission id=245; type="HeadlessClient_F"; }; - class Item45 + class Item44 { dataType="Layer"; name="btc_veh_respawnable"; @@ -2043,13 +2023,13 @@ class Mission id=246; atlOffset=-0.41073608; }; - class Item46 + class Item45 { dataType="Layer"; name="btc_vehicles"; class Entities { - items=19; + items=20; class Item0 { dataType="Comment"; @@ -2616,9 +2596,27 @@ class Mission nAttributes=1; }; }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={8295.166,78.402374,10052.533}; + angles[]={0,5.7184839,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + }; + id=170; + type="B_APC_Wheeled_01_cannon_F"; + atlOffset=-0.077003479; + }; }; id=247; - atlOffset=-2.0925522; + atlOffset=-1.5446167; }; }; }; From fa7083bd8f84e5836158d5b3cf7d415a690d2080 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 12 Jan 2022 12:39:41 +0100 Subject: [PATCH 335/354] Sometimes no road are found which trow an error --- .../core/fnc/side/civtreatment.sqf | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf index 8e3208b94..89e41dd08 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf @@ -3,7 +3,7 @@ Function: btc_side_fnc_civtreatment Description: - Fill me when you edit me ! + Heal a civilian. Parameters: _taskID - Unique task ID. [String] @@ -12,7 +12,7 @@ Returns: Examples: (begin example) - [] spawn btc_side_fnc_civtreatment; + [false, "btc_side_fnc_civtreatment"] spawn btc_side_fnc_create; (end) Author: @@ -36,25 +36,25 @@ private _pos = getPos _city; //// Choose spawn in house or on road \\\\ private _r = random 2; -private _vehpos = []; -if ( _r < 1) then { +private _objects = []; +if ( _r < 1) then { private _roads = _pos nearRoads 200; - _roads = _roads select {isOnRoad _x}; - if (_roads isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; - _pos = getPos (selectRandom _roads); - _vehpos = [_pos, 10] call btc_fnc_randomize_pos; + _objects = _roads select {isOnRoad _x}; } else { - _houses = ([[_pos select 0, _pos select 1, 0], 200] call btc_fnc_getHouses) select 0; - _pos = selectRandom ((selectRandom _houses) buildingPos -1); - _vehpos = [_pos select 0, _pos select 1, (_pos select 2) + 0.1]; + _objects = ([[_pos select 0, _pos select 1, 0], 200] call btc_fnc_getHouses) select 0; }; +if (_objects isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; + //// Create civ on _pos \\\\ private _veh = objNull; private _fx = objNull; if (_r < 1) then { + _pos = getPos (selectRandom _objects); + private _vehPos = [_pos, 10] call btc_fnc_randomize_pos; + private _veh_type = selectRandom btc_civ_type_veh; - _veh = createVehicle [_veh_type, _vehpos, [], 0, "NONE"]; + _veh = createVehicle [_veh_type, _vehPos, [], 0, "NONE"]; _veh setDir (random 360); _veh setDamage 0.7; //// Random wheel hit \\\\ @@ -68,8 +68,11 @@ if (_r < 1) then { _fx = "test_EmptyObjectForSmoke" createVehicle (getPosATL _veh); _fx attachTo [_veh, [0, 0, 0]]; } else { + _pos = selectRandom ((selectRandom _objects) buildingPos -1); + private _phonePos = [_pos select 0, _pos select 1, (_pos select 2) + 0.1]; + _phone_type = selectRandom btc_type_phone; - _veh = createVehicle [_phone_type, _vehpos, [], 0, "NONE"]; + _veh = createVehicle [_phone_type, _phonePos, [], 0, "NONE"]; _veh setDir (random 360); _fx = objNull; }; From ca6b4d90867e35c9584548b33e3971159ff1cc72 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 12 Jan 2022 13:44:18 +0100 Subject: [PATCH 336/354] Some city don't have road which give free reputation --- .../core/fnc/side/checkpoint.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf index 65262ad90..605c5b525 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf @@ -43,13 +43,15 @@ private _radius = _city getVariable ["cachingRadius", 0]; private _boxes = []; private _composition = []; +private _blacklist = []; for "_i" from 1 to (1 + round random 2) do { //// Choose a road \\\\ private _pos = [getPos _city, _radius/4] call btc_fnc_randomize_pos; private _roads = _pos nearRoads 200; - _roads = _roads select {isOnRoad _x}; - if (_roads isEqualTo []) exitWith {_boxes pushBack objNull}; + _roads = (_roads select {isOnRoad _x}) - _blacklist; + if (_roads isEqualTo []) then {continue}; private _road = selectRandom _roads; + _blacklist pushBack _road; _pos = getPos _road; private _direction = [_road] call btc_fnc_road_direction; @@ -111,6 +113,8 @@ for "_i" from 1 to (1 + round random 2) do { _boxes pushBack _boxe; }; +if (_boxes isEqualTo []) then {[_taskID, "CANCELED"] call btc_task_fnc_setState;}; + waitUntil {sleep 5; _taskID call BIS_fnc_taskCompleted || _boxes select {alive _x} isEqualTo [] From b0fd8e9a18aade8601b29a097b1f7496c2d5f085 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 12 Jan 2022 14:23:54 +0100 Subject: [PATCH 337/354] Add by default two checkpoints --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf index 605c5b525..78caecefe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf @@ -44,7 +44,7 @@ private _radius = _city getVariable ["cachingRadius", 0]; private _boxes = []; private _composition = []; private _blacklist = []; -for "_i" from 1 to (1 + round random 2) do { +for "_i" from 1 to (2 + round random 2) do { //// Choose a road \\\\ private _pos = [getPos _city, _radius/4] call btc_fnc_randomize_pos; private _roads = _pos nearRoads 200; From 306fcb293fe3f0b14313bd91f383e9f4b1293cb6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 12 Jan 2022 15:53:21 +0100 Subject: [PATCH 338/354] FIX: Rescue give free reputation on mission start --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf index ec3c34917..be1acb7ca 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf @@ -41,6 +41,8 @@ _pos = [_pos, 0, 50, 13, 0, 60 * (pi / 180), 0] call btc_fnc_findsafepos; _city setVariable ["spawn_more", true]; +waitUntil {!isNil "btc_vehicles"}; // Wait for loading vehicles from db + private _heli_type = typeOf selectRandom ((btc_vehicles + btc_veh_respawnable) select { _x isKindOf "air" && {!(unitIsUAV _x)} From a741be2e7fd830555a207bef463b2b9674b3044a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 14 Jan 2022 18:42:24 +0100 Subject: [PATCH 339/354] fix Some building have only one position https://github.com/Vdauphin/HeartsAndMinds/pull/1042 --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf | 3 ++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf index 65456b78d..b4e8a1c7b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf @@ -37,6 +37,7 @@ private _city = selectRandom _useful; //// Randomise position \\\\ private _houses = ([getPos _city, 100] call btc_fnc_getHouses) select 0; +_houses = _houses select {count (_x buildingPos -1) > 1}; // Building with low enterable positions are not interesting if (_houses isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; _houses = _houses apply {[count (_x buildingPos -1), _x]}; _houses sort false; @@ -49,7 +50,7 @@ if (count _houses > 3) then { private _buildingPos = _house buildingPos -1; _buildingPos = _buildingPos select [0, count _buildingPos min 20]; private _pos_number = count _buildingPos - 1; -private _pos = _buildingPos select (_pos_number - round random 1); +private _pos = _buildingPos select (_pos_number - ((round random 1) min _pos_number)); _city setVariable ["spawn_more", true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf index 4981d4a21..7c883110a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/kill.sqf @@ -37,6 +37,7 @@ private _city = selectRandom _useful; //// Randomise position \\\\ private _houses = ([getPos _city, 100] call btc_fnc_getHouses) select 0; +_houses = _houses select {count (_x buildingPos -1) > 1}; // Building with low enterable positions are not interesting if (_houses isEqualTo []) exitWith {[] spawn btc_side_fnc_create;}; _houses = _houses apply {[count (_x buildingPos -1), _x]}; From c58ef79406369ba21c0caaa855c08adc9efab7bc Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 15 Jan 2022 16:16:41 +0100 Subject: [PATCH 340/354] Missing picture claymore in doc door --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 75af2e15f..47773996c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -291,7 +291,7 @@ 上锁的门 - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>House doors:</marker><br/> Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. <br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Break locked door:</marker><br/> You can still enter by breaking door lock with a wirecutter. <img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> Or by using explosive. + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>House doors:</marker><br/> Civilian house door can be close. Depend on reputation level, civilian will lock their door and stay inside. Under low, all doors are locked, above normal, all door are unlocked. <br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Break locked door:</marker><br/> You can still enter by breaking door lock with a wirecutter. <img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> Or by using explosive. <img image='\A3\EditorPreviews_F\Data\CfgVehicles\Claymore_F.jpg' width='355' height='200'/> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>屋门:</marker><br/> 平民居住的房屋可能会锁门。基于声誉水平, 平民将会锁上他们的屋门并待在屋里。在声誉低时, 所有屋门均会上锁, 在声誉一般时, 所有屋门均不会上锁。<br/><br/> <img image='\A3\Ui_f\data\IGUI\Cfg\Actions\open_door_ca.paa' width='20' height='20'/> <marker name='blufor_base'>撬锁:</marker><br/> 你仍然可以使用剪线钳来撬锁, 从而进入房屋。<img image='\z\ace\addons\logistics_wirecutter\ui\item_wirecutter_ca.paa' width='355' height='200'/> From 45be6eb840c7c7125b53abb2dbb9b16217bac1f8 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 15 Jan 2022 22:50:14 +0100 Subject: [PATCH 341/354] improve readability of debug --- .../core/fnc/city/trigger_player_side.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf index 5c48ae1a9..abc9a7ee6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf @@ -56,6 +56,10 @@ if (btc_debug) then { _city setVariable ["marker", _marker]; private _marke = createMarker [format ["locn_%1", _id], _position]; - _marke setMarkerType "mil_dot"; - _marke setMarkerText format ["loc_%3 %1 %2 - [%4] - [%5]", _name, _type, _id, _has_en, _city getVariable ["hasbeach", "empty"]]; + _marke setMarkerType "Contact_dot1"; + private _spaces = ""; + for "_i" from 0 to count _name -1 do { + _spaces = _spaces + " "; + }; + _marke setMarkerText format [_spaces + "%1 ID %2 - [%3]", _type, _id, _city getVariable ["hasbeach", "empty"]]; }; From 697f39be73af6471a80c1792b3bd0a25b4f79b2c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 Jan 2022 11:09:53 +0100 Subject: [PATCH 342/354] Add: ACE Flags support --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf index 46fafedd9..297c80c50 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf @@ -116,3 +116,8 @@ inGameUISetEventHandler ["Action", '["btc_inGameUISetEventHandler", _this] call [{!isNull (findDisplay 46)}, { (findDisplay 46) displayAddEventHandler ["MouseButtonDown", btc_int_fnc_horn]; }] call CBA_fnc_waitUntilAndExecute; + +["ace_marker_flags_placed", { + params ["_unit", "_flag"]; + _flag remoteExecCall ["btc_log_fnc_init", 2]; +}] call CBA_fnc_addEventHandler; From 31c88e1418f59f518cdc2827e08ca8cc3698ef93 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 Jan 2022 12:51:37 +0100 Subject: [PATCH 343/354] add corect marker text after db load --- .../core/fnc/city/trigger_player_side.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 1 - =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf index abc9a7ee6..9c59ad6f2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf @@ -61,5 +61,5 @@ if (btc_debug) then { for "_i" from 0 to count _name -1 do { _spaces = _spaces + " "; }; - _marke setMarkerText format [_spaces + "%1 ID %2 - [%3]", _type, _id, _city getVariable ["hasbeach", "empty"]]; + _marke setMarkerText format [_spaces + "%1 ID %2 - %3", _type, _id, _city getVariable ["hasbeach", "empty"]]; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index be37de50c..5910d3be9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -57,7 +57,6 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi } else { _marker setMarkerColor "colorGreen"; }; - _marker setMarkerText format ["loc_%3 %1 %2 - [%4]", _city getVariable "name", _city getVariable "type", _id, _occupied]; }; if (btc_debug_log) then { [format ["ID: %1 - IsOccupied %2", _id, _occupied], __FILE__, [false]] call btc_debug_fnc_message; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 958234d88..b6d9ce4d3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -55,7 +55,6 @@ private _cities_status = +(profileNamespace getVariable [format ["btc_hm_%1_citi } else { _marker setMarkerColor "colorGreen"; }; - _marker setMarkerText format ["loc_%3 %1 %2 - [%4]", _city getVariable "name", _city getVariable "type", _id, _occupied]; }; if (btc_debug_log) then { [format ["ID: %1 - IsOccupied %2", _id, _occupied], __FILE__, [false]] call btc_debug_fnc_message; From 073fc71f407e066738802be7c9cebeba0e1f80ef Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 Jan 2022 19:40:40 +0100 Subject: [PATCH 344/354] Tweak uniform protection --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf index af04d8f9a..4a4a3eb17 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/chem/damage.sqf @@ -75,13 +75,13 @@ if ( _protection = _protection + 0.1; }; if (_uniform isNotEqualTo "") then { - _protection = _protection + 0.5; + _protection = _protection + 0.4; if ( [ "cbrn" ] findIf {_x in _uniform} > -1 ) then { - _protection = _protection + 0.1; + _protection = _protection + 0.2; }; }; From 25ab6427dfa133dc74796d3e0fea65ce3d09d092 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 17 Jan 2022 12:39:21 +0100 Subject: [PATCH 345/354] Advise when the vehicle is not align with the towing vehicle --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf | 9 ++++++--- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf index 6bb548392..b7a7373b6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/tow/check.sqf @@ -44,11 +44,14 @@ private _model_front_towed = ([_towed] call btc_tow_fnc_hitch_points) select 0; private _pos_rearTower = _tower modelToWorld _model_rear_tower; private _pos_frontTowed = _towed modelToWorld _model_front_towed; +if (_pos_rearTower distance _pos_frontTowed > 5) exitWith { + (localize "STR_BTC_HAM_TOW_TFAR") call CBA_fnc_notify; + false +}; if ( - _pos_rearTower distance _pos_frontTowed > 5 || - {!([_pos_rearTower, ((getDir _tower) + 180) mod 360, 100, _pos_frontTowed] call BIS_fnc_inAngleSector)} + !([_pos_rearTower, ((getDir _tower) + 180) mod 360, 100, _pos_frontTowed] call BIS_fnc_inAngleSector) ) exitWith { - (localize "STR_BTC_HAM_TOW_TFAR") call CBA_fnc_notify; + (localize "STR_BTC_HAM_TOW_NOTA") call CBA_fnc_notify; false }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 75af2e15f..3074f48a3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -2479,6 +2479,9 @@ 距离太远! Trop loin ! + + Not align! + This vehicle is already attached to another! Este vehículo ya está unido a otro! From 4ff68da8b636666c3c9164cbef7911738bd0924a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 20 Jan 2022 18:27:41 +0100 Subject: [PATCH 346/354] Tweak the number of enemy --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 36674c63e..6fd9e66bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -121,7 +121,7 @@ if (_data_units isNotEqualTo []) then { [ _city, [_spawningRadius, _spawningRadius/3] select (_i <= _numberOfHouseGroup), - 2 + round random 1, + 2 + round random 2, [["PATROL", "SENTRY"] selectRandomWeighted [0.7, 0.3], "HOUSE"] select (_i <= _numberOfHouseGroup) ] call btc_mil_fnc_create_group; }; From 7de5b7b5e0f8c065dda5d9e3e81a660f4f732e28 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 23 Jan 2022 10:51:53 +0100 Subject: [PATCH 347/354] Update the release drafter to reflect new mods list --- .github/release-drafter.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 0bb197ba9..76a1eb831 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -7,17 +7,18 @@ change-template: '- $TITLE (@$AUTHOR).' template: | Requires [ACE3](https://steamcommunity.com/workshop/filedetails/?id=463939057). - _[Optionals :](https://github.com/Vdauphin/HeartsAndMinds/files/7565267/All_Hearts_and_Minds_mods.zip)_ - - [CUP units and vehicles mod](https://forums.bistudio.com/topic/179326-community-upgrade-project-cup/), [Community Factions Project](https://steamcommunity.com/workshop/filedetails/?id=1369691841), [Cold War Rearmed III](https://steamcommunity.com/sharedfiles/filedetails/?id=2316343124), + _[Optionals :](https://gist.github.com/Vdauphin/0c33ac9ed407ff97f7e03c0b40e52713)_ + - [CUP units and vehicles mod](https://forums.bistudio.com/topic/179326-community-upgrade-project-cup/), [Community Factions Project](https://steamcommunity.com/workshop/filedetails/?id=1369691841), [Cold War Rearmed III](https://steamcommunity.com/sharedfiles/filedetails/?id=2316343124) - [RHS USAF](http://www.rhsmods.org/), [RHS AFRF](http://www.rhsmods.org/), [RHS GREF](http://www.rhsmods.org/), [RHS SAF](http://www.rhsmods.org/), [CSLA Iron Curtain CDLC](https://store.steampowered.com/app/1294440/Arma_3_Creator_DLC_CSLA_Iron_Curtain/) - - [RDS A2 Civilian Pack mod](https://forums.bistudio.com/topic/170165-rds-a2-civilian-pack/), - - [3CB Factions](https://steamcommunity.com/sharedfiles/filedetails/?id=1673456286), [Central African Rebels [SFF-R]](https://steamcommunity.com/sharedfiles/filedetails/?id=879843800), [Taliban Force 2021 (RHS & 3CB)](https://steamcommunity.com/workshop/filedetails/?id=2588430396), [Western Sahara CDLC](https://steamcommunity.com/sharedfiles/filedetails/?id=2636962953), - - [FAP Units (Foes & Allies Pack)](https://steamcommunity.com/sharedfiles/filedetails/?id=656514091), [VETERAN](https://steamcommunity.com/workshop/filedetails/?id=1774055232), [GLOBAL MOBILIZATION - COLD WAR GERMANY CDLC](https://store.steampowered.com/app/1042220/Arma_3_Creator_DLC_Global_Mobilization__Cold_War_Germany/) + - [RDS A2 Civilian Pack mod](https://forums.bistudio.com/topic/170165-rds-a2-civilian-pack/) + - [Ageis](https://steamcommunity.com/workshop/filedetails/?id=949252631), [Western Sahara CDLC](https://steamcommunity.com/sharedfiles/filedetails/?id=2636962953) + - [3CB Factions](https://steamcommunity.com/sharedfiles/filedetails/?id=1673456286), [Central African Rebels [SFF-R]](https://steamcommunity.com/sharedfiles/filedetails/?id=879843800), [Taliban Force 2021 (RHS & 3CB)](https://steamcommunity.com/workshop/filedetails/?id=2588430396) + - [FAP Units (Foes & Allies Pack)](https://steamcommunity.com/sharedfiles/filedetails/?id=656514091), [GLOBAL MOBILIZATION - COLD WAR GERMANY CDLC](https://store.steampowered.com/app/1042220/Arma_3_Creator_DLC_Global_Mobilization__Cold_War_Germany/) - [The Unsung Vietnam War Mod](https://steamcommunity.com/workshop/filedetails/?id=943001311), [S.O.G. PRAIRIE FIRE CDLC](https://store.steampowered.com/app/1227700/Arma_3_Creator_DLC_SOG_Prairie_Fire/) - - [Iron Front 3 Lite](https://steamcommunity.com/sharedfiles/filedetails/?id=878977835), [Face of War WW2](https://steamcommunity.com/sharedfiles/filedetails/?id=891433622), - - [Operation: TREBUCHET](https://steamcommunity.com/sharedfiles/filedetails/?id=769440155), [Operation: TREBUCHET First Contact](https://steamcommunity.com/workshop/filedetails/?id=1572627279). + - [Iron Front 3 Lite](https://steamcommunity.com/sharedfiles/filedetails/?id=2648308937), [Face of War WW2](https://steamcommunity.com/sharedfiles/filedetails/?id=891433622) + - [Operation: TREBUCHET](https://steamcommunity.com/sharedfiles/filedetails/?id=769440155), [JM's Long Live The Empire](https://steamcommunity.com/sharedfiles/filedetails/?id=2588430396), [Scion Conflict](https://steamcommunity.com/sharedfiles/filedetails/?id=2478080991), [Operation: TREBUCHET First Contact](https://steamcommunity.com/workshop/filedetails/?id=1572627279) - [Changelog](https://github.com/Vdauphin/HeartsAndMinds/milestone/74?closed=1): + [Changelog](https://github.com/Vdauphin/HeartsAndMinds/milestone/64?closed=1): - Mission.sqm/Param.hpp not changed. $CHANGES \ No newline at end of file From 0c75beedc38762f4529e91c67a2f35887d092e66 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 23 Jan 2022 11:04:33 +0100 Subject: [PATCH 348/354] New mod list --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 6 +++--- README.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 035db05ef..72373b157 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -595,7 +595,7 @@ btc_lift_HUD_y = 0.848; btc_hq = objNull; // Get all faction from mod there are currently running //copyToClipboard str (["EN"] call btc_fnc_get_class); -private _allfaction = ["CSLA","FIA","US85","AFR_ARMY","ARA_ARMY","ARL_ARMY","IND_F","OPF_F","OPF_G_F","IND_G_F","BLU_G_F","BLU_F","IND_C_F","IND_E_F","IND_L_F","CEC_ARMY","CFP_B_CAF","CFP_O_IQARMY","CFP_B_ILIDF","CFP_B_NAARMY","CFP_O_SDMILITIA","CFP_O_ABUSAYYAF","CFP_B_AFGPOLICE","CFP_O_ALQAEDA","CFP_I_ALNUSRA","CFP_O_ALSHABAAB","CFP_O_BOKOHARAM","CFP_O_CFREBELS","CFP_O_HAMAS","CFP_O_HEZBOLLAH","CFP_B_IQARMY","CFP_B_IQPOLICE","CFP_O_IRARMY","CFP_O_IS","CFP_I_IS","CFP_B_KEARMY","CFP_B_MLARMY","CFP_B_PESH","CFP_O_SOREBEL","CFP_I_SSARMY","CFP_O_SSREBELS","CFP_I_SDREBELS","CFP_I_SDREBELSRF","CFP_O_SDARMY","CFP_O_SYARMY","CFP_O_TBAN","CFP_I_TUAREG","CFP_B_UGARMY","CFP_B_USRANGERS_WDL","CFP_B_USSEALS_DES","CFP_B_USSEALS_WDL","CFP_B_YPG","CFP_O_ANSARALLAH","CFP_B_CZARMY_WDL","CFP_I_WESTULTRA","CUP_B_CZ","CUP_B_GB","CUP_B_CDF","CUP_O_CHDKZ","CUP_STATIC_SHIPS","CUP_I_NAPA","CUP_I_RACS","CUP_B_RNZN","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","CUP_I_UN","CUP_B_US_ARMY","CUP_B_USMC","CUP_B_GER","CUP_B_HIL","CUP_I_PMC_ION","CFP_B_GBARMY_WDL","CFP_B_DEARMY_WDL","CFP_O_RUARMY_DES","CUP_I_TK_GUE","CFP_B_USMC_DES","CFP_B_CDF_SNW","CFP_O_WAGNER","CFP_I_WAGNER","CFP_O_WAGNER_WIN","CFP_I_WAGNER_WIN","CFP_O_WAGNER_WDL","CFP_I_WAGNER_WDL","CFP_B_USARMY_1991_DES","CFP_B_USARMY_1991_WDL","CFP_B_USARMY_2003_DES","CFP_B_USARMY_2003_WDL","CFP_O_RUMVD","CFP_B_USCIA","CFP_B_USARMY_WDL","CFP_B_AFARMY","CFP_O_CHDKZ_SNW","CWR3_FACTION_FIA","CWR3_FACTION_RUS","CWR3_FACTION_USA","OPF_R_F","BLU_CTRG_F","OPF_GEN_F","BLU_GEN_F","BLU_T_F","CFP_O_NKARMY","FAP_ARMY","FOW_HEER","FOW_IJA_NAS","FOW_UK_FAA","FOW_USA_NAVY","FOW_WAFFENSS","FOW_AUS","FOW_LUFTWAFFE","FOW_HI","FOW_UK","FOW_USA_P","FOW_IJA","FOW_USA","FOW_USMC","GAL_ARMY","GANGBLUE_ARMY","GANGRED_ARMY","GM_FC_DK","GM_FC_GC_BGS","GM_FC_GC","GM_FC_PL","GM_FC_GE_BGS","GM_FC_GE","O_TALIBAN","IBR_ZETABORN_FACTION","IBR_ROBOTFAC","LIB_RKKA_W","LIB_WEHRMACHT_W","LIB_ARR","LIB_MKHL","LIB_RBAF","LIB_ACI","LIB_GUER","LIB_RAAF","LIB_RKKA","LIB_WEHRMACHT","LIB_US_101AB","LIB_US_82AB","LIB_UK_AB_W","LIB_UK_ARMY_W","LIB_US_ARMY_W","LIB_FSJ","LIB_UK_AB","LIB_UK_ARMY","LIB_UK_DR","LIB_US_ARMY","LIB_DAK","LIB_NKVD","LIB_US_RANGERS","LIB_NAC","LIB_FFI","BLU_UN_LXWS","BLU_W_F","MOL_ARMY","OPF_T_F","OPTRE_PD","OPTRE_FC_COVENANT","OPTRE_INS","OPTRE_UNSC","RHS_FACTION_VMF","RHS_FACTION_MSV","RHS_FACTION_RVA","RHS_FACTION_TV","RHS_FACTION_VDV","RHS_FACTION_VPVO","RHS_FACTION_VV","RHS_FACTION_VVS_C","RHS_FACTION_VVS","RHSGREF_FACTION_CDF_AIR_B","RHSGREF_FACTION_CDF_AIR","RHSSAF_FACTION_ARMY","RHSSAF_FACTION_ARMY_OPFOR","RHSSAF_FACTION_AIRFORCE_OPFOR","RHSSAF_FACTION_AIRFORCE","RHSSAF_FACTION_UN","RHS_FACTION_USARMY_D","RHS_FACTION_USARMY_WD","RHS_FACTION_USN","RHS_FACTION_SOCOM","RHS_FACTION_USAF","RHS_FACTION_USMC_D","RHS_FACTION_USMC_WD","RHSGREF_FACTION_UN","RHSGREF_FACTION_NATIONALIST","RHSGREF_FACTION_TLA","RHSGREF_FACTION_TLA_G","RHSGREF_FACTION_CDF_GROUND","RHSGREF_FACTION_CDF_GROUND_B","I_ARVN","B_MACV","O_PAVN","O_VC","SG_STURM","SG_STURMPANZER","UK3CB_AAF_O","UK3CB_AAF_I","UK3CB_AAF_B","UK3CB_ANA_B","UK3CB_ANP_B","UK3CB_ADA_O","UK3CB_ADA_I","UK3CB_ADA_B","UK3CB_ADR_O","UK3CB_ADR_I","UK3CB_ADR_B","UK3CB_ADG_O","UK3CB_ADG_I","UK3CB_ADG_B","UK3CB_ADC_O","UK3CB_ADC_I","UK3CB_ADC_B","UK3CB_ADE_O","UK3CB_ADE_I","UK3CB_ADM_O","UK3CB_ADM_I","UK3CB_ADM_B","UK3CB_ADP_O","UK3CB_ADP_I","UK3CB_ADP_B","UK3CB_ARD_O","UK3CB_ARD_I","UK3CB_ARD_B","UK3CB_CHD_O","UK3CB_CHD_W_O","UK3CB_CHD_B","UK3CB_CHD_W_B","UK3CB_CHD_I","UK3CB_CHD_W_I","UK3CB_CHC_O","UK3CB_CHC_I","UK3CB_CHC_B","UK3CB_CCM_O","UK3CB_CCM_B","UK3CB_CCM_I","UK3CB_CPD_O","UK3CB_CPD_I","UK3CB_CPD_B","UK3CB_CW_US_B_EARLY","UK3CB_CW_US_B_LATE","UK3CB_CW_SOV_O_EARLY","UK3CB_CW_SOV_O_LATE","UK3CB_KDF_O","UK3CB_KDF_I","UK3CB_KDF_B","UK3CB_MDF_O","UK3CB_MDF_I","UK3CB_MDF_B","UK3CB_NAP_O","UK3CB_NAP_I","UK3CB_NAP_B","UK3CB_NFA_O","UK3CB_NFA_I","UK3CB_NFA_B","UK3CB_NPD_O","UK3CB_NPD_I","UK3CB_NPD_B","UK3CB_TKC_O","UK3CB_TKC_I","UK3CB_TKC_B","UK3CB_TKM_O","UK3CB_TKA_O","UK3CB_TKA_I","UK3CB_TKA_B","UK3CB_TKP_O","UK3CB_TKP_I","UK3CB_TKP_B","UK3CB_TKM_B","UK3CB_TKM_I","UK3CB_UN_I","UK3CB_UN_B","RHSGREF_FACTION_CDF_NG","RHSGREF_FACTION_CDF_NG_B","RHSGREF_FACTION_CHDKZ","RHSGREF_FACTION_CHDKZ_G","RHSGREF_FACTION_HIDF","UNSUNG_G","UNSUNG_AUS","UNSUNG_NZ","UNSUNG_ROK","UNSUNG_W","UNSUNG_EV","UNSUNG_E","BLU_ION_LXWS","BLU_NATO_LXWS","OPF_SFIA_LXWS","OPF_TURA_LXWS","IND_TURA_LXWS","BLU_TURA_LXWS"]; //All factions +private _allfaction = ["CSLA","FIA","US85","AFR_ARMY","ARA_ARMY","ARL_ARMY","BLU_F","IND_F","BLU_CTRG_F","OPF_G_F","IND_G_F","BLU_G_F","IND_C_F","IND_E_F","IND_L_F","CEC_ARMY","CFP_B_CAF","CFP_O_IQARMY","CFP_B_ILIDF","CFP_B_NAARMY","CFP_O_SDMILITIA","CFP_O_ABUSAYYAF","CFP_B_AFGPOLICE","CFP_O_ALQAEDA","CFP_I_ALNUSRA","CFP_O_ALSHABAAB","CFP_O_BOKOHARAM","CFP_O_CFREBELS","CFP_O_HAMAS","CFP_O_HEZBOLLAH","CFP_B_IQARMY","CFP_B_IQPOLICE","CFP_O_IRARMY","CFP_O_IS","CFP_I_IS","CFP_B_KEARMY","CFP_B_MLARMY","CFP_B_PESH","CFP_O_SOREBEL","CFP_I_SSARMY","CFP_O_SSREBELS","CFP_I_SDREBELS","CFP_I_SDREBELSRF","CFP_O_SDARMY","CFP_O_SYARMY","CFP_O_TBAN","CFP_I_TUAREG","CFP_B_UGARMY","CFP_B_USRANGERS_WDL","CFP_B_USSEALS_DES","CFP_B_USSEALS_WDL","CFP_B_YPG","CFP_O_ANSARALLAH","CFP_B_CZARMY_WDL","CFP_I_WESTULTRA","CUP_B_CZ","CUP_B_GB","CUP_B_CDF","CUP_O_CHDKZ","CUP_STATIC_SHIPS","CUP_I_NAPA","CUP_I_RACS","CUP_B_RNZN","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","CUP_I_UN","CUP_B_US_ARMY","CUP_B_USMC","CUP_B_GER","CUP_B_HIL","CUP_I_PMC_ION","CFP_B_GBARMY_WDL","CFP_B_DEARMY_WDL","CFP_O_RUARMY_DES","CUP_I_TK_GUE","CFP_B_USMC_DES","CFP_B_CDF_SNW","CFP_O_WAGNER","CFP_I_WAGNER","CFP_O_WAGNER_WIN","CFP_I_WAGNER_WIN","CFP_O_WAGNER_WDL","CFP_I_WAGNER_WDL","CFP_B_USARMY_1991_DES","CFP_B_USARMY_1991_WDL","CFP_B_USARMY_2003_DES","CFP_B_USARMY_2003_WDL","CFP_O_RUMVD","CFP_B_USCIA","CFP_B_USARMY_WDL","CFP_B_AFARMY","CFP_O_CHDKZ_SNW","CWR3_FACTION_FIA","CWR3_FACTION_RUS","CWR3_FACTION_USA","OPF_R_F","IND_E_ARD_F","BLU_A_TNA_F","BLU_A_F","BLU_A_WDL_F","OPF_R_ARD_F","OPF_GEN_F","BLU_GEN_F","OPF_V_F","BLU_CTRG_TNA_F","BLU_T_F","OPF_V_TNA_F","CFP_O_NKARMY","FAP_ARMY","FOW_HEER","FOW_IJA_NAS","FOW_UK_FAA","FOW_USA_NAVY","FOW_WAFFENSS","FOW_AUS","FOW_LUFTWAFFE","FOW_HI","FOW_UK","FOW_USA_P","FOW_IJA","FOW_USA","FOW_USMC","GAL_ARMY","GANGBLUE_ARMY","GANGRED_ARMY","GM_FC_DK","GM_FC_GC_BGS","GM_FC_GC","GM_FC_PL","GM_FC_GE_BGS","GM_FC_GE","O_TALIBAN","IBR_ZETABORN_FACTION","IBR_ROBOTFAC","IND_RAVEN_F","JMSLLTE_EMPIRE_FACT","JMSLLTE_MIMBLIBA","JMSLLTE_SCUMFACT","LIB_RKKA_W","LIB_WEHRMACHT_W","LIB_ARR","LIB_MKHL","LIB_RBAF","LIB_ACI","LIB_GUER","LIB_RAAF","LIB_RKKA","LIB_WEHRMACHT","LIB_US_101AB","LIB_US_82AB","LIB_UK_AB_W","LIB_UK_ARMY_W","LIB_US_ARMY_W","LIB_FSJ","LIB_UK_AB","LIB_UK_ARMY","LIB_UK_DR","LIB_US_ARMY","LIB_DAK","LIB_NKVD","LIB_US_RANGERS","LIB_NAC","LIB_FFI","BLU_UN_LXWS","BLU_W_F","MOL_ARMY","OPF_A_F","OPF_F","OPF_T_F","OPF_RAVEN_F","OPTRE_PD","OPTRE_FC_COVENANT","OPTRE_INS","OPTRE_UNSC","RHS_FACTION_VMF","RHS_FACTION_MSV","RHS_FACTION_RVA","RHS_FACTION_TV","RHS_FACTION_VDV","RHS_FACTION_VPVO","RHS_FACTION_VV","RHS_FACTION_VVS_C","RHS_FACTION_VVS","RHSGREF_FACTION_CDF_AIR_B","RHSGREF_FACTION_CDF_AIR","RHSSAF_FACTION_ARMY","RHSSAF_FACTION_ARMY_OPFOR","RHSSAF_FACTION_AIRFORCE_OPFOR","RHSSAF_FACTION_AIRFORCE","RHSSAF_FACTION_UN","RHS_FACTION_USARMY_D","RHS_FACTION_USARMY_WD","RHS_FACTION_USN","RHS_FACTION_SOCOM","RHS_FACTION_USAF","RHS_FACTION_USMC_D","RHS_FACTION_USMC_WD","RHSGREF_FACTION_UN","RHSGREF_FACTION_NATIONALIST","RHSGREF_FACTION_TLA","RHSGREF_FACTION_TLA_G","RHSGREF_FACTION_CDF_GROUND","RHSGREF_FACTION_CDF_GROUND_B","I_ARVN","B_MACV","O_PAVN","O_VC","SC_FACTION_AR","SC_FACTION_AC","SC_FACTION_SE","SG_STURM","SG_STURMPANZER","UK3CB_AAF_O","UK3CB_AAF_I","UK3CB_AAF_B","UK3CB_ANA_B","UK3CB_ANP_B","UK3CB_ADA_O","UK3CB_ADA_I","UK3CB_ADA_B","UK3CB_ADR_O","UK3CB_ADR_I","UK3CB_ADR_B","UK3CB_ADG_O","UK3CB_ADG_I","UK3CB_ADG_B","UK3CB_ADC_O","UK3CB_ADC_I","UK3CB_ADC_B","UK3CB_ADE_O","UK3CB_ADE_I","UK3CB_ADM_O","UK3CB_ADM_I","UK3CB_ADM_B","UK3CB_ADP_O","UK3CB_ADP_I","UK3CB_ADP_B","UK3CB_ARD_O","UK3CB_ARD_I","UK3CB_ARD_B","UK3CB_CHD_O","UK3CB_CHD_W_O","UK3CB_CHD_B","UK3CB_CHD_W_B","UK3CB_CHD_I","UK3CB_CHD_W_I","UK3CB_CHC_O","UK3CB_CHC_I","UK3CB_CHC_B","UK3CB_CCM_O","UK3CB_CCM_B","UK3CB_CCM_I","UK3CB_CPD_O","UK3CB_CPD_I","UK3CB_CPD_B","UK3CB_CW_US_B_EARLY","UK3CB_CW_US_B_LATE","UK3CB_CW_SOV_O_EARLY","UK3CB_CW_SOV_O_LATE","UK3CB_KDF_O","UK3CB_KDF_I","UK3CB_KDF_B","UK3CB_MDF_O","UK3CB_MDF_I","UK3CB_MDF_B","UK3CB_NAP_O","UK3CB_NAP_I","UK3CB_NAP_B","UK3CB_NFA_O","UK3CB_NFA_I","UK3CB_NFA_B","UK3CB_NPD_O","UK3CB_NPD_I","UK3CB_NPD_B","UK3CB_TKC_O","UK3CB_TKC_I","UK3CB_TKC_B","UK3CB_TKM_O","UK3CB_TKA_O","UK3CB_TKA_I","UK3CB_TKA_B","UK3CB_TKP_O","UK3CB_TKP_I","UK3CB_TKP_B","UK3CB_TKM_B","UK3CB_TKM_I","UK3CB_UN_I","UK3CB_UN_B","RHSGREF_FACTION_CDF_NG","RHSGREF_FACTION_CDF_NG_B","RHSGREF_FACTION_CHDKZ","RHSGREF_FACTION_CHDKZ_G","RHSGREF_FACTION_HIDF","UNSUNG_G","UNSUNG_AUS","UNSUNG_NZ","UNSUNG_ROK","UNSUNG_W","UNSUNG_EV","UNSUNG_E","BLU_ION_LXWS","OPF_SFIA_LXWS","OPF_TURA_LXWS","IND_TURA_LXWS","BLU_TURA_LXWS","BLU_NATO_LXWS"]; //All factions _p_en = _allfaction select _p_en; //Select faction selected from mission parameter _allclasse = [[_p_en], _p_en_AA, _p_en_tank] call btc_mil_fnc_class; //Create classes from factions, you can combine factions like that: [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_mil_fnc_class; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index bb632d9ec..56803fffe 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -97,9 +97,9 @@ class Params { }; class btc_p_en { // Enemy type: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_ETYPE"]); - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290}; - texts[]={"0 - ÄŒSLA Studio: ÄŒSLA (Side: EAST)","1 - ÄŒSLA Studio: FIA [ÄŒSLA] (Side: GUER)","2 - ÄŒSLA Studio: US ‘85 (Side: WEST)","3 - AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","4 - ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","5 - ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","6 - Bohemia Interactive: 2035 AAF (Side: GUER)","7 - Bohemia Interactive: 2035 CSAT (Side: EAST)","8 - Bohemia Interactive: 2035 FIA (Side: EAST)","9 - Bohemia Interactive: 2035 FIA (Side: GUER)","10 - Bohemia Interactive: 2035 FIA (Side: WEST)","11 - Bohemia Interactive: 2035 NATO (Side: WEST)","12 - Bohemia Interactive: 2035 Syndikat (Side: GUER)","13 - Bohemia Interactive: LDF (Side: GUER)","14 - Bohemia Interactive: Looters (Side: GUER)","15 - CEC HcPookie: Cecanian Army (Side: EAST)","16 - CFP CFP: Chadian Armed Forces (Side: WEST)","17 - CFP CFP: Iraqi Army (Hussein Regime) (Side: EAST)","18 - CFP CFP: Israeli Defense Force (Side: WEST)","19 - CFP CFP: Nigerian Army (Side: WEST)","20 - CFP CFP: Sudan Rapid Support Forces / Janjaweed (Side: EAST)","21 - CFP Drew: Abu Sayyaf Group (Side: EAST)","22 - CFP Drew: Afghan Police (Side: WEST)","23 - CFP Drew: Al Qaeda (Side: EAST)","24 - CFP Drew: al-Nusra Front (Side: GUER)","25 - CFP Drew: Al-Shabaab (Side: EAST)","26 - CFP Drew: Boko Haram (Side: EAST)","27 - CFP Drew: Central African Rebels (Side: EAST)","28 - CFP Drew: Hamas Al Qassam Brigades (Side: EAST)","29 - CFP Drew: Hezbollah (Side: EAST)","30 - CFP Drew: Iraqi Army (Side: WEST)","31 - CFP Drew: Iraqi Police (Side: WEST)","32 - CFP Drew: Islamic Republic of Iran Army (Side: EAST)","33 - CFP Drew: Islamic State (Side: EAST)","34 - CFP Drew: Islamic State (Side: GUER)","35 - CFP Drew: Kenyan Defense Force (Side: WEST)","36 - CFP Drew: Malian Government Forces (Side: WEST)","37 - CFP Drew: Peshmerga (Side: WEST)","38 - CFP Drew: Somali Rebels (Side: EAST)","39 - CFP Drew: South Sudan People's Defense Force (Side: GUER)","40 - CFP Drew: Sudan People's Liberation Movement In Opposition (Side: EAST)","41 - CFP Drew: Sudan People's Liberation Movement North (Side: GUER)","42 - CFP Drew: Sudan Revolutionary Front (Side: GUER)","43 - CFP Drew: Sudanese Armed Forces (Side: EAST)","44 - CFP Drew: Syrian Arab Army (Side: EAST)","45 - CFP Drew: Taliban Insurgents (Side: EAST)","46 - CFP Drew: Tuareg Rebels (Side: GUER)","47 - CFP Drew: Uganda People's Defense Force (Side: WEST)","48 - CFP Drew: US 75th Rangers (Jungle/Woodland) (Side: WEST)","49 - CFP Drew: US Navy Seals (Arid / Desert) (Side: WEST)","50 - CFP Drew: US Navy Seals (Jungle / Woodland) (Side: WEST)","51 - CFP Drew: YPG (Side: WEST)","52 - CFP Tupolov: Ansar Allah (Houthis) (Side: EAST)","53 - CFP Tupolov: Army of the Czech Rep. (Jungle / Woodland) (Side: WEST)","54 - CFP Tupolov: Western Ultranationalists (Side: GUER)","55 - CUP Community Upgrade Project: Army of the Czech Rep. (Arid / Desert) (Side: WEST)","56 - CUP Community Upgrade Project: British Army (Arid / Desert) (Side: WEST)","57 - CUP Community Upgrade Project: Chernarus Defense Forces (Side: WEST)","58 - CUP Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","59 - CUP Community Upgrade Project: CUP Static Ships (Side: WEST)","60 - CUP Community Upgrade Project: National Party of Chernarus (Side: GUER)","61 - CUP Community Upgrade Project: Royal Army Corps of Sahrani (Side: GUER)","62 - CUP Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","63 - CUP Community Upgrade Project: Russian Ground Forces (Jungle / Woodland) (Side: EAST)","64 - CUP Community Upgrade Project: Sahrani Liberation Army (Side: EAST)","65 - CUP Community Upgrade Project: Takistani Army (Side: EAST)","66 - CUP Community Upgrade Project: Takistani Militia (Side: EAST)","67 - CUP Community Upgrade Project: United Nations (Side: GUER)","68 - CUP Community Upgrade Project: US Army (Arid / Desert) (Side: WEST)","69 - CUP Community Upgrade Project: US Marine Corps (Jungle / Woodland) (Side: WEST)","70 - CUP CUP: Bundeswehr (Arid / Desert) (Side: WEST)","71 - CUP joker006 + CUP: Horizon Islands Legion (Side: WEST)","72 - CUP joker006 + CUP: ION PMC (Side: GUER)","73 - CUP_Units Community Upgrade Project: British Army (Jungle / Woodland) (Side: WEST)","74 - CUP_Units Community Upgrade Project: Bundeswehr (Jungle / Woodland) (Side: WEST)","75 - CUP_Units Community Upgrade Project: Russian Ground Forces (Arid / Desert) (Side: EAST)","76 - CUP_Units Community Upgrade Project: Takistani Locals (Side: GUER)","77 - CUP_Units Community Upgrade Project: US Marine Corps (Arid / Desert) (Side: WEST)","78 - CUP_Units Drew: Chernarus Defense Forces [Winter] (Side: WEST)","79 - CUP_Units Drew: PMC Wagner (Arid / Desert) (Side: EAST)","80 - CUP_Units Drew: PMC Wagner (Arid / Desert) (Side: GUER)","81 - CUP_Units Drew: PMC Wagner (Winter) (Side: EAST)","82 - CUP_Units Drew: PMC Wagner (Winter) (Side: GUER)","83 - CUP_Units Drew: PMC Wagner (Woodland) (Side: EAST)","84 - CUP_Units Drew: PMC Wagner (Woodland) (Side: GUER)","85 - CUP_Units Drew: US Army 1991 [Arid/Desert] (Side: WEST)","86 - CUP_Units Drew: US Army 1991 [Woodland] (Side: WEST)","87 - CUP_Units Drew: US Army 2003 [Arid/Desert] (Side: WEST)","88 - CUP_Units Drew: US Army 2003 [Woodland] (Side: WEST)","89 - CUP_Units Tupolov: Russian National Guard (Side: EAST)","90 - CUP_Units Tupolov: US CIA (Middle East) (Side: WEST)","91 - CUP_Vehicles Community Upgrade Project: US Army (Jungle / Woodland) (Side: WEST)","92 - CUP_Vehicles Drew: Afghan Army (Side: WEST)","93 - CUP_Vehicles Drew: Chernarussian Movement of the Red Star [Winter] (Side: EAST)","94 - cwr3_dlc CWR III Modification: FIA (CWR III) (Side: GUER)","95 - cwr3_dlc CWR III Modification: Soviet Army (CWR III) (Side: EAST)","96 - cwr3_dlc CWR III Modification: United States Army (CWR III) (Side: WEST)","97 - Enoch Bohemia Interactive: Spetsnaz (Side: EAST)","98 - Expansion Bohemia Interactive: 2035 CTRG (Side: WEST)","99 - Expansion Bohemia Interactive: 2035 Gendarmerie (Side: EAST)","100 - Expansion Bohemia Interactive: 2035 Gendarmerie (Side: WEST)","101 - Expansion Bohemia Interactive: 2035 NATO (Pacific) (Side: WEST)","102 - Expansion Drew: Korean People's Army (Side: EAST)","103 - FAP nzdfcrash/icebreakr: Fapovian Army (Side: EAST)","104 - FOW Bohemia Interactive: [DE] Heer (Side: WEST)","105 - FOW Bohemia Interactive: [JP] Navy Air Service (Side: WEST)","106 - FOW Bohemia Interactive: [UK] Fleet Air Arm (Side: GUER)","107 - FOW Bohemia Interactive: [US] Navy (Side: GUER)","108 - FOW FOW Team: [DE] Waffen-SS (Side: WEST)","109 - fow_mod Bohemia Interactive: [AUS] Army (Pacific) (Side: GUER)","110 - fow_mod Bohemia Interactive: [DE] Luftwaffe (Side: WEST)","111 - fow_mod Bohemia Interactive: [HI] Army (Side: GUER)","112 - fow_mod Bohemia Interactive: [UK] Army (Side: GUER)","113 - fow_mod Bohemia Interactive: [US] Army (Pacific) (Side: GUER)","114 - fow_mod FOW team: [JP] Imperial Army (Side: WEST)","115 - fow_mod FOW team: [US] Army (Europe) (Side: GUER)","116 - fow_mod FOW team: [US] Marines Corps (Side: GUER)","117 - GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","118 - GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","119 - GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","120 - gm Global Mobilization: Denmark (Side: WEST)","121 - gm Global Mobilization: East Germany (Borderguards) (Side: EAST)","122 - gm Global Mobilization: East Germany (Side: EAST)","123 - gm Global Mobilization: Poland (Side: EAST)","124 - gm Global Mobilization: West Germany (Borderguards) (Side: WEST)","125 - gm Global Mobilization: West Germany (Side: WEST)","126 - Howard: Taliban Force 2021 (Side: EAST)","127 - IBR Bohemia Interactive: Alienz (Side: GUER)","128 - IBR Lord Frith/IceBreakr: Robots (Side: EAST)","129 - LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","130 - LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","131 - LIB AWAR & Lennard: ARR (Side: WEST)","132 - LIB AWAR & Lennard: MKHL (Side: WEST)","133 - LIB AWAR & Lennard: RBAF (Side: WEST)","134 - LIB AWAR: ACI (Side: GUER)","135 - LIB AWAR: Home Army (Polish) (Side: GUER)","136 - LIB AWAR: RAAF (Side: GUER)","137 - LIB AWAR: Red Army (Side: EAST)","138 - LIB AWAR: Wehrmacht (Side: WEST)","139 - LIB El Tyranos: 101st Airborne Division (Side: GUER)","140 - LIB El Tyranos: 82nd Airborne Division (Side: GUER)","141 - LIB El Tyranos: [Winter] UK Airborne (Side: GUER)","142 - LIB El Tyranos: [Winter] UK Army (Side: GUER)","143 - LIB El Tyranos: [Winter] US Army (Side: GUER)","144 - LIB IFA3 Team: Fallschirmjäger (Side: WEST)","145 - LIB IFA3 Team: UK Airborne (Side: GUER)","146 - LIB IFA3 Team: UK Army (Side: GUER)","147 - LIB IFA3 Team: UK Desert Rats (Side: GUER)","148 - LIB IFA3 team: US Army (Side: GUER)","149 - LIB Lennard: Deutsches Afrikakorps (Side: WEST)","150 - LIB Lennard: NKVD (Side: EAST)","151 - LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","152 - LIB Lennard: US North African Corps (Side: GUER)","153 - LIB Reyhard & Joarius: FFI (Side: GUER)","154 - lxWS Rotators Collective: UNA (Side: WEST)","155 - Mark Bohemia Interactive: NATO (Woodland) (Side: WEST)","156 - MOL HcPookie: Molatian Army (Side: EAST)","157 - OPF Community Upgrade Project: 2035 CSAT (Pacific) (Side: EAST)","158 - OPTRE Article 2 Studios: Colonial Police (Side: GUER)","159 - OPTRE Article 2 Studios: Covenant (Side: EAST)","160 - OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","161 - OPTRE Article 2 Studios: UNSCDF (Side: WEST)","162 - RHS Red Hammer Studios: Russia (VMF) (Side: EAST)","163 - RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","164 - RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","165 - RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","166 - RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","167 - RHS_AFRF Red Hammer Studios: Russia (VPVO) (Side: EAST)","168 - RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","169 - RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","170 - RHS_AFRF Red Hammer Studios: Russia (VVS - Grey) (Side: EAST)","171 - RHS_GREF Red Hammer Studios: CDF (Air Forces) (Side: WEST)","172 - RHS_GREF RHS (A2 port): CDF (Air Forces) (Side: GUER)","173 - RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","174 - RHS_SAF RHS (A2 port): SAF (KOV) (Side: EAST)","175 - RHS_SAF RHS (A2 port): SAF (RVIPVO) (Side: EAST)","176 - RHS_SAF RHS (A2 port): SAF (RVIPVO) (Side: GUER)","177 - RHS_SAF RHS (A2 port): SAF (UN Peacekeepers) (Side: GUER)","178 - RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","179 - RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","180 - RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","181 - RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","182 - RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","183 - RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","184 - RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","185 - RHSGREF Red Hammer Studios: CDF (UN) (Side: GUER)","186 - RHSGREF Red Hammer Studios: NAPA (Side: GUER)","187 - RHSGREF Red Hammer Studios: Tanoan Liberation Army (Side: EAST)","188 - RHSGREF Red Hammer Studios: Tanoan Liberation Army (Side: GUER)","189 - RHSGREF www.3commandobrigade.com: CDF (Ground Forces) (Side: GUER)","190 - RHSGREF www.3commandobrigade.com: CDF (Ground Forces) (Side: WEST)","191 - Savage Game Design: ARVN (Side: GUER)","192 - Savage Game Design: MACV (Side: WEST)","193 - Savage Game Design: PAVN (Side: EAST)","194 - Savage Game Design: Viet Cong (Side: EAST)","195 - SG Stagler: Sturmtroopers (Side: WEST)","196 - SG Stagler: Tank Sturmtroopers (Side: WEST)","197 - UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: EAST)","198 - UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: GUER)","199 - UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: WEST)","200 - UK3CB_Factions www.3commandobrigade.com: 3CB Afghan National Army (Side: WEST)","201 - UK3CB_Factions www.3commandobrigade.com: 3CB Afghan National Police (Side: WEST)","202 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: EAST)","203 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: GUER)","204 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: WEST)","205 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: EAST)","206 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: GUER)","207 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: WEST)","208 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: EAST)","209 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: GUER)","210 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: WEST)","211 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: EAST)","212 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: GUER)","213 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: WEST)","214 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Extremists (Side: EAST)","215 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Extremists (Side: GUER)","216 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: EAST)","217 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: GUER)","218 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: WEST)","219 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: EAST)","220 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: GUER)","221 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: WEST)","222 - UK3CB_Factions www.3commandobrigade.com: 3CB Ardistan Army (Side: EAST)","223 - UK3CB_Factions www.3commandobrigade.com: 3CB Ardistan Army (Side: GUER)","224 - UK3CB_Factions www.3commandobrigade.com: 3CB Ardistan Army (Side: WEST)","225 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDKZ (Chernarussian Movement of the Red Star) (Side: EAST)","226 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDKZ Winter (Chernarussian Movement of the Red Star) (Side: EAST)","227 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDSZ (Chernarussian Movement of the Blue Star) (Side: WEST)","228 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDSZ Winter (Chernarussian Movement of the Blue Star) (Side: WEST)","229 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDZZ (Chernarussian Movement of the Green Star) (Side: GUER)","230 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDZZ Winter (Chernarussian Movement of the Green Star) (Side: GUER)","231 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: EAST)","232 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: GUER)","233 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: WEST)","234 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Communist Militia (Side: EAST)","235 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Local Defence Volunteers (Side: WEST)","236 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Nationalist Militia (Side: GUER)","237 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: EAST)","238 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: GUER)","239 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: WEST)","240 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War US - Early (Side: WEST)","241 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War US - Late (Side: WEST)","242 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War USSR - Early (Side: EAST)","243 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War USSR - Late (Side: EAST)","244 - UK3CB_Factions www.3commandobrigade.com: 3CB Kolgujev Defence Force (Side: EAST)","245 - UK3CB_Factions www.3commandobrigade.com: 3CB Kolgujev Defence Force (Side: GUER)","246 - UK3CB_Factions www.3commandobrigade.com: 3CB Kolgujev Defence Force (Side: WEST)","247 - UK3CB_Factions www.3commandobrigade.com: 3CB Malden Defence Force (Side: EAST)","248 - UK3CB_Factions www.3commandobrigade.com: 3CB Malden Defence Force (Side: GUER)","249 - UK3CB_Factions www.3commandobrigade.com: 3CB Malden Defence Force (Side: WEST)","250 - UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: EAST)","251 - UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: GUER)","252 - UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: WEST)","253 - UK3CB_Factions www.3commandobrigade.com: 3CB NFA (Nogovan Freedom Alliance) (Side: EAST)","254 - UK3CB_Factions www.3commandobrigade.com: 3CB NFA (Nogovan Freedom Alliance) (Side: GUER)","255 - UK3CB_Factions www.3commandobrigade.com: 3CB NFA (Nogovan Freedom Alliance) (Side: WEST)","256 - UK3CB_Factions www.3commandobrigade.com: 3CB Nogova Police Department (Side: EAST)","257 - UK3CB_Factions www.3commandobrigade.com: 3CB Nogova Police Department (Side: GUER)","258 - UK3CB_Factions www.3commandobrigade.com: 3CB Nogova Police Department (Side: WEST)","259 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: EAST)","260 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: GUER)","261 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: WEST)","262 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Insurgents (Side: EAST)","263 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: EAST)","264 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: GUER)","265 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: WEST)","266 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: EAST)","267 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: GUER)","268 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: WEST)","269 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Pro-Government Militia (Side: WEST)","270 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Tribal Fighters (Side: GUER)","271 - UK3CB_Factions www.3commandobrigade.com: 3CB UN Peacekeepers (Side: GUER)","272 - UK3CB_Factions www.3commandobrigade.com: 3CB UN Peacekeepers (Side: WEST)","273 - UK3CB_Factions www.3commandobrigade.com: CDF (National Guard) (Side: GUER)","274 - UK3CB_Factions www.3commandobrigade.com: CDF (National Guard) (Side: WEST)","275 - UK3CB_Factions www.3commandobrigade.com: ChDKZ (Side: EAST)","276 - UK3CB_Factions www.3commandobrigade.com: ChDKZ (Side: GUER)","277 - UK3CB_Factions www.3commandobrigade.com: Horizon Islands Defence Force (Side: WEST)","278 - UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","279 - UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: WEST)","280 - UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: WEST)","281 - UNSUNG Bohemia Interactive: R.O.K. (UNSUNG) (Side: WEST)","282 - UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","283 - UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","284 - UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","285 - ws Rotators Collective: ION Services (Side: WEST)","286 - ws Rotators Collective: NATO (Desert) (Side: WEST)","287 - ws Rotators Collective: SFIA (Side: EAST)","288 - ws Rotators Collective: Tura (Side: EAST)","289 - ws Rotators Collective: Tura (Side: GUER)","290 - ws Rotators Collective: Tura (Side: WEST)"}; - default = 8; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307}; + texts[]={"0 - ÄŒSLA Studio: ÄŒSLA (Side: EAST)","1 - ÄŒSLA Studio: FIA [ÄŒSLA] (Side: GUER)","2 - ÄŒSLA Studio: US ‘85 (Side: WEST)","3 - AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","4 - ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","5 - ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","6 - BLU Bohemia Interactive: US (Side: WEST)","7 - Bohemia Interactive: 2035 AAF (Side: GUER)","8 - Bohemia Interactive: 2035 CTRG (Side: WEST)","9 - Bohemia Interactive: 2035 FIA (Side: EAST)","10 - Bohemia Interactive: 2035 FIA (Side: GUER)","11 - Bohemia Interactive: 2035 FIA (Side: WEST)","12 - Bohemia Interactive: 2035 Syndikat (Side: GUER)","13 - Bohemia Interactive: LDF (Side: GUER)","14 - Bohemia Interactive: Looters (Side: GUER)","15 - CEC HcPookie: Cecanian Army (Side: EAST)","16 - CFP CFP: Chadian Armed Forces (Side: WEST)","17 - CFP CFP: Iraqi Army (Hussein Regime) (Side: EAST)","18 - CFP CFP: Israeli Defense Force (Side: WEST)","19 - CFP CFP: Nigerian Army (Side: WEST)","20 - CFP CFP: Sudan Rapid Support Forces / Janjaweed (Side: EAST)","21 - CFP Drew: Abu Sayyaf Group (Side: EAST)","22 - CFP Drew: Afghan Police (Side: WEST)","23 - CFP Drew: Al Qaeda (Side: EAST)","24 - CFP Drew: al-Nusra Front (Side: GUER)","25 - CFP Drew: Al-Shabaab (Side: EAST)","26 - CFP Drew: Boko Haram (Side: EAST)","27 - CFP Drew: Central African Rebels (Side: EAST)","28 - CFP Drew: Hamas Al Qassam Brigades (Side: EAST)","29 - CFP Drew: Hezbollah (Side: EAST)","30 - CFP Drew: Iraqi Army (Side: WEST)","31 - CFP Drew: Iraqi Police (Side: WEST)","32 - CFP Drew: Islamic Republic of Iran Army (Side: EAST)","33 - CFP Drew: Islamic State (Side: EAST)","34 - CFP Drew: Islamic State (Side: GUER)","35 - CFP Drew: Kenyan Defense Force (Side: WEST)","36 - CFP Drew: Malian Government Forces (Side: WEST)","37 - CFP Drew: Peshmerga (Side: WEST)","38 - CFP Drew: Somali Rebels (Side: EAST)","39 - CFP Drew: South Sudan People's Defense Force (Side: GUER)","40 - CFP Drew: Sudan People's Liberation Movement In Opposition (Side: EAST)","41 - CFP Drew: Sudan People's Liberation Movement North (Side: GUER)","42 - CFP Drew: Sudan Revolutionary Front (Side: GUER)","43 - CFP Drew: Sudanese Armed Forces (Side: EAST)","44 - CFP Drew: Syrian Arab Army (Side: EAST)","45 - CFP Drew: Taliban Insurgents (Side: EAST)","46 - CFP Drew: Tuareg Rebels (Side: GUER)","47 - CFP Drew: Uganda People's Defense Force (Side: WEST)","48 - CFP Drew: US 75th Rangers (Jungle/Woodland) (Side: WEST)","49 - CFP Drew: US Navy Seals (Arid / Desert) (Side: WEST)","50 - CFP Drew: US Navy Seals (Jungle / Woodland) (Side: WEST)","51 - CFP Drew: YPG (Side: WEST)","52 - CFP Tupolov: Ansar Allah (Houthis) (Side: EAST)","53 - CFP Tupolov: Army of the Czech Rep. (Jungle / Woodland) (Side: WEST)","54 - CFP Tupolov: Western Ultranationalists (Side: GUER)","55 - CUP Community Upgrade Project: Army of the Czech Rep. (Arid / Desert) (Side: WEST)","56 - CUP Community Upgrade Project: British Army (Arid / Desert) (Side: WEST)","57 - CUP Community Upgrade Project: Chernarus Defense Forces (Side: WEST)","58 - CUP Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","59 - CUP Community Upgrade Project: CUP Static Ships (Side: WEST)","60 - CUP Community Upgrade Project: National Party of Chernarus (Side: GUER)","61 - CUP Community Upgrade Project: Royal Army Corps of Sahrani (Side: GUER)","62 - CUP Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","63 - CUP Community Upgrade Project: Russian Ground Forces (Jungle / Woodland) (Side: EAST)","64 - CUP Community Upgrade Project: Sahrani Liberation Army (Side: EAST)","65 - CUP Community Upgrade Project: Takistani Army (Side: EAST)","66 - CUP Community Upgrade Project: Takistani Militia (Side: EAST)","67 - CUP Community Upgrade Project: United Nations (Side: GUER)","68 - CUP Community Upgrade Project: US Army (Arid / Desert) (Side: WEST)","69 - CUP Community Upgrade Project: US Marine Corps (Jungle / Woodland) (Side: WEST)","70 - CUP CUP: Bundeswehr (Arid / Desert) (Side: WEST)","71 - CUP joker006 + CUP: Horizon Islands Legion (Side: WEST)","72 - CUP joker006 + CUP: ION PMC (Side: GUER)","73 - CUP_Units Community Upgrade Project: British Army (Jungle / Woodland) (Side: WEST)","74 - CUP_Units Community Upgrade Project: Bundeswehr (Jungle / Woodland) (Side: WEST)","75 - CUP_Units Community Upgrade Project: Russian Ground Forces (Arid / Desert) (Side: EAST)","76 - CUP_Units Community Upgrade Project: Takistani Locals (Side: GUER)","77 - CUP_Units Community Upgrade Project: US Marine Corps (Arid / Desert) (Side: WEST)","78 - CUP_Units Drew: Chernarus Defense Forces [Winter] (Side: WEST)","79 - CUP_Units Drew: PMC Wagner (Arid / Desert) (Side: EAST)","80 - CUP_Units Drew: PMC Wagner (Arid / Desert) (Side: GUER)","81 - CUP_Units Drew: PMC Wagner (Winter) (Side: EAST)","82 - CUP_Units Drew: PMC Wagner (Winter) (Side: GUER)","83 - CUP_Units Drew: PMC Wagner (Woodland) (Side: EAST)","84 - CUP_Units Drew: PMC Wagner (Woodland) (Side: GUER)","85 - CUP_Units Drew: US Army 1991 [Arid/Desert] (Side: WEST)","86 - CUP_Units Drew: US Army 1991 [Woodland] (Side: WEST)","87 - CUP_Units Drew: US Army 2003 [Arid/Desert] (Side: WEST)","88 - CUP_Units Drew: US Army 2003 [Woodland] (Side: WEST)","89 - CUP_Units Tupolov: Russian National Guard (Side: EAST)","90 - CUP_Units Tupolov: US CIA (Middle East) (Side: WEST)","91 - CUP_Vehicles Community Upgrade Project: US Army (Jungle / Woodland) (Side: WEST)","92 - CUP_Vehicles Drew: Afghan Army (Side: WEST)","93 - CUP_Vehicles Drew: Chernarussian Movement of the Red Star [Winter] (Side: EAST)","94 - cwr3_dlc CWR III Modification: FIA (CWR III) (Side: GUER)","95 - cwr3_dlc CWR III Modification: Soviet Army (CWR III) (Side: EAST)","96 - cwr3_dlc CWR III Modification: United States Army (CWR III) (Side: WEST)","97 - Enoch Bohemia Interactive: Russia (Side: EAST)","98 - Enoch Ravenholme: LDF (Arid) (Side: GUER)","99 - Expansion AveryTheKitty: BAF (Pacific) (Side: WEST)","100 - Expansion AveryTheKitty: BAF (Side: WEST)","101 - Expansion AveryTheKitty: BAF (Woodland) (Side: WEST)","102 - Expansion AveryTheKitty: Russia (Arid) (Side: EAST)","103 - Expansion Bohemia Interactive: 2035 Gendarmerie (Side: EAST)","104 - Expansion Bohemia Interactive: 2035 Gendarmerie (Side: WEST)","105 - Expansion Bohemia Interactive: 2035 Viper (Side: EAST)","106 - Expansion Bohemia Interactive: CTRG (Pacific) (Side: WEST)","107 - Expansion Bohemia Interactive: US (Pacific) (Side: WEST)","108 - Expansion Bohemia Interactive: Viper (Pacific) (Side: EAST)","109 - Expansion Drew: Korean People's Army (Side: EAST)","110 - FAP nzdfcrash/icebreakr: Fapovian Army (Side: EAST)","111 - FOW Bohemia Interactive: [DE] Heer (Side: WEST)","112 - FOW Bohemia Interactive: [JP] Navy Air Service (Side: WEST)","113 - FOW Bohemia Interactive: [UK] Fleet Air Arm (Side: GUER)","114 - FOW Bohemia Interactive: [US] Navy (Side: GUER)","115 - FOW FOW Team: [DE] Waffen-SS (Side: WEST)","116 - fow_mod Bohemia Interactive: [AUS] Army (Pacific) (Side: GUER)","117 - fow_mod Bohemia Interactive: [DE] Luftwaffe (Side: WEST)","118 - fow_mod Bohemia Interactive: [HI] Army (Side: GUER)","119 - fow_mod Bohemia Interactive: [UK] Army (Side: GUER)","120 - fow_mod Bohemia Interactive: [US] Army (Pacific) (Side: GUER)","121 - fow_mod FOW team: [JP] Imperial Army (Side: WEST)","122 - fow_mod FOW team: [US] Army (Europe) (Side: GUER)","123 - fow_mod FOW team: [US] Marines Corps (Side: GUER)","124 - GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","125 - GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","126 - GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","127 - gm Global Mobilization: Denmark (Side: WEST)","128 - gm Global Mobilization: East Germany (Borderguards) (Side: EAST)","129 - gm Global Mobilization: East Germany (Side: EAST)","130 - gm Global Mobilization: Poland (Side: EAST)","131 - gm Global Mobilization: West Germany (Borderguards) (Side: WEST)","132 - gm Global Mobilization: West Germany (Side: WEST)","133 - Howard: Taliban Force 2021 (Side: EAST)","134 - IBR Bohemia Interactive: Alienz (Side: GUER)","135 - IBR Lord Frith/IceBreakr: Robots (Side: EAST)","136 - IND Heliotrope: Raven Security (Side: GUER)","137 - JMSLLTE JMax: Galactic Empire (Side: WEST)","138 - JMSLLTE JMax: Mimbanese Liberation Army (Side: EAST)","139 - JMSLLTE JMax: Rebel Alliance (Side: EAST)","140 - LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","141 - LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","142 - LIB AWAR & Lennard: ARR (Side: WEST)","143 - LIB AWAR & Lennard: MKHL (Side: WEST)","144 - LIB AWAR & Lennard: RBAF (Side: WEST)","145 - LIB AWAR: ACI (Side: GUER)","146 - LIB AWAR: Home Army (Polish) (Side: GUER)","147 - LIB AWAR: RAAF (Side: GUER)","148 - LIB AWAR: Red Army (Side: EAST)","149 - LIB AWAR: Wehrmacht (Side: WEST)","150 - LIB El Tyranos: 101st Airborne Division (Side: GUER)","151 - LIB El Tyranos: 82nd Airborne Division (Side: GUER)","152 - LIB El Tyranos: [Winter] UK Airborne (Side: GUER)","153 - LIB El Tyranos: [Winter] UK Army (Side: GUER)","154 - LIB El Tyranos: [Winter] US Army (Side: GUER)","155 - LIB IFA3 Team: Fallschirmjäger (Side: WEST)","156 - LIB IFA3 Team: UK Airborne (Side: GUER)","157 - LIB IFA3 Team: UK Army (Side: GUER)","158 - LIB IFA3 Team: UK Desert Rats (Side: GUER)","159 - LIB IFA3 team: US Army (Side: GUER)","160 - LIB Lennard: Deutsches Afrikakorps (Side: WEST)","161 - LIB Lennard: NKVD (Side: EAST)","162 - LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","163 - LIB Lennard: US North African Corps (Side: GUER)","164 - LIB Reyhard & Joarius: FFI (Side: GUER)","165 - lxWS Rotators Collective: UNA (Side: WEST)","166 - Mark Bohemia Interactive: US (Woodland) (Side: WEST)","167 - MOL HcPookie: Molatian Army (Side: EAST)","168 - OPF Bohemia Interactive: Argana (Side: EAST)","169 - OPF Bohemia Interactive: Iran (Side: EAST)","170 - OPF Community Upgrade Project: China (Side: EAST)","171 - OPF Heliotrope: Raven Security (Side: EAST)","172 - OPTRE Article 2 Studios: Colonial Police (Side: GUER)","173 - OPTRE Article 2 Studios: Covenant (Side: EAST)","174 - OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","175 - OPTRE Article 2 Studios: UNSCDF (Side: WEST)","176 - RHS Red Hammer Studios: Russia (VMF) (Side: EAST)","177 - RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","178 - RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","179 - RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","180 - RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","181 - RHS_AFRF Red Hammer Studios: Russia (VPVO) (Side: EAST)","182 - RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","183 - RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","184 - RHS_AFRF Red Hammer Studios: Russia (VVS - Grey) (Side: EAST)","185 - RHS_GREF Red Hammer Studios: CDF (Air Forces) (Side: WEST)","186 - RHS_GREF RHS (A2 port): CDF (Air Forces) (Side: GUER)","187 - RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","188 - RHS_SAF RHS (A2 port): SAF (KOV) (Side: EAST)","189 - RHS_SAF RHS (A2 port): SAF (RVIPVO) (Side: EAST)","190 - RHS_SAF RHS (A2 port): SAF (RVIPVO) (Side: GUER)","191 - RHS_SAF RHS (A2 port): SAF (UN Peacekeepers) (Side: GUER)","192 - RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","193 - RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","194 - RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","195 - RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","196 - RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","197 - RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","198 - RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","199 - RHSGREF Red Hammer Studios: CDF (UN) (Side: GUER)","200 - RHSGREF Red Hammer Studios: NAPA (Side: GUER)","201 - RHSGREF Red Hammer Studios: Tanoan Liberation Army (Side: EAST)","202 - RHSGREF Red Hammer Studios: Tanoan Liberation Army (Side: GUER)","203 - RHSGREF www.3commandobrigade.com: CDF (Ground Forces) (Side: GUER)","204 - RHSGREF www.3commandobrigade.com: CDF (Ground Forces) (Side: WEST)","205 - Savage Game Design: ARVN (Side: GUER)","206 - Savage Game Design: MACV (Side: WEST)","207 - Savage Game Design: PAVN (Side: EAST)","208 - Savage Game Design: Viet Cong (Side: EAST)","209 - SC Scion Conflict Mod Team: Amalgamate Republic (Side: WEST)","210 - SC Scion Conflict Mod Team: Atlas Corporation (Side: GUER)","211 - SC Scion Conflict Mod Team: Scion Empire (Side: EAST)","212 - SG Stagler: Sturmtroopers (Side: WEST)","213 - SG Stagler: Tank Sturmtroopers (Side: WEST)","214 - UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: EAST)","215 - UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: GUER)","216 - UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: WEST)","217 - UK3CB_Factions www.3commandobrigade.com: 3CB Afghan National Army (Side: WEST)","218 - UK3CB_Factions www.3commandobrigade.com: 3CB Afghan National Police (Side: WEST)","219 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: EAST)","220 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: GUER)","221 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: WEST)","222 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: EAST)","223 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: GUER)","224 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: WEST)","225 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: EAST)","226 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: GUER)","227 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: WEST)","228 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: EAST)","229 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: GUER)","230 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: WEST)","231 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Extremists (Side: EAST)","232 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Extremists (Side: GUER)","233 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: EAST)","234 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: GUER)","235 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: WEST)","236 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: EAST)","237 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: GUER)","238 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: WEST)","239 - UK3CB_Factions www.3commandobrigade.com: 3CB Ardistan Army (Side: EAST)","240 - UK3CB_Factions www.3commandobrigade.com: 3CB Ardistan Army (Side: GUER)","241 - UK3CB_Factions www.3commandobrigade.com: 3CB Ardistan Army (Side: WEST)","242 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDKZ (Chernarussian Movement of the Red Star) (Side: EAST)","243 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDKZ Winter (Chernarussian Movement of the Red Star) (Side: EAST)","244 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDSZ (Chernarussian Movement of the Blue Star) (Side: WEST)","245 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDSZ Winter (Chernarussian Movement of the Blue Star) (Side: WEST)","246 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDZZ (Chernarussian Movement of the Green Star) (Side: GUER)","247 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDZZ Winter (Chernarussian Movement of the Green Star) (Side: GUER)","248 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: EAST)","249 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: GUER)","250 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: WEST)","251 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Communist Militia (Side: EAST)","252 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Local Defence Volunteers (Side: WEST)","253 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Nationalist Militia (Side: GUER)","254 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: EAST)","255 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: GUER)","256 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: WEST)","257 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War US - Early (Side: WEST)","258 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War US - Late (Side: WEST)","259 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War USSR - Early (Side: EAST)","260 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War USSR - Late (Side: EAST)","261 - UK3CB_Factions www.3commandobrigade.com: 3CB Kolgujev Defence Force (Side: EAST)","262 - UK3CB_Factions www.3commandobrigade.com: 3CB Kolgujev Defence Force (Side: GUER)","263 - UK3CB_Factions www.3commandobrigade.com: 3CB Kolgujev Defence Force (Side: WEST)","264 - UK3CB_Factions www.3commandobrigade.com: 3CB Malden Defence Force (Side: EAST)","265 - UK3CB_Factions www.3commandobrigade.com: 3CB Malden Defence Force (Side: GUER)","266 - UK3CB_Factions www.3commandobrigade.com: 3CB Malden Defence Force (Side: WEST)","267 - UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: EAST)","268 - UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: GUER)","269 - UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: WEST)","270 - UK3CB_Factions www.3commandobrigade.com: 3CB NFA (Nogovan Freedom Alliance) (Side: EAST)","271 - UK3CB_Factions www.3commandobrigade.com: 3CB NFA (Nogovan Freedom Alliance) (Side: GUER)","272 - UK3CB_Factions www.3commandobrigade.com: 3CB NFA (Nogovan Freedom Alliance) (Side: WEST)","273 - UK3CB_Factions www.3commandobrigade.com: 3CB Nogova Police Department (Side: EAST)","274 - UK3CB_Factions www.3commandobrigade.com: 3CB Nogova Police Department (Side: GUER)","275 - UK3CB_Factions www.3commandobrigade.com: 3CB Nogova Police Department (Side: WEST)","276 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: EAST)","277 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: GUER)","278 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: WEST)","279 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Insurgents (Side: EAST)","280 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: EAST)","281 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: GUER)","282 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: WEST)","283 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: EAST)","284 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: GUER)","285 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: WEST)","286 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Pro-Government Militia (Side: WEST)","287 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Tribal Fighters (Side: GUER)","288 - UK3CB_Factions www.3commandobrigade.com: 3CB UN Peacekeepers (Side: GUER)","289 - UK3CB_Factions www.3commandobrigade.com: 3CB UN Peacekeepers (Side: WEST)","290 - UK3CB_Factions www.3commandobrigade.com: CDF (National Guard) (Side: GUER)","291 - UK3CB_Factions www.3commandobrigade.com: CDF (National Guard) (Side: WEST)","292 - UK3CB_Factions www.3commandobrigade.com: ChDKZ (Side: EAST)","293 - UK3CB_Factions www.3commandobrigade.com: ChDKZ (Side: GUER)","294 - UK3CB_Factions www.3commandobrigade.com: Horizon Islands Defence Force (Side: WEST)","295 - UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","296 - UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: WEST)","297 - UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: WEST)","298 - UNSUNG Bohemia Interactive: R.O.K. (UNSUNG) (Side: WEST)","299 - UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","300 - UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","301 - UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","302 - ws Rotators Collective: ION Services (Side: WEST)","303 - ws Rotators Collective: SFIA (Side: EAST)","304 - ws Rotators Collective: Tura (Side: EAST)","305 - ws Rotators Collective: Tura (Side: GUER)","306 - ws Rotators Collective: Tura (Side: WEST)","307 - ws Rotators Collective: USMC (Desert) (Side: WEST)"}; + default = 9; }; class btc_p_AA { // Anti-Air infantry: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_EAA"]); diff --git a/README.md b/README.md index f723bd1d3..bbad033b1 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ At the beginning you have a very low reputation level, so civilians won't help y - [Spectrum devices](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation#spectrum-devices) - Under the hood - A lot of optional gameplay - - More than 291 enemies and 27 civilians factions available + - More than 308 enemies and 27 civilians factions available - Full saving Database ([even player markers](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation#headless--database)) - Easy map change (See [here](http://vdauphin.github.io/HeartsAndMinds/Change-MAP-of-Hearts-and-Minds)) - ACE Headless support From 7c3c4229c101e890ed7437f959c6c1080e40734d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 28 Jan 2022 17:11:49 +0100 Subject: [PATCH 349/354] Switch param btc_p_respawn_arsenal default on --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 56803fffe..08818fbeb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -87,7 +87,7 @@ class Params { title = __EVAL(format [" %1", localize "STR_BTC_HAM_RESP_ENABLEARSENAL"]); values[]={0,1}; texts[]={$STR_DISABLED,$STR_ENABLED}; - default = 0; + default = 1; }; class btc_p_type_title { // << Faction options >> title = $STR_BTC_HAM_PARAM_FAC_TITLE; From 150c5fcd3b756dfd65eb2ce694197040f3063e32 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 28 Jan 2022 20:54:22 +0100 Subject: [PATCH 350/354] When canceled give + reputation --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf index 386b93821..0bc426fb0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf @@ -56,11 +56,11 @@ waitUntil {sleep 5; [[], [_veh]] call btc_fnc_delete; -(- btc_rep_malus_wheelChange * _damagedWheel) call btc_rep_fnc_change; - if (_taskID call BIS_fnc_taskState isEqualTo "CANCELED") exitWith {}; if (!alive _veh) exitWith { [_taskID, "FAILED"] call BIS_fnc_taskSetState; }; +(- btc_rep_malus_wheelChange * _damagedWheel) call btc_rep_fnc_change; + [_taskID, "SUCCEEDED"] call BIS_fnc_taskSetState; From 2dd0ed481eac3ab5194195a98eee08694251cbc4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 29 Jan 2022 11:10:47 +0100 Subject: [PATCH 351/354] fix event suppress not fire https://feedback.bistudio.com/T162941 --- .../core/fnc/city/activate.sqf | 11 +++++++++++ .../core/fnc/city/create.sqf | 2 +- .../core/fnc/city/trigger_player_side.sqf | 14 +++++++------- .../core/fnc/hideout/create.sqf | 2 +- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 6fd9e66bc..1e3342fc5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -350,6 +350,17 @@ if (_numberOfCivVeh < _p_civ_max_veh) then { }; }; +// https://feedback.bistudio.com/T162941 +private _hcs = entities "HeadlessClient_F"; +if (/*_hcs isNotEqualTo []*/ true) then { + private _triggerZSize = (triggerArea (_city getVariable "trigger_player_side")) select 4; + if (_triggerZSize isNotEqualTo -1) then { + { + _x attachTo [_city, [0, 0, -(_triggerZSize + 50)]]; + } forEach _hcs; + }; +}; + if (btc_debug || btc_debug_log) then { [format ["%1 - %2ms", _id, (serverTime - (_city getVariable ["serverTime", serverTime])) * 1000] , __FILE__, [btc_debug, btc_debug_log, true]] call btc_debug_fnc_message; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf index fa09b3241..c8356648d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf @@ -58,6 +58,6 @@ if (btc_p_sea) then { }, {}, [_position, [0, _cachingRadius]], 5 * 60] call CBA_fnc_waitUntilAndExecute; btc_city_all set [_id, _city]; -[_position, _cachingRadius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; +[_city, _cachingRadius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; _city diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf index 9c59ad6f2..3e7f39e25 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf @@ -6,7 +6,7 @@ Description: Create a trigger to detect player presence around a position. Parameters: - _position - Position where the trigger is created. [Array] + _city - Position where the trigger is created. [Object] _cachingRadius - Radius of the location. [Number] _city - City object where the trigger will be stored. [Object] _has_en - City is occupied. [Boolean] @@ -18,7 +18,7 @@ Returns: Examples: (begin example) - [_position, _cachingRadius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; + [_city, _cachingRadius, _city, _has_en, _name, _type, _id] call btc_city_fnc_trigger_player_side; (end) Author: @@ -27,7 +27,7 @@ Author: ---------------------------------------------------------------------------- */ params [ - ["_position", [0, 0, 0], [[]]], + ["_city", objNull, [objNull]], ["_cachingRadius", 0, [0]], ["_city", objNull, [objNull]], ["_has_en", false, [false]], @@ -36,14 +36,14 @@ params [ ["_id", 0, [0]] ]; -private _trigger = createTrigger ["EmptyDetector", _position, false]; -_trigger setTriggerArea [_cachingRadius + btc_city_radiusOffset, _cachingRadius + btc_city_radiusOffset, 0, false]; +private _trigger = createTrigger ["EmptyDetector", _city, false]; +_trigger setTriggerArea [_cachingRadius + btc_city_radiusOffset, _cachingRadius + btc_city_radiusOffset, 0, false, 800]; _trigger setTriggerActivation ["ANYPLAYER", "PRESENT", true]; _trigger setTriggerStatements [btc_p_trigger, format ["[%1] call btc_city_fnc_activate", _id], format ["[%1] call btc_city_fnc_de_activate", _id]]; _city setVariable ["trigger_player_side", _trigger]; if (btc_debug) then { - private _marker = createMarker [format ["loc_%1", _id], _position]; + private _marker = createMarker [format ["loc_%1", _id], _city]; _marker setMarkerShape "ELLIPSE"; _marker setMarkerBrush "SolidBorder"; _marker setMarkerSize [_cachingRadius + btc_city_radiusOffset, _cachingRadius + btc_city_radiusOffset]; @@ -55,7 +55,7 @@ if (btc_debug) then { }; _city setVariable ["marker", _marker]; - private _marke = createMarker [format ["locn_%1", _id], _position]; + private _marke = createMarker [format ["locn_%1", _id], _city]; _marke setMarkerType "Contact_dot1"; private _spaces = ""; for "_i" from 0 to count _name -1 do { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf index 9fccaa12b..87959086c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/hideout/create.sqf @@ -80,7 +80,7 @@ _city setPos _pos; if (btc_debug) then {deleteMarker format ["loc_%1", _id];}; deleteVehicle (_city getVariable ["trigger_player_side", objNull]); -[_pos, btc_hideouts_radius, _city, _city getVariable "occupied", _city getVariable "name", _city getVariable "type", _city getVariable "id"] call btc_city_fnc_trigger_player_side; +[_city, btc_hideouts_radius, _city, _city getVariable "occupied", _city getVariable "name", _city getVariable "type", _city getVariable "id"] call btc_city_fnc_trigger_player_side; [{ (_this select 0) findEmptyPositionReady (_this select 1) }, {}, [_pos, [0, _city getVariable ["cachingRadius", 100]]], 5 * 60] call CBA_fnc_waitUntilAndExecute; From 2e741808542ac7caa19401f1e28248cf9f99beeb Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 29 Jan 2022 13:06:14 +0100 Subject: [PATCH 352/354] Use setPoasASL --- .../core/fnc/city/activate.sqf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 1e3342fc5..ed8a98e95 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -351,13 +351,15 @@ if (_numberOfCivVeh < _p_civ_max_veh) then { }; // https://feedback.bistudio.com/T162941 -private _hcs = entities "HeadlessClient_F"; -if (/*_hcs isNotEqualTo []*/ true) then { +private _HCs = entities "HeadlessClient_F"; +if (_HCs isNotEqualTo []) then { private _triggerZSize = (triggerArea (_city getVariable "trigger_player_side")) select 4; if (_triggerZSize isNotEqualTo -1) then { + private _cityPos = getPosASL _city; + private _HCPos = _cityPos vectorAdd [0, 0, -(_triggerZSize + 50)]; { - _x attachTo [_city, [0, 0, -(_triggerZSize + 50)]]; - } forEach _hcs; + _x setPosASL _HCPos; + } forEach _HCs; }; }; From e2c5f32f7bacbf984db0f81014bd4ed962b5a6f2 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 30 Jan 2022 22:57:24 +0100 Subject: [PATCH 353/354] FIX loadout generated were wrong for verifyLoadout ace fnc --- .../core/fnc/arsenal/loadout.sqf | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf index 30eae4422..22e68a091 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/arsenal/loadout.sqf @@ -176,16 +176,27 @@ private _cargos = [ [_backpack, [["muzzle_antenna_02_f", 1], ["muzzle_antenna_01_f", 1], [["hgun_esd_01_F", "", "", "", [], [], ""], 1]]] ]; private _binocular_array = [_laserdesignator, "", "", "", ["Laserbatteries", 1], [], ""]; -private _launcher_array = [_launcher, "", "", "", [_launcherMagazine, _launcherCount], [], ""]; -private _radio_item = [["ItemRadio", ""] select (isClass(_cfgPatches >> "acre_main")), _radio] select (isClass (_cfgPatches >> "task_force_radio")); +private _launcher_array = [[_launcher, "", "", "", [_launcherMagazine, _launcherCount], [], ""], []] select (_launcher isEqualTo ""); +private _radio_item = [ + ["ItemRadio", ""] select (isClass(_cfgPatches >> "acre_main")), + _radio +] select (isClass (_cfgPatches >> "task_force_radio")); -if (_isDay) then { +private _loadout = if (_isDay) then { [ [_weapon, "", "", _optics select _isDay, [_weaponMagazine, _weaponCount], [], _bipod_item], _launcher_array, [_pistol, "", "", "", [_pistolMagazine, _pistolCount], [], ""], [_uniform, _cargo_uniform], - [_vest, [["SmokeShellGreen", 2, 1], [_weaponMagazine, 7, _weaponCount], ["SmokeShellPurple", 2, 1], ["SmokeShellYellow", 1, 1], [_pistolMagazine, 1, _pistolCount], ["ACE_M84", 1, 1], ["HandGrenade", 3, 1], [["", _radio] select (isClass(_cfgPatches >> "acre_main")), 1]]], + [_vest, [ + ["SmokeShellGreen", 2, 1], + [_weaponMagazine, 7, _weaponCount], + ["SmokeShellPurple", 2, 1], + ["SmokeShellYellow", 1, 1], + [_pistolMagazine, 1, _pistolCount], + ["ACE_M84", 1, 1], + ["HandGrenade", 3, 1] + ]], _cargos select _type, _helmet, _hood, _binocular_array, ["ItemMap", "B_UavTerminal", _radio_item, "ItemCompass", "ChemicalDetector_01_watch_F", ""] ] @@ -195,8 +206,23 @@ if (_isDay) then { _launcher_array, [_pistol, "", "", "", [_pistolMagazine, _pistolCount], [], ""], [_uniform, _cargo_uniform], - [_vest, [["SmokeShellGreen", 1, 1], ["B_IR_Grenade", 2, 1], [_weaponMagazines param [1, _weaponMagazine], 7, _weaponCount], ["Chemlight_green", 1, 1], ["Chemlight_blue", 1, 1], ["ACE_HandFlare_Green", 1, 1], ["HandGrenade", 3, 1], ["ACE_M84", 1, 1], [["", _radio] select (isClass(_cfgPatches >> "acre_main")), 1]]], + [_vest, [ + ["SmokeShellGreen", 1, 1], + ["B_IR_Grenade", 2, 1], + [_weaponMagazines param [1, _weaponMagazine], 7, _weaponCount], + ["Chemlight_green", 1, 1], + ["Chemlight_blue", 1, 1], + ["ACE_HandFlare_Green", 1, 1], + ["HandGrenade", 3, 1], + ["ACE_M84", 1, 1] + ]], _cargos select _type, _helmet, _hood, _binocular_array, ["ItemMap", "B_UavTerminal", _radio_item, "ItemCompass", "ChemicalDetector_01_watch_F", _night_vision] ] -} +}; + +if (isClass(_cfgPatches >> "acre_main")) then { + (_loadout select 4 select 1) pushBack [_radio, 1]; +}; + +_loadout From 7604e5c11914e8d24509b1de3de02be3dbaa7c04 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 1 Feb 2022 18:31:40 +0100 Subject: [PATCH 354/354] Add 1.22 --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 2 +- README.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 72373b157..736f2bbf1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -1,8 +1,8 @@ btc_version = [ 1, - 21.1, - 9 + 22, + 0 ]; diag_log format (["=BTC= HEARTS AND MINDS VERSION %1.%2.%3"] + btc_version); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf index 1d95ee665..e5bc0f90e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf @@ -8,7 +8,7 @@ setTimeMultiplier btc_p_acctime; [["btc_dty", "btc_m"], 1] call btc_task_fnc_create; if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db", worldName], false]}) then { - if ((profileNamespace getVariable [format ["btc_hm_%1_version", worldName], 1.13]) in [btc_version select 1, 20.1]) then { + if ((profileNamespace getVariable [format ["btc_hm_%1_version", worldName], 1.13]) in [btc_version select 1, 21.1]) then { [] call compileScript ["core\fnc\db\load.sqf"]; } else { [] call compileScript ["core\fnc\db\load_old.sqf"]; diff --git a/README.md b/README.md index 734815bff..acba48a97 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ Post war anti insurgency dynamic mission with focus on good relations with civil

- - H&M Version + + H&M Version H&M Downloads