From 81b7105f7beb5320a78ca1e0347c50535822df58 Mon Sep 17 00:00:00 2001 From: 3Mydlo3 Date: Thu, 15 Feb 2024 21:36:34 +0100 Subject: [PATCH] Add car alarm to civilian vehicles (#59) * Create vehicles component with car alarm WIP * Move relevant vehicle functions from civilian component * Make alarm go off at most once + message for cops * Alarm for civilian vehicles with at least 25% going off chance * Add alarmMinimumChance setting * Add alarmEnabled setting which can disable all alarms * Add alarmAlwaysArmed and alarmDisarmIfFailed settings * Fix include * Fixes to includes * Fixes to addon dependency * Fixes * Prevent civilians from triggering car alarm * Make car alarm work only once * Add carAlarm EH on server * Hopefully increase hearing distance of a car alarm * Fix Say3D * Add setting for vehicle alarm duration and change default to 60 s * Respect disarmed alarm if failed to go off * Add function to disable alarm in given vehicle * Introduce separate settings section for alarm * Add setting for alarm audible distance (+ decrease to 500 by default) * Convert indent to spaces --- addons/civilian/XEH_PREP.hpp | 2 - addons/civilian/XEH_preInit.sqf | 5 - addons/civilian/config.cpp | 3 +- addons/civilian/functions/fnc_initCity.sqf | 4 +- addons/civilian/initSettings.inc.sqf | 11 --- addons/civilian/stringtable.xml | 8 -- addons/common/XEH_PREP.hpp | 1 - addons/common/XEH_postInit.sqf | 4 +- addons/police/functions/fnc_spawnVehicle.sqf | 2 +- addons/vehicles/$PBOPREFIX$ | 1 + addons/vehicles/CfgEventHandlers.hpp | 15 +++ addons/vehicles/CfgSounds.hpp | 9 ++ addons/vehicles/XEH_PREP.hpp | 8 ++ addons/vehicles/XEH_postInit.sqf | 18 ++++ addons/vehicles/XEH_preInit.sqf | 14 +++ addons/vehicles/XEH_preStart.sqf | 2 + addons/vehicles/assets/sounds/CarAlarm.ogg | Bin 0 -> 72298 bytes addons/vehicles/config.cpp | 18 ++++ addons/vehicles/functions/fnc_carAlarm.sqf | 44 +++++++++ .../vehicles/functions/fnc_carAlarmLoop.sqf | 44 +++++++++ .../functions/fnc_createVehicle.sqf | 4 +- .../functions/fnc_disableCarAlarm.sqf | 33 +++++++ .../vehicles/functions/fnc_initCarAlarm.sqf | 38 ++++++++ .../functions/fnc_initVehicles.sqf | 5 +- .../functions/fnc_setVehicleRandomTexture.sqf | 2 +- .../functions/fnc_vehicleStolenMsg.sqf | 39 ++++++++ .../vehicles/functions/script_component.hpp | 1 + addons/vehicles/initSettings.sqf | 76 +++++++++++++++ addons/vehicles/script_component.hpp | 14 +++ addons/vehicles/stringtable.xml | 89 ++++++++++++++++++ 30 files changed, 475 insertions(+), 39 deletions(-) create mode 100644 addons/vehicles/$PBOPREFIX$ create mode 100644 addons/vehicles/CfgEventHandlers.hpp create mode 100644 addons/vehicles/CfgSounds.hpp create mode 100644 addons/vehicles/XEH_PREP.hpp create mode 100644 addons/vehicles/XEH_postInit.sqf create mode 100644 addons/vehicles/XEH_preInit.sqf create mode 100644 addons/vehicles/XEH_preStart.sqf create mode 100644 addons/vehicles/assets/sounds/CarAlarm.ogg create mode 100644 addons/vehicles/config.cpp create mode 100644 addons/vehicles/functions/fnc_carAlarm.sqf create mode 100644 addons/vehicles/functions/fnc_carAlarmLoop.sqf rename addons/{civilian => vehicles}/functions/fnc_createVehicle.sqf (93%) create mode 100644 addons/vehicles/functions/fnc_disableCarAlarm.sqf create mode 100644 addons/vehicles/functions/fnc_initCarAlarm.sqf rename addons/{civilian => vehicles}/functions/fnc_initVehicles.sqf (92%) rename addons/{common => vehicles}/functions/fnc_setVehicleRandomTexture.sqf (93%) create mode 100644 addons/vehicles/functions/fnc_vehicleStolenMsg.sqf create mode 100644 addons/vehicles/functions/script_component.hpp create mode 100644 addons/vehicles/initSettings.sqf create mode 100644 addons/vehicles/script_component.hpp create mode 100644 addons/vehicles/stringtable.xml diff --git a/addons/civilian/XEH_PREP.hpp b/addons/civilian/XEH_PREP.hpp index 3c7a9799..6e591bb9 100644 --- a/addons/civilian/XEH_PREP.hpp +++ b/addons/civilian/XEH_PREP.hpp @@ -3,7 +3,6 @@ PREP(civilianKilled); PREP(civilianKilledMarker); PREP(civilianKilledMsg); PREP(createCivilian); -PREP(createVehicle); PREP(getCityByLocation); PREP(getCityName); PREP(getCityRandomPos); @@ -12,6 +11,5 @@ PREP(getNearestVehicle); PREP(initCity); PREP(initCivilians); PREP(initCiviliansConfig); -PREP(initVehicles); PREP(initCivilian); PREP(unassignCivilianFromCity); diff --git a/addons/civilian/XEH_preInit.sqf b/addons/civilian/XEH_preInit.sqf index 54c961ff..c4cda66c 100644 --- a/addons/civilian/XEH_preInit.sqf +++ b/addons/civilian/XEH_preInit.sqf @@ -55,11 +55,6 @@ if (isServer) then { _x setVariable [QGVAR(CiviliansCount), _civiliansCount]; _x setVariable [QGVAR(initialCiviliansCount), _civiliansCount]; } forEach GVAR(cities); - - - // We need some improvements in determining civilian vehicles limit - GVAR(emptyVehiclesLimit) = GVAR(emptyVehiclesLimitMultiplier) * (5 * count (GVAR(cities))); - call FUNC(initVehicles); }; ADDON = true; diff --git a/addons/civilian/config.cpp b/addons/civilian/config.cpp index d96fb9aa..443dbbf8 100644 --- a/addons/civilian/config.cpp +++ b/addons/civilian/config.cpp @@ -7,7 +7,8 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { - "afsk_common" + "afsk_common", + "afsk_vehicles" }; author = "ArmaForces"; VERSION_CONFIG; diff --git a/addons/civilian/functions/fnc_initCity.sqf b/addons/civilian/functions/fnc_initCity.sqf index 34d655e3..926267bf 100644 --- a/addons/civilian/functions/fnc_initCity.sqf +++ b/addons/civilian/functions/fnc_initCity.sqf @@ -1,7 +1,7 @@ #include "script_component.hpp" /* * Author: 3Mydlo3 - * Function initializes given city with module, civilians and vehicles. + * Function initializes given city with module and civilians. * * Arguments: * 0: City to initialize @@ -43,5 +43,5 @@ _cityNamespace setVariable [QGVAR(CiviliansList), []]; _cityNamespace setVariable [QGVAR(CiviliansCount), 0]; _cityNamespace setVariable [QGVAR(initialCiviliansCount), 0]; -// Init vehicles +// Return _cityNamespace diff --git a/addons/civilian/initSettings.inc.sqf b/addons/civilian/initSettings.inc.sqf index 73eb5ee3..61ebf194 100644 --- a/addons/civilian/initSettings.inc.sqf +++ b/addons/civilian/initSettings.inc.sqf @@ -6,14 +6,3 @@ [0, 400, 200, 0], true ] call CBA_fnc_addSetting; - -[ - QGVAR(emptyVehiclesLimitMultiplier), - "LIST", - [LSTRING(EmptyVehiclesLimit), LSTRING(EmptyVehiclesLimit_Description)], - [LSTRING(DisplayName), localize "str_dn_vehicles"], - [[1, 2, 3], [LSTRING(Low), LSTRING(Medium), LSTRING(High)], 1], - true, - {}, - true -] call CBA_fnc_addSetting; diff --git a/addons/civilian/stringtable.xml b/addons/civilian/stringtable.xml index a8135bc8..d7ba990d 100644 --- a/addons/civilian/stringtable.xml +++ b/addons/civilian/stringtable.xml @@ -5,14 +5,6 @@ SerialKillers - Civilian SerialKillers - Cywile - - Civilian vehicles limit - Limit pojazdów cywilnych - - - Controls how much civilian vehicles will be created on the whole map. - Ustala jak dużo pojazdów cywilnych będzie utworzonych na całej mapie. - Civilian was killed at %1 in %2! Cywil został zabity o godzinie %1 w %2! diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index 35eea514..18ba5837 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -16,5 +16,4 @@ PREP(isHouseNearby); PREP(isRoadNearby); PREP(playMusicServer); PREP(removeItemsFromArsenal); -PREP(setVehicleRandomTexture); PREP(showMessage); diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index 2db8efc3..dbf91c8e 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -10,9 +10,7 @@ if (isServer) then { }] call CBA_fnc_addEventHandler; }; -[QGVAR(showMessage), { - _this call FUNC(showMessage); -}] call CBA_fnc_addEventHandler; +[QGVAR(showMessage), FUNC(showMessage)] call CBA_fnc_addEventHandler; [QGVAR(teleport), { params ["_caller", "_destination"]; diff --git a/addons/police/functions/fnc_spawnVehicle.sqf b/addons/police/functions/fnc_spawnVehicle.sqf index a8a91a8e..00d02fab 100644 --- a/addons/police/functions/fnc_spawnVehicle.sqf +++ b/addons/police/functions/fnc_spawnVehicle.sqf @@ -48,4 +48,4 @@ if (_position isEqualTo []) exitWith { }; // Spawn vehicle -[_vehicleClassname, _position, _direction, true, false, true] call EFUNC(civilian,createVehicle); +[_vehicleClassname, _position, _direction, true, false, true] call EFUNC(vehicles,createVehicle); diff --git a/addons/vehicles/$PBOPREFIX$ b/addons/vehicles/$PBOPREFIX$ new file mode 100644 index 00000000..2da77398 --- /dev/null +++ b/addons/vehicles/$PBOPREFIX$ @@ -0,0 +1 @@ +z\afsk\addons\vehicles \ No newline at end of file diff --git a/addons/vehicles/CfgEventHandlers.hpp b/addons/vehicles/CfgEventHandlers.hpp new file mode 100644 index 00000000..e90bed41 --- /dev/null +++ b/addons/vehicles/CfgEventHandlers.hpp @@ -0,0 +1,15 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; diff --git a/addons/vehicles/CfgSounds.hpp b/addons/vehicles/CfgSounds.hpp new file mode 100644 index 00000000..8593d26b --- /dev/null +++ b/addons/vehicles/CfgSounds.hpp @@ -0,0 +1,9 @@ +class CfgSounds +{ + class CarAlarm + { + name = "CarAlarm"; + sound[] = {QPATHTOF(assets\sounds\Caralarm.ogg), "db+10", 1.0}; + titles[] = {}; + }; +}; diff --git a/addons/vehicles/XEH_PREP.hpp b/addons/vehicles/XEH_PREP.hpp new file mode 100644 index 00000000..da527e3b --- /dev/null +++ b/addons/vehicles/XEH_PREP.hpp @@ -0,0 +1,8 @@ +PREP(carAlarm); +PREP(carAlarmLoop); +PREP(createVehicle); +PREP(disableCarAlarm); +PREP(initCarAlarm); +PREP(initVehicles); +PREP(setVehicleRandomTexture); +PREP(vehicleStolenMsg); diff --git a/addons/vehicles/XEH_postInit.sqf b/addons/vehicles/XEH_postInit.sqf new file mode 100644 index 00000000..dad32fb1 --- /dev/null +++ b/addons/vehicles/XEH_postInit.sqf @@ -0,0 +1,18 @@ +#include "script_component.hpp" + +if (isServer) then { + + [QGVAR(carAlarm), FUNC(carAlarm)] call CBA_fnc_addEventHandler; + [QGVAR(disableCarAlarm), FUNC(disableCarAlarm)] call CBA_fnc_addEventHandler; +}; + +if (hasInterface) then { + [QGVAR(carAlarm), FUNC(carAlarm)] call CBA_fnc_addEventHandler; + + [QGVAR(alarmOff), { + params ["_vehicle"]; + + [QEGVAR(common,showSideChatMsg), [WEST, [_vehicle] call FUNC(vehicleStolenMsg)]] call CBA_fnc_localEvent; + [_vehicle, true, GVAR(alarmDuration)] call FUNC(carAlarmLoop); + }] call CBA_fnc_addEventHandler; +}; diff --git a/addons/vehicles/XEH_preInit.sqf b/addons/vehicles/XEH_preInit.sqf new file mode 100644 index 00000000..c20929f5 --- /dev/null +++ b/addons/vehicles/XEH_preInit.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" +ADDON = false; +#include "XEH_PREP.hpp" + +#include "initSettings.sqf" + +// We need some improvements in determining civilian vehicles limit +GVAR(emptyVehiclesLimit) = 500; + +if (isServer) then { + call FUNC(initVehicles); +}; + +ADDON = true; diff --git a/addons/vehicles/XEH_preStart.sqf b/addons/vehicles/XEH_preStart.sqf new file mode 100644 index 00000000..a51262a3 --- /dev/null +++ b/addons/vehicles/XEH_preStart.sqf @@ -0,0 +1,2 @@ +#include "script_component.hpp" +#include "XEH_PREP.hpp" diff --git a/addons/vehicles/assets/sounds/CarAlarm.ogg b/addons/vehicles/assets/sounds/CarAlarm.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bc2a7a55bb9038751e0fc4fc7579486e2a8ce4bb GIT binary patch literal 72298 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
    jpZ6h<_T*;oL5{d{fMVfd4! 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ŹId}wPhw*j*lR#yqq2+TPWa~ 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 TN&o-=`Ng>v0079Jy#m7lhG5bi literal 0 HcmV?d00001 diff --git a/addons/vehicles/config.cpp b/addons/vehicles/config.cpp new file mode 100644 index 00000000..8f4daa98 --- /dev/null +++ b/addons/vehicles/config.cpp @@ -0,0 +1,18 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { + "afsk_common" + }; + author = "ArmaForces"; + VERSION_CONFIG; + }; +}; + +#include "CfgEventHandlers.hpp" +#include "CfgSounds.hpp" diff --git a/addons/vehicles/functions/fnc_carAlarm.sqf b/addons/vehicles/functions/fnc_carAlarm.sqf new file mode 100644 index 00000000..1d7aff0d --- /dev/null +++ b/addons/vehicles/functions/fnc_carAlarm.sqf @@ -0,0 +1,44 @@ +#include "script_component.hpp" +/* + * Author: 3Mydlo3 + * Function triggers car alarm on given vehicle. + * + * Arguments: + * 0: Vehicle which has alarm going off + * + * Return Value: + * True if alarm has gone off + * + * Example: + * None + * + * Public: No + */ + +params ["_vehicle"]; + +// Prevent triggering when triggered already +if (_vehicle getVariable [QGVAR(alarmOn), false]) exitWith { false }; + +// Prevent triggering multiple times or if unarmed +if (!GVAR(alarmAlwaysArmed) && { + (_vehicle getVariable [QGVAR(hasGoneOff), false] || { + !(_vehicle getVariable [QGVAR(alarmArmed), false])} + ) +}) exitWith { false }; + +// Random chance that alarm will go off +if (_vehicle getVariable [QGVAR(offChance), 1] < random 1) exitWith { + if (GVAR(alarmDisarmIfFailed)) then { + _vehicle setVariable [QGVAR(alarmArmed), false]; + }; + + false +}; + +_vehicle setVariable [QGVAR(alarmOn), true]; +_vehicle setVariable [QGVAR(hasGoneOff), true]; + +[QGVAR(alarmOff), [_vehicle]] call CBA_fnc_globalEvent; + +true diff --git a/addons/vehicles/functions/fnc_carAlarmLoop.sqf b/addons/vehicles/functions/fnc_carAlarmLoop.sqf new file mode 100644 index 00000000..c9e78f78 --- /dev/null +++ b/addons/vehicles/functions/fnc_carAlarmLoop.sqf @@ -0,0 +1,44 @@ +#include "script_component.hpp" +/* + * Author: 3Mydlo3 + * Function triggers car alarm on given vehicle. + * + * Arguments: + * 0: Vehicle which has alarm turned on + * + * Return Value: + * None + * + * Example: + * None + * + * Public: No + */ + +#define ALARM_INTERVAL 0.5 +#define ALARM_LENGTH 10 +#define MAX_DISTANCE GVAR(alarmAudibleDistance) +#define DEFAULT_PITCH 1 +#define SOUND_WITHOUT_MUFFLING 2 + +params ["_vehicle", "_lightsOn", "_remainingDuration", ["_currentSoundDuration", 999]]; + +_vehicle setPilotLight _lightsOn; +if (_currentSoundDuration > ALARM_LENGTH) then { + _vehicle say3D ["CarAlarm", MAX_DISTANCE, DEFAULT_PITCH, SOUND_WITHOUT_MUFFLING]; + _currentSoundDuration = ALARM_INTERVAL; +} else { + _currentSoundDuration = _currentSoundDuration + ALARM_INTERVAL; +}; + +_remainingDuration = _remainingDuration - 1; + +// player sideChat format ["Remaining alarm: %1", _remainingDuration]; + +if (_remainingDuration < 1 || {!alive _vehicle}) exitWith { + // player sideChat "Ending alarm"; + _vehicle setVariable [QGVAR(alarmOn), false, true]; + _vehicle setPilotLight false; +}; + +[FUNC(carAlarmLoop), [_vehicle, !_lightsOn, _remainingDuration, _currentSoundDuration], ALARM_INTERVAL] call CBA_fnc_waitAndExecute; diff --git a/addons/civilian/functions/fnc_createVehicle.sqf b/addons/vehicles/functions/fnc_createVehicle.sqf similarity index 93% rename from addons/civilian/functions/fnc_createVehicle.sqf rename to addons/vehicles/functions/fnc_createVehicle.sqf index 46fe6b1c..dff15331 100644 --- a/addons/civilian/functions/fnc_createVehicle.sqf +++ b/addons/vehicles/functions/fnc_createVehicle.sqf @@ -13,7 +13,7 @@ * 0: Created vehicle * * Example: - * ["C_Offroad_01_F", position player] call afsk_civilian_fnc_createVehicle + * ["C_Offroad_01_F", position player] call afsk_vehicles_fnc_createVehicle * * Public: No */ @@ -34,7 +34,7 @@ _vehicle setDir _dir; // Disable randomization and use own function to set texture on vehicle globally (so everyone can see the same color!) _vehicle setVariable ["BIS_enableRandomization", false]; if (_enableRandomization) then { - [_vehicle] call EFUNC(common,setVehicleRandomTexture); + [_vehicle] call FUNC(setVehicleRandomTexture); }; if (_emptyCargo) then { diff --git a/addons/vehicles/functions/fnc_disableCarAlarm.sqf b/addons/vehicles/functions/fnc_disableCarAlarm.sqf new file mode 100644 index 00000000..c8dc9f38 --- /dev/null +++ b/addons/vehicles/functions/fnc_disableCarAlarm.sqf @@ -0,0 +1,33 @@ +#include "script_component.hpp" +/* + * Author: 3Mydlo3 + * Function disables car alarm on given vehicle. + * + * Arguments: + * 0: Vehicle which has alarm armed + * + * Return Value: + * True if alarm is disabled + * + * Example: + * None + * + * Public: No + */ + +params ["_vehicle"]; + +if (!isServer) exitWith { + [QGVAR(disableCarAlarm), [_vehicle]] call CBA_fnc_serverEvent; + false +}; + +_vehicle setVariable [QGVAR(alarmArmed), false]; + +// Remove EH so it doesn't fire unnecessarily +private _ehId = _vehicle getVariable [QGVAR(GetInEHID), -1]; +_vehicle removeEventHandler ["GetIn", _ehId]; + +INFO_1("Disabled alarm in vehicle %1",_vehicle); + +true diff --git a/addons/vehicles/functions/fnc_initCarAlarm.sqf b/addons/vehicles/functions/fnc_initCarAlarm.sqf new file mode 100644 index 00000000..61a1b08c --- /dev/null +++ b/addons/vehicles/functions/fnc_initCarAlarm.sqf @@ -0,0 +1,38 @@ +#include "script_component.hpp" +/* + * Author: 3Mydlo3 + * Function initializes car alarm on given vehicle. + * + * Arguments: + * 0: Vehicle which has alarm armed + * 1: Chance that the alarm will indeed go off + * + * Return Value: + * True if alarm has been armed + * + * Example: + * None + * + * Public: No + */ + +params ["_vehicle", ["_offChance", 1]]; + +if (_vehicle getVariable [QGVAR(alarmArmed), false]) exitWith { false }; + +_vehicle setVariable [QGVAR(alarmArmed), true]; +_vehicle setVariable [QGVAR(offChance), _offChance]; + +// Alarm should go off at most once, init a flag to keep that in mind +_vehicle setVariable [QGVAR(hasGoneOff), false]; + +private _ehId = _vehicle addEventHandler ["GetIn", { + params ["_vehicle", "_role", "_unit", "_turret"]; + if (side _unit isEqualTo CIVILIAN) exitWith {}; + + [QGVAR(carAlarm), [_vehicle]] call CBA_fnc_serverEvent; +}]; + +_vehicle setVariable [QGVAR(GetInEHID), _ehId]; + +true diff --git a/addons/civilian/functions/fnc_initVehicles.sqf b/addons/vehicles/functions/fnc_initVehicles.sqf similarity index 92% rename from addons/civilian/functions/fnc_initVehicles.sqf rename to addons/vehicles/functions/fnc_initVehicles.sqf index 5087ed6c..3a69fd55 100644 --- a/addons/civilian/functions/fnc_initVehicles.sqf +++ b/addons/vehicles/functions/fnc_initVehicles.sqf @@ -24,8 +24,6 @@ private _civilianCarTypes = "( (getNumber (_x >> 'scope') >= 2) && {getNumber (_x >> 'side') == 3} })" configClasses (configFile >> "CfgVehicles"); -GVAR(citiesVehicles) = call CBA_fnc_createNamespace; - while {_i > 0} do { private _carType = selectRandom _civilianCarTypes; private _pos = [_carType, true, false, true] call EFUNC(common,getRandomPos); @@ -39,6 +37,9 @@ while {_i > 0} do { if (_nearbyCarsCount >= 2 && {(random 1) > 0.1}) exitWith {}; // Create vehicle on given position. We need some way to prevent instant damage to vehicle as these empty positions are not perfect. private _vehicle = [_carType, _pos] call FUNC(createVehicle); + if (GVAR(alarmEnabled)) then { + [_vehicle, random 1 + GVAR(alarmMinimumChance)] call FUNC(initCarAlarm); + }; _i = _i - 1; }; }; diff --git a/addons/common/functions/fnc_setVehicleRandomTexture.sqf b/addons/vehicles/functions/fnc_setVehicleRandomTexture.sqf similarity index 93% rename from addons/common/functions/fnc_setVehicleRandomTexture.sqf rename to addons/vehicles/functions/fnc_setVehicleRandomTexture.sqf index 27cd0d87..806cfa18 100644 --- a/addons/common/functions/fnc_setVehicleRandomTexture.sqf +++ b/addons/vehicles/functions/fnc_setVehicleRandomTexture.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [vehicle player] call afsk_common_fnc_setVehicleRandomTexture + * [vehicle player] call afsk_vehicles_fnc_setVehicleRandomTexture * * Public: No */ diff --git a/addons/vehicles/functions/fnc_vehicleStolenMsg.sqf b/addons/vehicles/functions/fnc_vehicleStolenMsg.sqf new file mode 100644 index 00000000..220bbfa8 --- /dev/null +++ b/addons/vehicles/functions/fnc_vehicleStolenMsg.sqf @@ -0,0 +1,39 @@ +#include "script_component.hpp" +/* + * Author: 3Mydlo3 + * Function creates message for cops on vehicle stolen event. + * + * Arguments: + * 0: Stolen vehicle + * 1: Time of theft + * 2: Nearest location + * + * Return Value: + * 0: Vehicle stolen message + * + * Example: + * [vehicle player, "08:06:04"] call afsk_vehicles_fnc_vehicleStolenMsg + * + * Public: No + */ + +params ["_stolenVehicle", ["_timeOfTheft", daytime], ["_nearestTown", locationNull]]; + +if (_timeOfTheft isEqualType 0) then { + _timeOfTheft = [_timeOfTheft] call BIS_fnc_timeToString; +}; + +if (isNull _nearestTown) then { + _nearestTown = [_stolenVehicle] call EFUNC(common,getNearestCityLocation); +}; + +private _msg = ""; +private _distance = (position _stolenVehicle) distance _nearestTown; +// Check if distance is greater than 250 m. If so then change output a bit to represent that. +if (_distance <= 250) then { + _msg = format [LLSTRING(Vehicle_Stolen_In_City), _timeOfTheft, text _nearestTown]; +} else { + _msg = format [LLSTRING(Vehicle_Stolen_Near_City), _timeOfTheft, text _nearestTown]; +}; + +_msg diff --git a/addons/vehicles/functions/script_component.hpp b/addons/vehicles/functions/script_component.hpp new file mode 100644 index 00000000..2ca5e882 --- /dev/null +++ b/addons/vehicles/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\afsk\addons\vehicles\script_component.hpp" diff --git a/addons/vehicles/initSettings.sqf b/addons/vehicles/initSettings.sqf new file mode 100644 index 00000000..b55c6de9 --- /dev/null +++ b/addons/vehicles/initSettings.sqf @@ -0,0 +1,76 @@ +[ + QGVAR(emptyVehiclesLimitMultiplier), + "LIST", + [LSTRING(EmptyVehiclesLimit), LSTRING(EmptyVehiclesLimit_Description)], + [LSTRING(DisplayName), localize "str_dn_vehicles"], + [[1, 2, 3], [LSTRING(Low), LSTRING(Medium), LSTRING(High)], 1], + true, + {}, + true +] call CBA_fnc_addSetting; + +[ + QGVAR(alarmEnabled), + "CHECKBOX", + [LSTRING(AlarmEnabled), LSTRING(AlarmEnabled_Description)], + [LSTRING(DisplayName), LSTRING(CarAlarm)], + true, + true, + {}, + true +] call CBA_fnc_addSetting; + +[ + QGVAR(alarmAlwaysArmed), + "CHECKBOX", + [LSTRING(AlarmAlwaysArmed), LSTRING(AlarmAlwaysArmed_Description)], + [LSTRING(DisplayName), LSTRING(CarAlarm)], + false, + true, + {}, + true +] call CBA_fnc_addSetting; + +[ + QGVAR(alarmDisarmIfFailed), + "CHECKBOX", + [LSTRING(AlarmDisarmIfFailed), LSTRING(AlarmDisarmIfFailed_Description)], + [LSTRING(DisplayName), LSTRING(CarAlarm)], + true, + true, + {}, + true +] call CBA_fnc_addSetting; + +[ + QGVAR(alarmMinimumChance), + "SLIDER", + [LSTRING(AlarmMinimumChance), LSTRING(AlarmMinimumChance_Description)], + [LSTRING(DisplayName), LSTRING(CarAlarm)], + [-1, 1, 0.25, 1], + true, + {}, + true +] call CBA_fnc_addSetting; + +[ + QGVAR(alarmDuration), + "SLIDER", + [LSTRING(AlarmDuration), LSTRING(AlarmDuration_Description)], + [LSTRING(DisplayName), LSTRING(CarAlarm)], + [5, 300, 60, 1], + true, + {}, + true +] call CBA_fnc_addSetting; + +[ + QGVAR(alarmAudibleDistance), + "SLIDER", + [LSTRING(AlarmAudibleDistance), LSTRING(AlarmAudibleDistance_Description)], + [LSTRING(DisplayName), LSTRING(CarAlarm)], + [100, 1000, 500, 1], + true, + {}, + true +] call CBA_fnc_addSetting; diff --git a/addons/vehicles/script_component.hpp b/addons/vehicles/script_component.hpp new file mode 100644 index 00000000..c8ead8d7 --- /dev/null +++ b/addons/vehicles/script_component.hpp @@ -0,0 +1,14 @@ +#define COMPONENT vehicles +#include "\z\afsk\addons\main\script_mod.hpp" + +// #define DEBUG_MODE_FULL +// #define DISABLE_COMPILE_CACHE + +#ifdef DEBUG_ENABLED_VEHICLES + #define DEBUG_MODE_FULL +#endif + #ifdef DEBUG_SETTINGS_VEHICLES + #define DEBUG_SETTINGS DEBUG_SETTINGS_VEHICLES +#endif + +#include "\z\afsk\addons\main\script_macros.hpp" diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml new file mode 100644 index 00000000..16239c25 --- /dev/null +++ b/addons/vehicles/stringtable.xml @@ -0,0 +1,89 @@ + + + + + SerialKillers - Vehicles + SerialKillers - Pojazdy + + + Alarm enabled + Alarmy włączone + + + Add car alarms to civilian vehicles. + Dodaj alarmy do pojazdów cywilnych. + + + Alarm always armed + Alarm zawsze uzbrojony + + + Alarm will always be armed, even if it previously did go off. + Zezwól na wielokrotne odpalenie alarmu. Działa tylko jeżeli Minimalna szansa na alarm jest ustawiona na mniej niż 1. + + + Alarm audible distance + Zasięg słyszalności alarmu + + + Control exact distance (in meters) at which an alarm can be heard. Increasing the distance makes it easier for cops to spot a stolen vehicle. + Kontroluje dokładną odległość (w metrach), z której alarm będzie słyszalny. Zwiększenie tej odległości ułatwia policji zlokalizowanie skradzionego pojazdu. + + + Alarm disarm if didn't go off + Rozbrój alarm jeżeli się nie włączył + + + Disarm alarm if it didn't go off when a player entered vehicle. Effective only if 'Alarm always armed' is disabled and 'Alarm Minimum Chance' is set to less than 1. + Rozbrój alarm jeżeli się nie włączył gdy gracz wszedł do pojazdu. Działa tylko jeżeli ustawienie 'Alarm zawsze uzbrojony' jest wyłączone oraz 'Minimalna szansa na alarm' jest ustawiona na mniej niż 1. + + + Alarm Minimum Chance + Minimalna szansa na alarm + + + Controls the chance of an alarm going off in a car that has the alarm armed. + Ustala szansę na uruchomienie alarmu w pojeździe posiadającym alarm. + + + Alarm Duration + Długość alarmu + + + Controls how long will the alarm sound be heard. + Ustala jak długo będzie wył alarm. + + + Car alarm + Alarm samochodowy + + + Civilian vehicles limit + Limit pojazdów cywilnych + + + Controls how much civilian vehicles will be created on the whole map. + Ustala jak dużo pojazdów cywilnych będzie utworzonych na całej mapie. + + + Vehicle was stolen at %1 in %2! + Pojazd został skradziony o godzinie %1 w %2! + + + Vehicle was stolen at %1 near %2! + Pojazd został skradziony o godzinie %1 w pobliżu %2! + + + Low + Mało + + + Mediun + Średnio + + + High + Dużo + + +