Jump to content

[OLD] JAEM - Just another Evac-Chopper Mod v1.4 (Updated 06/14/2014) ** OUT OF DATE **


OtterNas3

Recommended Posts

  • 3 weeks later...

wow, chapeau!  what an amazing script :D

 

everything works fine with the original 1.4 version on my overpoch / chernarus server.

 

BUT:

 

after server restart the chopper evac field is gone.  my chopper is standing on empty field.  any idea?

 

i have to use briefcases again...

 

normal relog and relog after die works perfect!

 

thanks!

Link to comment
Share on other sites

@Snakeyes:

 

could you be please more precisely?

 

i am now at Page #18 and edited as described in Post 357

 

 

if i do those changes, i cannot anymore set my chopper to evac with Briefcase.  The Blue Evac Menu is still there, but when i click on it, there is nothing more happened!

Link to comment
Share on other sites

Thank you Snake.

 

But now i have read more pages,

 

and my only Edit to get the Evac Fields back after Server Restart is:

 

in the SetEvacChopper.sqf file add only  those 3 letters in line 81  (on my file):    Old

 

make from _number_string = getPlayerUID _playertemp ;

 

this:

 

_number_string = getPlayerUIDOld _playertemp ;

 

Thats the deal.

 

Thanxx anyway :D

 

 

Works!

 

cheers ^^

 

--using the Otternase 1.4. Script from Post #1

Link to comment
Share on other sites

Greetings,

 

I'm using the original script from Post #1. It was working fine until recently. I installed the latest version of Infistar AH v6.0.8 and the BE filters for it. Now when I try to "Set the Evac Chopper" from the menu everything works as usual except at the very end of the sequence when it creates the evac chopper field underneath my helicopter. I can see the red and white evac chopper field go down for a second or two and then it is gone. I tried using the BE filters from the original post, but they no longer work for me. Anybody out there use this AH and have it working?

 

Thanks,

SE

Link to comment
Share on other sites

  • 2 weeks later...

Short answer, no.

 

 

LOL. like that short answer...  but could we all know why not?  thx

 

now i also got that client side RPT error:

Error in expression < "PartVRotor";
};

if (_damage >= 1 && (_part == "PartEngine" || _part == "PartV>
  Error position: <_part == "PartEngine" || _part == "PartV>
  Error Undefined variable in expression: _part
File mpmissions\__CUR_MP.Chernarus\custom\JAEM\CallEvacChopper.sqf, line 94

and yesss, my HeliPad and everything else is still there after server restart!  (cause i also changed to oldGUID)

 

So anyway i would give 1.6 a try. But i am on Coins now.

 

if i just throw in my 1.4 SetEvacChopper.sqf i get those errors:

 
Error in expression <rRescueFields;
};


player removeAction s_player_makeEvacChopper;
s_player_makeE>
  Error position: <s_player_makeEvacChopper;
s_player_makeE>
  Error Undefined variable in expression: s_player_makeevacchopper
File mpmissions\__CUR_MP.Chernarus\custom\JAEM\SetEvacChopper.sqf, line 37
Error in expression < to cancel",_cnt]);
if (player distance _locationPlayer > 0.2) then {
systemChat>
  Error position: <_locationPlayer > 0.2) then {
systemChat>

Error Undefined variable in expression: _locationplayer
File mpmissions\__CUR_MP.Chernarus\custom\JAEM\SetEvacChopper.sqf, line 108
Error in expression < to cancel",_cnt]);
if (player distance _locationPlayer > 0.2) then {
systemChat>
  Error position: <_locationPlayer > 0.2) then {
systemChat>
  Error Undefined variable in expression: _locationplayer
File mpmissions\__CUR_MP.Chernarus\custom\JAEM\SetEvacChopper.sqf, line 108
Error in expression <perFieldsUpdate";


player removeAction s_player_evacCall;
s_player_evacCall = ->
  Error position: <s_player_evacCall;
s_player_evacCall = ->
  Error Undefined variable in expression: s_player_evaccall
File mpmissions\__CUR_MP.Chernarus\custom\JAEM\SetEvacChopper.sqf, line 152
Cannot create non-ai vehicle c_grasstall,
Error in expression < cursorTarget >= 20 && speed player < 1 && actionMenu) then {
callEvac = true;
}>
  Error position: <&& actionMenu) then {
callEvac = true;
}>
  Error &&: Type Array, expected Bool,code
File mpmissions\__CUR_MP.Chernarus\custom\JAEM\EvacChopper_init.sqf, line 231

Error in expression < "PartVRotor";
};

