Jump to content

[Release v1.0.5] Precise Base Building - Persistent bases after restart! (Updated 22/09/15)


Mikeeeyy

Recommended Posts

What do you mean by: "This supports existing buildables that are already in the database." , exactly ? 

 

I took this to mean that previously added walls etc (prior to this patch) will now load without gaps? but mine still have gaps in! 

 

No, that wouldn't be possible as all the previous objects you have placed won't have the precise coordinates. It means that any objects you already have in your database will still load and work fine if you install this mod.

Link to comment
Share on other sites

mikeeeyy this is what i get in db when i put metal foors down  i tilled them to 45 deg. then restart server do they look ok

 

[31.28,[17181.6,8250.15,3.05],"76561198030386431",[[0.519,0.855,0],[0.604,-0.367,0.707]]]
[44.771,[17184.6,8244.79,1.787],"76561198030386431",[[0.704,0.71,0],[-0.502,0.498,0.707]]]
 
only error i have is
 
10:07:31 Error in expression <n {
_object setVariable ["plotfriends", _intentory, true];
};
_object setVariabl>
10:07:31   Error position: <_intentory, true];
};
_object setVariabl>
10:07:31   Error Undefined variable in expression: _intentory
10:07:31 File z\addons\dayz_server\system\server_monitor.sqf, line 140
i have look for it but cant find error 
line 140 is       //Was not 3 elements, so check if 4 or more
thanks 
scottnkc
Link to comment
Share on other sites

 

mikeeeyy this is what i get in db when i put metal foors down  i tilled them to 45 deg. then restart server do they look ok

 

[31.28,[17181.6,8250.15,3.05],"76561198030386431",[[0.519,0.855,0],[0.604,-0.367,0.707]]]
[44.771,[17184.6,8244.79,1.787],"76561198030386431",[[0.704,0.71,0],[-0.502,0.498,0.707]]]
 
only error i have is
 
10:07:31 Error in expression <n {
_object setVariable ["plotfriends", _intentory, true];
};
_object setVariabl>
10:07:31   Error position: <_intentory, true];
};
_object setVariabl>
10:07:31   Error Undefined variable in expression: _intentory
10:07:31 File z\addons\dayz_server\system\server_monitor.sqf, line 140
i have look for it but cant find error 
line 140 is       //Was not 3 elements, so check if 4 or more
thanks 
scottnkc

 

 

Surely you need to post on zupa's plot pole thing... not this. Your direction and position aren't wrapped in quotations suggesting you haven't installed this mod.

Link to comment
Share on other sites

KK_fnc_floatToString = {
	private "_arr";
	if (abs (_this - _this % 1) == 0) exitWith { str _this };
	_arr = toArray str abs (_this % 1);
	_arr set [0, 32];
	toString (toArray str (
		abs (_this - _this % 1) * _this / abs _this
	) + _arr - [32])
};

KK_fnc_positionToString = {
	format [
		"[%1,%2,%3]",
		_this select 0 call KK_fnc_floatToString,
		_this select 1 call KK_fnc_floatToString,
		_this select 2 call KK_fnc_floatToString
	]
};

i added these to the bottom of my server_functions.sqf . what the best place to place them at? everything is fine except when i put locks on doors, it says "it is not setup yet"

Link to comment
Share on other sites

To get this to work with painting vehicles, all i did was edit the server_updateObject.sqf part from the OP to this: (which also seems to remove the "its not setup yet" message when upgrading unless its a vector build issue)

_object_position = {
	private["_position","_worldspace","_fuel","_key","_colour","_colour2"];
		_position = getPosATL _object;
		if (_object isKindOf "AllVehicles") then {
			_colour = _object getVariable ["Colour","0"];
			_colour2 = _object getVariable ["Colour2","0"];
			_worldspace = [
				(getDir _object) call KK_fnc_floatToString,
				_position call KK_fnc_positionToString,
				_colour,
				_colour2
			];
			_fuel = fuel _object;
		} else {
			_worldspace = [
				(getDir _object) call KK_fnc_floatToString,
				_position call KK_fnc_positionToString
			];
			_fuel = 0;
		};
		_key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel];
		//diag_log ("HIVE: WRITE: "+ str(_key));
		_key call server_hiveWrite;
	};

