Jump to content

[Release] 3.0 Door Management - No More Codes


Zupa

Recommended Posts

Hey great mod.

 

one question about the fn_selfactions part.

 

You state to find

player removeAction s_player_barkdog;
s_player_barkdog = -1;
player removeAction s_player_warndog;
s_player_warndog = -1;
player removeAction s_player_followdog;
s_player_followdog = -1;

and place 2 lines underneath it, but inside my self actions there is 2 sets of these exact lines. Which one should it go under? most likely not both.

 

 

 

Link to comment
Share on other sites

Hey great mod.

 

one question about the fn_selfactions part.

 

You state to find

player removeAction s_player_barkdog;
s_player_barkdog = -1;
player removeAction s_player_warndog;
s_player_warndog = -1;
player removeAction s_player_followdog;
s_player_followdog = -1;

and place 2 lines underneath it, but inside my self actions there is 2 sets of these exact lines. Which one should it go under? most likely not both.

 

Based on install instructions of P4L I'd say the top one. 

 

EDIT: Scratch that it's the bottom

Link to comment
Share on other sites

okay, trying to debug a few things. I had this working before but i guess i have installed something or screwed it up somehow. ive installed p4L after I installed this :(

 

my doors work everything is fine. The gui opens when i havent opened the door before - then the gui never shows again (dont know if this is supposed to happen)

 

The problem im having is old doors arent able to be managed. might be pre install of this mod issue? I can however manage doors that i just placed and they are still able to be managed after restart. Is there a way to make all the doors be able to manage without having them to be recreated? It started doing it to the new doors too so I dont know.

 

My rpt server side is error less.

 

my client rpt is giving me some weird errors.

============================================
"fn_actons: [PlayerUID: 234234243281501] [_ownerID: 234234243281501] [DZE_Lock_Door: ] [_characterID: 238] [typeOfCursorTarget: CinderWallDoorLocked_DZ]"
"[s_player_downgrade_build:-1 ] [s_player_lastTarget: [<NULL-object>,<NULL-object>,<NULL-object>,<NULL-object>,<NULL-object>] ] [_isRemovable: false ] [_isWreckBuilding: false ]"
"fn_actons: [PlayerUID: 234234243281501] [_ownerID: 234234243281501] [_isModularDoor: false] [typeOfCursorTarget: CinderWallDoorLocked_DZ]"
"[_isDestructable:false ] [_isWreck: false ] [_isRemovable: false ] [_isWreckBuilding: false ]"
Error in expression <
_player_deleteBuild = true;
};
};


if(_isModular && (_playerUID == _ownerID)) >
  Error position: <_isModular && (_playerUID == _ownerID)) >
  Error Undefined variable in expression: _ismodular
File mpmissions\__CUR_MP.Chernarus\Custom\fn_selfActions.sqf, line 231
============================================

Line 231 starts after the commented first row.

This is my fn_selfactions.sqf snippet.

//Allow owners to delete modulars
                if(_isModular && (_playerUID == _ownerID)) then {
                        if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {
                                _player_deleteBuild = true;
                        };
                };
Link to comment
Share on other sites

Hey Zupa! What would you advise i do if I have a completely separate custom compiles for my modded files?

Init.sqf

 

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

my custom compiles

 