if (_damage >= 1 && (_part == "PartEngine" || _part == "PartV>
  Error position: <_part == "PartEngine" || _part == "PartV>
  Error Undefined variable in expression: _part
File mpmissions\__CUR_MP.Chernarus\custom\JAEM\CallEvacChopper.sqf, line 12

Could someone please make a fix for the 1.6  from this / my 1.4  coins SetEvacChopper.sqf

 

/*------------------------------------*/
/* JAEM */
/* Just another Chopper-Evac Mod v1.4 */
/* OtterNas3 */
/* 01/14/2014 */
/* Last update: 06/14/2014 */
/*------------------------------------*/

private ["_allNearRescueFields","_locationPlayer","_cnt","_objectID","_objectUID","_targetVehicle","_playerUID","_magazinesPlayer","_hasBriefcase","_location","_dir","_object"];

evac_chopperPrice = 100000;

//This prevents the building of Evac-Chopper field on trader signs
_allNearRescueFields = (nearestObjects [player,["HeliHRescue"],50]);
if (count _allNearRescueFields > 0) then {
{
if (((_x getVariable["ObjectID","0"]) == "0") && ((_x getVariable["ObjectUID","0"]) == "0")) then {
systemChat ("You cant build a Evac-Chopper next to a Heli-Rescue sign that is part of the Map or from a Trader!");
systemChat ("You need to wait 60 seconds before you can try to set a Evac-Chopper again!");
[] spawn {
sleep 60;

s_player_makeEvacChopper = -1;
};

breakOut "exit";
};
} forEach _allNearRescueFields;
};

player removeAction s_player_makeEvacChopper;
s_player_makeEvacChopper = 1;

//Getting the target Vehicle and needed variables
_targetVehicle = _this select 3;
_location = ([_targetVehicle] call ON_fnc_GetPos);
_dir = getDir _targetVehicle;
_playerUID = ([player] call ON_fnc_convertUID);
_magazinesPlayer = magazines player;

//Cause we can only make a sign on Terrain and not on buildings or buildables
//We check if the Chopper height is below 1m above Terrain
if ((_location) select 2 >= 3) then {
systemChat("Sorry but Evac-Choppers need to be build on flat Terrain");
systemChat("Make sure you dont stand on a Building or a builded object!");
};

//Check if player has the needed amount of Coins to pay for the Evac-Chopper
//If not exit script
_hasBriefcase = player getVariable["cashMoney",0]; //_hasBriefcase = player getVariable["headShots",0];

if (_hasBriefcase < evac_chopperPrice) then {

systemChat(format["Making a Evac-Chopper costs %1 %2 - You dont have it - Sorry!", evac_chopperPrice, CurrencyName]);

s_player_makeEvacChopper = -1;

breakOut "exit";
};


//If player already has a Evac-Chopper
//tell him that only 1 Evac-Chopper is allowed

//Give him 5 seconds until we change the Evac-Chopper to the current target
if (playerHasEvacField) then {
systemChat("WARNING! You already have a Evac-Chopper - Maximum reached");

_cnt = 5;
_locationPlayer = (([player] call ON_fnc_GetPos));
for "_p" from 1 to 5 do
{
systemChat(format ["WARNING! Changing Evac-Chopper to this target in %1s - Move to cancel",_cnt]);
if (player distance _locationPlayer > 0.2) then {
systemChat("Changing Evac-Chopper canceled");
s_player_makeEvacChopper = -1;

breakOut "exit";
};
sleep 1;
_cnt = _cnt - 1;
};
_objectID = playersEvacField getVariable["ObjectID","0"];
_objectUID = playersEvacField getVariable["ObjectUID","0"];
PVDZE_obj_Delete = [_objectID,_objectUID,player];
publicVariableServer "PVDZE_obj_Delete";
PVDZE_EvacChopperFieldsUpdate = ["rem",playersEvacField];
publicVariableServer "PVDZE_EvacChopperFieldsUpdate";
deleteVehicle playersEvacField;
playerHasEvacField = false;
playersEvacField = nil;
};


//Before we start the building process
//we give the player a warning that Evac-Choppers needs free sight around
//Countdown for 10 seconds

systemChat("WARNING! Evac-Choppers needs free sight to all sides");
sleep 2;
systemChat("WARNING! Make sure you got no objects like Buildings or Trees around!");
sleep 2;
_cnt = 10;

for "_i" from 1 to 10 do
{
systemChat(format ["Building of Evac-Chopper starts in %1s - Move to cancel",_cnt]);
if (player distance _locationPlayer > 0.2) then {
systemChat("Building of Evac-Chopper canceled");
s_player_makeEvacChopper = -1;

breakOut "exit";
};
sleep 1;
_cnt = _cnt - 1;

};

//Start Building
//Player did not had a Evac-Chopper yet or decided to replace it with the new target
//So we check again if he STILL has the Briefcase in his inventory
//If yes, we remove it and say thanks ^^


if (!([player, evac_chopperPrice] call SC_fnc_removeCoins)) then {

systemChat(format["Making a Evac-Chopper costs %1 %2 - You dont have it - Sorry!", evac_chopperPrice , CurrencyName ]);
s_player_makeEvacChopper = -1;

breakOut "exit";
} else {

systemChat(format["Making a Evac-Chopper costs %1 %2 - Thanks for your payment!", evac_chopperPrice, CurrencyName]);
};

//The player payd so we make the Sign and write it to the database
//We use the playerUID so the ownage is permanent!
_object = createVehicle ["HeliHRescue", _location, [], 0, "CAN_COLLIDE"];
_object addEventHandler ["HandleDamage", {false}];
_object enableSimulation false;
_object setDir _dir;
_object setPosATL _location;
player reveal _object;


player playActionNow "Medic";
_object setVariable ["CharacterID",_playerUID,true];
_object setVariable ["Classname", "HeliHRescue",true];
PVDZE_obj_Publish = [_playerUID,_object,[_dir,_location],"HeliHRescue"];
publicVariableServer "PVDZE_obj_Publish";
PVDZE_EvacChopperFieldsUpdate = ["add",_object];
publicVariableServer "PVDZE_EvacChopperFieldsUpdate";

player removeAction s_player_evacCall;
s_player_evacCall = -1;
s_player_makeEvacChopper = -1;

playerHasEvacField = true;
playersEvacField = _object;

//Thats it for the creation part of the Evac-Chopper
//Hope you enjoyed it :)
//Moo,
//Otter

 

Thanxxx

Link to comment
Share on other sites

Hi all. Plz help me. I am install JAEM with SC 3.0 & P4L 2.34

Eror in my RPT:

Error in expression <_done = true;
publicVariable "sm_done";
};

if (isServer && (isNil "EvacServerPr>
13:48:17   Error position: <};

if (isServer && (isNil "EvacServerPr>
13:48:17   Error Missing {
13:48:17 File z\addons\dayz_server\system\server_monitor.sqf, line 481

Line 481

	allowConnection = true;	
	sm_done = true;
	publicVariable "sm_done";
};

if (isServer && (isNil "EvacServerPreload")) then {
    publicVariable "PVDZE_EvacChopperFields";
    
    ON_fnc_evacChopperFieldsUpdate = {
        private ["_action","_targetField"];
        _action = _this select 0;
        _targetField = _this select 1;
        
        if (_action == "add") then {
            PVDZE_EvacChopperFields = PVDZE_EvacChopperFields + [_targetField];
        };
        
        if (_action == "rem") then {
            PVDZE_EvacChopperFields = PVDZE_EvacChopperFields - [_targetField];
        };
        
        publicVariable "PVDZE_EvacChopperFields";
    };

    "PVDZE_EvacChopperFieldsUpdate" addPublicVariableEventHandler {(_this select 1) spawn ON_fnc_evacChopperFieldsUpdate};

    EvacServerPreload = true;
};

Link to comment
Share on other sites

  • 3 weeks later...

Hello,

I would like to use this for only myself and my Admins. How can I go about creating an array or at the least a single use eveac heli, I don't want anyone but me and my Admins to able to use it.

( Trying to get away from infistar)

 

Im pretty new to this scripting for Arma, but would I define it in compiles or the actual script (near the UID check) like _AllowedToUse = _AllowedToUse ["765XXXXX"]];

 

Something like that ?

 

thanks !

 

Link to comment
Share on other sites

  • 2 weeks later...

Cheech, if you look at 1.6 JAEM and 1.4 JAEM with Zupas changes, set the evac chopper price (100000 is what zupa has) and then change the _hasbriefcase lines to Zupa's

also make sure to call SC_fnc_removeCoins

i can post the edits I made later on if needed.

Link to comment
Share on other sites

  • 2 weeks later...

this was installed about June 2014 on chernarus and it was working about 7 months ago the last time i used the call heli. No one told me it kicked anyone. The players say it started in DEC 2014. I logged on tonight and I call for the heli and it laid down the heli pad where i was standing. with in 2 seconds of the heli pad down i got kicked. I TP back to my base and the heli was there with the pilot swimming in the lake next to the heli dock. 

this is what came up on my screen when i got kicked:

 

you  were kicked off the game. (BattlEye: Waypoint Condition Restriction #0)

 

 

Update:

Went into the Battleye filters and changed the 5 to a 1 in the waypointcondition.txt and still get kicked

Link to comment
Share on other sites

opened the filters and changed the 5 to a 1 in the waypointcondition.txt and still get kicked

I personally do not run the battleye filters, I know I know no need to even say it.

as a test try renaming that filter too old at the end.

I'm pretty sure that you have that add that to the publicvariableval.txt and not to the specific filter.

could be wrong but I think that's how it works from other mods that I've installed

Link to comment
Share on other sites

  • 3 weeks later...
if (!isDedicated) then {

	//Conduct map operations

	0 fadeSound 0;

	waitUntil {!isNil "dayz_loadScreenMsg"};

	dayz_loadScreenMsg = (localize "STR_AUTHENTICATING");

	_nil = [] execVM "custom\JAEM\EvacChopper_init.sqf";

	//Run the player monitor

	_id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}];

	_playerMonitor = 	[] execVM "\z\addons\dayz_code\system\player_monitor.sqf";	

	

	//anti Hack



	//Lights

	//[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf";
	execVM "service_point\service_point.sqf";	
	_nil = [] execVM "custom\JAEM\EvacChopper_init.sqf";

	
	
	
};





//Start Dynamic Weather

execVM "\z\addons\dayz_code\external\DynamicWeatherEffects.sqf";





#include "\z\addons\dayz_code\system\BIS_Effects\init.sqf"
[] execVM "custom\base_SafeArea.sqf";
 

Is this correct for both the jaem and service points i have a wiered .init using nitrado servers...

Link to comment
Share on other sites

So im having a issue with this jaem on my current server host, i have used the mod before never had a problem. When i add the modified server_monitor.sqf to my server i get the following error and the server wont load.

4:52:35 Warning Message: Script z\addons\dayz_server\init\server_functions.sqf not found
 4:52:35 Warning Message: Script z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\dynamic_vehicle.sqf not found
 4:52:35 Warning Message: Script z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\mission.sqf not found
 4:52:35 "Res3tting B!S effects..."
 4:52:35 Warning Message: Script z\addons\dayz_server\system\server_monitor.sqf not found

I can replace my server_monitor.sqf with originial and it works fine but no evac, below are my .init from mpmission and my modified server monitor.....what did i do wrong?

private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_intentory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue","_superkey","_shutdown","_res","_hiveLoaded"];

dayz_versionNo = 		getText(configFile >> "CfgMods" >> "DayZ" >> "version");
dayz_hiveVersionNo = 	getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion");

_hiveLoaded = false;

waitUntil{initialized}; //means all the functions are now defined

diag_log "HIVE: Starting";

waituntil{isNil "sm_done"}; // prevent server_monitor be called twice (bug during login of the first player)
	
// Custom Configs
if(isnil "MaxVehicleLimit") then {
	MaxVehicleLimit = 50;
};

if(isnil "MaxDynamicDebris") then {
	MaxDynamicDebris = 100;
};
if(isnil "MaxAmmoBoxes") then {
	MaxAmmoBoxes = 3;
};
if(isnil "MaxMineVeins") then {
	MaxMineVeins = 50;
};
// Custon Configs End

if (isServer && isNil "sm_done") then {

	serverVehicleCounter = [];
	_hiveResponse = [];

	for "_i" from 1 to 5 do {
		diag_log "HIVE: trying to get objects";
		_key = format["CHILD:302:%1:", dayZ_instance];
		_hiveResponse = _key call server_hiveReadWrite;  
		if ((((isnil "_hiveResponse") || {(typeName _hiveResponse != "ARRAY")}) || {((typeName (_hiveResponse select 1)) != "SCALAR")})) then {
			if ((_hiveResponse select 1) == "Instance already initialized") then {
				_superkey = profileNamespace getVariable "SUPERKEY";
				_shutdown = format["CHILD:400:%1:", _superkey];
				_res = _shutdown call server_hiveReadWrite;
				diag_log ("HIVE: attempt to kill.. HiveExt response:"+str(_res));
			} else {
				diag_log ("HIVE: connection problem... HiveExt response:"+str(_hiveResponse));
			
			};
			_hiveResponse = ["",0];
		} 
		else {
			diag_log ("HIVE: found "+str(_hiveResponse select 1)+" objects" );
			_i = 99; // break
		};
	};
	
	_BuildingQueue = [];
	_objectQueue = [];
	
	if ((_hiveResponse select 0) == "ObjectStreamStart") then {
	
		// save superkey
		profileNamespace setVariable ["SUPERKEY",(_hiveResponse select 2)];
		
		_hiveLoaded = true;
	
		diag_log ("HIVE: Commence Object Streaming...");
		_key = format["CHILD:302:%1:", dayZ_instance];
		_objectCount = _hiveResponse select 1;
		_bQty = 0;
		_vQty = 0;
		for "_i" from 1 to _objectCount do {
			_hiveResponse = _key call server_hiveReadWriteLarge;
			//diag_log (format["HIVE dbg %1 %2", typeName _hiveResponse, _hiveResponse]);
			if ((_hiveResponse select 2) isKindOf "ModularItems") then {
				_BuildingQueue set [_bQty,_hiveResponse];
				_bQty = _bQty + 1;
			} else {
				_objectQueue set [_vQty,_hiveResponse];
				_vQty = _vQty + 1;
			};
		};
		diag_log ("HIVE: got " + str(_bQty) + " Epoch Objects and " + str(_vQty) + " Vehicles");
	};
	
	// # NOW SPAWN OBJECTS #
	_totalvehicles = 0;
	PVDZE_EvacChopperFields = [];
	{
		_idKey = 		_x select 1;
		_type =			_x select 2;
		_ownerID = 		_x select 3;

		_worldspace = 	_x select 4;
		_intentory =	_x select 5;
		_hitPoints =	_x select 6;
		_fuel =			_x select 7;
		_damage = 		_x select 8;
		
		_dir = 0;
		_pos = [0,0,0];
		_wsDone = false;
		if (count _worldspace >= 2) then
		{
			_dir = _worldspace select 0;
			if (count (_worldspace select 1) == 3) then {
				_pos = _worldspace select 1;
				_wsDone = true;
			}
		};			
		
		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;
			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));
		};
		

		if (_damage < 1) then {
			//diag_log format["OBJ: %1 - %2", _idKey,_type];
			
			//Create it
			_object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];
			_object setVariable ["lastUpdate",time];
			_object setVariable ["ObjectID", _idKey, true];

			_lockable = 0;
			if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then {
				_lockable = getNumber(configFile >> "CfgVehicles" >> _type >> "lockable");
			};

			// fix for leading zero issues on safe codes after restart
			if (_lockable == 4) then {
				_codeCount = (count (toArray _ownerID));
				if(_codeCount == 3) then {
					_ownerID = format["0%1", _ownerID];
				};
				if(_codeCount == 2) then {
					_ownerID = format["00%1", _ownerID];
				};
				if(_codeCount == 1) then {
					_ownerID = format["000%1", _ownerID];
				};
			};

			if (_lockable == 3) then {
				_codeCount = (count (toArray _ownerID));
				if(_codeCount == 2) then {
					_ownerID = format["0%1", _ownerID];
				};
				if(_codeCount == 1) then {
					_ownerID = format["00%1", _ownerID];
				};
			};

			_object setVariable ["CharacterID", _ownerID, true];
			
			clearWeaponCargoGlobal  _object;
			clearMagazineCargoGlobal  _object;
			// _object setVehicleAmmo DZE_vehicleAmmo;
			
			_object setdir _dir;
			_object setposATL _pos;
			_object setDamage _damage;
			if ((typeOf _object) == "HeliHRescue") then {
				PVDZE_EvacChopperFields set [count PVDZE_EvacChopperFields, _object];
			};

			if ((typeOf _object) in dayz_allowedObjects) then {
				if (DZE_GodModeBase) then {
					_object addEventHandler ["HandleDamage", {false}];
				} else {
					_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
				};
				// Test disabling simulation server side on buildables only.
				_object enableSimulation false;
				// used for inplace upgrades && lock/unlock of safe
				_object setVariable ["OEMPos", _pos, true];
				
			};

			if (count _intentory > 0) then {
				if (_type in DZE_LockedStorage) then {
					// Fill variables with loot
					_object setVariable ["WeaponCargo", (_intentory select 0),true];
					_object setVariable ["MagazineCargo", (_intentory select 1),true];
					_object setVariable ["BackpackCargo", (_intentory select 2),true];
				} else {

					//Add weapons
					_objWpnTypes = (_intentory select 0) select 0;
					_objWpnQty = (_intentory select 0) select 1;
					_countr = 0;					
					{
						if(_x in (DZE_REPLACE_WEAPONS select 0)) then {
							_x = (DZE_REPLACE_WEAPONS select 1) select ((DZE_REPLACE_WEAPONS select 0) find _x);
						};
						_isOK = 	isClass(configFile >> "CfgWeapons" >> _x);
						if (_isOK) then {
							_object addWeaponCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr = _countr + 1;
					} count _objWpnTypes; 
				
					//Add Magazines
					_objWpnTypes = (_intentory select 1) select 0;
					_objWpnQty = (_intentory select 1) select 1;
					_countr = 0;
					{
						if (_x == "BoltSteel") then { _x = "WoodenArrow" }; // Convert BoltSteel to WoodenArrow
						if (_x == "ItemTent") then { _x = "ItemTentOld" };
						_isOK = 	isClass(configFile >> "CfgMagazines" >> _x);
						if (_isOK) then {
							_object addMagazineCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr = _countr + 1;
					} count _objWpnTypes;

					//Add Backpacks
					_objWpnTypes = (_intentory select 2) select 0;
					_objWpnQty = (_intentory select 2) select 1;
					_countr = 0;
					{
						_isOK = 	isClass(configFile >> "CfgVehicles" >> _x);
						if (_isOK) then {
							_object addBackpackCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr = _countr + 1;
					} count _objWpnTypes;
				};
			};	
			
			if (_object isKindOf "AllVehicles") then {
				{
					_selection = _x select 0;
					_dam = _x select 1;
					if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8};
					[_object,_selection,_dam] call object_setFixServer;
				} count _hitpoints;

				_object setFuel _fuel;

				if (!((typeOf _object) in dayz_allowedObjects)) then {
					
					//_object setvelocity [0,0,1];
					_object call fnc_veh_ResetEH;		
					
					if(_ownerID != "0" && !(_object isKindOf "Bicycle")) then {
						_object setvehiclelock "locked";
					};
					
					_totalvehicles = _totalvehicles + 1;

					// total each vehicle
					serverVehicleCounter set [count serverVehicleCounter,_type];
				};
			};

			//Monitor the object
			PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
		};
	} count (_BuildingQueue + _objectQueue);
	// # END SPAWN OBJECTS #

	// preload server traders menu data into cache
	if !(DZE_ConfigTrader) then {
		{
			// get tids
			_traderData = call compile format["menu_%1;",_x];
			if(!isNil "_traderData") then {
				{
					_traderid = _x select 1;

					_retrader = [];

					_key = format["CHILD:399:%1:",_traderid];
					_data = "HiveEXT" callExtension _key;

					//diag_log "HIVE: Request sent";
			
					//Process result
					_result = call compile format ["%1",_data];
					_status = _result select 0;
			
					if (_status == "ObjectStreamStart") then {
						_val = _result select 1;
						//Stream Objects
						//diag_log ("HIVE: Commence Menu Streaming...");
						call compile format["ServerTcache_%1 = [];",_traderid];
						for "_i" from 1 to _val do {
							_data = "HiveEXT" callExtension _key;
							_result = call compile format ["%1",_data];
							call compile format["ServerTcache_%1 set [count ServerTcache_%1,%2]",_traderid,_result];
							_retrader set [count _retrader,_result];
						};
						//diag_log ("HIVE: Streamed " + str(_val) + " objects");
					};

				} forEach (_traderData select 0);
			};
		} forEach serverTraders;
	};

	if (_hiveLoaded) then {
		//  spawn_vehicles
		_vehLimit = MaxVehicleLimit - _totalvehicles;
		if(_vehLimit > 0) then {
			diag_log ("HIVE: Spawning # of Vehicles: " + str(_vehLimit));
			for "_x" from 1 to _vehLimit do {
				[] spawn spawn_vehicles;
			};
		} else {
			diag_log "HIVE: Vehicle Spawn limit reached!";
		};
	};
	
	//  spawn_roadblocks
	diag_log ("HIVE: Spawning # of Debris: " + str(MaxDynamicDebris));
	for "_x" from 1 to MaxDynamicDebris do {
		[] spawn spawn_roadblocks;
	};
	//  spawn_ammosupply at server start 1% of roadblocks
	diag_log ("HIVE: Spawning # of Ammo Boxes: " + str(MaxAmmoBoxes));
	for "_x" from 1 to MaxAmmoBoxes do {
		[] spawn spawn_ammosupply;
	};
	// call spawning mining veins
	diag_log ("HIVE: Spawning # of Veins: " + str(MaxMineVeins));
	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;
	};

	// [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire]
	if(OldHeliCrash) then {
		_nul = [3, 4, (50 * 60), (15 * 60), 0.75, 'center', HeliCrashArea, true, false] spawn server_spawnCrashSite;
	};
	if (isDedicated) then {
		// Epoch Events
		_id = [] spawn server_spawnEvents;
		// server cleanup
		[] spawn {
			private ["_id"];
			sleep 200; //Sleep Lootcleanup, don't need directly cleanup on startup + fix some performance issues on serverstart
			waitUntil {!isNil "server_spawnCleanAnimals"};
			_id = [] execFSM "\z\addons\dayz_server\system\server_cleanup.fsm";
		};

		// spawn debug box
		_debugMarkerPosition = getMarkerPos "respawn_west";
		_debugMarkerPosition = [(_debugMarkerPosition select 0),(_debugMarkerPosition select 1),1];
		_vehicle_0 = createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"];
		_vehicle_0 setPos _debugMarkerPosition;
		_vehicle_0 setVariable ["ObjectID","1",true];

		// max number of spawn markers
		if(isnil "spawnMarkerCount") then {
			spawnMarkerCount = 10;
		};
		actualSpawnMarkerCount = 0;
		// count valid spawn marker positions
		for "_i" from 0 to spawnMarkerCount do {
			if (!([(getMarkerPos format["spawn%1", _i]), [0,0,0]] call BIS_fnc_areEqual)) then {
				actualSpawnMarkerCount = actualSpawnMarkerCount + 1;
			} else {
				// exit since we did not find any further markers
				_i = spawnMarkerCount + 99;
			};
			
		};
		diag_log format["Total Number of spawn locations %1", actualSpawnMarkerCount];
		
		endLoadingScreen;
	};

	allowConnection = true;	
	sm_done = true;
	publicVariable "sm_done";
};

