Jump to content
  • 0

HELP Vehicles reset to original location on player death and restart!


ralibro

Question

I currently run an Overpoch Server and everytime a player dies the vehicle disappears and goes back to its original location. I cant figure out what the issue is. Here is my RPT.

 

I get this issue repeatedly in RPT

 

Error Position: <};

 

>

Error Missing {

File z\addons\dayz_server\system\server_monitor.sqf, line 458

Error in expression <_done = true;

publicVariable "sm_done";

};

 

Error position: <_ret;>

Error Undefined Variable in expression: _ret

File z\addons\dayz_code\compile\bis_fnc\fn_selectRandom.sqf, line 24

Error in expression < call BIS_fnc_selectRandom;

 

I just don't know why any of this would affect vehicles resetting their position upon player death.

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Im having the EXACT same issue, I didnt think it could be caused by those errors though , but I DO have the exact same errors in my RPT.

PLEASE let me know if you figure out this issue hah. 

 

If your issue is the same as mine, all vehicle positions(and vehicle inventories) are saved to the database upon the FIRST restart after vehicle is purchased or spawned in.

Every restart/death of player AFTER that initial restart, the vehicle will teleport instantly back to the first saved position...

 

Can someone let me know what files deal with vehicle position saving??

Link to comment
Share on other sites

  • 0

Here is the server_monitor.sqf, sorry for not posting it before, had no clue which file would be causing the "rubber banding".

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");
	};
	
	_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
		{
			_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));
		};

		// Realign characterID to OwnerPUID - need to force save though.
		
		if (count _worldspace < 3) then
		{
			_worldspace set [count _worldspace, "0"];
		};		

		_ownerPUID = _worldspace select 2;
		
		// diag_log format["Server_monitor: [ObjectID = %1]  [ClassID = %2] [_ownerPUID = %3]", _idKey, _type, _ownerPUID];
		
		
		if (_damage < 1) then {

			_object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];
			if ((typeOf _object) in  DZE_DoorsLocked) then {
			_object setVariable ["doorfriends", _intentory, true];
			};
			_object setVariable ["lastUpdate",time];
			_object setVariable ["ObjectID", _idKey, true];
			if ((typeOf _object) == "Plastic_Pole_EP1_DZ") then {
			_object setVariable ["plotfriends", _intentory, true];
			};
			_object setVariable ["ownerPUID", _ownerPUID, true];
			_lockable = 0;

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

			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 setdir _dir;
			_object setposATL _pos;
			_object setDamage _damage;
//#########################INDESTRUCTIBLE ITEMS#########################
			if ((typeOf _object) in indestructible) then {
				_object addEventHandler ["HandleDamage", {false}];
				_object enableSimulation false;
			} else {
				_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
			};
//######################################################################

//#########################REMOVED FOR INDESTRUCTIBLE ITEMS#########################
//				if (DZE_GodModeBase) then {
//					_object addEventHandler ["HandleDamage", {false}];
//				} else {
//					_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
//				};
//##################################################################################
				_object enableSimulation false;
				_object setVariable ["OEMPos", _pos, true];
			};

			 if ((count _intentory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ") && !(typeOf( _object) in  DZE_DoorsLocked)) then {
				if (_type in DZE_LockedStorage) then {
					_object setVariable ["WeaponCargo", (_intentory select 0),true];
					_object setVariable ["MagazineCargo", (_intentory select 1),true];
					_object setVariable ["BackpackCargo", (_intentory select 2),true];
				} else {
					_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; 

					_objWpnTypes = (_intentory select 1) select 0;
					_objWpnQty = (_intentory select 1) select 1;
					_countr = 0;

					{
						if (_x == "BoltSteel") then { _x = "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;

					_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 {
			private ["_colour","_colour2","_clrinit","_clrinit2"];
				{
					_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;
				if(count _worldspace >= 4) then{	
        if (((typeName(_worldspace select 2)) == "STRING") and ((typeName(_worldspace select 3)) == "STRING")) then {
		_colour = _worldspace select 2;
		_colour2 = _worldspace select 3;
					
		if (_colour != "0") then {
			_object setVariable ["Colour",_colour,true];
			_clrinit = format ["#(argb,8,8,3)color(%1)",_colour];
			_object setVehicleInit "this setObjectTexture [0,"+str _clrinit+"];";
		};
		if (_colour2 != "0") then {			
			_object setVariable ["Colour2",_colour2,true];
			_clrinit2 = format ["#(argb,8,8,3)color(%1)",_colour2];
			_object setVehicleInit "this setObjectTexture [1,"+str _clrinit2+"];";
		};
	};
};

				_object setFuel _fuel;

				if (!((typeOf _object) in dayz_allowedObjects)) then {
					
					_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;

					serverVehicleCounter set [count serverVehicleCounter,_type];
				};
			};
			PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
		};
	} count (_BuildingQueue + _objectQueue);

	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;
	};
	ExecVM "\z\addons\dayz_server\WAI\init.sqf";
	allowConnection = true;	
	sm_done = true;
	publicVariable "sm_done";
};
Link to comment
Share on other sites

  • 0

Im getting same problem as described above but I dont want to replace my server_monitor.sqf to vanilla because i have many custom mods that rely on it and instead of getting any of the RPT errors listed above I just get this one over and over and dont see anything saying server monitor in my RPT.
 
Code Snippet Of Spammed Error : http://pastebin.com/wVyEr9VN

 

 

 

Heres a list of the following mods I have installed that need edits to the server_monitor and the links to the addons:

JAEM Evac Choppers V1.4 :

DZMS 1.1FIN : 

DZAI VERSION "2.0.0 (Final + Epoch 1.0.4.2a temp hotfix)" Found on opendayz.net

Paint Vehicles : 

Zupa Single Currency 3.0 Stoarge :

Custom Build Vectors Legacy Installation Version 3 (Without P4L and fast build) :

Door Management 3.0 Non P4L (Fix For Plot Management Variant) :

Plot Management 2.1 Object Counter Maintain Version (Non Single Currency Variant) : 

 

My server_monitor.sqf http://pastebin.com/c9zhysnq

 

 

Any Help Is Appreciated,

Thanks

 

Happy Holidays

Link to comment
Share on other sites

  • 0

Im getting same problem as described above but I dont want to replace my server_monitor.sqf to vanilla because i have many custom mods that rely on it and instead of getting any of the RPT errors listed above I just get this one over and over and dont see anything saying server monitor in my RPT.

 

Code Snippet Of Spammed Error : http://pastebin.com/wVyEr9VN

 

 

 

Heres a list of the following mods I have installed that need edits to the server_monitor and the links to the addons:

JAEM Evac Choppers V1.4 :

DZMS 1.1FIN : 

DZAI VERSION "2.0.0 (Final + Epoch 1.0.4.2a temp hotfix)" Found on opendayz.net

Paint Vehicles : 

Zupa Single Currency 3.0 Stoarge :

Custom Build Vectors Legacy Installation Version 3 (Without P4L and fast build) :

Door Management 3.0 Non P4L (Fix For Plot Management Variant) :

Plot Management 2.1 Object Counter Maintain Version (Non Single Currency Variant) : 

 

My server_monitor.sqf http://pastebin.com/c9zhysnq

 

 

Any Help Is Appreciated,

Thanks

 

Happy Holidays

BUMP

Please , Any Suggestions Appreciated

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Discord

×
×
  • Create New...