Please be aware that you are 100% prepared when adding Precise Base Building script (backups ftw!) as It can not be reverted back so easily.

 

Thanks for a great script and Merry Christmas to you all!

Link to comment
Share on other sites

Fixed It,

 

Step 11 was confusing, just re-read it and it works perfectly

 

I was pretty sure I followed Step 11 to the letter, copying it to the very bottom of server_functions.sqf, and I am also getting the "not setup yet" thingy. What's the dealio? I have gone back over it to make sure.

 

Here's the bottom portion of my file. Is this not done correctly?

server_logUnlockLockEvent = {
	private["_player", "_obj", "_objectID", "_objectUID", "_statusText", "_PUID", "_status"];
	_player = _this select 0;
	_obj = _this select 1;
	_status = _this select 2;
	if (!isNull(_obj)) then {
		_objectID = _obj getVariable["ObjectID", "0"];
		_objectUID = _obj getVariable["ObjectUID", "0"];
		_statusText = "UNLOCKED";
		if (_status) then {
			[_obj, "gear"] call server_updateObject;
			_statusText = "LOCKED";
		};
		_PUID = [_player] call FNC_GetPlayerUID;
		diag_log format["SAFE %5: ID:%1 UID:%2 BY %3(%4)", _objectID, _objectUID, (name _player), _PUID, _statusText];
	};
};

KK_fnc_floatToString = {
	private "_arr";
	if (abs (_this - _this % 1) == 0) exitWith { str _this };
	_arr = toArray str abs (_this % 1);
	_arr set [0, 32];
	toString (toArray str (
		abs (_this - _this % 1) * _this / abs _this
	) + _arr - [32])
};

KK_fnc_positionToString = {
	format [
		"[%1,%2,%3]",
		_this select 0 call KK_fnc_floatToString,
		_this select 1 call KK_fnc_floatToString,
		_this select 2 call KK_fnc_floatToString
	]
};
Link to comment
Share on other sites

Haha Sorry, step 13 not 11.

 

Your server_swapObject.sqf should look like this

 

private ["_activatingplayerUID","_class","_uid","_charID","_object","_worldspace","_key","_allowed","_obj","_objectID","_objectUID","_proceed","_activatingplayer"];
//[dayz_characterID,_tent,[_dir,_location],"TentStorage"]
_charID =		_this select 0;
_object = 		_this select 1;
_worldspace = 	_this select 2;
_class = 		_this select 3;
_obj = 		_this select 4;
_activatingplayer = 		_this select 5;
_activatingplayerUID = 		(getPlayerUID _activatingplayer);

_proceed = false;

_objectID = "0";
_objectUID = "0";

if(!isNull(_obj)) then {
	// Find objectID
	_objectID 	= _obj getVariable ["ObjectID","0"];
	// Find objectUID
	_objectUID	= _obj getVariable ["ObjectUID","0"];
	if !(DZE_GodModeBase) then {
		_obj removeAllMPEventHandlers "MPKilled";
	};
	// Remove old object
	deleteVehicle _obj;
	
	_proceed = true;
};

if(isNull(_object)) then {
	_proceed = false;
};

if(_objectID == "0" && _objectUID == "0") then { 
	_proceed = false;
} else {
	[_objectID,_objectUID,_activatingplayer] call server_deleteObj;
};

_allowed = [_object, "Server"] call check_publishobject;
if (!_allowed || !_proceed) exitWith { 
	if(!isNull(_object)) then {
		deleteVehicle _object; 
	};
	diag_log ("Invalid object swap by playerUID:"+ str(_activatingplayerUID));
};

// Publish variables
_object setVariable ["CharacterID",_charID,true];
		