if (isServer && (isNil "EvacServerPreload")) then {
    publicVariable "PVDZE_EvacChopperFields";
    
    ON_fnc_evacChopperFieldsUpdate = {
        private ["_action","_targetField"];
        _action = _this select 0;
        _targetField = _this select 1;
        
        if (_action == "add") then {
            PVDZE_EvacChopperFields = PVDZE_EvacChopperFields + [_targetField];
        };
        
        if (_action == "rem") then {
            PVDZE_EvacChopperFields = PVDZE_EvacChopperFields - [_targetField];
        };
        
        publicVariable "PVDZE_EvacChopperFields";
    };

    "PVDZE_EvacChopperFieldsUpdate" addPublicVariableEventHandler {(_this select 1) spawn ON_fnc_evacChopperFieldsUpdate};

    EvacServerPreload = true;
};

/*	

	For DayZ Epoch

	Addons Credits: Jetski Yanahui by Kol9yN, Zakat, Gerasimow9, YuraPetrov, zGuba, A.Karagod, IceBreakr, Sahbazz

*/

startLoadingScreen ["","RscDisplayLoadCustom"];

cutText ["","BLACK OUT"];

enableSaving [false, false];



//REALLY IMPORTANT VALUES

dayZ_instance =	11;					//The instance

dayzHiveRequest = [];