/*
KamikazeXeX @XeXGaming.com
FUNCTION COMPILES
*/
if (!isDedicated) then {
fnc_usec_damageActions = compile preprocessFileLineNumbers "custom\dayz_code\compile\fn_damageActions.sqf";
fnc_usec_selfActions = compile preprocessFileLineNumbers "custom\dayz_code\compile\fn_selfActions.sqf"; //Checks which actions for self
player_spawnCheck = compile preprocessFileLineNumbers "custom\dayz_code\compile\player_spawnCheck.sqf";
player_packTent = compile preprocessFileLineNumbers "custom\dayz_code\compile\player_packTent.sqf";
player_packVault = compile preprocessFileLineNumbers "custom\dayz_code\compile\player_packVault.sqf";
player_unlockVault = compile preprocessFileLineNumbers "custom\dayz_code\compile\player_unlockVault.sqf";
player_removeObject = compile preprocessFileLineNumbers "custom\dayz_code\actions\remove.sqf";
player_lockVault = compile preprocessFileLineNumbers "custom\dayz_code\compile\player_lockVault.sqf";
player_craftItem = compile preprocessFileLineNumbers "custom\dayz_code\actions\player_craftItem.sqf"; //Smelting fix
player_switchModel = compile preprocessFileLineNumbers "custom\dayz_code\compile\player_switchModel.sqf";
player_wearClothes = compile preprocessFileLineNumbers "custom\dayz_code\actions\player_wearClothes.sqf";
player_updateGui = compile preprocessFileLineNumbers "custom\dayz_code\compile\player_updateGui.sqf"; //PltPoleFix
player_tentPitch = compile preprocessFileLineNumbers "custom\dayz_code\actions\tent_pitch.sqf";
player_vaultPitch = compile preprocessFileLineNumbers "custom\dayz_code\actions\vault_pitch.sqf";
player_useMeds = compile preprocessFileLineNumbers "custom\dayz_code\actions\player_useMeds.sqf"; // SelfBB
zombie_generate = compile preprocessFileLineNumbers "custom\dayz_code\compile\zombie_generate.sqf";
player_selectSlot = compile preprocessFileLineNumbers "custom\dayz_code\compile\ui_selectSlot.sqf"; //ExtraRc
vehicle_handleDamage = compile preprocessFileLineNumbers "custom\dayz_code\compile\vehicle_handleDamage.sqf";
local_lockUnlock = compile preprocessFileLineNumbers "custom\dayz_code\compile\local_lockUnlock.sqf";
//SBP
player_build = compile preprocessFileLineNumbers "custom\dayz_code\actions\player_build.sqf";
snap_build = compile preprocessFileLineNumbers "custom\dayz_code\actions\snap_build.sqf";
dayz_spaceInterrupt = compile preprocessFileLineNumbers "custom\dayz_code\actions\dayz_spaceInterrupt.sqf";
//P4L
FNC_check_owner = compile preprocessFileLineNumbers "custom\dayz_code\compile\fn_check_owner.sqf";
//GoldCoin
BIS_fnc_numberDigits = compile preprocessFileLineNumbers "custom\dayz_code\compile\numberDigits.sqf";
BIS_fnc_numberText = compile preprocessFileLineNumbers "custom\dayz_code\compile\numberText.sqf";
call compile preprocessFileLineNumbers "gold\player_traderMenu.sqf";
/*PlotManagement*/
PlotGetFriends = compile preprocessFileLineNumbers "plotManagement\plotGetFriends.sqf";
PlotNearbyHumans = compile preprocessFileLineNumbers "plotManagement\plotNearbyHumans.sqf";
PlotAddFriend = compile preprocessFileLineNumbers "plotManagement\plotAddFriend.sqf";
PlotRemoveFriend = compile preprocessFileLineNumbers "plotManagement\plotRemoveFriend.sqf";
MaintainPlot = compile preprocessFileLineNumbers "plotManagement\maintain_area.sqf";
PlotPreview = compile preprocessFileLineNumbers "plotManagement\plotToggleMarkers.sqf";
PlotObjects = compile preprocessFileLineNumbers "plotManagement\plotObjects.sqf"; // NEW
/*PlotManagement End*/
};
SC_fnc_removeCoins=
{
private ["_player","_amount","_wealth","_newwealth", "_result"];
_player = _this select 0;
_amount = _this select 1;
_result = false;
_wealth = _player getVariable["cashMoney",0];  
if(_amount > 0)then{
if (_wealth < _amount) then {
_result = false;
} else {                         
_newwealth = _wealth - _amount;
_player setVariable["cashMoney",_newwealth, true];
_player setVariable ["moneychanged",1,true];    
_result = true;
PVDZE_plr_Save = [_player,(magazines _player),true,true] ;
publicVariableServer "PVDZE_plr_Save";            
};
}else{
_result = true;
};
_result
};
SC_fnc_addCoins = 
{
private ["_player","_amount","_wealth","_newwealth", "_result"];
_player =  _this select  0;
_amount =  _this select  1;
_result = false;
_wealth = _player getVariable["cashMoney",0];
_player setVariable["cashMoney",_wealth + _amount, true];
PVDZE_plr_Save = [_player,(magazines _player),true,true] ;
publicVariableServer "PVDZE_plr_Save";
_player setVariable ["moneychanged",1,true];
_newwealth = _player getVariable["cashMoney",0];
if (_newwealth >= _wealth) then { _result = true; };
_result
};
MDC_fnc_numberToString = {
_number = _this;
_str = "";
if (_number == 0) then {
_str = "0";
} else {
_negative = false;
if (_number < 0) then {
_number = abs _number;
_negative = true;
};
if (_number % 1 == 0) then {
while { _number > 0 } do {
_digit = floor (_number % 10);
_str = (str _digit) + _str;
_number = floor (_number / 10);
};
} else {
_decimals = _number % 1;
_decimals = _decimals * 1000000;
_number = floor _number;
_str = _number call MDC_fnc_numberToString;
_str = _str + "." + str _decimals;
};
if (_negative) then { _str = "-" + _str; };
};
_str;
};
FNC_GetPlayerUID = {
private ["_object","_version","_PID"];
_object = _this select 0;
_version = productVersion select 3;
if (DayZ_UseSteamID) then {
_PID = GetPlayerUID _object;
} else {
if (_version >= 125548) then {
_PID = call (compile "GetPlayerUIDOld _object");
} else {
_PID = GetPlayerUID _object;
diag_log format["Your game version, %1, is less than the required for the old UID system; using Steam ID system instead. Update to 1.63.125548 (or latest steam beta)", _version];
};
};
_PID
};
Link to comment
Share on other sites

