mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2026-02-04 15:22:53 +03:00
Add option to clear the ammo of all static guns, compile vehicle functions for server and client
This commit is contained in:
@@ -1578,6 +1578,10 @@ if (_canBuild) then {
|
||||
};
|
||||
publicVariableServer "PVDZ_obj_Publish";
|
||||
};
|
||||
|
||||
if (_builtObject isKindOf "StaticWeapon" || {_classname in DZE_StaticWeapons}) then {
|
||||
[_builtObject,DZE_clearStaticAmmo,false] call fn_vehicleAddons;
|
||||
};
|
||||
};
|
||||
if (DZE_GodModeBase && {!(_classname in DZE_GodModeBaseExclude)}) then {
|
||||
_builtObject addEventHandler ["HandleDamage", {0}];
|
||||
|
||||
43
SQF/dayz_code/compile/fn_clearTurrets.sqf
Normal file
43
SQF/dayz_code/compile/fn_clearTurrets.sqf
Normal file
@@ -0,0 +1,43 @@
|
||||
//By denvdmj (probably, I found it on the biki)
|
||||
|
||||
local _obj = _this;
|
||||
|
||||
local _weaponArray = [];
|
||||
_weaponArray set [count _weaponArray,[-1]];
|
||||
|
||||
local _findRecurse = {
|
||||
local _root = (_this select 0);
|
||||
local _path = +(_this select 1);
|
||||
local _thisThis = _this select 2;
|
||||
|
||||
for "_i" from 0 to count _root -1 do {
|
||||
local _class = _root select _i;
|
||||
|
||||
if (isClass _class) then {
|
||||
local _currentPath = _path + [_i];
|
||||
{_weaponArray set [count _weaponArray, _currentPath];} count getArray (_class >> "weapons");
|
||||
_class = _class >> "turrets";
|
||||
if (isClass _class) then {[_class, _currentPath, _thisThis] call _findRecurse;};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
[configFile >> "CfgVehicles" >> typeOf (_obj) >> "turrets", [], _obj] call _findRecurse;
|
||||
|
||||
{
|
||||
local _turret = _x;
|
||||
local _mags = _obj magazinesTurret _turret;
|
||||
|
||||
{
|
||||
local _mag = _x;
|
||||
if !(["horn",_mag] call fnc_inString) then {
|
||||
if (DZE_clearVehicleFlares) then {
|
||||
_obj removeMagazinesTurret[_mag,_turret];
|
||||
} else {
|
||||
if !(["flare",_mag] call fnc_inString) then {
|
||||
_obj removeMagazinesTurret[_mag,_turret];
|
||||
};
|
||||
};
|
||||
};
|
||||
} count _mags;
|
||||
} forEach _weaponArray;
|
||||
47
SQF/dayz_code/compile/fn_fillTurrets.sqf
Normal file
47
SQF/dayz_code/compile/fn_fillTurrets.sqf
Normal file
@@ -0,0 +1,47 @@
|
||||
local _obj = _this select 0;
|
||||
local _countMags = _this select 1;
|
||||
|
||||
local _weaponArray = [];
|
||||
_weaponArray set [count _weaponArray,["",[-1]]];
|
||||
|
||||
local _findRecurse = {
|
||||
local _root = (_this select 0);
|
||||
local _path = +(_this select 1);
|
||||
local _thisThis = _this select 2;
|
||||
|
||||
for "_i" from 0 to count _root -1 do {
|
||||
local _class = _root select _i;
|
||||
|
||||
if (isClass _class) then {
|
||||
local _currentPath = _path + [_i];
|
||||
{
|
||||
_weaponArray set [count _weaponArray,[_x,_currentPath]];
|
||||
} count getArray (_class >> "weapons");
|
||||
_class = _class >> "turrets";
|
||||
if (isClass _class) then {[_class, _currentPath, _thisThis] call _findRecurse;};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
[configFile >> "CfgVehicles" >> typeOf (_obj) >> "turrets", [], _obj] call _findRecurse;
|
||||
|
||||
{
|
||||
local _type = _x select 0;
|
||||
local _turret = _x select 1;
|
||||
local _mags = getArray(configFile >> "CfgWeapons" >> _type >> "magazines");
|
||||
local _mag = _mags select 0;
|
||||
|
||||
if (!isNil "_mag" && {!(["horn",_mag] call fnc_inString)})then {
|
||||
for "_i" from 1 to _countMags do {
|
||||
_obj addMagazineTurret[_mag,_turret];
|
||||
};
|
||||
};
|
||||
} forEach _weaponArray;
|
||||
|
||||
{
|
||||
local _mags = getArray(configFile >> "CfgWeapons" >> _x >> "magazines");
|
||||
local _mag = _mags select 0;
|
||||
for "_i" from 1 to _countMags do {
|
||||
_obj addMagazine _mag;
|
||||
};
|
||||
} count (weapons _obj);
|
||||
34
SQF/dayz_code/compile/fn_vehicleAddons.sqf
Normal file
34
SQF/dayz_code/compile/fn_vehicleAddons.sqf
Normal file
@@ -0,0 +1,34 @@
|
||||
local _vehicle = _this select 0;
|
||||
local _clearAmmo = _this select 1;
|
||||
local _addAmmo = _this select 2;
|
||||
local _type = typeOf _vehicle;
|
||||
|
||||
local _skipAmmoClear = []; // Add vehicle classnames you do not want to clear the ammo
|
||||
local _skipAmmoFill = []; // Add vehicle classnames you do not want to fill the ammo
|
||||
|
||||
if (_type in DZE_disableThermal) then {
|
||||
_vehicle disableTIEquipment true;
|
||||
};
|
||||
|
||||
if (_clearAmmo && {!(_type in _skipAmmoClear)}) then {
|
||||
_vehicle call fn_clearTurrets;
|
||||
};
|
||||
|
||||
if (_addAmmo && {!(_type in _skipAmmoFill)}) then {
|
||||
local _countMags = 2; // Number of how many magazines will be added to the vehicle
|
||||
[_vehicle,_countMags] call fn_fillTurrets;
|
||||
};
|
||||
|
||||
|
||||
// Add/Remove extra weapons and ammo
|
||||
|
||||
/*
|
||||
|
||||
if (_type == "GNT_C185T") exitwith {
|
||||
_vehicle removeWeapon "FFARLauncher_12";
|
||||
_vehicle addWeapon "pook_M60_dual_DZ";
|
||||
_vehicle addMagazine "pook_1300Rnd_762x51_M60";
|
||||
_vehicle addMagazine "pook_1300Rnd_762x51_M60";
|
||||
};
|
||||
|
||||
*/
|
||||
@@ -94,6 +94,12 @@ DZE_WeatherVariables = [
|
||||
DZE_PlotManagementAdmins = []; //Array of admin PlayerUIDs. UIDs in this list are able to access every pole's management menu and delete or build any buildable with a pole nearby.
|
||||
DZE_doorManagementAdmins = []; //Array of admin PlayerUIDs. UIDs in this list are able to access every door's management menu and open it.
|
||||
|
||||
DZE_disableThermal = []; // Array of vehicle classnames to disable thermal on when being spawned. i.e: ["AH1Z","MTVR"];
|
||||
DZE_clearStaticAmmo = true; // Clears the ammo of all built and spawned static guns
|
||||
DZE_clearVehicleAmmo = true; // Clears the ammo of vehicles spawned, bought, claimed and upgraded during the same restart
|
||||
DZE_clearVehicleFlares = false; // Clears the flares of vehicles during the same restart, DZE_clearVehicleAmmo must be true in order to work
|
||||
DZE_addVehicleAmmo = false; // Adds ammo to all spawned, bought, claimed and upgraded vehicles during the same restart
|
||||
|
||||
// Uncomment the lines below to change the default loadout
|
||||
//DefaultMagazines = ["HandRoadFlare","ItemBandage","ItemPainkiller","8Rnd_9x18_Makarov","8Rnd_9x18_Makarov"];
|
||||
//DefaultWeapons = ["Makarov_DZ","ItemFlashlight"];
|
||||
@@ -120,10 +126,6 @@ if (isServer) then {
|
||||
MaxVehicleLimit = 50; // Max number of random vehicles to spawn around the map
|
||||
dayz_enableGhosting = false;
|
||||
dayz_ghostTimer = 120;
|
||||
DZE_disableThermal = []; // Array of vehicle classnames to disable thermal on when being spawned. i.e: ["AH1Z","MTVR"];
|
||||
DZE_clearVehicleAmmo = true; // Clears the ammo of vehicles spawned, bought, claimed and upgraded during the same restart
|
||||
DZE_clearVehicleFlares = false; // Clears the flares of vehicles during the same restart, DZE_clearVehicleAmmo must be true in order to work
|
||||
DZE_addVehicleAmmo = false; // Adds ammo to all spawned, bought, claimed and upgraded vehicles during the same restart
|
||||
|
||||
// ZSC
|
||||
Z_globalBankingTraders = false; // Enable banking NPCs at trader cities.
|
||||
|
||||
@@ -799,6 +799,10 @@ object_getHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\o
|
||||
object_setHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHit.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles)
|
||||
object_processHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_processHit.sqf"; //process the hit in the REVO damage system (records and sets hit)
|
||||
|
||||
fn_vehicleAddons = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_vehicleAddons.sqf";
|
||||
fn_clearTurrets = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_clearTurrets.sqf";
|
||||
fn_fillTurrets = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_fillTurrets.sqf";
|
||||
|
||||
// Vehicle damage fix
|
||||
fnc_veh_handleDam = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleDam.sqf";
|
||||
fnc_veh_handleKilled = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleKilled.sqf";
|
||||
|
||||
Reference in New Issue
Block a user