initialized = false;

dayz_previousID = 0;



//disable greeting menu 

player setVariable ["BIS_noCoreConversations", true];

//disable radio messages to be heard and shown in the left lower corner of the screen

enableRadio false;

// May prevent "how are you civillian?" messages from NPC

enableSentences false;



// DayZ Epoch config
DZE_R3F_WEIGHT = false;
DZE_StaticConstructionCount = 1;
spawnShoremode = 1; // Default = 1 (on shore)
dayz_poleSafeArea = 30; // Default = 30m, the buildable distance

spawnArea= 1500; // Default = 1500



MaxVehicleLimit = 300; // Default = 50

MaxDynamicDebris = 500; // Default = 100

dayz_MapArea = 14000; // Default = 10000

dayz_maxLocalZombies = 30; // Default = 30 



dayz_paraSpawn = false;



dayz_minpos = -1; 

dayz_maxpos = 16000;



dayz_sellDistance_vehicle = 10;

dayz_sellDistance_boat = 30;

dayz_sellDistance_air = 40;



dayz_maxAnimals = 5; // Default: 8

dayz_tameDogs = true;

DynamicVehicleDamageLow = 0; // Default: 0

DynamicVehicleDamageHigh = 100; // Default: 100



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"],["any","any","any","any",40,"Supplyitems"], ["any","any","any","any",55,"Construction"]];