Well now I feel silly for not checking the files and only noticing the comment out default option, I was just thinking as I don't use a custom override for them and didn't notice that they were being re-addressed in the OP :P my bad xD

 

I just say comment out, so it reduces load time, because the files get loaded otherwise and overwritten later, so double loading for a function.

Link to comment
Share on other sites

I just say comment out, so it reduces load time, because the files get loaded otherwise and overwritten later, so double loading for a function.

I have a lot of double loaded functions as I use a secondary compiles file for my servers, it was in a attempt to cut down mission size, might have to put the stock compiles back in and make my changes in there instead as everyone is always saying about the slow load times, anyhow thanks for the help :)

Link to comment
Share on other sites

I just say comment out, so it reduces load time, because the files get loaded otherwise and overwritten later, so double loading for a function.

So glad I decided to re-do the compiles now xD I've added 23Kb back to the mission file but relogs after death are 20 seconds again :D rather than 3 minutes xD thats an incredible difference with loading times

Link to comment
Share on other sites

Ohhh god

my friend not save after restart

in DB ["VSS_vintorez","aidlpercmstpsraswrfldnon_idlesteady02",37,["765611780443623500"]]

 

my server_updateObject.sqf

private ["_object","_type","_objectID","_uid","_lastUpdate","_needUpdate","_object_position","_object_inventory","_object_damage","_isNotOk","_parachuteWest","_firstTime","_object_killed","_object_repair","_isbuildable"];

_object = 	_this select 0;

if(isNull(_object)) exitWith {
	diag_log format["Skipping Null Object: %1", _object];
};

_type = _this select 1;
_parachuteWest = ((typeOf _object == "ParachuteWest") || (typeOf _object == "ParachuteC"));
_isbuildable = (typeOf _object) in dayz_allowedObjects;
_isNotOk = false;
_firstTime = false;
_objectID = _object getVariable ["ObjectID","0"];
_uid = _object getVariable ["ObjectUID","0"];