//_object setVariable ["ObjectUID",_objectUID,true];
_object setVariable ["OEMPos",(_worldspace select 1),true];

//diag_log ("PUBLISH: Attempt " + str(_object));

//get UID
_uid = _worldspace call dayz_objectUID2;

//Send request
_key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _charID, _worldspace, [], [], 0,_uid];
//diag_log ("HIVE: WRITE: "+ str(_key));
_key call server_hiveWrite;

_object setVariable ["lastUpdate",time];
_object setVariable ["ObjectUID", _uid,true];
// _object setVariable ["CharacterID",_charID,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;

PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];

diag_log ("PUBLISH: " + str(_activatingPlayer) + " upgraded " + (_class) + " with ID " + str(_uid));

Link to comment
Share on other sites

I goofed somewhere on the server_swapObject.sqf... mine didnt look like the one in the instructions so I tried to wing it.  Now I can't upgrade a door with a combo lock it says "not setup yet"

 

I get this error in the rpt

18:24:20 Error in expression <e];


_object setVariable ["OEMPos", call compile (_worldspace select 1), true];
_>
18:24:20   Error position: <compile (_worldspace select 1), true];
_>
18:24:20   Error compile: Type Array, expected String
18:24:20 File z\addons\dayz_server\compile\server_swapObject.sqf, line 49

here is my server_swapObject.sqf

private ["_activatingplayerUID","_class","_uid","_charID","_object","_worldspace","_key","_allowed","_obj","_objectID","_objectUID","_proceed","_activatingplayer"];



_charID = _this select 0;
_object = _this select 1;
_worldspace = _this select 2;
_class = _this select 3;
_obj = _this select 4;
_activatingplayer = _this select 5;
_activatingplayerUID = (getPlayerUID _activatingplayer);
_proceed = false;
_objectID = "0";
_objectUID = "0";

if(!isNull(_obj)) then {

    _objectID     = _obj getVariable ["ObjectID","0"];
    _objectUID    = _obj getVariable ["ObjectUID","0"];

    if !(DZE_GodModeBase) then {
        _obj removeAllMPEventHandlers "MPKilled";
    };

    deleteVehicle _obj;

    _proceed = true;

};

if(isNull(_object)) then {
    _proceed = false;
};

if(_objectID == "0" && _objectUID == "0") then {
    _proceed = false;
} else {
    [_objectID,_objectUID,_activatingplayer] call server_deleteObj;
};

_allowed = [_object, "Server"] call check_publishobject;

if (!_allowed || !_proceed) exitWith {
    if(!isNull(_object)) then {
        deleteVehicle _object;
    };
    diag_log ("Invalid object swap by playerUID:"+ str(_activatingplayerUID));
};

_object setVariable ["CharacterID",_charID,true];
_object setVariable ["OEMPos", call compile (_worldspace select 1), true];
_uid = _worldspace call dayz_objectUID2;

//precisionsbasebuilding
_worldspace set [0, (_worldspace select 0) call KK_fnc_floatToString];
_worldspace set [1, (_worldspace select 1) call KK_fnc_positionToString];

_key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _charID, _worldspace, [], [], 0,_uid];
_key call server_hiveWrite;
_object setVariable ["lastUpdate",time];
_object setVariable ["ObjectUID", _uid,true];

if (DZE_GodModeBase) then {
    _object addEventHandler ["HandleDamage", {false}];
} else {
    _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
};

_object enableSimulation false;

PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];

diag_log ("PUBLISH: " + str(_activatingPlayer) + " upgraded " + (_class) + " with ID " + str(_uid));

Thanks for any help!

 

EDIT- Im reading the thread and seeing this has been an issue but Im confused on the fix

Link to comment
Share on other sites

Haha Sorry, step 13 not 11.

 

Your server_swapObject.sqf should look like this

 

