Move HeliCrash and CarePackage area variables to markers

This allows finer grained control of crashsite, carepackage and infected
camp spawn positions and radii (further north, south, east, west, etc.).

Also removed some hardcoded checks for Chernarus, since
dayz_townGenerator should always be off on other maps for now. Someone
may add town generator coordinates for other maps later.

Related vanilla commits:

https://github.com/DayZMod/DayZ/commit/b20b402bf030769350cf662b985efba9e83ebe55

https://github.com/DayZMod/DayZ/commit/7c8b69eb82a8c741d01251b2552d009abe2687c4

https://github.com/DayZMod/DayZ/commit/7dfd3ef9cf3cf1751759fd76f8eae10c0b1740dc
This commit is contained in:
ebaydayz
2016-09-11 14:45:39 -04:00
parent 48334e76d4
commit 16e4dc7b30
65 changed files with 579 additions and 253 deletions
@@ -179,7 +179,7 @@ if (count _stats > 0) then {
if (_randomSpot) then {
private ["_counter","_position","_isNear","_isZero","_mkr"];
if (!isDedicated) then {endLoadingScreen;};
_IslandMap = if (toLower worldName in ["caribou","cmr_ovaron","dingor","fallujah","fapovo","fdf_isle1_a","isladuala","lingor","mbg_celle2","namalsk","napf","oring","panthera2","sara","sauerland","smd_sahrani_a2","tavi","trinity","utes"]) then {true} else {false};
_IslandMap = if (toLower worldName in ["caribou","cmr_ovaron","dayznogova","dingor","dzhg","fallujah","fapovo","fdf_isle1_a","isladuala","lingor","mbg_celle2","namalsk","napf","oring","panthera2","sara","sauerland","smd_sahrani_a2","tasmania2010","tavi","trinity","utes"]) then {true} else {false};
//spawn into random
_findSpot = true;
@@ -15,8 +15,8 @@ Author:
//Number of care packages to spawn
#define SPAWN_NUM 6
#define SEARCH_CENTER dayz_centerMarker
#define SEARCH_RADIUS HeliCrashArea
#define SEARCH_CENTER getMarkerPos "carepackages"
#define SEARCH_RADIUS (getMarkerSize "carepackages") select 0
#define SEARCH_DIST_MIN 30
#define SEARCH_SLOPE_MAX 1000
#define SEARCH_BLACKLIST [[[12923,3643],[14275,2601]]]
@@ -21,8 +21,8 @@ Author:
#define SPAWN_CHANCE 0.75
//Parameters for finding a suitable position to spawn the crash site
#define SEARCH_CENTER dayz_centerMarker
#define SEARCH_RADIUS HeliCrashArea
#define SEARCH_CENTER getMarkerPos "crashsites"
#define SEARCH_RADIUS (getMarkerSize "crashsites") select 0
#define SEARCH_DIST_MIN 20
#define SEARCH_SLOPE_MAX 2
#define SEARCH_BLACKLIST [[[2092,14167],[10558,12505]]]
@@ -29,8 +29,8 @@ Author:
#define OBJECT_RADIUS_MIN 8
#define OBJECT_RADIUS_MAX 13
#define SEARCH_CENTER dayz_centerMarker
#define SEARCH_RADIUS HeliCrashArea
#define SEARCH_CENTER getMarkerPos "center"
#define SEARCH_RADIUS (getMarkerSize "center") select 0
#define SEARCH_EXPRESSION "(5 * forest) + (4 * trees) + (3 * meadow) - (20 * houses) - (30 * sea)" //+ (3 * meadow) - (20 * houses) - (30 * sea)
#define SEARCH_PRECISION 30
#define SEARCH_ATTEMPTS 10
+1 -1
View File
@@ -1,6 +1,6 @@
private ["_position","_veh","_istoomany","_spawnveh","_positions"];
_position = [dayz_centerMarker,0,(HeliCrashArea*0.75),10,0,2000,0] call BIS_fnc_findSafePos;
_position = [getMarkerPos "center",0,(((getMarkerSize "center") select 1)*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];
+2 -2
View File
@@ -34,11 +34,11 @@ if (count AllowedVehiclesList == 0) then {
if (_isShip or _isAir) then {
if (_isShip) then {
// Spawn anywhere on coast on water
_position = [dayz_centerMarker,0,DynamicVehicleArea,10,1,2000,1] call BIS_fnc_findSafePos;
_position = [getMarkerPos "center",0,((getMarkerSize "center") select 1),10,1,2000,1] call BIS_fnc_findSafePos;
//diag_log("DEBUG: spawning boat near coast " + str(_position));
} else {
// Spawn air anywhere that is flat
_position = [dayz_centerMarker,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos;
_position = [getMarkerPos "center",0,((getMarkerSize "center") select 1),10,0,2000,0] call BIS_fnc_findSafePos;
//diag_log("DEBUG: spawning air anywhere flat " + str(_position));
};
} else {
@@ -16,7 +16,7 @@ while {_counter < _amount} do {
//_radius = 0;
_method = "CAN_COLLIDE";
_position = [dayz_centerMarker,1,6500,1] call fn_selectRandomLocation;
_position = [getMarkerPos "center",1,6500,1] call fn_selectRandomLocation;
//Create Zed
_agent = createAgent [_type, _position, [], 1, _method];
+1 -1
View File
@@ -1,4 +1,4 @@
// Sample Drop Bomb
private ["_position"];
_position = [dayz_centerMarker,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos;
_position = [getMarkerPos "center",0,((getMarkerSize "center") select 1),10,0,2000,0] call BIS_fnc_findSafePos;
bomb = createVehicle ["Bo_GBU12_LGB", [(_position select 0),(_position select 1), 1000], [], 0, "CAN_COLLIDE"];
+1 -1
View File
@@ -114,7 +114,7 @@ AllowedVehiclesList = [
["VWGolf",_Ratio3]
];
if (toLower worldName in ["caribou","chernarus","cmr_ovaron","dingor","fallujah","fapovo","fdf_isle1_a","isladuala","lingor","mbg_celle2","namalsk","napf","oring","panthera2","sara","sauerland","smd_sahrani_a2","tavi","trinity","utes"]) then {
if (toLower worldName in ["caribou","chernarus","cmr_ovaron","dayznogova","dingor","dzhg","fallujah","fapovo","fdf_isle1_a","isladuala","lingor","mbg_celle2","namalsk","napf","oring","panthera2","sara","sauerland","smd_sahrani_a2","tasmania2010","tavi","trinity","utes"]) then {
// water map, add boats
AllowedVehiclesList = AllowedVehiclesList + [
+3 -3
View File
@@ -5,8 +5,8 @@ private ["_blocked","_flame","_position"];
_position = _x;
{if (_position distance _x < 150) exitWith {_blocked = true;};} forEach dayz_townGeneratorBlackList;
if (!_blocked && (random 1 < 0.33)) then {
//_flame = createVehicle [ "flamable_DZ", _x, [], 0, "CAN_COLLIDE"];
_flame = "flamable_DZ" createVehicle _x;
_flame = "flamable_DZ" createVehicle [0,0,0]; //200x faster https://community.bistudio.com/wiki/Code_Optimisation#createVehicle.28Local.29
_flame setPosATL _x;
_flame inflame true;
_flame setVariable ["permaLoot",true]; // = won't be removed by the cleaner, cf. sched_lootpiles.sqf
};
@@ -29,4 +29,4 @@ private ["_blocked","_flame","_position"];
[6754.5,2780.37,0.597929], [6760.03,2727.7,0.597929], [6789.35,2692.69,0.597929], [6796.09,2726.09,0.597929], [6810.51,2499.86,0.597929],
[6822.79,2482.01,0.597929], [6832.25,2500.24,0.597929], [6833.6,3176.97,0.59797], [6835.19,2694.23,0.597929], [6847.45,2360.25,0.597929],
[6856.71,2522.75,0.597929], [6864.41,2464.66,0.597929], [7065.12,2622.94,0.597929], [7095.99,2740.68,0.597929]
];
];
+3 -3
View File
@@ -393,7 +393,7 @@ publicVariable "sm_done";
[] execVM "\z\addons\dayz_server\compile\server_spawnCarePackages.sqf";
[] execVM "\z\addons\dayz_server\compile\server_spawnCrashSites.sqf";
if (dayz_townGenerator && {toLower worldName == "chernarus"}) then {execVM "\z\addons\dayz_server\system\lit_fireplaces.sqf";};
if (dayz_townGenerator) then {execVM "\z\addons\dayz_server\system\lit_fireplaces.sqf";};
"PVDZ_sec_atp" addPublicVariableEventHandler {
_x = _this select 1;
@@ -461,8 +461,8 @@ if (_hiveLoaded) then {
if (isClass (_cfgLootFile >> typeOf _x)) then {
_buildingList set [count _buildingList,_x];
};
} count (dayz_centerMarker nearObjects ["building",DynamicVehicleArea]);
_roadList = dayz_centerMarker nearRoads DynamicVehicleArea;
} count (getMarkerPos "center" nearObjects ["building",((getMarkerSize "center") select 1)]);
_roadList = getMarkerPos "center" nearRoads ((getMarkerSize "center") select 1);
_vehLimit = MaxVehicleLimit - (count _serverVehicleCounter);
if (_vehLimit > 0) then {