if ((typeName _objectID != "string") || (typeName _uid != "string")) then
{ 
    diag_log(format["Non-string Object: ID %1 UID %2", _objectID, _uid]);
    _objectID = "0";
    _uid = "0";
};

if (!_parachuteWest && !(locked _object)) then {
	if (_objectID == "0" && _uid == "0") then
	{
		_object_position = getPosATL _object;
    	_isNotOk = true;
	};
};

if (_isNotOk && _isbuildable) exitWith {  };

if (_isNotOk) exitWith { deleteVehicle _object; diag_log(format["Deleting object %1 with invalid ID at pos [%2,%3,%4]",typeOf _object,_object_position select 0,_object_position select 1, _object_position select 2]); };

_lastUpdate = _object getVariable ["lastUpdate",time];
_needUpdate = _object in needUpdate_objects;

_object_position = {
	private["_position","_worldspace","_fuel","_key"];
		_position = getPosATL _object;
		_worldspace = [
			round(direction _object),
			_position
		];
		_fuel = 0;
		if (_object isKindOf "AllVehicles") then {
			_fuel = fuel _object;
		};
		_key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel];
		_key call server_hiveWrite;
};

_object_inventory = {
	private["_inventory","_previous","_key"];
	
	_isNormal = true;
if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{
    _isNormal = false;
    _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item
}; 
if (typeOf (_object)in DZE_DoorsLocked) then{
    _isNormal = false;
	_inventory = _object getVariable ["doorfriends", []]; //We're replacing the inventory with UIDs for this item
};

if(_isNormal)then {
	
		_inventory = [
			getWeaponCargo _object,
			getMagazineCargo _object,
			getBackpackCargo _object
		];
		_previous = str(_object getVariable["lastInventory",[]]);
		if (str(_inventory) != _previous) then {
			_object setVariable["lastInventory",_inventory];
			if (_objectID == "0") then {
				_key = format["CHILD:309:%1:%2:",_uid,_inventory];
			} else {
				_key = format["CHILD:303:%1:%2:",_objectID,_inventory];
			};
			_key call server_hiveWrite;
		};
};

_object_damage = {
	private["_hitpoints","_array","_hit","_selection","_key","_damage"];
		_hitpoints = _object call vehicle_getHitpoints;
		_damage = damage _object;
		_array = [];
		{
			_hit = [_object,_x] call object_getHit;
			_selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name");
			if (_hit > 0) then {_array set [count _array,[_selection,_hit]]};
			_object setHit ["_selection", _hit];
		} count _hitpoints;
		_key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage];
		_key call server_hiveWrite;
	_object setVariable ["needUpdate",false,true];
	};

_object_killed = {
	private["_hitpoints","_array","_hit","_selection","_key","_damage"];
	_hitpoints = _object call vehicle_getHitpoints;
	_damage = 1;
	_array = [];
	{
		_hit = [_object,_x] call object_getHit;
		_selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name");
		if (_hit > 0) then {_array set [count _array,[_selection,_hit]]};
		_hit = 1;
		_object setHit ["_selection", _hit];
	} count _hitpoints;
	if (_objectID == "0") then {
		_key = format["CHILD:306:%1:%2:%3:",_uid,_array,_damage];
	} else {
		_key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage];
	};
	_key call server_hiveWrite;
	_object setVariable ["needUpdate",false,true];
	if ((count _this) > 2) then {
		_killer = _this select 2;
		_charID = _object getVariable ['CharacterID','0'];
		_objID = _object getVariable['ObjectID','0'];
		_objUID = _object getVariable['ObjectUID','0'];
		_worldSpace = getPosATL _object;
		if (getPlayerUID _killer != "") then {
			_name = if (alive _killer) then { name _killer; } else { format["OBJECT %1", _killer]; };
			diag_log format["Vehicle killed: Vehicle %1 (TYPE: %2), CharacterID: %3, ObjectID: %4, ObjectUID: %5, Position: %6, Killer: %7 (UID: %8)", _object, (typeOf _object), _charID, _objID, _objUID, _worldSpace, _name, (getPlayerUID _killer)];
		} else {
			diag_log format["Vehicle killed: Vehicle %1 (TYPE: %2), CharacterID: %3, ObjectID: %4, ObjectUID: %5, Position: %6", _object, (typeOf _object), _charID, _objID, _objUID, _worldSpace];
		};
	};
};