private ["_activatingplayerUID","_class","_uid","_charID","_object","_worldspace","_key","_allowed","_obj","_objectID","_objectUID","_proceed","_activatingplayer"];
//[dayz_characterID,_tent,[_dir,_location],"TentStorage"]
_charID =		_this select 0;
_object = 		_this select 1;
_worldspace = 	_this select 2;
_class = 		_this select 3;
_obj = 		_this select 4;
_activatingplayer = 		_this select 5;
_activatingplayerUID = 		(getPlayerUID _activatingplayer);

_proceed = false;

_objectID = "0";
_objectUID = "0";

if(!isNull(_obj)) then {
	// Find objectID
	_objectID 	= _obj getVariable ["ObjectID","0"];
	// Find objectUID
	_objectUID	= _obj getVariable ["ObjectUID","0"];
	if !(DZE_GodModeBase) then {
		_obj removeAllMPEventHandlers "MPKilled";
	};
	// Remove old object
	deleteVehicle _obj;
	
	_proceed = true;
};

if(isNull(_object)) then {
	_proceed = false;
};

if(_objectID == "0" && _objectUID == "0") then { 
	_proceed = false;
} else {
	[_objectID,_objectUID,_activatingplayer] call server_deleteObj;
};

_allowed = [_object, "Server"] call check_publishobject;
if (!_allowed || !_proceed) exitWith { 
	if(!isNull(_object)) then {
		deleteVehicle _object; 
	};
	diag_log ("Invalid object swap by playerUID:"+ str(_activatingplayerUID));
};

// Publish variables
_object setVariable ["CharacterID",_charID,true];
		
//_object setVariable ["ObjectUID",_objectUID,true];
_object setVariable ["OEMPos",(_worldspace select 1),true];

//diag_log ("PUBLISH: Attempt " + str(_object));

//get UID
_uid = _worldspace call dayz_objectUID2;

//Send request
_key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _charID, _worldspace, [], [], 0,_uid];
//diag_log ("HIVE: WRITE: "+ str(_key));
_key call server_hiveWrite;

_object setVariable ["lastUpdate",time];
_object setVariable ["ObjectUID", _uid,true];
// _object setVariable ["CharacterID",_charID,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;

PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];

diag_log ("PUBLISH: " + str(_activatingPlayer) + " upgraded " + (_class) + " with ID " + str(_uid));

I dont understand, where did you place?

 

_worldspace set [0, (_worldspace select 0) call KK_fnc_floatToString];
_worldspace set [1, (_worldspace select 1) call KK_fnc_positionToString];

Im gonna copy/paste yours and see if that works. I wish I would have read this thread before installing this cause I didnt back up the server recently lol lol

Link to comment
Share on other sites

I see the error of my ways now. It has to look like this no matter what, it seems.

_allowed = [_object, "Server"] call check_publishobject;
if (!_allowed || !_proceed) exitWith { 
	if(!isNull(_object)) then {
		deleteVehicle _object; 
	};
	diag_log ("Invalid object swap by playerUID:"+ str(_activatingplayerUID));
};

//get UID
_uid = _worldspace call dayz_objectUID2;