dayz_fullMoonNights = true;



//Load in compiled functions

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf";				//Initilize the Variables (IMPORTANT: Must happen very early)
call compile preprocessFileLineNumbers "custom\JAEM\variables.sqf";

progressLoadingScreen 0.1;

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf";				//Initilize the publicVariable event handlers

progressLoadingScreen 0.2;

call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";	//Functions used by CLIENT for medical

progressLoadingScreen 0.4;

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";				//Compile regular functions

progressLoadingScreen 0.5;

call compile preprocessFileLineNumbers "server_traders.sqf";				//Compile trader configs
call compile preprocessFileLineNumbers "logistic\init.sqf";

progressLoadingScreen 1.0;



"filmic" setToneMappingParams [0.153, 0.357, 0.231, 0.1573, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";



if (isServer) then {

	call compile preprocessFileLineNumbers "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\dynamic_vehicle.sqf";

	//Compile vehicle configs

	

	// Add trader citys

	_nil = [] execVM "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\mission.sqf";

	_serverMonitor = 	[] execVM "\z\addons\dayz_code\system\server_monitor.sqf";

};



if (!isDedicated) then {

	//Conduct map operations

	0 fadeSound 0;

	waitUntil {!isNil "dayz_loadScreenMsg"};

	dayz_loadScreenMsg = (localize "STR_AUTHENTICATING");

	_nil = [] execVM "custom\JAEM\EvacChopper_init.sqf";
	[] ExecVM "Scripts\loadout.sqf";

	//Run the player monitor

	_id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}];

	_playerMonitor = 	[] execVM "\z\addons\dayz_code\system\player_monitor.sqf";	

	

	//anti Hack



	//Lights

	//[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf";
	execVM "service_point\service_point.sqf";	
	_nil = [] execVM "custom\JAEM\EvacChopper_init.sqf";

	
	
	
};





//Start Dynamic Weather

execVM "\z\addons\dayz_code\external\DynamicWeatherEffects.sqf";





#include "\z\addons\dayz_code\system\BIS_Effects\init.sqf"
[] execVM "custom\base_SafeArea.sqf";
 
Link to comment
Share on other sites

Hallo, 

 

first i have to say that this script is awesome!

 

But i´ve a problem, my HeliH Rescue field dont get saved in my Objekt Data .... so every Serverrestart the Players have to set an knew Evac Chopper.

 

I dont get any Error Massage in my logs....

 