_object_repair = {
	private["_hitpoints","_array","_hit","_selection","_key","_damage"];
	_hitpoints = _object call vehicle_getHitpoints;
	_damage = damage _object;
	_array = [];
	{
		_hit = [_object,_x] call object_getHit;
		_selection = getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "HitPoints" >> _x >> "name");
		if (_hit > 0) then {_array set [count _array,[_selection,_hit]]};
		_object setHit ["_selection", _hit];
	} count _hitpoints;
	
	_key = format["CHILD:306:%1:%2:%3:",_objectID,_array,_damage];
	_key call server_hiveWrite;
	_object setVariable ["needUpdate",false,true];
};

_object setVariable ["lastUpdate",time,true];

switch (_type) do {
	case "all": {
		call _object_position;
		call _object_inventory;
		call _object_damage;
		};
	case "position": {
		if (!(_object in needUpdate_objects)) then {
			needUpdate_objects set [count needUpdate_objects, _object];
		};
	};
	case "gear": {
		call _object_inventory;
			};
	case "damage": {
		if ( (time - _lastUpdate) > 5) then {
			call _object_damage;
		} else {
			if (!(_object in needUpdate_objects)) then {
				needUpdate_objects set [count needUpdate_objects, _object];
			};
		};
	};
	case "killed": {
		call _object_killed;
	};
	case "repair": {
		call _object_damage;
	};
};

Server monitor

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};

diag_log "HIVE: Starting";

waituntil{isNil "sm_done"};
	
if(isnil "MaxVehicleLimit") then {
	MaxVehicleLimit = 50;
};

if(isnil "MaxDynamicDebris") then {
	MaxDynamicDebris = 100;
};

if(isnil "MaxAmmoBoxes") then {
	MaxAmmoBoxes = 3;
};

if(isnil "MaxMineVeins") then {
	MaxMineVeins = 50;
};

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;
		};
	};

	_BuildingQueue = [];
	_objectQueue = [];

	if ((_hiveResponse select 0) == "ObjectStreamStart") then {

		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;

			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;
	{
		_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
		{
			if ((typeName (_worldspace select 0)) == "STRING") then {
				_worldspace set [0, call compile (_worldspace select 0)];
				_worldspace set [1, call compile (_worldspace select 1)];
			};
			_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
				};
			};
		};
		   	   
		// diag_log format["Server_monitor: [ObjectID = %1]  [ClassID = %2] [_ownerPUID = %3]", _idKey, _type, _ownerPUID];
		
		if (_damage < 1) then {
			//diag_log format["OBJ: %1 - %2", _idKey,_type];
			
			//Create it
			_object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];
			if ((count _intentory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ") && !(typeOf( _object) in  DZE_DoorsLocked)) then {
            _object setVariable ["doorfriends", _intentory, true];
             };
			_object setVariable ["lastUpdate",time];
			_object setVariable ["ObjectID", _idKey, true];
			_object setVariable ["OwnerPUID", _ownerPUID, 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) 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 # 
	
	if !(DZE_ConfigTrader) then {
		{
			_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;
					_result = call compile format ["%1",_data];
					_status = _result select 0;

					if (_status == "ObjectStreamStart") then {
						_val = _result select 1;
						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];
						};
					};

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

	if (_hiveLoaded) then {
		_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!";
		};
	};
	
	diag_log ("HIVE: Spawning # of Debris: " + str(MaxDynamicDebris));

	for "_x" from 1 to MaxDynamicDebris do {
		[] spawn spawn_roadblocks;
	};

	diag_log ("HIVE: Spawning # of Ammo Boxes: " + str(MaxAmmoBoxes));

	for "_x" from 1 to MaxAmmoBoxes do {
		[] spawn spawn_ammosupply;
	};

	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;
	};

	if(OldHeliCrash) then {
		_nul = [3, 4, (50 * 60), (15 * 60), 0.75, 'center', HeliCrashArea, true, false] spawn server_spawnCrashSite;
	};

	if (isDedicated) then {
		_id = [] spawn server_spawnEvents;
		[] spawn {
			private ["_id"];
			sleep 200;
			waitUntil {!isNil "server_spawnCleanAnimals"};
			_id = [] execFSM "\z\addons\dayz_server\system\server_cleanup.fsm";
		};

		_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];

		if(isnil "spawnMarkerCount") then {
			spawnMarkerCount = 10;
		};
		
		actualSpawnMarkerCount = 0;

		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 {
				_i = spawnMarkerCount + 99;
			};
		};
		diag_log format["Total Number of spawn locations %1", actualSpawnMarkerCount];
		endLoadingScreen;
	};
	allowConnection = true;	
	sm_done = true;
	publicVariable "sm_done";
};