_worldspace set [0, (_worldspace select 0) call KK_fnc_floatToString];
_worldspace set [1, (_worldspace select 1) call 

I incorrectly assumed that since

_uid = _worldspace call dayz_objectUID2;

was already technically below the

_allowed = [_object, "Server"] call check_publishobject;

block, that it would still work.  For anyone still having troubles, just use this as your server_swapObject.sqf and it should work.

private ["_activatingplayerUID","_class","_uid","_charID","_object","_worldspace","_key","_allowed","_obj","_objectID","_objectUID","_proceed","_activatingplayer"];


//[dayz_characterID,_tent,[_dir,_location],"TentStorage"]
_charID =        _this select 0;
_object =         _this select 1;
_worldspace =     _this select 2;
_class =         _this select 3;
_obj =         _this select 4;
_activatingplayer =         _this select 5;
_activatingplayerUID =         (getPlayerUID _activatingplayer);

_proceed = false;

_objectID = "0";
_objectUID = "0";

if(!isNull(_obj)) then {
    // Find objectID
    _objectID     = _obj getVariable ["ObjectID","0"];
    // Find objectUID
    _objectUID    = _obj getVariable ["ObjectUID","0"];
    if !(DZE_GodModeBase) then {
        _obj removeAllMPEventHandlers "MPKilled";
    };
    // Remove old object
    deleteVehicle _obj;
    
    _proceed = true;
};

if(isNull(_object)) then {
    _proceed = false;
};

if(_objectID == "0" && _objectUID == "0") then {
    _proceed = false;
} else {
    [_objectID,_objectUID,_activatingplayer] call server_deleteObj;
};

_allowed = [_object, "Server"] call check_publishobject;
if (!_allowed || !_proceed) exitWith {
    if(!isNull(_object)) then {
        deleteVehicle _object;
    };
    diag_log ("Invalid object swap by playerUID:"+ str(_activatingplayerUID));
};

//get UID
_uid = _worldspace call dayz_objectUID2;

_worldspace set [0, (_worldspace select 0) call KK_fnc_floatToString];
_worldspace set [1, (_worldspace select 1) call KK_fnc_positionToString];

// Publish variables
_object setVariable ["CharacterID",_charID,true];
        
//_object setVariable ["ObjectUID",_objectUID,true];
_object setVariable ["OEMPos", call compile (_worldspace select 1), true];

//diag_log ("PUBLISH: Attempt " + str(_object));



//Send request
_key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _charID, _worldspace, [], [], 0,_uid];
//diag_log ("HIVE: WRITE: "+ str(_key));
_key call server_hiveWrite;

_object setVariable ["lastUpdate",time];
_object setVariable ["ObjectUID", _uid,true];
// _object setVariable ["CharacterID",_charID,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;

PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];

diag_log ("PUBLISH: " + str(_activatingPlayer) + " upgraded " + (_class) + " with ID " + str(_uid));

Link to comment
Share on other sites

I'm not quite sure what tools you're talking about and this addon shouldn't affect the ability to fetch an object's position.

I can also confirm that Private Hive Tools no longer gets vehicle and object locations after installing this addon. So, if you use Private Hive Tools map, just know that the only thing it will show is player location. Not sure what it is about this addon that screws it up, but it certainly is something with this mod that does it.

Link to comment
Share on other sites

Getting this in my RPT

 

Error in expression <eCargoGlobal  _object;


_object setdir _dir;
_object setposATL _pos;
_object se>
Error position: <_dir;
_object setposATL _pos;
_object se>
Error Undefined variable in expression: _dir
File z\addons\dayz_server\system\server_monitor.sqf, line 180

 

Any ideas on how to fix that issue?

Link to comment
Share on other sites

Getting this in my RPT

 

Error in expression <eCargoGlobal  _object;

_object setdir _dir;

_object setposATL _pos;

_object se>

Error position: <_dir;

_object setposATL _pos;

_object se>

Error Undefined variable in expression: _dir

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

 

Any ideas on how to fix that issue?

 

Post your server_monitor.sqf in a spoiler!

Link to comment
Share on other sites

private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_inventory","_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","_ownerPUID"];

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;
    {
        _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));
        };
        
        // 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 {
            //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];
            _object setVariable ["OwnerPUID", _ownerPUID, true];
        if (typeOf (_object) in  DZE_DoorsLocked) then {
            _object setVariable ["doorfriends", _intentory, 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) 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];
                
            };
/*ZSC*/
       if( count (_intentory) > 3)then{
                _object setVariable ["bankMoney", _intentory select 3, true];
        }else{
                _object setVariable ["bankMoney", 0, true];
        };
