From e435d41f6c8e178e8d165ef74ae95b10c699fbaa Mon Sep 17 00:00:00 2001 From: ebaydayz Date: Fri, 25 Mar 2016 21:24:43 -0400 Subject: [PATCH] Update server_functions The protective box is not needed on Chernarus. If other maps need it we are better off spawning a permanent box around the debug area once, instead of constantly creating new boxes every time a player logs in. --- CHANGE LOG 1.0.6.txt | 5 +- .../Configs/CfgVehicles/DZE/Prop_Defs.hpp | 4 - SQF/dayz_code/compile/local_lights_init.sqf | 4 +- SQF/dayz_code/init/variables.sqf | 23 +- SQF/dayz_code/system/player_monitor.fsm | 18 - SQF/dayz_server/compile/fa_antiwallhack.sqf | 2 +- .../compile/fa_hiveMaintenance.sqf | 7 +- .../compile/server_checkIfTowed.sqf | 13 + .../compile/server_logUnlockLockEvent.sqf | 26 + .../compile/server_publishObject.sqf | 2 +- .../compile/server_publishVehicle2.sqf | 4 +- .../compile/server_publishVehicle3.sqf | 4 +- .../compile/server_spawnInfectedCamps.sqf | 2 +- SQF/dayz_server/compile/server_swapObject.sqf | 2 +- .../compile/server_updateObject.sqf | 4 +- SQF/dayz_server/compile/spawn_ammosupply.sqf | 19 + SQF/dayz_server/compile/spawn_mineveins.sqf | 18 + SQF/dayz_server/compile/spawn_roadblocks.sqf | 22 + SQF/dayz_server/compile/spawn_vehicles.sqf | 128 +++ .../compile/zombie_Wildgenerate.sqf | 3 +- SQF/dayz_server/init/Epoch_Init.sqf | 828 ------------------ SQF/dayz_server/init/server_functions.sqf | 229 ++--- SQF/dayz_server/modules/drop_bombs.sqf | 2 +- .../system/scheduler/sched_safetyVehicle.sqf | 2 +- SQF/dayz_server/system/server_monitor.sqf | 23 +- .../MPMissions/DayZ_Epoch_13.Tavi/init.sqf | 1 - .../MPMissions/DayZ_Epoch_15.namalsk/init.sqf | 1 - .../DayZ_Epoch_16.Panthera2/init.sqf | 1 - 28 files changed, 384 insertions(+), 1013 deletions(-) create mode 100644 SQF/dayz_server/compile/server_checkIfTowed.sqf create mode 100644 SQF/dayz_server/compile/server_logUnlockLockEvent.sqf create mode 100644 SQF/dayz_server/compile/spawn_ammosupply.sqf create mode 100644 SQF/dayz_server/compile/spawn_mineveins.sqf create mode 100644 SQF/dayz_server/compile/spawn_roadblocks.sqf create mode 100644 SQF/dayz_server/compile/spawn_vehicles.sqf delete mode 100644 SQF/dayz_server/init/Epoch_Init.sqf diff --git a/CHANGE LOG 1.0.6.txt b/CHANGE LOG 1.0.6.txt index b68a199c1..0413d970d 100644 --- a/CHANGE LOG 1.0.6.txt +++ b/CHANGE LOG 1.0.6.txt @@ -8,10 +8,13 @@ - Journal is now functional for displaying stats - ItemFish, Shotgun ammo and several other item classnames changed. See SQL\1.0.6_Updates - Dupicate functions have been renamed: + - dayz_objectUID3 --> dayz_objectUID2 + - object_handleServerKilled --> vehicle_handleServerKilled - object_setFixServer --> fnc_veh_setFixServer - vehicle_handleDamage --> fnc_veh_handleDam - vehicle_handleKilled --> fnc_veh_handleKilled - Duplicate global variables have been renamed: + - dayz_allowedObjects --> DayZ_SafeObjects - dayz_updateObjects --> DayZ_GearedObjects - freeTarget --> OpenTarget - Duplicate public variables have been renamed: @@ -20,7 +23,6 @@ - norrnRaDrag --> PVDZ_drg_RaDrag - norrnRaLW --> PVDZ_drg_RaLW - norrnRLact --> PVDZ_drg_RLact - - PVCDZE_vehSH --> PVCDZ_veh_SH - PVDZE_obj_Delete --> PVDZ_obj_Destroy (PVDZ_obj_Delete is used for plants and blood trails) - PVDZE_obj_Fire --> PVDZ_obj_Fire - PVDZE_obj_Publish --> PVDZ_obj_Publish @@ -36,6 +38,7 @@ - PVDZE_send --> PVDZ_send - PVDZE_Server_Simulation --> PVDZ_Server_Simulation - PVDZE_serverStoreVar --> PVDZ_serverStoreVar + - PVCDZE_vehSH --> PVCDZ_veh_SH - PVDZE_veh_SFix --> PVDZ_veh_SF - PVDZE_veh_SFuel --> PVCDZ_veh_SetFuel - PVDZE_veh_Update --> PVDZ_veh_Save diff --git a/SQF/dayz_code/Configs/CfgVehicles/DZE/Prop_Defs.hpp b/SQF/dayz_code/Configs/CfgVehicles/DZE/Prop_Defs.hpp index df8a9d97c..3909563c6 100644 --- a/SQF/dayz_code/Configs/CfgVehicles/DZE/Prop_Defs.hpp +++ b/SQF/dayz_code/Configs/CfgVehicles/DZE/Prop_Defs.hpp @@ -120,10 +120,6 @@ class DebugBoxPlayer_DZ: NonStrategic armor = 2000; displayName = "Player Debug Box"; vehicleClass = "Fortifications"; - class Eventhandlers - { - init = "_this call eh_localCleanup;"; - }; }; // buildables diff --git a/SQF/dayz_code/compile/local_lights_init.sqf b/SQF/dayz_code/compile/local_lights_init.sqf index 9a9a1c4d2..e096fd70a 100644 --- a/SQF/dayz_code/compile/local_lights_init.sqf +++ b/SQF/dayz_code/compile/local_lights_init.sqf @@ -120,7 +120,7 @@ if(isServer)then{ _delQtyLights = 0; { if (local _x) then { - _x call dayz_perform_purge; + deleteVehicle _x; //should use sched_co_deleteVehicle instead uiSleep 0.025; _delQtyLights = _delQtyLights + 1; } else { @@ -129,7 +129,7 @@ if(isServer)then{ if (count _pos > 0) then { _nearby = {(isPlayer _x) && (alive _x)} count (_pos nearEntities [["CAManBase","AllVehicles"], 420]);//Use calculated range here. if (_nearby==0) then { - _x call dayz_perform_purge; + deleteVehicle _x; //should use sched_co_deleteVehicle instead uiSleep 0.025; _delQtyLights = _delQtyLights + 1; }; diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf index 79f426d13..fa1ca46ae 100644 --- a/SQF/dayz_code/init/variables.sqf +++ b/SQF/dayz_code/init/variables.sqf @@ -48,7 +48,7 @@ DayZ_fuelCans = ["ItemJerrycan","ItemFuelcan","ItemFuelBarrel"]; DayZ_fuelCansEmpty = ["ItemJerrycanEmpty","ItemFuelcanEmpty","ItemFuelBarrelEmpty"]; DayZ_traps = ["Trap_Cans","TrapTripwireFlare","TrapBearTrapSmoke","TrapTripwireGrenade","TrapTripwireSmoke","TrapBearTrapFlare"]; DayZ_ViralZeds = ["z_new_villager2","z_new_villager3","z_new_villager4","z_new_worker2","z_new_worker3","z_new_worker4"]; -DayZ_SafeObjects = ["Base_Fire_DZ","WoodenGate_1","WoodenGate_2","WoodenGate_3","WoodenGate_4","Land_Fire_DZ","TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","TentStorage4","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","StashMedium4","Wire_cat1","Sandbag1_DZ","Fence_DZ","Generator_DZ","Hedgehog_DZ","BearTrap_DZ","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DomeTentStorage4","CamoNet_DZ","Trap_Cans","TrapTripwireFlare","TrapBearTrapSmoke","TrapTripwireGrenade","TrapTripwireSmoke","TrapBearTrapFlare"]; +DayZ_SafeObjects = ["Base_Fire_DZ","WoodenGate_1","WoodenGate_2","WoodenGate_3","WoodenGate_4","Land_Fire_DZ","TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","TentStorage4","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","StashMedium4","Wire_cat1","Sandbag1_DZ","Fence_DZ","Generator_DZ","Hedgehog_DZ","BearTrap_DZ","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DomeTentStorage4","CamoNet_DZ","Trap_Cans","TrapTripwireFlare","TrapBearTrapSmoke","TrapTripwireGrenade","TrapTripwireSmoke","TrapBearTrapFlare","TentStorageDomed","TentStorageDomed2","VaultStorageLocked","BagFenceRound_DZ","TrapBear","Fort_RazorWire","WoodGate_DZ","Land_HBarrier1_DZ","Land_HBarrier3_DZ","Land_HBarrier5_DZ","Fence_corrugated_DZ","M240Nest_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","Plastic_Pole_EP1_DZ","StickFence_DZ","LightPole_DZ","FuelPump_DZ","DesertCamoNet_DZ","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ","SandNest_DZ","DeerStand_DZ","MetalPanel_DZ","WorkBench_DZ","WoodFloor_DZ","WoodLargeWall_DZ","WoodLargeWallDoor_DZ","WoodLargeWallWin_DZ","WoodSmallWall_DZ","WoodSmallWallWin_DZ","WoodSmallWallDoor_DZ","LockboxStorageLocked","WoodFloorHalf_DZ","WoodFloorQuarter_DZ","WoodStairs_DZ","WoodStairsSans_DZ","WoodStairsRails_DZ","WoodSmallWallThird_DZ","WoodLadder_DZ","Land_DZE_GarageWoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_WoodDoor","Land_DZE_GarageWoodDoorLocked","Land_DZE_LargeWoodDoorLocked","Land_DZE_WoodDoorLocked","CinderWallHalf_DZ","CinderWall_DZ","CinderWallDoorway_DZ","CinderWallDoor_DZ","CinderWallDoorLocked_DZ","CinderWallSmallDoorway_DZ","CinderWallDoorSmall_DZ","CinderWallDoorSmallLocked_DZ","MetalFloor_DZ","WoodRamp_DZ","GunRack_DZ","FireBarrel_DZ","WoodCrate_DZ","Scaffolding_DZ"]; DayZ_GearedObjects = ["Car","Helicopter","Motorcycle","Ship","TentStorage_base","StashSmall_base","StashMedium_base","Plane","Tank","VaultStorage","LockboxStorage","TentStorage","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","GunRack_DZ","WoodCrate_DZ","Scaffolding_DZ"]; DayZ_RestingAnims = ["amovpsitmstpsnonwpstdnon_ground","amovpsitmstpsnonwpstdnon_smoking","amovpsitmstpsraswrfldnon_weaponcheck1","amovpsitmstpsraswrfldnon"]; dayz_playerAchievements = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; @@ -127,6 +127,7 @@ pickupInit = false; mouseOverCarry = false; //for carry slot since determining mouse pos doesn't work right dayZ_partClasses = ["PartFueltank","PartWheel","PartEngine"]; //No need to add PartGeneric, it is default for everything dayZ_explosiveParts = ["palivo","motor"]; +dayz_centerMarker = getMarkerPos "center"; //Survival Variables SleepFood = 2160; //minutes (48 hours) @@ -477,7 +478,6 @@ switch (dayz_presets) do { // EPOCH ADDITIONS canbuild = true; -dayz_allowedObjects = ["TentStorage","TentStorageDomed","TentStorageDomed2","VaultStorageLocked","Hedgehog_DZ","Sandbag1_DZ","BagFenceRound_DZ","TrapBear","Fort_RazorWire","WoodGate_DZ","Land_HBarrier1_DZ","Land_HBarrier3_DZ","Land_HBarrier5_DZ","Fence_corrugated_DZ","M240Nest_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","Plastic_Pole_EP1_DZ","Generator_DZ","StickFence_DZ","LightPole_DZ","FuelPump_DZ","DesertCamoNet_DZ","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ","SandNest_DZ","DeerStand_DZ","MetalPanel_DZ","WorkBench_DZ","WoodFloor_DZ","WoodLargeWall_DZ","WoodLargeWallDoor_DZ","WoodLargeWallWin_DZ","WoodSmallWall_DZ","WoodSmallWallWin_DZ","WoodSmallWallDoor_DZ","LockboxStorageLocked","WoodFloorHalf_DZ","WoodFloorQuarter_DZ","WoodStairs_DZ","WoodStairsSans_DZ","WoodStairsRails_DZ","WoodSmallWallThird_DZ","WoodLadder_DZ","Land_DZE_GarageWoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_WoodDoor","Land_DZE_GarageWoodDoorLocked","Land_DZE_LargeWoodDoorLocked","Land_DZE_WoodDoorLocked","CinderWallHalf_DZ","CinderWall_DZ","CinderWallDoorway_DZ","CinderWallDoor_DZ","CinderWallDoorLocked_DZ","CinderWallSmallDoorway_DZ","CinderWallDoorSmall_DZ","CinderWallDoorSmallLocked_DZ","MetalFloor_DZ","WoodRamp_DZ","GunRack_DZ","FireBarrel_DZ","WoodCrate_DZ","Scaffolding_DZ"]; dayz_combination = ""; dayz_disallowedVault = ["TentStorage","BuiltItems","ModularItems","DZE_Base_Object","Generator_DZ"]; // These work with just a running generator @@ -492,7 +492,6 @@ DZE_fueltruckarray = ["KamazRefuel_DZ","UralRefuel_TK_EP1_DZ","MtvrRefuel_DES_EP DZE_Lock_Door = ""; DZE_HeliAllowTowFrom = ["CH_47F_EP1_DZE","CH_47F_EP1_DZ","CH_47F_BAF","CH_47F_EP1","BAF_Merlin_DZE","CH53_DZE"]; DZE_HeliAllowToTow = ["hilux1_civil_1_open","HMMWV_Base","Lada_base","Offroad_DSHKM_base","Pickup_PK_base","SkodaBase","tractor","VWGolf","Volha_TK_CIV_Base_EP1","S1203_TK_CIV_EP1","SUV_Base_EP1","ArmoredSUV_Base_PMC","UAZ_Base","LandRover_Base","Ship"]; -DZE_PROTOBOX = objNull; DZE_REPLACE_WEAPONS = [["Crossbow","ItemMatchbox","ItemHatchet"],["Crossbow_DZ","ItemMatchbox_DZE","ItemHatchet_DZE"]]; DZE_LockableStorage = ["VaultStorage","VaultStorageLocked","LockboxStorageLocked","LockboxStorage"]; DZE_LockedStorage = ["VaultStorageLocked","LockboxStorageLocked"]; @@ -525,7 +524,6 @@ if(isNil "timezoneswitch") then {timezoneswitch = 0;}; if(isNil "DZE_SelfTransfuse") then {DZE_SelfTransfuse = false;}; if(isNil "DZE_PlayerZed") then {DZE_PlayerZed = true;}; if(isNil "DZE_GodModeBase") then {DZE_GodModeBase = false;}; -if(isNil "DZEdebug") then {DZEdebug = false;}; if(isNil "DZE_Debug_Damage") then {DZE_Debug_Damage = true;}; if(isNil "DZE_TRADER_SPAWNMODE") then {DZE_TRADER_SPAWNMODE = false;}; if(isNil "dayz_tameDogs") then {dayz_tameDogs = false;}; @@ -577,17 +575,26 @@ if (isServer) then { dayz_died = []; // EPOCH ADDITIONS - DZE_DYN_AntiStuck = 0; - DZE_DYN_AntiStuck2nd = 0; - DZE_DYN_AntiStuck3rd = 0; + currentObjectUIDs = []; + keyStartNumber = 100000000000; DZE_safeVehicle = ["ParachuteWest","ParachuteC"]; if(isNil "EpochEvents") then {EpochEvents = [];}; - if(isNil "DZEdebug") then {DZEdebug = false;}; if(isNil "DZE_vehicleAmmo") then {DZE_vehicleAmmo = 0;}; if(isNil "DZE_BackpackGuard") then {DZE_BackpackGuard = true;}; if(isNil "DZE_DeathMsgGlobal") then {DZE_DeathMsgGlobal = false;}; if(isNil "DZE_DeathMsgSide") then {DZE_DeathMsgSide = false;}; if(isNil "DZE_DeathMsgTitleText") then {DZE_DeathMsgTitleText = false;}; + if(isNil "dayz_MapArea") then {dayz_MapArea = 10000;}; + if(isNil "DynamicVehicleArea") then {DynamicVehicleArea = dayz_MapArea / 2;}; + if(isNil "DynamicVehicleDamageLow") then {DynamicVehicleDamageLow = 0;}; + if(isNil "DynamicVehicleDamageHigh") then {DynamicVehicleDamageHigh = 100;}; + if(isNil "DynamicVehicleFuelLow") then {DynamicVehicleFuelLow = 0;}; + if(isNil "DynamicVehicleFuelHigh") then {DynamicVehicleFuelHigh = 100;}; + if(isNil "HeliCrashArea") then {HeliCrashArea = dayz_MapArea / 2;}; + if(isNil "OldHeliCrash") then {OldHeliCrash = false;}; + if(isNil "DZE_DiagFpsSlow") then {DZE_DiagFpsSlow = false;}; + if(isNil "DZE_DiagFpsFast") then {DZE_DiagFpsFast = false;}; + if(isNil "DZE_DiagVerbose") then {DZE_DiagVerbose = false;}; }; if (!isDedicated) then { diff --git a/SQF/dayz_code/system/player_monitor.fsm b/SQF/dayz_code/system/player_monitor.fsm index a8b4b6271..17fef4c9f 100644 --- a/SQF/dayz_code/system/player_monitor.fsm +++ b/SQF/dayz_code/system/player_monitor.fsm @@ -754,12 +754,6 @@ class FSM " player setPosATL [(_setPos select 0),(_setPos select 1),2000];" \n " [player,2000] spawn BIS_fnc_halo;" \n "} else {" \n - "" \n - " // make protective box" \n - " DZE_PROTOBOX = createVehicle [""DebugBoxPlayer_DZ"", _setPos, [], 0, ""CAN_COLLIDE""];" \n - " DZE_PROTOBOX setDir _setDir;" \n - " DZE_PROTOBOX setPosATL _setPos;" \n - "" \n " player setDir _setDir;" \n " player setPosATL _setPos;" \n "};" \n @@ -1187,18 +1181,6 @@ class FSM "{ _x call fnc_veh_ResetEH; } forEach vehicles;" \n "player allowDamage true;" \n "player enableSimulation true;" \n - "// remove box " \n - "[] spawn {" \n - " private [""_counter""];" \n - " _counter = 0;" \n - " while {true} do {" \n - " if ((player getVariable[""combattimeout"", 0] >= time) || (_counter >= 60) || (player distance DZE_PROTOBOX > 2)) exitWith {" \n - " deleteVehicle DZE_PROTOBOX;" \n - " };" \n - " uiSleep 1;" \n - " _counter = _counter + 1;" \n - " };" \n - "};" \n "diag_log [ 'resetting keyboard events',(MISSION_ROOT+'keyboard.sqf')];" \n "keyboard_keys = nil;" \n "[controlNull, 1, false,false,false] call compile preprocessFileLineNumbers (MISSION_ROOT+'keyboard.sqf');" \n diff --git a/SQF/dayz_server/compile/fa_antiwallhack.sqf b/SQF/dayz_server/compile/fa_antiwallhack.sqf index a2c346e36..277b43a14 100644 --- a/SQF/dayz_server/compile/fa_antiwallhack.sqf +++ b/SQF/dayz_server/compile/fa_antiwallhack.sqf @@ -62,7 +62,7 @@ _nbpatchs = 0; _houseType = _x select 0; _houseList = _x select 1; if (count _houseList == 0) then { - _houseList = (getMarkerpos "center") nearObjects [_houseType, 20000]; + _houseList = dayz_centerMarker nearObjects [_houseType, 20000]; } else { _tmp = []; diff --git a/SQF/dayz_server/compile/fa_hiveMaintenance.sqf b/SQF/dayz_server/compile/fa_hiveMaintenance.sqf index 28e83de06..e7b2d6d5c 100644 --- a/SQF/dayz_server/compile/fa_hiveMaintenance.sqf +++ b/SQF/dayz_server/compile/fa_hiveMaintenance.sqf @@ -314,7 +314,7 @@ fa_checkVehicles = { // move object to map boundary if it's out of map fa_staywithus = { - private["_a","_dir","_px","_py","_b","_cx","_cy","_k", "_SWcorner", "_NEcorner"]; + private["_a","_dir","_px","_py","_cx","_cy","_k", "_SWcorner", "_NEcorner"]; _dir = +(_this select 0); // current position of player / vehicle _a = +(_this select 1); // current position of player / vehicle @@ -328,10 +328,9 @@ fa_staywithus = { // first : put object close to the map boundary, following an axis to the center of the map. _px = _a select 0; _py = _a select 1; - _b = getMarkerpos "center"; - _cx = (_b select 0) - _px; if (_cx == 0) then { _cx = 0.00001; }; - _cy = (_b select 1) - _py; if (_cy == 0) then { _cy = 0.00001; }; + _cx = (dayz_centerMarker select 0) - _px; if (_cx == 0) then { _cx = 0.00001; }; + _cy = (dayz_centerMarker select 1) - _py; if (_cy == 0) then { _cy = 0.00001; }; if (_px <= (_SWcorner select 0)) then { _py = _py + (1 + (_SWcorner select 0) - _px) / _cx * _cy; _px = 1 + (_SWcorner select 0); }; if (_py <= (_SWcorner select 1)) then { _px = _px + (1 + (_SWcorner select 1) - _py) / _cy * _cx; _py = 1 + (_SWcorner select 1); }; if (_px >= (_NEcorner select 0)) then { _py = _py + ((_NEcorner select 0) - 1 - _px) / _cx * _cy; _px = (_NEcorner select 0) - 1; }; diff --git a/SQF/dayz_server/compile/server_checkIfTowed.sqf b/SQF/dayz_server/compile/server_checkIfTowed.sqf new file mode 100644 index 000000000..99cf27cc5 --- /dev/null +++ b/SQF/dayz_server/compile/server_checkIfTowed.sqf @@ -0,0 +1,13 @@ +private ["_vehicle","_player","_attached"]; + +if (DZE_HeliLift) then { + _vehicle = _this select 0; + _player = _this select 2; + _attached = _vehicle getVariable ["attached",false]; + if (typeName _attached == "OBJECT") then { + _player action ["eject",_vehicle]; + detach _vehicle; + _vehicle setVariable ["attached",false,true]; + _attached setVariable ["hasAttached",false,true]; + }; +}; \ No newline at end of file diff --git a/SQF/dayz_server/compile/server_logUnlockLockEvent.sqf b/SQF/dayz_server/compile/server_logUnlockLockEvent.sqf new file mode 100644 index 000000000..6ab206ce0 --- /dev/null +++ b/SQF/dayz_server/compile/server_logUnlockLockEvent.sqf @@ -0,0 +1,26 @@ +private ["_player","_obj","_objectID","_objectUID","_statusText","_puid","_status","_clientID","_type"]; + +_player = _this select 0; +_obj = _this select 1; +_status = _this select 2; +_type = typeOf _obj; + +if (isNull _player) then {diag_log "ERROR: server_logUnlockLockEvent called with Null player object";}; +_clientID = owner _player; +_puid = [_player] call FNC_GetPlayerUID; +_statusText = if (_status) then {"LOCKED"} else {"UNLOCKED"}; + +if (!isNull _obj) then { + _objectID = _obj getVariable ["ObjectID","0"]; + _objectUID = _obj getVariable ["ObjectUID","0"]; + + if (_status) then {[_obj,"gear"] call server_updateObject;}; + + diag_log format["%6 %5: ID:%1 UID:%2 BY %3(%4)",_objectID,_objectUID,name _player,_puid,_statusText,_type]; + dze_waiting = "success"; + _clientID publicVariableClient "dze_waiting"; +} else { + diag_log format["ERROR: %4 BY %1(%2) IS NULL AND COULD NOT BE %3 (THIS SHOULD NOT HAPPEN)",name _player,_puid,_statusText,_type]; + dze_waiting = "fail"; + _clientID publicVariableClient "dze_waiting"; +}; \ No newline at end of file diff --git a/SQF/dayz_server/compile/server_publishObject.sqf b/SQF/dayz_server/compile/server_publishObject.sqf index ecc2edc03..e9a54ada9 100644 --- a/SQF/dayz_server/compile/server_publishObject.sqf +++ b/SQF/dayz_server/compile/server_publishObject.sqf @@ -25,7 +25,7 @@ _object setVariable ["ObjectUID", _uid,true]; if (DZE_GodModeBase) then { _object addEventHandler ["HandleDamage", {false}]; }else{ - _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}]; + _object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}]; }; // Test disabling simulation server side on buildables only. _object enableSimulation false; diff --git a/SQF/dayz_server/compile/server_publishVehicle2.sqf b/SQF/dayz_server/compile/server_publishVehicle2.sqf index f509f02c7..76e337abd 100644 --- a/SQF/dayz_server/compile/server_publishVehicle2.sqf +++ b/SQF/dayz_server/compile/server_publishVehicle2.sqf @@ -24,9 +24,7 @@ if(_donotusekey) then { diag_log ("PUBLISH: Attempt " + str(_object)); _dir = _worldspace select 0; _location = _worldspace select 1; - -//Generate UID test using time -_uid = _worldspace call dayz_objectUID3; +_uid = _worldspace call dayz_objectUID2; //Send request _key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _characterID, _worldspace, [], [], 1,_uid]; diff --git a/SQF/dayz_server/compile/server_publishVehicle3.sqf b/SQF/dayz_server/compile/server_publishVehicle3.sqf index 92123c8a2..211c00902 100644 --- a/SQF/dayz_server/compile/server_publishVehicle3.sqf +++ b/SQF/dayz_server/compile/server_publishVehicle3.sqf @@ -14,9 +14,7 @@ if(!_isOK || isNull _object) exitWith { diag_log ("HIVE-pv3: Vehicle does not ex diag_log ("PUBLISH: Attempt " + str(_object)); _dir = _worldspace select 0; _location = _worldspace select 1; - -//Generate UID test using time -_uid = _worldspace call dayz_objectUID3; +_uid = _worldspace call dayz_objectUID2; //Send request _key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _characterID, _worldspace, [], [], 1,_uid]; diff --git a/SQF/dayz_server/compile/server_spawnInfectedCamps.sqf b/SQF/dayz_server/compile/server_spawnInfectedCamps.sqf index c72d865eb..df840cf7e 100644 --- a/SQF/dayz_server/compile/server_spawnInfectedCamps.sqf +++ b/SQF/dayz_server/compile/server_spawnInfectedCamps.sqf @@ -29,7 +29,7 @@ Author: #define OBJECT_RADIUS_MIN 8 #define OBJECT_RADIUS_MAX 13 -#define SEARCH_CENTER getMarkerPos "center" +#define SEARCH_CENTER dayz_centerMarker #define SEARCH_RADIUS 7500 #define SEARCH_EXPRESSION "(5 * forest) + (4 * trees) + (3 * meadow) - (20 * houses) - (30 * sea)" //+ (3 * meadow) - (20 * houses) - (30 * sea) #define SEARCH_PRECISION 30 diff --git a/SQF/dayz_server/compile/server_swapObject.sqf b/SQF/dayz_server/compile/server_swapObject.sqf index 5e8524e16..3a2f7e320 100644 --- a/SQF/dayz_server/compile/server_swapObject.sqf +++ b/SQF/dayz_server/compile/server_swapObject.sqf @@ -66,7 +66,7 @@ _object setVariable ["ObjectUID", _uid,true]; if (DZE_GodModeBase) then { _object addEventHandler ["HandleDamage", {false}]; }else{ - _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}]; + _object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}]; }; // Test disabling simulation server side on buildables only. _object enableSimulation false; diff --git a/SQF/dayz_server/compile/server_updateObject.sqf b/SQF/dayz_server/compile/server_updateObject.sqf index e28202b16..20797f9fa 100644 --- a/SQF/dayz_server/compile/server_updateObject.sqf +++ b/SQF/dayz_server/compile/server_updateObject.sqf @@ -25,7 +25,7 @@ if ((typeName _objectID == "SCALAR") || (typeName _objectUID == "SCALAR")) then _objectUID = nil; }; -if (!((typeOf _object) in ["ParachuteWest","ParachuteC"]) && !locked _object) then { +if (!((typeOf _object) in DZE_safeVehicle) && !locked _object) then { //diag_log format["Object: %1, ObjectID: %2, ObjectUID: %3",_object,_objectID,_objectUID]; if (!(_objectID in dayz_serverIDMonitor) && isNil {_objectUID}) then { //force fail @@ -161,7 +161,7 @@ _object_killed = { _key call server_hiveWrite; diag_log ("HIVE: WRITE: "+ str(_key)); - if ((typeOf _object) in DayZ_removableObjects) then {[_objectID,_objectUID] call server_deleteObj;}; + if (((typeOf _object) in DayZ_removableObjects) or ((typeOf _object) in DZE_isRemovable)) then {[_objectID,_objectUID] call server_deleteObj;}; }; _object_maintenance = { diff --git a/SQF/dayz_server/compile/spawn_ammosupply.sqf b/SQF/dayz_server/compile/spawn_ammosupply.sqf new file mode 100644 index 000000000..4386106a4 --- /dev/null +++ b/SQF/dayz_server/compile/spawn_ammosupply.sqf @@ -0,0 +1,19 @@ +private ["_position","_veh","_istoomany"]; + +waitUntil {!isNil "BIS_fnc_selectRandom"}; +_position = RoadList call BIS_fnc_selectRandom; +_position = _position modelToWorld [0,0,0]; + +waitUntil {!isNil "BIS_fnc_findSafePos"}; +_position = [_position,5,20,5,0,2000,0] call BIS_fnc_findSafePos; + +if ((count _position) == 2) then { + _istoomany = _position nearObjects ["All",5]; + if ((count _istoomany) > 0) exitWith {}; + + _veh = createVehicle ["Supply_Crate_DZE",_position, [], 0, "CAN_COLLIDE"]; + _veh enableSimulation false; + _veh setDir round(random 360); + _veh setPos _position; + _veh setVariable ["ObjectID","1",true]; +}; \ No newline at end of file diff --git a/SQF/dayz_server/compile/spawn_mineveins.sqf b/SQF/dayz_server/compile/spawn_mineveins.sqf new file mode 100644 index 000000000..d7c32df94 --- /dev/null +++ b/SQF/dayz_server/compile/spawn_mineveins.sqf @@ -0,0 +1,18 @@ +private ["_position","_veh","_istoomany","_spawnveh","_positions"]; + +_position = [dayz_centerMarker,0,(HeliCrashArea*0.75),10,0,2000,0] call BIS_fnc_findSafePos; + +if ((count _position) == 2) then { + _positions = selectBestPlaces [_position, 500, "(1 + forest) * (1 + hills) * (1 - houses) * (1 - sea)", 10, 5]; + _position = (_positions call BIS_fnc_selectRandom) select 0; + _istoomany = _position nearObjects ["All",10]; + if (((count _istoomany) > 0) or (isOnRoad _position)) exitWith {}; + + _spawnveh = ["Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Gold_Vein_DZE","Gold_Vein_DZE"] call BIS_fnc_selectRandom; + //diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position)); + _veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"]; + _veh enableSimulation false; + _veh setDir round(random 360); + _veh setPos _position; + _veh setVariable ["ObjectID","1",true]; +}; \ No newline at end of file diff --git a/SQF/dayz_server/compile/spawn_roadblocks.sqf b/SQF/dayz_server/compile/spawn_roadblocks.sqf new file mode 100644 index 000000000..332f4b6ab --- /dev/null +++ b/SQF/dayz_server/compile/spawn_roadblocks.sqf @@ -0,0 +1,22 @@ +private ["_position","_veh","_istoomany","_spawnveh"]; + +waitUntil {!isNil "BIS_fnc_selectRandom"}; +_position = RoadList call BIS_fnc_selectRandom; +_position = _position modelToWorld [0,0,0]; + +waitUntil {!isNil "BIS_fnc_findSafePos"}; +_position = [_position,0,10,5,0,2000,0] call BIS_fnc_findSafePos; + +if ((count _position) == 2) then { + _istoomany = _position nearObjects ["All",5]; + if ((count _istoomany) > 0) exitWith {}; + + waitUntil {!isNil "BIS_fnc_selectRandom"}; + _spawnveh = DZE_isWreck call BIS_fnc_selectRandom; + + _veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"]; + _veh enableSimulation false; + _veh setDir round(random 360); + _veh setPos _position; + _veh setVariable ["ObjectID","1",true]; +}; \ No newline at end of file diff --git a/SQF/dayz_server/compile/spawn_vehicles.sqf b/SQF/dayz_server/compile/spawn_vehicles.sqf new file mode 100644 index 000000000..2a7dfbd3b --- /dev/null +++ b/SQF/dayz_server/compile/spawn_vehicles.sqf @@ -0,0 +1,128 @@ +private ["_random","_lastIndex","_weights","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"]; + +if (isNil "spawn_vehicles_init") then { + spawn_vehicles_init = "done"; + // Get all buildings and roads only once. Very taxing, but only on first startup + buildingList = []; + { + if (DZE_MissionLootTable) then { + if (isClass (missionConfigFile >> "CfgLoot" >> "Buildings" >> (typeOf _x))) then {buildingList set [count buildingList,_x];}; + } else { + if (isClass (configFile >> "CfgLoot" >> "Buildings" >> (typeOf _x))) then {buildingList set [count buildingList,_x];}; + }; + } count (dayz_centerMarker nearObjects ["building",DynamicVehicleArea]); + roadList = dayz_centerMarker nearRoads DynamicVehicleArea; +}; + +while {count AllowedVehiclesList > 0} do { + // BIS_fnc_selectRandom replaced because the index may be needed to remove the element + _index = floor random count AllowedVehiclesList; + _random = AllowedVehiclesList select _index; + + _vehicle = _random select 0; + _velimit = _random select 1; + + _qty = {_x == _vehicle} count serverVehicleCounter; + + // If under limit allow to proceed + if (_qty <= _velimit) exitWith {}; + + // vehicle limit reached, remove vehicle from list + // since elements cannot be removed from an array, overwrite it with the last element and cut the last element of (as long as order is not important) + _lastIndex = (count AllowedVehiclesList) - 1; + if (_lastIndex != _index) then {AllowedVehiclesList set [_index, AllowedVehiclesList select _lastIndex];}; + AllowedVehiclesList resize _lastIndex; +}; + +if (count AllowedVehiclesList == 0) then { + diag_log "DEBUG: unable to find suitable vehicle to spawn"; +} else { + // add vehicle to counter for next pass + serverVehicleCounter set [count serverVehicleCounter,_vehicle]; + + // Find Vehicle Type to better control spawns + _isAir = _vehicle isKindOf "Air"; + _isShip = _vehicle isKindOf "Ship"; + + if (_isShip or _isAir) then { + if (_isShip) then { + // Spawn anywhere on coast on water + waitUntil {!isNil "BIS_fnc_findSafePos"}; + _position = [dayz_centerMarker,0,DynamicVehicleArea,10,1,2000,1] call BIS_fnc_findSafePos; + //diag_log("DEBUG: spawning boat near coast " + str(_position)); + } else { + // Spawn air anywhere that is flat + waitUntil {!isNil "BIS_fnc_findSafePos"}; + _position = [dayz_centerMarker,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos; + //diag_log("DEBUG: spawning air anywhere flat " + str(_position)); + }; + } else { + // Spawn around buildings and 50% near roads + if ((random 1) > 0.5) then { + waitUntil {!isNil "BIS_fnc_selectRandom"}; + _position = roadList call BIS_fnc_selectRandom; + _position = _position modelToWorld [0,0,0]; + + waitUntil {!isNil "BIS_fnc_findSafePos"}; + _position = [_position,0,10,10,0,2000,0] call BIS_fnc_findSafePos; + //diag_log("DEBUG: spawning near road " + str(_position)); + } else { + waitUntil {!isNil "BIS_fnc_selectRandom"}; + _position = buildingList call BIS_fnc_selectRandom; + _position = _position modelToWorld [0,0,0]; + + waitUntil {!isNil "BIS_fnc_findSafePos"}; + _position = [_position,0,40,5,0,2000,0] call BIS_fnc_findSafePos; + //diag_log("DEBUG: spawning around buildings " + str(_position)); + }; + }; + // only proceed if two params otherwise BIS_fnc_findSafePos failed and may spawn in air + if ((count _position) == 2) then { + _dir = round(random 180); + _istoomany = _position nearObjects ["AllVehicles",50]; + if ((count _istoomany) > 0) exitWith {}; + + _veh = createVehicle [_vehicle, _position, [], 0, "CAN_COLLIDE"]; + _veh setDir _dir; + _veh setPos _position; + _objPosition = getPosATL _veh; + + clearWeaponCargoGlobal _veh; + clearMagazineCargoGlobal _veh; + // _veh setVehicleAmmo DZE_vehicleAmmo; + + // Add 0-3 loots to vehicle using random cfgloots + _num = floor(random 4); + _allCfgLoots = ["Trash","ZombieCivilian","Consumable","Generic","MedicalLow","Military","ZombiePolice","ZombieHunter","ZombieWorker","clothes","militaryclothes","specialclothes","Trash"]; + + for "_x" from 1 to _num do { + _iClass = _allCfgLoots call BIS_fnc_selectRandom; + + _itemTypes = []; + if (DZE_MissionLootTable) then{ + { + _itemTypes set [count _itemTypes, _x select 2] + } count getArray(missionConfigFile >> "CfgLoot" >> "Groups" >> _iClass); + } + else { + { + _itemTypes set [count _itemTypes, _x select 2] + } count getArray(configFile >> "CfgLoot" >> "Groups" >> _iClass); + }; + // Need to use new loot chances format + /* + _index = dayz_CLBase find _iClass; + _weights = dayz_CLChances select _index; + _cntWeights = count _weights; + + _index = floor(random _cntWeights); + _index = _weights select _index; + _itemType = _itemTypes select _index; + _veh addMagazineCargoGlobal [_itemType,1]; + //diag_log("DEBUG: spawed loot inside vehicle " + str(_itemType)); + */ + }; + + [_veh,[_dir,_objPosition],_vehicle,true,"0"] call server_publishVeh; + }; +}; \ No newline at end of file diff --git a/SQF/dayz_server/compile/zombie_Wildgenerate.sqf b/SQF/dayz_server/compile/zombie_Wildgenerate.sqf index 67fb92581..73312773b 100644 --- a/SQF/dayz_server/compile/zombie_Wildgenerate.sqf +++ b/SQF/dayz_server/compile/zombie_Wildgenerate.sqf @@ -16,8 +16,7 @@ while {_counter < _amount} do { //_radius = 0; _method = "CAN_COLLIDE"; - //_createSafePos = getMarkerPos "center"; - _position = [getMarkerPos "center",1,6500,1] call fn_selectRandomLocation; + _position = [dayz_centerMarker,1,6500,1] call fn_selectRandomLocation; //Create Zed _agent = createAgent [_type, _position, [], 1, _method]; diff --git a/SQF/dayz_server/init/Epoch_Init.sqf b/SQF/dayz_server/init/Epoch_Init.sqf deleted file mode 100644 index 9397bd1c8..000000000 --- a/SQF/dayz_server/init/Epoch_Init.sqf +++ /dev/null @@ -1,828 +0,0 @@ -/* -zombie_findOwner = { - private["_unit"]; - _unit = _this select 0; - #ifdef DZE_SERVER_DEBUG - diag_log ("CLEANUP: DELETE UNCONTROLLED ZOMBIE: " + (typeOf _unit) + " OF: " + str(_unit) ); - #endif - deleteVehicle _unit; -}; */ - -vehicle_handleInteract = { - private["_object"]; - _object = _this select 0; - needUpdate_objects = needUpdate_objects - [_object]; - [_object, "all"] call server_updateObject; -}; - -array_reduceSizeReverse = { - private["_array","_count","_num","_newarray","_startnum","_index"]; - _array = _this select 0; - _newarray = []; - _count = _this select 1; - _num = count _array; - if (_num > _count) then { - _startnum = _num - 1; - _index = _count - 1; - for "_i" from 0 to _index do { - _newarray set [(_index-_i),_array select (_startnum - _i)]; - }; - _array = _newarray; - }; - _array -}; - -array_reduceSize = { - private ["_array1","_array","_count","_num"]; - _array1 = _this select 0; - _array = _array1 - ["Hatchet_Swing","Machete_Swing","Fishing_Swing","sledge_swing","crowbar_swing","CSGAS"]; - _count = _this select 1; - _num = count _array; - if (_num > _count) then { - _array resize _count; - }; - _array -}; - -object_handleServerKilled = { - private["_unit","_objectID","_objectUID","_killer"]; - _unit = _this select 0; - _killer = _this select 1; - - _objectID = _unit getVariable ["ObjectID","0"]; - _objectUID = _unit getVariable ["ObjectUID","0"]; - - [_objectID,_objectUID,_killer] call server_deleteObj; - - _unit removeAllMPEventHandlers "MPKilled"; - _unit removeAllEventHandlers "Killed"; - _unit removeAllEventHandlers "HandleDamage"; - _unit removeAllEventHandlers "GetIn"; - _unit removeAllEventHandlers "GetOut"; -}; - -server_hiveReadWriteLarge = { - private["_key","_resultArray","_data"]; - _key = _this; - _data = "HiveExt" callExtension _key; - _resultArray = call compile _data; - _resultArray -}; - -server_checkIfTowed = { - private ["_vehicle","_player","_attached"]; - if (DZE_HeliLift) then { - _vehicle = _this select 0; - _player = _this select 2; - _attached = _vehicle getVariable["attached",false]; - if (typeName _attached == "OBJECT") then { - _player action ["eject", _vehicle]; - detach _vehicle; - _vehicle setVariable["attached",false,true]; - _attached setVariable["hasAttached",false,true]; - }; - }; -}; - -server_characterSync = { - private ["_characterID","_playerPos","_playerGear","_playerBackp","_medical","_currentState","_currentModel","_key"]; - _characterID = _this select 0; - _playerPos = _this select 1; - _playerGear = _this select 2; - _playerBackp = _this select 3; - _medical = _this select 4; - _currentState = _this select 5; - _currentModel = _this select 6; - - _key = format["CHILD:201:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:",_characterID,_playerPos,_playerGear,_playerBackp,_medical,false,false,0,0,0,0,_currentState,0,0,_currentModel,0]; - _key call server_hiveWrite; -}; - -if(isnil "dayz_MapArea") then { - dayz_MapArea = 10000; -}; -if(isnil "DynamicVehicleArea") then { - DynamicVehicleArea = dayz_MapArea / 2; -}; - -// Get all buildings && roads only once TODO: set variables to nil after done if nessicary -MarkerPosition = getMarkerPos "center"; -RoadList = MarkerPosition nearRoads DynamicVehicleArea; - -// Very taxing !!! but only on first startup -BuildingList = []; -{ - if (DZE_MissionLootTable) then { - if (isClass (missionConfigFile >> "CfgBuildingLoot" >> (typeOf _x))) then - { - BuildingList set [count BuildingList,_x]; - }; - } else { - if (isClass (configFile >> "CfgBuildingLoot" >> (typeOf _x))) then - { - BuildingList set [count BuildingList,_x]; - }; - }; - - -} count (MarkerPosition nearObjects ["building",DynamicVehicleArea]); - -spawn_vehicles = { - private ["_random","_lastIndex","_weights","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_marker","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"]; - - if (!isDedicated) exitWith { }; //Be sure the run this - - while {count AllowedVehiclesList > 0} do { - // BIS_fnc_selectRandom replaced because the index may be needed to remove the element - _index = floor random count AllowedVehiclesList; - _random = AllowedVehiclesList select _index; - - _vehicle = _random select 0; - _velimit = _random select 1; - - _qty = {_x == _vehicle} count serverVehicleCounter; - - // If under limit allow to proceed - if (_qty <= _velimit) exitWith {}; - - // vehicle limit reached, remove vehicle from list - // since elements cannot be removed from an array, overwrite it with the last element && cut the last element of (as long as order is not important) - _lastIndex = (count AllowedVehiclesList) - 1; - if (_lastIndex != _index) then { - AllowedVehiclesList set [_index, AllowedVehiclesList select _lastIndex]; - }; - AllowedVehiclesList resize _lastIndex; - }; - - if (count AllowedVehiclesList == 0) then { - diag_log("DEBUG: unable to find suitable vehicle to spawn"); - } else { - - // add vehicle to counter for next pass - serverVehicleCounter set [count serverVehicleCounter,_vehicle]; - - // Find Vehicle Type to better control spawns - _isAir = _vehicle isKindOf "Air"; - _isShip = _vehicle isKindOf "Ship"; - - if(_isShip || _isAir) then { - if(_isShip) then { - // Spawn anywhere on coast on water - waitUntil{!isNil "BIS_fnc_findSafePos"}; - _position = [MarkerPosition,0,DynamicVehicleArea,10,1,2000,1] call BIS_fnc_findSafePos; - //diag_log("DEBUG: spawning boat near coast " + str(_position)); - } else { - // Spawn air anywhere that is flat - waitUntil{!isNil "BIS_fnc_findSafePos"}; - _position = [MarkerPosition,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos; - //diag_log("DEBUG: spawning air anywhere flat " + str(_position)); - }; - - - } else { - // Spawn around buildings && 50% near roads - if((random 1) > 0.5) then { - - waitUntil{!isNil "BIS_fnc_selectRandom"}; - _position = RoadList call BIS_fnc_selectRandom; - - _position = _position modelToWorld [0,0,0]; - - waitUntil{!isNil "BIS_fnc_findSafePos"}; - _position = [_position,0,10,10,0,2000,0] call BIS_fnc_findSafePos; - - //diag_log("DEBUG: spawning near road " + str(_position)); - - } else { - - waitUntil{!isNil "BIS_fnc_selectRandom"}; - _position = BuildingList call BIS_fnc_selectRandom; - - _position = _position modelToWorld [0,0,0]; - - waitUntil{!isNil "BIS_fnc_findSafePos"}; - _position = [_position,0,40,5,0,2000,0] call BIS_fnc_findSafePos; - - //diag_log("DEBUG: spawning around buildings " + str(_position)); - - }; - }; - // only proceed if two params otherwise BIS_fnc_findSafePos failed && may spawn in air - if ((count _position) == 2) then { - - _dir = round(random 180); - - _istoomany = _position nearObjects ["AllVehicles",50]; - if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many vehicles at " + str(_position)); }; - - //place vehicle - _veh = createVehicle [_vehicle, _position, [], 0, "CAN_COLLIDE"]; - _veh setdir _dir; - _veh setpos _position; - - if(DZEdebug) then { - _marker = createMarker [str(_position) , _position]; - _marker setMarkerShape "ICON"; - _marker setMarkerType "DOT"; - _marker setMarkerText _vehicle; - }; - - // Get position with ground - _objPosition = getPosATL _veh; - - clearWeaponCargoGlobal _veh; - clearMagazineCargoGlobal _veh; - // _veh setVehicleAmmo DZE_vehicleAmmo; - - // Add 0-3 loots to vehicle using random cfgloots - _num = floor(random 4); - _allCfgLoots = ["trash","civilian","food","generic","medical","military","policeman","hunter","worker","clothes","militaryclothes","specialclothes","trash"]; - - for "_x" from 1 to _num do { - _iClass = _allCfgLoots call BIS_fnc_selectRandom; - - _itemTypes = []; - if (DZE_MissionLootTable) then{ - { - _itemTypes set[count _itemTypes, _x select 0] - } count getArray(missionConfigFile >> "cfgLoot" >> _iClass); - } - else { - { - _itemTypes set[count _itemTypes, _x select 0] - } count getArray(configFile >> "cfgLoot" >> _iClass); - }; - - _index = dayz_CLBase find _iClass; - _weights = dayz_CLChances select _index; - _cntWeights = count _weights; - - _index = floor(random _cntWeights); - _index = _weights select _index; - _itemType = _itemTypes select _index; - _veh addMagazineCargoGlobal [_itemType,1]; - //diag_log("DEBUG: spawed loot inside vehicle " + str(_itemType)); - }; - - [_veh,[_dir,_objPosition],_vehicle,true,"0"] call server_publishVeh; - }; - }; -}; - -spawn_ammosupply = { - private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"]; - if (isDedicated) then { - _WreckList = ["Supply_Crate_DZE"]; - waitUntil{!isNil "BIS_fnc_selectRandom"}; - _position = RoadList call BIS_fnc_selectRandom; - _position = _position modelToWorld [0,0,0]; - waitUntil{!isNil "BIS_fnc_findSafePos"}; - _position = [_position,5,20,5,0,2000,0] call BIS_fnc_findSafePos; - if ((count _position) == 2) then { - - _istoomany = _position nearObjects ["All",5]; - - if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many at " + str(_position)); }; - - _spawnveh = _WreckList call BIS_fnc_selectRandom; - - if(DZEdebug) then { - _marker = createMarker [str(_position) , _position]; - _marker setMarkerShape "ICON"; - _marker setMarkerType "DOT"; - _marker setMarkerText str(_spawnveh); - }; - - _veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"]; - _veh enableSimulation false; - _veh setDir round(random 360); - _veh setpos _position; - _veh setVariable ["ObjectID","1",true]; - }; - }; -}; - -DZE_LocalRoadBlocks = []; - -spawn_roadblocks = { - private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"]; - _WreckList = ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"]; - - waitUntil{!isNil "BIS_fnc_selectRandom"}; - if (isDedicated) then { - - _position = RoadList call BIS_fnc_selectRandom; - - _position = _position modelToWorld [0,0,0]; - - waitUntil{!isNil "BIS_fnc_findSafePos"}; - _position = [_position,0,10,5,0,2000,0] call BIS_fnc_findSafePos; - - if ((count _position) == 2) then { - // Get position with ground - - _istoomany = _position nearObjects ["All",5]; - - if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many at " + str(_position)); }; - - waitUntil{!isNil "BIS_fnc_selectRandom"}; - _spawnveh = _WreckList call BIS_fnc_selectRandom; - - if(DZEdebug) then { - _marker = createMarker [str(_position) , _position]; - _marker setMarkerShape "ICON"; - _marker setMarkerType "DOT"; - _marker setMarkerText str(_spawnveh); - }; - - _veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"]; - _veh enableSimulation false; - - _veh setDir round(random 360); // Randomize placement a bit - _veh setpos _position; - - _veh setVariable ["ObjectID","1",true]; - }; - - }; - -}; - -spawn_mineveins = { - private ["_position","_veh","_istoomany","_marker","_spawnveh","_positions"]; - - if (isDedicated) then { - - _position = [getMarkerPos "center",0,(HeliCrashArea*0.75),10,0,2000,0] call BIS_fnc_findSafePos; - - if ((count _position) == 2) then { - - _positions = selectBestPlaces [_position, 500, "(1 + forest) * (1 + hills) * (1 - houses) * (1 - sea)", 10, 5]; - - _position = (_positions call BIS_fnc_selectRandom) select 0; - - // Get position with ground - _istoomany = _position nearObjects ["All",10]; - - if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many objects at " + str(_position)); }; - - if(isOnRoad _position) exitWith { diag_log("DEBUG VEIN: on road " + str(_position)); }; - - _spawnveh = ["Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Gold_Vein_DZE","Gold_Vein_DZE"] call BIS_fnc_selectRandom; - - if(DZEdebug) then { - _marker = createMarker [str(_position) , _position]; - _marker setMarkerShape "ICON"; - _marker setMarkerType "DOT"; - _marker setMarkerText str(_spawnveh); - }; - - //diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position)); - _veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"]; - _veh enableSimulation false; - - // Randomize placement a bit - _veh setDir round(random 360); - _veh setpos _position; - - _veh setVariable ["ObjectID","1",true]; - - - }; - }; -}; - -if(isnil "DynamicVehicleDamageLow") then { - DynamicVehicleDamageLow = 0; -}; -if(isnil "DynamicVehicleDamageHigh") then { - DynamicVehicleDamageHigh = 100; -}; - -if(isnil "DynamicVehicleFuelLow") then { - DynamicVehicleFuelLow = 0; -}; -if(isnil "DynamicVehicleFuelHigh") then { - DynamicVehicleFuelHigh = 100; -}; - -if(isnil "DZE_DiagFpsSlow") then { - DZE_DiagFpsSlow = false; -}; -if(isnil "DZE_DiagFpsFast") then { - DZE_DiagFpsFast = false; -}; -if(isnil "DZE_DiagVerbose") then { - DZE_DiagVerbose = false; -}; - -dze_diag_fps = { - if(DZE_DiagVerbose) then { - diag_log format["DEBUG FPS : %1 OBJECTS: %2 : PLAYERS: %3", diag_fps,(count (allMissionObjects "")),(playersNumber west)]; - } else { - diag_log format["DEBUG FPS : %1", diag_fps]; - }; -}; - -// Damage generator function -generate_new_damage = { - private ["_damage"]; - _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100; - _damage; -}; - -// Damage generator fuction -generate_exp_damage = { - private ["_damage"]; - _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100; - - // limit this to 85% since vehicle would blow up otherwise. - //if(_damage >= 0.85) then { - // _damage = 0.85; - //}; - _damage; -}; - -server_getDiff = { - private["_variable","_object","_vNew","_vOld","_result"]; - _variable = _this select 0; - _object = _this select 1; - _vNew = _object getVariable[_variable,0]; - _vOld = _object getVariable[(_variable + "_CHK"),_vNew]; - _result = 0; - if (_vNew < _vOld) then { - //JIP issues - _vNew = _vNew + _vOld; - _object getVariable[(_variable + "_CHK"),_vNew]; - } else { - _result = _vNew - _vOld; - _object setVariable[(_variable + "_CHK"),_vNew]; - }; - _result -}; - -server_getDiff2 = { - private["_variable","_object","_vNew","_vOld","_result"]; - _variable = _this select 0; - _object = _this select 1; - _vNew = _object getVariable[_variable,0]; - _vOld = _object getVariable[(_variable + "_CHK"),_vNew]; - _result = _vNew - _vOld; - _object setVariable[(_variable + "_CHK"),_vNew]; - _result -}; - -currentObjectUIDs = []; -keyStartNumber = 100000000000; - -dayz_objectUID = { - private["_position","_dir","_key","_object"]; - _object = _this; - _position = getPosATL _object; - _dir = direction _object; - _key = [_dir,_position] call dayz_objectUID2; - _key -}; - -dayz_objectUID2 = { - private["_position","_dir","_key"]; - _dir = _this select 0; - _key = ""; - _position = _this select 1; - { - _x = _x * 10; - if ( _x < 0 ) then { _x = _x * -10 }; - _key = _key + str(round(_x)); - } count _position; - _key = _key + str(round(_dir)); - // Make sure the generated key is not a duplicate - while {true} do { - if !(_key in currentObjectUIDs) exitWith {currentObjectUIDs set [count currentObjectUIDs,_key];}; - keyStartNumber = keyStartNumber + 1; - _key = str keyStartNumber; - }; - _key -}; - -dayz_objectUID3 = { - private["_position","_dir","_key"]; - _dir = _this select 0; - _key = ""; - _position = _this select 1; - { - _x = _x * 10; - if ( _x < 0 ) then { _x = _x * -10 }; - _key = _key + str(round(_x)); - } count _position; - _key = _key + str(round(_dir + time)); - // Make sure the generated key is not a duplicate - while {true} do { - if !(_key in currentObjectUIDs) exitWith {currentObjectUIDs set [count currentObjectUIDs,_key];}; - keyStartNumber = keyStartNumber + 1; - _key = str keyStartNumber; - }; - _key -}; - -dayz_recordLogin = { - private["_key"]; - _key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2]; - _key call server_hiveWrite; -}; - -dayz_perform_purge = { - if(!isNull(_this)) then { - _group = group _this; - _this removeAllMPEventHandlers "mpkilled"; - _this removeAllMPEventHandlers "mphit"; - _this removeAllMPEventHandlers "mprespawn"; - _this removeAllEventHandlers "FiredNear"; - _this removeAllEventHandlers "HandleDamage"; - _this removeAllEventHandlers "Killed"; - _this removeAllEventHandlers "Fired"; - _this removeAllEventHandlers "GetOut"; - _this removeAllEventHandlers "GetIn"; - _this removeAllEventHandlers "Local"; - clearVehicleInit _this; - deleteVehicle _this; - if ((count (units _group) == 0) && (_group != grpNull)) then { - deleteGroup _group; - }; - }; -}; - -dayz_perform_purge_player = { - - private ["_countr","_backpack","_backpackType","_backpackWpn","_backpackMag","_objWpnTypes","_objWpnQty","_location","_dir","_holder","_weapons","_magazines"]; - diag_log ("Purging player: " + str(_this)); - - if(!isNull(_this)) then { - - _location = getPosATL _this; - _dir = getDir _this; - - _holder = createVehicle ["GraveDZE", _location, [], 0, "CAN_COLLIDE"]; - _holder setDir _dir; - _holder setPosATL _location; - - _holder enableSimulation false; - - _weapons = weapons _this; - _magazines = magazines _this; - - // find backpack - if(!(isNull unitBackpack _this)) then { - _backpack = unitBackpack _this; - _backpackType = typeOf _backpack; - _backpackWpn = getWeaponCargo _backpack; - _backpackMag = getMagazineCargo _backpack; - - _holder addBackpackCargoGlobal [_backpackType,1]; - - // add items from backpack - _objWpnTypes = _backpackWpn select 0; - _objWpnQty = _backpackWpn select 1; - _countr = 0; - { - _holder addWeaponCargoGlobal [_x,(_objWpnQty select _countr)]; - _countr = _countr + 1; - } count _objWpnTypes; - - // add backpack magazine items - _objWpnTypes = _backpackMag select 0; - _objWpnQty = _backpackMag select 1; - _countr = 0; - { - _holder addMagazineCargoGlobal [_x,(_objWpnQty select _countr)]; - _countr = _countr + 1; - } count _objWpnTypes; - }; - }; - - // add weapons - { - _holder addWeaponCargoGlobal [_x, 1]; - } count _weapons; - - // add mags - { - _holder addMagazineCargoGlobal [_x, 1]; - } count _magazines; - _group = group _this; - _this removeAllMPEventHandlers "mpkilled"; - _this removeAllMPEventHandlers "mphit"; - _this removeAllMPEventHandlers "mprespawn"; - _this removeAllEventHandlers "FiredNear"; - _this removeAllEventHandlers "HandleDamage"; - _this removeAllEventHandlers "Killed"; - _this removeAllEventHandlers "Fired"; - _this removeAllEventHandlers "GetOut"; - _this removeAllEventHandlers "GetIn"; - _this removeAllEventHandlers "Local"; - clearVehicleInit _this; - deleteVehicle _this; - if ((count (units _group) == 0) && (_group != grpNull)) then { - deleteGroup _group; - }; - // _this = nil; -}; - -server_timeSync = { - //Send request - private ["_hour","_minute","_date","_key","_result","_outcome"]; - _key = "CHILD:307:"; - _result = _key call server_hiveReadWrite; - _outcome = _result select 0; - if(_outcome == "PASS") then { - _date = _result select 1; - //date setup - _year = _date select 0; - _month = _date select 1; - _day = _date select 2; - _hour = _date select 3; - _minute = _date select 4; - - if(dayz_ForcefullmoonNights) then { - _date = [2012,8,2,_hour,_minute]; - }; - setDate _date; - dayzSetDate = _date; - publicVariable "dayzSetDate"; - diag_log ("TIME SYNC: Local Time set to " + str(_date)); - }; -}; - -// must spawn these -server_spawncleanDead = { - private ["_deathTime","_delQtyZ","_delQtyP","_qty","_allDead"]; - _allDead = allDead; - _delQtyZ = 0; - _delQtyP = 0; - { - if (local _x) then { - if (_x isKindOf "zZombie_Base") then - { - _x call dayz_perform_purge; - uiSleep 0.05; - _delQtyZ = _delQtyZ + 1; - } else { - if (_x isKindOf "CAManBase") then { - _deathTime = _x getVariable ["processedDeath", diag_tickTime]; - if (diag_tickTime - _deathTime > 1800) then { - _x call dayz_perform_purge_player; - uiSleep 0.025; - _delQtyP = _delQtyP + 1; - }; - }; - }; - }; - uiSleep 0.025; - } count _allDead; - if (_delQtyZ > 0 || _delQtyP > 0) then { - _qty = count _allDead; - diag_log (format["CLEANUP: Deleted %1 players && %2 zombies out of %3 dead",_delQtyP,_delQtyZ,_qty]); - }; -}; -server_cleanupGroups = { - if (DZE_DYN_AntiStuck3rd > 3) then { DZE_DYN_GroupCleanup = nil; DZE_DYN_AntiStuck3rd = 0; }; - if(!isNil "DZE_DYN_GroupCleanup") exitWith { DZE_DYN_AntiStuck3rd = DZE_DYN_AntiStuck3rd + 1;}; - DZE_DYN_GroupCleanup = true; - { - if ((count (units _x) == 0) && (_x != grpNull)) then { - deleteGroup _x; - }; - uiSleep 0.001; - } count allGroups; - DZE_DYN_GroupCleanup = nil; -}; - -server_checkHackers = { - if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; }; - if(!isNil "DZE_DYN_HackerCheck") exitWith { DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;}; - DZE_DYN_HackerCheck = true; - { - if (!((isNil "_x") || {(isNull _x)})) then { - if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then { - diag_log ("CLEANUP: KILLING A HACKER " + (name _x) + " " + str(_x) + " IN " + (typeOf vehicle _x)); - (vehicle _x) setDamage 1; - _x setDamage 1; - uiSleep 0.25; - }; - }; - uiSleep 0.001; - } count allUnits; - DZE_DYN_HackerCheck = nil; -}; - -server_spawnCleanFire = { - private ["_delQtyFP","_qty","_missionFires"]; - _missionFires = allMissionObjects "Land_Fire_DZ"; - _delQtyFP = 0; - { - if (local _x) then { - deleteVehicle _x; - uiSleep 0.025; - _delQtyFP = _delQtyFP + 1; - }; - uiSleep 0.001; - } count _missionFires; - if (_delQtyFP > 0) then { - _qty = count _missionFires; - diag_log (format["CLEANUP: Deleted %1 fireplaces out of %2",_delQtyFP,_qty]); - }; -}; -server_spawnCleanLoot = { - private ["_created","_delQty","_nearby","_age","_keep","_qty","_missionObjs","_dateNow"]; - if (DZE_DYN_AntiStuck > 3) then { DZE_DYN_cleanLoot = nil; DZE_DYN_AntiStuck = 0; }; - if(!isNil "DZE_DYN_cleanLoot") exitWith { DZE_DYN_AntiStuck = DZE_DYN_AntiStuck + 1;}; - DZE_DYN_cleanLoot = true; - - _missionObjs = allMissionObjects "ReammoBox"; - _delQty = 0; - _dateNow = (DateToNumber date); - { - if (!isNull _x) then { - _keep = _x getVariable["permaLoot", false]; - if (!_keep) then { - _created = _x getVariable["created", -0.1]; - if (_created == -0.1) then{ - _x setVariable["created", _dateNow, false]; - _created = _dateNow; - } - else { - _age = (_dateNow - _created) * 525948; - if (_age > 20) then{ - _nearby = { (isPlayer _x) && (alive _x) } count(_x nearEntities[["CAManBase", "AllVehicles"], 130]); - if (_nearby == 0) then{ - deleteVehicle _x; - uiSleep 0.025; - _delQty = _delQty + 1; - }; - }; - }; - }; - }; - uiSleep 0.001; - } forEach _missionObjs; - if (_delQty > 0) then { - _qty = count _missionObjs; - diag_log (format["CLEANUP: Deleted %1 Loot Piles out of %2",_delQty,_qty]); - }; - DZE_DYN_cleanLoot = nil; -}; - -server_spawnCleanAnimals = { - private ["_pos","_delQtyAnimal","_qty","_missonAnimals","_nearby"]; - _missonAnimals = entities "CAAnimalBase"; - _delQtyAnimal = 0; - { - if (local _x) then { - _x call dayz_perform_purge; - uiSleep 0.05; - _delQtyAnimal = _delQtyAnimal + 1; - } else { - if (!alive _x) then { - _pos = getPosATL _x; - if (count _pos > 0) then { - _nearby = {(isPlayer _x) && (alive _x)} count (_pos nearEntities [["CAManBase","AllVehicles"], 130]); - if (_nearby==0) then { - _x call dayz_perform_purge; - uiSleep 0.05; - _delQtyAnimal = _delQtyAnimal + 1; - }; - }; - }; - }; - uiSleep 0.001; - } forEach _missonAnimals; - if (_delQtyAnimal > 0) then { - _qty = count _missonAnimals; - diag_log (format["CLEANUP: Deleted %1 Animals out of %2",_delQtyAnimal,_qty]); - }; -}; - -server_logUnlockLockEvent = { - private["_player", "_obj", "_objectID", "_objectUID", "_statusText", "_PUID", "_status", "_clientID", "_type"]; - _player = _this select 0; - _obj = _this select 1; - _status = _this select 2; - _type = typeOf _obj; - if (isNull _player) then {diag_log "ERROR: server_logUnlockLockEvent called with Null player object";}; - _clientID = owner _player; - _PUID = [_player] call FNC_GetPlayerUID; - _statusText = if (_status) then {"LOCKED"} else {"UNLOCKED"}; - - if (!isNull _obj) then { - _objectID = _obj getVariable["ObjectID", "0"]; - _objectUID = _obj getVariable["ObjectUID", "0"]; - - if (_status) then {[_obj, "gear"] call server_updateObject;}; - diag_log format["%6 %5: ID:%1 UID:%2 BY %3(%4)",_objectID,_objectUID,name _player,_PUID,_statusText,_type]; - dze_waiting = "success"; - _clientID publicVariableClient "dze_waiting"; - } else { - diag_log format["ERROR: %4 BY %1(%2) IS NULL AND COULD NOT BE %3 (THIS SHOULD NOT HAPPEN)",name _player,_PUID,_statusText,_type]; - dze_waiting = "fail"; - _clientID publicVariableClient "dze_waiting"; - }; -}; diff --git a/SQF/dayz_server/init/server_functions.sqf b/SQF/dayz_server/init/server_functions.sqf index 9cccbcc09..c9b5f2a71 100644 --- a/SQF/dayz_server/init/server_functions.sqf +++ b/SQF/dayz_server/init/server_functions.sqf @@ -1,6 +1,6 @@ #include "\z\addons\dayz_server\compile\server_toggle_debug.hpp" -waituntil {!isnil "bis_fnc_init"}; +waitUntil {!isNil "bis_fnc_init"}; BIS_MPF_remoteExecutionServer = { if ((_this select 1) select 2 == "JIPrequest") then { @@ -8,56 +8,63 @@ BIS_MPF_remoteExecutionServer = { }; }; -BIS_Effects_Burn = {}; +call compile preprocessFileLineNumbers "\z\addons\dayz_code\util\compile.sqf"; +call compile preprocessFileLineNumbers "\z\addons\dayz_code\loot\compile.sqf"; + +BIS_Effects_Burn = {}; dayz_disconnectPlayers = []; -server_playerLogin = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf"; -server_playerSetup = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf"; -server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf"; -server_updateObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf"; -server_playerDied = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf"; -server_publishObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf"; -server_deleteObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf"; -server_swapObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_swapObject.sqf"; -server_publishVeh = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle.sqf"; -server_publishVeh2 = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle2.sqf"; -server_publishVeh3 = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle3.sqf"; -server_tradeObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf"; -server_traders = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_traders.sqf"; -server_playerSync = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf"; -//server_spawnCrashSite = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf"; -server_spawnEvents = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf"; -//server_weather = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_weather.sqf"; -server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf"; -server_maintainArea = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_maintainArea.sqf"; -zombie_findOwner = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf"; -server_Wildgenerate = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_Wildgenerate.sqf"; -server_plantSpawner = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_plantSpawner.sqf"; +server_playerLogin = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf"; +server_playerSetup = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf"; +server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf"; +server_updateObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf"; +server_playerDied = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf"; +server_publishObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf"; //Creates the object in DB +server_deleteObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf"; //Removes the object from the DB +server_playerSync = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf"; +zombie_findOwner = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf"; +server_Wildgenerate = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_Wildgenerate.sqf"; +server_plantSpawner = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_plantSpawner.sqf"; base_fireMonitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\fire_monitor.sqf"; -server_systemCleanup = compile preprocessFileLineNumbers "\z\addons\dayz_server\system\server_cleanup.sqf"; - +server_systemCleanup = compile preprocessFileLineNumbers "\z\addons\dayz_server\system\server_cleanup.sqf"; spawnComposition = compile preprocessFileLineNumbers "ca\modules\dyno\data\scripts\objectMapper.sqf"; //"\z\addons\dayz_code\compile\object_mapper.sqf"; +server_sendToClient = compile preprocessFileLineNumbers "\z\addons\dayz_server\eventHandlers\server_sendToClient.sqf"; + +// EPOCH ADDITIONS +server_swapObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_swapObject.sqf"; +server_publishVeh = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle.sqf"; +server_publishVeh2 = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle2.sqf"; +server_publishVeh3 = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle3.sqf"; +server_tradeObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf"; +server_traders = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_traders.sqf"; +server_spawnEvents = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf"; +server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf"; +server_maintainArea = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_maintainArea.sqf"; +server_checkIfTowed = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_checkIfTowed.sqf"; +server_logUnlockLockEvent = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_logUnlockLockEvent.sqf"; +spawn_ammosupply = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\spawn_ammosupply.sqf"; +spawn_mineveins = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\spawn_mineveins.sqf"; +spawn_roadblocks = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\spawn_roadblocks.sqf"; +spawn_vehicles = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\spawn_vehicles.sqf"; -/* PVS/PVC - Skaronator */ -server_sendToClient = compile preprocessFileLineNumbers "\z\addons\dayz_server\eventHandlers\server_sendToClient.sqf"; server_medicalSync = { _player = _this select 0; _array = _this select 1; - _player setVariable["USEC_isDead",(_array select 0)]; //0 - _player setVariable["NORRN_unconscious", (_array select 1)]; //1 - _player setVariable["USEC_infected",(_array select 2)]; //2 - _player setVariable["USEC_injured",(_array select 3)]; //3 - _player setVariable["USEC_inPain",(_array select 4)]; //4 - _player setVariable["USEC_isCardiac",(_array select 5)]; //5 - _player setVariable["USEC_lowBlood",(_array select 6)]; //6 - _player setVariable["USEC_BloodQty",(_array select 7)]; //7 -// _wounds; //8 -// [_legs,_arms]; //9 - _player setVariable["unconsciousTime",(_array select 10)]; //10 - _player setVariable["blood_type",(_array select 11)]; //11 - _player setVariable["rh_factor",(_array select 12)]; //12 - _player setVariable["messing",(_array select 13)]; //13 - _player setVariable["blood_testdone",(_array select 14)]; //14 + _player setVariable ["USEC_isDead",(_array select 0)]; //0 + _player setVariable ["NORRN_unconscious",(_array select 1)]; //1 + _player setVariable ["USEC_infected",(_array select 2)]; //2 + _player setVariable ["USEC_injured",(_array select 3)]; //3 + _player setVariable ["USEC_inPain",(_array select 4)]; //4 + _player setVariable ["USEC_isCardiac",(_array select 5)]; //5 + _player setVariable ["USEC_lowBlood",(_array select 6)]; //6 + _player setVariable ["USEC_BloodQty",(_array select 7)]; //7 + // _wounds; //8 + // [_legs,_arms]; //9 + _player setVariable ["unconsciousTime",(_array select 10)]; //10 + _player setVariable ["blood_type",(_array select 11)]; //11 + _player setVariable ["rh_factor",(_array select 12)]; //12 + _player setVariable ["messing",(_array select 13)]; //13 + _player setVariable ["blood_testdone",(_array select 14)]; //14 }; dayz_Achievements = { @@ -66,19 +73,16 @@ dayz_Achievements = { _playerOwnerID = owner _player; _achievements = _player getVariable "Achievements"; - _achievements set [_achievementID,1]; - _player setVariable ["Achievements",_achievements]; }; vehicle_handleServerKilled = { - private["_unit","_killer"]; + private ["_unit","_killer"]; _unit = _this select 0; _killer = _this select 1; - [_unit, "killed"] call server_updateObject; - + [_unit, "killed"] call server_updateObject; _unit removeAllMPEventHandlers "MPKilled"; _unit removeAllEventHandlers "Killed"; _unit removeAllEventHandlers "HandleDamage"; @@ -93,9 +97,9 @@ check_publishobject = { _playername = _this select 1; _allowed = false; -#ifdef OBJECT_DEBUG - diag_log format ["DEBUG: Checking if Object: %1 is allowed, published by %2", _object, _playername]; -#endif + #ifdef OBJECT_DEBUG + diag_log format["DEBUG: Checking if Object: %1 is allowed, published by %2",_object,_playername]; + #endif if ((typeOf _object) in DayZ_SafeObjects) then { _saveObject = "DayZ_SafeObjects"; @@ -103,126 +107,125 @@ check_publishobject = { }; //Buildings - if (_object iskindof "DZ_buildables") then { + if (_object isKindOf "DZ_buildables") then { _saveObject = "DZ_buildables"; _allowed = true; }; #ifdef OBJECT_DEBUG - diag_log format ["DEBUG: Object: %1 published by %2 is allowed by %3",_object, _playername, _saveObject]; + diag_log format["DEBUG: Object: %1 published by %2 is allowed by %3",_object,_playername,_saveObject]; #endif _allowed }; -//event Handlers -eh_localCleanup = { - private ["_object"]; - _object = _this select 0; - _object addEventHandler ["local", { - if(_this select 1) then { - private["_type","_unit"]; - _unit = _this select 0; - _type = typeOf _unit; - _myGroupUnit = group _unit; - _unit removeAllMPEventHandlers "mpkilled"; - _unit removeAllMPEventHandlers "mphit"; - _unit removeAllMPEventHandlers "mprespawn"; - _unit removeAllEventHandlers "FiredNear"; - _unit removeAllEventHandlers "HandleDamage"; - _unit removeAllEventHandlers "Killed"; - _unit removeAllEventHandlers "Fired"; - _unit removeAllEventHandlers "GetOut"; - _unit removeAllEventHandlers "GetIn"; - _unit removeAllEventHandlers "Local"; - clearVehicleInit _unit; - deleteVehicle _unit; - if ((count (units _myGroupUnit) == 0) && (_myGroupUnit != grpNull)) then { - deleteGroup _myGroupUnit; - }; - //_unit = nil; - // diag_log ("CLEANUP: DELETED A " + str(_type) ); - }; - }]; -}; - server_hiveWrite = { - private["_data"]; + private "_data"; + //diag_log ("ATTEMPT WRITE: " + _this); _data = "HiveExt" callExtension _this; + //diag_log ("WRITE: " +str(_data)); }; server_hiveReadWrite = { - private["_key","_resultArray","_data"]; + private ["_key","_resultArray","_data"]; _key = _this; + //diag_log ("ATTEMPT READ/WRITE: " + _key); _data = "HiveExt" callExtension _key; + //diag_log ("READ/WRITE: " +str(_data)); _resultArray = call compile format ["%1",_data]; _resultArray }; -onPlayerDisconnected {[_uid,_name] call server_onPlayerDisconnect;}; +onPlayerDisconnected "[_uid,_name] call server_onPlayerDisconnect;"; -server_getDiff = { - private["_variable","_object","_vNew","_vOld","_result"]; +server_getDiff = { + private ["_variable","_object","_vNew","_vOld","_result"]; _variable = _this select 0; - _object = _this select 1; - _vNew = _object getVariable[_variable,0]; - _vOld = _object getVariable[(_variable + "_CHK"),_vNew]; - _result = 0; + _object = _this select 1; + _vNew = _object getVariable [_variable,0]; + _vOld = _object getVariable [(_variable + "_CHK"),_vNew]; + _result = 0; if (_vNew < _vOld) then { //JIP issues _vNew = _vNew + _vOld; - _object getVariable[(_variable + "_CHK"),_vNew]; + _object getVariable [(_variable + "_CHK"),_vNew]; } else { _result = _vNew - _vOld; - _object setVariable[(_variable + "_CHK"),_vNew]; + _object setVariable [(_variable + "_CHK"),_vNew]; }; _result }; -server_getDiff2 = { - private["_variable","_object","_vNew","_vOld","_result"]; +server_getDiff2 = { + private ["_variable","_object","_vNew","_vOld","_result"]; _variable = _this select 0; - _object = _this select 1; - _vNew = _object getVariable[_variable,0]; - _vOld = _object getVariable[(_variable + "_CHK"),_vNew]; + _object = _this select 1; + _vNew = _object getVariable [_variable,0]; + _vOld = _object getVariable [(_variable + "_CHK"),_vNew]; _result = _vNew - _vOld; - _object setVariable[(_variable + "_CHK"),_vNew]; + _object setVariable [(_variable + "_CHK"),_vNew]; _result }; dayz_objectUID2 = { - private["_p","_d","_key"]; + private ["_p","_d","_key"]; _d = _this select 0; _p = _this select 1; - _key = format [ "%1%2%3%4", + _key = format ["%1%2%3%4", abs round(10 * (_p select 0)), abs round(10 * (_p select 1)), abs round(100 * (_p select 2)), abs round((_d * diag_tickTime) % 1000) ]; + // Make sure the generated key is not a duplicate + while {true} do { + if !(_key in currentObjectUIDs) exitWith {currentObjectUIDs set [count currentObjectUIDs,_key];}; + keyStartNumber = keyStartNumber + 1; + _key = str keyStartNumber; + }; _key }; dayz_recordLogin = { - private["_key"]; + private "_key"; _key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2]; _key call server_hiveWrite; }; dayz_reseed = { - private ["_Loc","_i","_radius","_Ref"]; - _Loc = _this select 0; - _Ref = _this select 1; + private ["_loc","_i","_radius","_ref"]; + _loc = _this select 0; + _ref = _this select 1; - diag_log(str(_Loc)); - - //_lootspawner =[[10416.695, 4198.4634],[7982.2563, 1419.8256],[10795.93, 1419.8263],[7966.083, 4088.7463],[9259.7266, 2746.1985],[5200.5234, 3915.3274],[6494.1665, 2572.7798],[5216.6968, 1246.407],[2564.7244, 3915.3296],[3858.3674, 2572.782],[2580.8977, 1246.4092],[13398.995, 4400.5874],[12242.025, 2948.3196],[13551.842, 1832.2257],[14870.512, 3009.5117],[-178.19415, 1062.4478],[1099.2754, 2388.8206],[-194.36755, 3731.3679],[10394.215, 8322.1719],[7959.7759, 5543.5342],[10773.449, 5543.5342],[7943.6025, 8212.4551],[9237.2461, 6869.9063],[5178.043, 8039.0361],[6471.686, 6696.4883],[5194.2163, 5370.1152],[2542.2439, 8039.0381],[3835.887, 6696.4902],[2558.4172, 5370.1172],[13376.514, 8524.2969],[12219.544, 7072.0273],[13529.361, 5955.9336],[14848.032, 7133.2197],[-200.67474, 5186.1563],[1076.7949, 6512.5283],[-216.84814, 7855.0771],[10293.751, 12197.736],[7859.312, 9419.0996],[10672.988, 9419.0996],[7843.1387, 12088.021],[9136.7822, 10745.474],[5077.5791, 11914.601],[6371.2222, 10572.052],[5093.7524, 9245.6816],[2441.78, 11914.604],[3735.4231, 10572.055],[2457.9534, 9245.6816],[13276.053, 12399.861],[12119.08, 10947.596],[13428.897, 9831.501],[14747.566, 11008.786],[-301.13867, 9061.7207],[976.33112, 10388.096],[-317.31201, 11730.642],[10271.271, 16321.429],[7836.8315, 13542.813],[10650.506, 13542.813],[7820.6582, 16211.718],[9114.3018, 14869.175],[5055.0986, 16038.3],[6348.7417, 14695.758],[5071.272, 13369.392],[2419.2996, 16038.305],[3712.9426, 14695.76],[2435.4729, 13369.392],[13253.568, 16523.553],[12096.6, 15071.295],[13406.416, 13955.209],[14725.089, 15132.486],[-323.61914, 13185.43],[953.85059, 14511.8],[-339.79248, 15854.346]]; + diag_log str(_loc); + //_lootspawner = [[10416.695, 4198.4634],[7982.2563, 1419.8256],[10795.93, 1419.8263],[7966.083, 4088.7463],[9259.7266, 2746.1985],[5200.5234, 3915.3274],[6494.1665, 2572.7798],[5216.6968, 1246.407],[2564.7244, 3915.3296],[3858.3674, 2572.782],[2580.8977, 1246.4092],[13398.995, 4400.5874],[12242.025, 2948.3196],[13551.842, 1832.2257],[14870.512, 3009.5117],[-178.19415, 1062.4478],[1099.2754, 2388.8206],[-194.36755, 3731.3679],[10394.215, 8322.1719],[7959.7759, 5543.5342],[10773.449, 5543.5342],[7943.6025, 8212.4551],[9237.2461, 6869.9063],[5178.043, 8039.0361],[6471.686, 6696.4883],[5194.2163, 5370.1152],[2542.2439, 8039.0381],[3835.887, 6696.4902],[2558.4172, 5370.1172],[13376.514, 8524.2969],[12219.544, 7072.0273],[13529.361, 5955.9336],[14848.032, 7133.2197],[-200.67474, 5186.1563],[1076.7949, 6512.5283],[-216.84814, 7855.0771],[10293.751, 12197.736],[7859.312, 9419.0996],[10672.988, 9419.0996],[7843.1387, 12088.021],[9136.7822, 10745.474],[5077.5791, 11914.601],[6371.2222, 10572.052],[5093.7524, 9245.6816],[2441.78, 11914.604],[3735.4231, 10572.055],[2457.9534, 9245.6816],[13276.053, 12399.861],[12119.08, 10947.596],[13428.897, 9831.501],[14747.566, 11008.786],[-301.13867, 9061.7207],[976.33112, 10388.096],[-317.31201, 11730.642],[10271.271, 16321.429],[7836.8315, 13542.813],[10650.506, 13542.813],[7820.6582, 16211.718],[9114.3018, 14869.175],[5055.0986, 16038.3],[6348.7417, 14695.758],[5071.272, 13369.392],[2419.2996, 16038.305],[3712.9426, 14695.76],[2435.4729, 13369.392],[13253.568, 16523.553],[12096.6, 15071.295],[13406.416, 13955.209],[14725.089, 15132.486],[-323.61914, 13185.43],[953.85059, 14511.8],[-339.79248, 15854.346]]; //{ _radius = 1500; - dayz_lootspawner = [_Loc,_radius,_Ref] spawn server_lootSpawner; + dayz_lootspawner = [_loc,_radius,_ref] spawn server_lootSpawner; waitUntil {scriptDone dayz_lootspawner}; - //} foreach dayz_grid; + //} forEach dayz_grid; +}; + +dze_diag_fps = { + if (DZE_DiagVerbose) then { + diag_log format["SERVER FPS : %1 OBJECTS: %2 : PLAYERS: %3",diag_fps,count (allMissionObjects ""),playersNumber west]; + } else { + diag_log format["SERVER FPS : %1",diag_fps]; + }; +}; + +generate_new_damage = { + private "_damage"; + _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100; + _damage +}; + +server_hiveReadWriteLarge = { + private ["_key","_resultArray","_data"]; + _key = _this; + _data = "HiveExt" callExtension _key; + _resultArray = call compile _data; + _resultArray }; -call compile preprocessFileLineNumbers "\z\addons\dayz_server\init\Epoch_Init.sqf"; call compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fa_hiveMaintenance.sqf"; \ No newline at end of file diff --git a/SQF/dayz_server/modules/drop_bombs.sqf b/SQF/dayz_server/modules/drop_bombs.sqf index bf5a5d699..394d29495 100644 --- a/SQF/dayz_server/modules/drop_bombs.sqf +++ b/SQF/dayz_server/modules/drop_bombs.sqf @@ -1,4 +1,4 @@ // Sample Drop Bomb private ["_position"]; -_position = [MarkerPosition,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos; +_position = [dayz_centerMarker,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos; bomb = createVehicle ["Bo_GBU12_LGB", [(_position select 0),(_position select 1), 1000], [], 0, "CAN_COLLIDE"]; \ No newline at end of file diff --git a/SQF/dayz_server/system/scheduler/sched_safetyVehicle.sqf b/SQF/dayz_server/system/scheduler/sched_safetyVehicle.sqf index 3f0ddc768..144f85837 100644 --- a/SQF/dayz_server/system/scheduler/sched_safetyVehicle.sqf +++ b/SQF/dayz_server/system/scheduler/sched_safetyVehicle.sqf @@ -1,7 +1,7 @@ sched_safetyVehicle = { { - if (vehicle _x != _x && !(vehicle _x in dayz_serverObjectMonitor) && (typeOf vehicle _x) != "ParachuteWest") then { + if (vehicle _x != _x && !(vehicle _x in dayz_serverObjectMonitor) && !(vehicle _x in PVDZE_serverObjectMonitor) && !((typeOf vehicle _x) in DZE_safeVehicle)) then { diag_log [ __FILE__, "KILLING A HACKER", name _x, " IN ", typeOf vehicle _x ]; (vehicle _x) setDamage 1; _x setDamage 1; diff --git a/SQF/dayz_server/system/server_monitor.sqf b/SQF/dayz_server/system/server_monitor.sqf index a7a885252..03a0ac6b0 100644 --- a/SQF/dayz_server/system/server_monitor.sqf +++ b/SQF/dayz_server/system/server_monitor.sqf @@ -117,15 +117,12 @@ if (isServer && isNil "sm_done") then { _idKey = _x select 1; _type = _x select 2; _ownerID = _x select 3; - _worldspace = _x select 4; _inventory = _x select 5; _hitPoints = _x select 6; _fuel = _x select 7; _damage = _x select 8; - - // Set objectUIDs in currentObjectUIDs list to prevent duplicates - if (_type in dayz_allowedObjects) then {_worldspace call dayz_objectUID2;} else {_worldspace call dayz_objectUID3;}; + _worldspace call dayz_objectUID2; // Set objectUIDs in currentObjectUIDs list to prevent duplicates _dir = 0; _pos = [0,0,0]; @@ -141,7 +138,7 @@ if (isServer && isNil "sm_done") then { if (!_wsDone) then { if (count _worldspace >= 1) then { _dir = _worldspace select 0; }; - _pos = [getMarkerPos "center",0,4000,10,0,2000,0] call BIS_fnc_findSafePos; + _pos = [dayz_centerMarker,0,4000,10,0,2000,0] call BIS_fnc_findSafePos; if (count _pos < 3) then { _pos = [_pos select 0,_pos select 1,0]; }; diag_log ("MOVED OBJ: " + str(_idKey) + " of class " + _type + " to pos: " + str(_pos)); }; @@ -198,7 +195,7 @@ if (isServer && isNil "sm_done") then { if (DZE_GodModeBase) then { _object addEventHandler ["HandleDamage", {false}]; } else { - _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}]; + _object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}]; }; // Test disabling simulation server side on buildables only. _object enableSimulation false; @@ -451,16 +448,10 @@ if (isServer && isNil "sm_done") then { for "_x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; - - if(isnil "dayz_MapArea") then { - dayz_MapArea = 10000; - }; - if(isnil "HeliCrashArea") then { - HeliCrashArea = dayz_MapArea / 2; - }; - if(isnil "OldHeliCrash") then { - OldHeliCrash = false; - }; + + // All done spawning stuff, can clear these now + buildingList = []; + roadList = []; // [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire] if(OldHeliCrash) then { diff --git a/Server Files/MPMissions/DayZ_Epoch_13.Tavi/init.sqf b/Server Files/MPMissions/DayZ_Epoch_13.Tavi/init.sqf index 5802773e3..29ecc855a 100644 --- a/Server Files/MPMissions/DayZ_Epoch_13.Tavi/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_13.Tavi/init.sqf @@ -45,7 +45,6 @@ DynamicVehicleDamageHigh = 100; // Default: 100 dayz_quickSwitch = false; // Default: false DZE_BuildOnRoads = false; // Default: False -// DZEdebug = true; MISSION_ROOT=toArray __FILE__;MISSION_ROOT resize(count MISSION_ROOT-8);MISSION_ROOT=toString MISSION_ROOT; //Load in compiled functions call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; //Initilize the Variables (IMPORTANT: Must happen very early) diff --git a/Server Files/MPMissions/DayZ_Epoch_15.namalsk/init.sqf b/Server Files/MPMissions/DayZ_Epoch_15.namalsk/init.sqf index f1b607cfe..2b3351003 100644 --- a/Server Files/MPMissions/DayZ_Epoch_15.namalsk/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_15.namalsk/init.sqf @@ -46,7 +46,6 @@ DynamicVehicleDamageHigh = 100; // Default: 100 dayz_quickSwitch = false; // Default: false DZE_BuildOnRoads = false; // Default: False -// DZEdebug = true; MISSION_ROOT=toArray __FILE__;MISSION_ROOT resize(count MISSION_ROOT-8);MISSION_ROOT=toString MISSION_ROOT; //Load in compiled functions call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; //Initilize the Variables (IMPORTANT: Must happen very early) diff --git a/Server Files/MPMissions/DayZ_Epoch_16.Panthera2/init.sqf b/Server Files/MPMissions/DayZ_Epoch_16.Panthera2/init.sqf index da8dd928d..11eb6eacc 100644 --- a/Server Files/MPMissions/DayZ_Epoch_16.Panthera2/init.sqf +++ b/Server Files/MPMissions/DayZ_Epoch_16.Panthera2/init.sqf @@ -46,7 +46,6 @@ DZE_BuildOnRoads = false; // Default: False EpochEvents = [["any","any","any","any",30,"crash_spawner"],["any","any","any","any",0,"crash_spawner"],["any","any","any","any",15,"supply_drop"]]; dayz_fullMoonNights = true; -// DZEdebug = true; MISSION_ROOT=toArray __FILE__;MISSION_ROOT resize(count MISSION_ROOT-8);MISSION_ROOT=toString MISSION_ROOT; //Load in compiled functions call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; //Initilize the Variables (IMPORTANT: Must happen very early)