where wrong?

please help me boys))))

Link to comment
Share on other sites

ohhh ok

 

i confused again)

 

this right line? 

 

//Create it

_object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];
if ((count _intentory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ") && !(typeOf( _object) in  DZE_DoorsLocked)) then {
            _object setVariable ["doorfriends", _intentory, true];
             };
_object setVariable ["lastUpdate",time];
_object setVariable ["ObjectID", _idKey, true];
_object setVariable ["OwnerPUID", _ownerPUID, true];

 

PL4LIFE 

DOORMANAGER

PLOTMANAGER

Link to comment
Share on other sites

Thanks for the mention Zupa.

 

A chance to break in would be good as I have been playing around with the idea of bobby trapping a door with a frag mod :D ....

 

Just as an aside, I am just writing the instructions for my add-on for A Plot for Life which gives a plot owner the option to take ownership of all buildables on the plot (excluding safes, lockboxes, tents and locked doors - all configurable).

 

Meant mainly for people to align their old buildables to the A Plot for Life v2+ system but would also allow raiders to place their own pole and take ownership.

 

If you are using the inventory (wep / mag / backpack) fields then is should work fine.  

Ohh Nice a frag mod for doors would be awesome... but set for like 10 fails = explosion... the only problem been would that damage the door? I know its would only slightly but if its badly damaged already you just made it easier :D unless there is a way to stop frag damage on doors? personally I love that Idea... like something you have to craft and upgrade the door like you do with a lock... Same for the safe would be nice :) 

Link to comment
Share on other sites

OMFG! I thought this was working I was reading the posts looking if I could help anyone then seen the posts about door manager not working and was like Crap! I never even tested that part... And guess what It dont work... :( I thought I had it! any help on the door management saying Im not permitted to do that or something along them lines?

Link to comment
Share on other sites

Bump

 

show your plotManagement.hpp

 

check 

class RscShortcutButton_7004: RscShortcutButton
{
idc = 7004;
text = "Add";
x = 0.33 * safezoneW + safezoneX;
y = 0.70 * safezoneH + safezoneY;
w = 0.08 * safezoneW;
h = 0.06 * safezoneH;
onButtonClick = "[(lbCurSel 7001)] call PlotAddFriend;";
};
Link to comment
Share on other sites

What details do you need.. I'm now to all this stuff all I know Is it says "you do not have the rights to manage" even after replacing my plot pole and a new door, I use Plot4Life, Plot Manager and Door management. If you need to see my files I can Dropbox them but been new to all this I would need directing to what files you need to see.

Link to comment
Share on other sites

What details do you need.. I'm now to all this stuff all I know Is it says "you do not have the rights to manage" even after replacing my plot pole and a new door, I use Plot4Life, Plot Manager and Door management. If you need to see my files I can Dropbox them but been new to all this I would need directing to what files you need to see.

 

1)

 

Check if your server_mpnitos set 

 

ownerPUID

 

Correctly. Capital matters. If it says OwnerPUID then duplicate the line but without a capital :).

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...