/*ZSC*/

            if ((count _intentory > 0) && !(typeOf( _object) in  DZE_DoorsLocked)) 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;
    };
    [] ExecVM "\z\addons\dayz_server\WAI\init.sqf";
    [] ExecVM "\z\addons\dayz_server\DZMS\DZMSInit.sqf";
    allowConnection = true;
    
    // [_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;
    };
    [] call compile preprocessFileLineNumbers "\z\addons\dayz_server\DZAI\init\dzai_initserver.sqf";
    allowConnection = true;    
    sm_done = true;
    publicVariable "sm_done";
};

 

Thanks in advance :D

Link to comment
Share on other sites

private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_inventory","_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","_ownerPUID"];

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;

    {

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

        };

        

        // 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 {

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

            _object setVariable ["OwnerPUID", _ownerPUID, true];

        if (typeOf (_object) in  DZE_DoorsLocked) then {

            _object setVariable ["doorfriends", _intentory, 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) 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];

                

            };

/*ZSC*/

       if( count (_intentory) > 3)then{

                _object setVariable ["bankMoney", _intentory select 3, true];

        }else{

                _object setVariable ["bankMoney", 0, true];

        };

/*ZSC*/

            if ((count _intentory > 0) && !(typeOf( _object) in  DZE_DoorsLocked)) 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;

    };

    [] ExecVM "\z\addons\dayz_server\WAI\init.sqf";

    [] ExecVM "\z\addons\dayz_server\DZMS\DZMSInit.sqf";

    allowConnection = true;

    

    // [_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;

    };

    [] call compile preprocessFileLineNumbers "\z\addons\dayz_server\DZAI\init\dzai_initserver.sqf";

    allowConnection = true;    

    sm_done = true;

    publicVariable "sm_done";

};

 

Thanks in advance :D

 

Everything looks fine, can you show us the object you've placed in the database please.

Link to comment
Share on other sites

1772 266 11 CinderWallDoorSmallLocked_DZ 2015-01-17 09:00:35 2015-01-17 09:00:35 324 [any,any,"76561198012458844"] [] [] 0.00000 0.00000

 

There's your problem:

[any,any,"76561198012458844"]

Either you have screwed up the installation of placing the object or upgrading it. Double check you have done everything right.

Link to comment
Share on other sites

Question, there are items placed after these items that have proper numbers there such as ["101.779037","[13161.977539,14029.141602,3.19699].....

 

i did have issues i missed the

execVM "\z\addons\dayz_server\init\ESSfloor.sqf";
KK_fnc_floatToString = {
    private "_arr";
    if (abs (_this - _this % 1) == 0) exitWith { str _this };
    _arr = toArray str abs (_this % 1);
    _arr set [0, 32];
    toString (toArray str (
        abs (_this - _this % 1) * _this / abs _this
    ) + _arr - [32])
};

KK_fnc_positionToString = {
    format [
        "[%1,%2,%3]",
        _this select 0 call KK_fnc_floatToString,
        _this select 1 call KK_fnc_floatToString,
        _this select 2 call KK_fnc_floatToString
    ]
};

 

these items i suspect were placed before i added that the the server functions. Could i just delete the stuff that says any,any from the data base??

Link to comment
Share on other sites

Question, there are items placed after these items that have proper numbers there such as ["101.779037","[13161.977539,14029.141602,3.19699].....

 

i did have issues i missed the

execVM "\z\addons\dayz_server\init\ESSfloor.sqf";

KK_fnc_floatToString = {

    private "_arr";

    if (abs (_this - _this % 1) == 0) exitWith { str _this };

    _arr = toArray str abs (_this % 1);

    _arr set [0, 32];

    toString (toArray str (

        abs (_this - _this % 1) * _this / abs _this

    ) + _arr - [32])

};

KK_fnc_positionToString = {

    format [

        "[%1,%2,%3]",

        _this select 0 call KK_fnc_floatToString,

        _this select 1 call KK_fnc_floatToString,

        _this select 2 call KK_fnc_floatToString

    ]

};

 

these items i suspect were placed before i added that the the server functions. Could i just delete the stuff that says any,any from the data base??

 

Yeah.

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
  • Advertisement
×
×
  • Create New...