It would be fine when anybody could help me :D  I`m using an Overpoch Server with [Epoch 1.0.5.1 and Overwatch 0.2.5]

 

my Server_monitor.sqf:

private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_intentory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue","_superkey","_shutdown","_res","_hiveLoaded"];

dayz_versionNo = 		getText(configFile >> "CfgMods" >> "DayZ" >> "version");
dayz_hiveVersionNo = 	getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion");

_hiveLoaded = false;

waitUntil{initialized}; //means all the functions are now defined

diag_log "HIVE: Starting";

waituntil{isNil "sm_done"}; // prevent server_monitor be called twice (bug during login of the first player)
	
// Custom Configs
if(isnil "MaxVehicleLimit") then {
	MaxVehicleLimit = 50;
};

if(isnil "MaxDynamicDebris") then {
	MaxDynamicDebris = 100;
};
if(isnil "MaxAmmoBoxes") then {
	MaxAmmoBoxes = 3;
};
if(isnil "MaxMineVeins") then {
	MaxMineVeins = 50;
};
// Custon Configs End

if (isServer && isNil "sm_done") then {

	serverVehicleCounter = [];
	_hiveResponse = [];

	for "_i" from 1 to 5 do {
		diag_log "HIVE: trying to get objects";
		_key = format["CHILD:302:%1:", dayZ_instance];
		_hiveResponse = _key call server_hiveReadWrite;  
		if ((((isnil "_hiveResponse") || {(typeName _hiveResponse != "ARRAY")}) || {((typeName (_hiveResponse select 1)) != "SCALAR")})) then {
			if ((_hiveResponse select 1) == "Instance already initialized") then {
				_superkey = profileNamespace getVariable "SUPERKEY";
				_shutdown = format["CHILD:400:%1:", _superkey];
				_res = _shutdown call server_hiveReadWrite;
				diag_log ("HIVE: attempt to kill.. HiveExt response:"+str(_res));
			} else {
				diag_log ("HIVE: connection problem... HiveExt response:"+str(_hiveResponse));
			
			};
			_hiveResponse = ["",0];
		} 
		else {
			diag_log ("HIVE: found "+str(_hiveResponse select 1)+" objects" );
			_i = 99; // break
		};
	};
	
	_BuildingQueue = [];
	_objectQueue = [];
	
	if ((_hiveResponse select 0) == "ObjectStreamStart") then {
	
		// save superkey
		profileNamespace setVariable ["SUPERKEY",(_hiveResponse select 2)];
		
		_hiveLoaded = true;
	
		diag_log ("HIVE: Commence Object Streaming...");
		_key = format["CHILD:302:%1:", dayZ_instance];
		_objectCount = _hiveResponse select 1;
		_bQty = 0;
		_vQty = 0;
		for "_i" from 1 to _objectCount do {
			_hiveResponse = _key call server_hiveReadWriteLarge;
			//diag_log (format["HIVE dbg %1 %2", typeName _hiveResponse, _hiveResponse]);
			if ((_hiveResponse select 2) isKindOf "ModularItems") then {
				_BuildingQueue set [_bQty,_hiveResponse];
				_bQty = _bQty + 1;
			} else {
				_objectQueue set [_vQty,_hiveResponse];
				_vQty = _vQty + 1;
			};
		};
		diag_log ("HIVE: got " + str(_bQty) + " Epoch Objects and " + str(_vQty) + " Vehicles");
	};
	
	// # NOW SPAWN OBJECTS #
	_totalvehicles = 0;
	PVDZE_EvacChopperFields = [];
	{
		_idKey = 		_x select 1;
		_type =			_x select 2;
		_ownerID = 		_x select 3;

		_worldspace = 	_x select 4;
		_intentory =	_x select 5;
		_hitPoints =	_x select 6;
		_fuel =			_x select 7;
		_damage = 		_x select 8;
		
		_dir = 0;
		_pos = [0,0,0];
		_wsDone = false;
		if (count _worldspace >= 2) then
		{
			_dir = _worldspace select 0;
			if (count (_worldspace select 1) == 3) then {
				_pos = _worldspace select 1;
				_wsDone = true;
			}
		};			
		
		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;
			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));
		};
		
		_vector = [[0,0,0],[0,0,0]];
_vecExists = false;
_ownerPUID = "0";   
if (count _worldspace >= 3) then{
    if(count _worldspace == 3) then{
            if(typename (_worldspace select 2) == "STRING")then{
                _ownerPUID = _worldspace select 2;
            }else{
                 if(typename (_worldspace select 2) == "ARRAY")then{
                    _vector = _worldspace select 2;
                    if(count _vector == 2)then{
                        if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{
                            _vecExists = true;
                        };
                    };
                };                  
            };

    }else{
        //Was not 3 elements, so check if 4 or more
        if(count _worldspace == 4) then{
            if(typename (_worldspace select 3) == "STRING")then{
                _ownerPUID = _worldspace select 3;
            }else{
                if(typename (_worldspace select 2) == "STRING")then{
                    _ownerPUID = _worldspace select 2;
                };
            };


            if(typename (_worldspace select 2) == "ARRAY")then{
                _vector = _worldspace select 2;
                if(count _vector == 2)then{
                    if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{
                        _vecExists = true;
                    };
                };
            }else{
                if(typename (_worldspace select 3) == "ARRAY")then{
                    _vector = _worldspace select 3;
                    if(count _vector == 2)then{
                        if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{
                            _vecExists = true;
                        };
                    };
                };
            };

        }else{
            //More than 3 or 4 elements found
            //Might add a search for the vector, ownerPUID will equal 0
        };
    };
}; 

		if (_damage < 1) then {
			//diag_log format["OBJ: %1 - %2", _idKey,_type];
			
			//Create it
			_object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];
			_object setVariable ["lastUpdate",time];
			_object setVariable ["ObjectID", _idKey, true];

			_lockable = 0;
			if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then {
				_lockable = getNumber(configFile >> "CfgVehicles" >> _type >> "lockable");
			};

			// fix for leading zero issues on safe codes after restart
			if (_lockable == 4) then {
				_codeCount = (count (toArray _ownerID));
				if(_codeCount == 3) then {
					_ownerID = format["0%1", _ownerID];
				};
				if(_codeCount == 2) then {
					_ownerID = format["00%1", _ownerID];
				};
				if(_codeCount == 1) then {
					_ownerID = format["000%1", _ownerID];
				};
			};

			if (_lockable == 3) then {
				_codeCount = (count (toArray _ownerID));
				if(_codeCount == 2) then {
					_ownerID = format["0%1", _ownerID];
				};
				if(_codeCount == 1) then {
					_ownerID = format["00%1", _ownerID];
				};
			};

			_object setVariable ["CharacterID", _ownerID, true];
			
			clearWeaponCargoGlobal  _object;
			clearMagazineCargoGlobal  _object;
			// _object setVehicleAmmo DZE_vehicleAmmo;
			
			_object setdir _dir;
			if(_vecExists)then{
    _object setVectorDirAndUp _vector;
}; 
			_object setposATL _pos;
			_object setDamage _damage;
			
			if ((typeOf _object) == "HeliHRescue") then {
					PVDZE_EvacChopperFields set [count PVDZE_EvacChopperFields, _object];
			};
			if ((typeOf _object) in dayz_allowedObjects) then {
			_object setVariable["memDir",_dir,true];
				if (DZE_GodModeBase) then {
					_object addEventHandler ["HandleDamage", {false}];
				} else {
					_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
				};
				// Test disabling simulation server side on buildables only.
				_object enableSimulation false;
				// used for inplace upgrades && lock/unlock of safe
				_object setVariable ["OEMPos", _pos, true];
				
			};

			if (count _intentory > 0) then {
				if (_type in DZE_LockedStorage) then {
					// Fill variables with loot
					_object setVariable ["WeaponCargo", (_intentory select 0),true];
					_object setVariable ["MagazineCargo", (_intentory select 1),true];
					_object setVariable ["BackpackCargo", (_intentory select 2),true];
				} else {

					//Add weapons
					_objWpnTypes = (_intentory select 0) select 0;
					_objWpnQty = (_intentory select 0) select 1;
					_countr = 0;					
					{
						if(_x in (DZE_REPLACE_WEAPONS select 0)) then {
							_x = (DZE_REPLACE_WEAPONS select 1) select ((DZE_REPLACE_WEAPONS select 0) find _x);
						};
						_isOK = 	isClass(configFile >> "CfgWeapons" >> _x);
						if (_isOK) then {
							_object addWeaponCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr = _countr + 1;
					} count _objWpnTypes; 
				
					//Add Magazines
					_objWpnTypes = (_intentory select 1) select 0;
					_objWpnQty = (_intentory select 1) select 1;
					_countr = 0;
					{
						if (_x == "BoltSteel") then { _x = "WoodenArrow" }; // Convert BoltSteel to WoodenArrow
						if (_x == "ItemTent") then { _x = "ItemTentOld" };
						_isOK = 	isClass(configFile >> "CfgMagazines" >> _x);
						if (_isOK) then {
							_object addMagazineCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr = _countr + 1;
					} count _objWpnTypes;

					//Add Backpacks
					_objWpnTypes = (_intentory select 2) select 0;
					_objWpnQty = (_intentory select 2) select 1;
					_countr = 0;
					{
						_isOK = 	isClass(configFile >> "CfgVehicles" >> _x);
						if (_isOK) then {
							_object addBackpackCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr = _countr + 1;
					} count _objWpnTypes;
				};
			};	
			
			if (_object isKindOf "AllVehicles") then {
				{
					_selection = _x select 0;
					_dam = _x select 1;
					if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8};
					[_object,_selection,_dam] call object_setFixServer;
				} count _hitpoints;

				_object setFuel _fuel;

				if (!((typeOf _object) in dayz_allowedObjects)) then {
					
					//_object setvelocity [0,0,1];
					_object call fnc_veh_ResetEH;		
					
					if(_ownerID != "0" and !(_object isKindOf "Bicycle")) then {
						_object setvehiclelock "locked";
						_object setVariable ["R3F_LOG_disabled",true,true];
					};
					
					_totalvehicles = _totalvehicles + 1;

					// total each vehicle
					serverVehicleCounter set [count serverVehicleCounter,_type];
				};
			};

			//Monitor the object
			PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
		};
	} count (_BuildingQueue + _objectQueue);
	// # END SPAWN OBJECTS #

	// preload server traders menu data into cache
	if !(DZE_ConfigTrader) then {
		{
			// get tids
			_traderData = call compile format["menu_%1;",_x];
			if(!isNil "_traderData") then {
				{
					_traderid = _x select 1;

					_retrader = [];

					_key = format["CHILD:399:%1:",_traderid];
					_data = "HiveEXT" callExtension _key;

					//diag_log "HIVE: Request sent";
			
					//Process result
					_result = call compile format ["%1",_data];
					_status = _result select 0;
			
					if (_status == "ObjectStreamStart") then {
						_val = _result select 1;
						//Stream Objects
						//diag_log ("HIVE: Commence Menu Streaming...");
						call compile format["ServerTcache_%1 = [];",_traderid];
						for "_i" from 1 to _val do {
							_data = "HiveEXT" callExtension _key;
							_result = call compile format ["%1",_data];
							call compile format["ServerTcache_%1 set [count ServerTcache_%1,%2]",_traderid,_result];
							_retrader set [count _retrader,_result];
						};
						//diag_log ("HIVE: Streamed " + str(_val) + " objects");
					};

				} forEach (_traderData select 0);
			};
		} forEach serverTraders;
	};

	if (_hiveLoaded) then {
		//  spawn_vehicles
		_vehLimit = MaxVehicleLimit - _totalvehicles;
		if(_vehLimit > 0) then {
			diag_log ("HIVE: Spawning # of Vehicles: " + str(_vehLimit));
			for "_x" from 1 to _vehLimit do {
				[] spawn spawn_vehicles;
			};
		} else {
			diag_log "HIVE: Vehicle Spawn limit reached!";
		};
	};
	
	//  spawn_roadblocks
	diag_log ("HIVE: Spawning # of Debris: " + str(MaxDynamicDebris));
	for "_x" from 1 to MaxDynamicDebris do {
		[] spawn spawn_roadblocks;
	};
	//  spawn_ammosupply at server start 1% of roadblocks
	diag_log ("HIVE: Spawning # of Ammo Boxes: " + str(MaxAmmoBoxes));
	for "_x" from 1 to MaxAmmoBoxes do {
		[] spawn spawn_ammosupply;
	};
	// call spawning mining veins
	diag_log ("HIVE: Spawning # of Veins: " + str(MaxMineVeins));
	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;
	};

	// [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire]
	if(OldHeliCrash) then {
		_nul = [3, 4, (50 * 60), (15 * 60), 0.75, 'center', HeliCrashArea, true, false] spawn server_spawnCrashSite;
	};
	if (isDedicated) then {
		// Epoch Events
		_id = [] spawn server_spawnEvents;
		// server cleanup
		[] spawn {
			private ["_id"];
			sleep 200; //Sleep Lootcleanup, don't need directly cleanup on startup + fix some performance issues on serverstart
			waitUntil {!isNil "server_spawnCleanAnimals"};
			_id = [] execFSM "\z\addons\dayz_server\system\server_cleanup.fsm";
		};

		// spawn debug box
		_debugMarkerPosition = getMarkerPos "respawn_west";
		_debugMarkerPosition = [(_debugMarkerPosition select 0),(_debugMarkerPosition select 1),1];
		_vehicle_0 = createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"];
		_vehicle_0 setPos _debugMarkerPosition;
		_vehicle_0 setVariable ["ObjectID","1",true];

		// max number of spawn markers
		if(isnil "spawnMarkerCount") then {
			spawnMarkerCount = 10;
		};
		actualSpawnMarkerCount = 0;
		// count valid spawn marker positions
		for "_i" from 0 to spawnMarkerCount do {
			if (!([(getMarkerPos format["spawn%1", _i]), [0,0,0]] call BIS_fnc_areEqual)) then {
				actualSpawnMarkerCount = actualSpawnMarkerCount + 1;
			} else {
				// exit since we did not find any further markers
				_i = spawnMarkerCount + 99;
			};
			
		};
		diag_log format["Total Number of spawn locations %1", actualSpawnMarkerCount];
		
		endLoadingScreen;
	};
	
	ExecVM "\z\addons\dayz_server\WAI\init.sqf";
	allowConnection = true;	
	sm_done = true;
	publicVariable "sm_done";
	
	if (isServer && (isNil "EvacServerPreload")) then {
		publicVariable "PVDZE_EvacChopperFields";
    
		ON_fnc_evacChopperFieldsUpdate = {
			private ["_action","_targetField"];
			_action = _this select 0;
			_targetField = _this select 1;
        
			if (_action == "add") then {
				PVDZE_EvacChopperFields = PVDZE_EvacChopperFields + [_targetField];
			};
			
			if (_action == "rem") then {
				PVDZE_EvacChopperFields = PVDZE_EvacChopperFields - [_targetField];
			};
			
			publicVariable "PVDZE_EvacChopperFields";
		};

		"PVDZE_EvacChopperFieldsUpdate" addPublicVariableEventHandler {(_this select 1) spawn ON_fnc_evacChopperFieldsUpdate};

		EvacServerPreload = true;
	};
};

And here my Init.sqf;

dayz_antihack = 0;

dayz_REsec = 0;

startLoadingScreen ["","RscDisplayLoadCustom"];

cutText ["","BLACK OUT"];

enableSaving [false, false];



//REALLY IMPORTANT VALUES

dayZ_instance =	11;					//The instance

dayzHiveRequest = [];

initialized = false;

dayz_previousID = 0;



//disable greeting menu 

player setVariable ["BIS_noCoreConversations", true];

//disable radio messages to be heard and shown in the left lower corner of the screen

enableRadio true;

// May prevent "how are you civillian?" messages from NPC

enableSentences true;



// DayZ Epoch config

DZE_MissionLootTable = true;

spawnShoremode = 1; // Default = 1 (on shore)

spawnArea= 1500; // Default = 1500



MaxVehicleLimit = 500; // Default = 50

MaxDynamicDebris = 5; // Default = 100

dayz_MapArea = 14000; // Default = 10000

dayz_maxLocalZombies = 30; // Default = 30 

setViewDistance 2000; //Serverinterne Sichtweite.




dayz_paraSpawn = false;



_playerUID = getPlayerUID player;
_admins = ["76561198147564782","76561198150552228","UIDAdmin3"];		//Admin Spawn Gear//ID1MARTINA//ID2Bloody//
_sponsors = ["76561198099060407","UIDAdmin2","UIDAdmin3"];		//Gear für Donater (regel 1 Monat)
_donators = ["76561198053828307","76561198046492825","76561198148960436","76561198149055532","ik"];		//Gear für Premium Spieler //ID1 KUBI//ID2 Claudi//ID3 KIRON //ID4 Sylvio

switch(true)do 
{ 
	case (_playerUID in _admins): // Admins startgear
	{
	DefaultMagazines = ["Skin_Rocket_DZ","20Rnd_762x51_SB_SCAR","20Rnd_762x51_SB_SCAR","20Rnd_762x51_SB_SCAR","20Rnd_762x51_SB_SCAR","20Rnd_762x51_SB_SCAR","ItemSodaCoke","ItemSodaCoke","FoodCanPasta","FoodCanBakedBeans","15Rnd_9x19_M9SD","15Rnd_9x19_M9SD","15Rnd_9x19_M9SD"];
	DefaultWeapons = ["SCAR_H_LNG_Sniper_SD","M9SD","Binocular_Vector","NVGoggles","ItemGPS","ItemKnife","ItemMatchbox_DZE","ItemToolbox","ItemWatch","ItemEtool","ItemCrowbar","ItemCompass"];
	DefaultBackpack = "DZ_LargeGunBag_EP1";
	DefaultBackpackItems = "";
	};	
	case (_playerUID in _sponsors): // Sponsor startgear
	{
		DefaultMagazines = ["ItemBloodbag","FoodCanBakedBeans","FoodCanBakedBeans","ItemSodaMdew","ItemSodaMdew","ItemMorphine","ItemPainkiller","Skin_Bandit2_DZ","64Rnd_9x19_SD_Bizon","64Rnd_9x19_SD_Bizon","30Rnd_9x19_UZI_SD","30Rnd_9x19_UZI_SD","ItemBandage","ItemBandage","6Rnd_45ACP","6Rnd_45ACP"];
		DefaultWeapons = ["bizon_silenced","revolver_gold_EP1","ItemMap","ItemMatchbox_DZE","ItemCrowbar","ItemToolbox","ItemCompass"];
		DefaultBackpack = "DZ_ALICE_Pack_EP1";
		DefaultBackpackItems = "";
	};	
	case (_playerUID in _donators): // Donator startgear
	{
		DefaultMagazines = ["ItemBloodbag","FoodCanBakedBeans","ItemSodaMdew","ItemMorphine","ItemPainkiller","PartVRotor","PartEngine","PartFueltank","30Rnd_9x19_MP5SD","30Rnd_9x19_MP5SD","30Rnd_9x19_UZI_SD","30Rnd_9x19_UZI_SD","ItemBandage","ItemBandage","6Rnd_45ACP","6Rnd_45ACP"];
		DefaultWeapons = ["MP5SD","revolver_gold_EP1","ItemMap","ItemMatchbox_DZE","ItemCrowbar","ItemToolbox","ItemCompass"];
		DefaultBackpack = "DZ_ALICE_Pack_EP1";
		DefaultBackpackItems = "";


	};
	default  // Standard startgear
        {
		DefaultMagazines = ["FoodCanBakedBeans","ItemSodaCoke","2Rnd_shotgun_74Slug","2Rnd_shotgun_74Slug","2Rnd_shotgun_74Slug","ItemPainkiller","ItemMorphine","15Rnd_9x19_M9SD","15Rnd_9x19_M9SD","ItemBandage","ItemBandage"];
		DefaultWeapons = ["mr43","M9SD","ItemCrowbar","ItemToolbox","ItemMap","ItemCompass"];
		DefaultBackpack = "DZ_Patrol_Pack_EP1";
		DefaultBackpackItems = "";

	};
};



DZE_SelfTransfuse = true;

DZE_selfTransfuse_Values = [4000, 50, 300];  



dayz_minpos = -1; 

dayz_maxpos = 16000;



dayz_sellDistance_vehicle = 10;

dayz_sellDistance_boat = 30;

dayz_sellDistance_air = 40;



dayz_maxAnimals = 5; // Default: 8

dayz_tameDogs = true;

DynamicVehicleDamageLow = 30; // Default: 0

DynamicVehicleDamageHigh = 65; // Default: 100



DZE_BuildOnRoads = false; // Default: False

DZE_noRotate = []; //Objects that cannot be rotated. Ex: DZE_noRotate = ["ItemVault"] (NOTE: The objects magazine classname)
DZE_vectorDegrees = [0.01, 0.1, 1, 5, 15, 45, 90];
DZE_curDegree = 45; //Starting rotation angle. //Prefered any value in array above
DZE_dirWithDegrees = true; //When rotating objects with Q&E, use the custom degrees

DZE_BuildingLimit = 650;

DZE_PlotPole = [75,120];

DZE_requireplot = 0;

DZE_vehicleAmmo = 0;						// Default: 0




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;



//Load in compiled functions

call compile preprocessFileLineNumbers "custom\variables.sqf";				//Initilize the Variables (IMPORTANT: Must happen very early)

progressLoadingScreen 0.1;

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf";				//Initilize the publicVariable event handlers

progressLoadingScreen 0.2;

call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";	//Functions used by CLIENT for medical

progressLoadingScreen 0.4;

call compile preprocessFileLineNumbers "compiles.sqf";				//Compile regular functions

call compile preprocessFileLineNumbers "custom\compiles.sqf";  		//Compile custom compiles

call compile preprocessFileLineNumbers "addons\bike\init.sqf";

progressLoadingScreen 0.5;

call compile preprocessFileLineNumbers "server_traders.sqf";				//Compile trader configs

progressLoadingScreen 1.0;



"filmic" setToneMappingParams [0.153, 0.357, 0.231, 0.1573, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";



if (isServer) then {

	call compile preprocessFileLineNumbers "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\dynamic_vehicle.sqf";

	//Compile vehicle configs

	

	// Add trader citys

	_nil = [] execVM "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\mission.sqf";

	_serverMonitor = 	[] execVM "\z\addons\dayz_code\system\server_monitor.sqf";

};

endLoadingScreen;
if (!isDedicated) then {

	//EVACUIERUNGS HELI
	_nil = [] execVM "custom\JAEM\EvacChopper_init.sqf";

	["elevator"] execVM "elevator\elevator_init.sqf";			//Aufzug - BloodyMarry 10.04.2015

	//execVM "TradeFromVehicle Version 2.0\setup\init.sqf";		//Am03.04 wg Verbuggter Trader entfernt

	//Conduct map operations

	0 fadeSound 0;

	waitUntil {!isNil "dayz_loadScreenMsg"};

	dayz_loadScreenMsg = (localize "STR_AUTHENTICATING");

	//Run the player monitor

	_id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}];

	_playerMonitor = 	[] execVM "\z\addons\dayz_code\system\player_monitor.sqf";

	/*_nil = [] execVM "custom\VehicleKeyChanger\VehicleKeyChanger_init.sqf";*/

	//Lights

	//[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf";
};



//Start Dynamic Weather

execVM "\z\addons\dayz_code\external\DynamicWeatherEffects.sqf";







#include "\z\addons\dayz_code\system\BIS_Effects\init.sqf"

//Wilkommensnachricht

[] execVM "custom\scripts\welcome_message.sqf";



// Lift

_logistic = execVM "=BTC=_Logistic\=BTC=_Logistic_Init.sqf";



//anti Hack  



//Service Point

execVM "service_point\service_point.sqf";

//Scrolldown für Spieler
[] execVM "custom\tools\playertools\PlayerToolsMain_init.sqf";



//Safe Zones

[] execVM 'SafeZone.sqf';

 

//map addons 

[] ExecVM "bsb_updates\bsb_chernarus_plus_v2.sqf";

[] ExecVM "bsb_updates\airstrip.sqf";

[] ExecVM "bsb_updates\bengl.sqf";

[] ExecVM "bsb_updates\hanker.sqf";

[] ExecVM "bsb_updates\lucas.sqf";

[] ExecVM "bsb_updates\map.sqf";

[] ExecVM "bsb_updates\millbase.sqf";

[] ExecVM "bsb_updates\milli.sqf";

[] ExecVM "bsb_updates\schorsch.sqf";

[] ExecVM "bsb_updates\sean.sqf";

[] ExecVM "bsb_updates\steaf.sqf";

[] ExecVM "bsb_updates\styler.sqf";

[] ExecVM "bsb_updates\trader.sqf";

[] ExecVM "fixes\marker.sqf";

[] execVM "buildings\balota.sqf";

[] execVM "buildings\burgen.sqf";

[] execVM "buildings\spanier.sqf";

[] execVM "buildings\admin.sqf";

[] execVM "buildings\geheim.sqf";

[] execVM "buildings\CLAN.sqf";		//Turm nahe Airflied

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Advertisement
×
×
  • Create New...