Jump to content
RimBlock

[Release] - A Plot for life v2.5. Keep your buildables on death. Take plot ownership

Recommended Posts

I'm very interested in installing P4L but I noticed you have it setup to replace alot of key files that I have several edits within for other scripts. Any chance of getting a tutorial out that shows step by step adding each piece of code your adding/changing within each file for us server owners that have several scripts already implemented? If you have this already, could you point me in the right direction? Would be greatly appreciated!

Share this post


Link to post
Share on other sites

Any chance of getting a tutorial out that shows step by step adding each piece of code your adding/changing within each file for us server owners that have several scripts already implemented?

 

server owners that have several scripts already implemented, should know how to do this already ...

Share this post


Link to post
Share on other sites

Hi guys,

 

I wont be doing a step by step guid with all changes as there are rather a lot and they are all pretty simple.  The pack installs straight on vanilla Epoch with little difficulty and for installing on top of a modded server, by far the best way is to use diffmerge to compare the files and see what is different between them and act accordingly. 

 

Knowing how to use diffmod is also a great, some may say required, skill for running a well modded server.  Diffmerge is free and Raymix put up an great tutorial showing how to best use it including running through a couple of examples, of which A Plot for Life was one.  His guide can be found

 

If anyone wants to put together a step by step guide then I am happy to link to it from the first page.

 

Currently my very limited spare coding time is being spent on getting a new 5GHz test server running (water cooling is fun), getting the second part of Better Refueling coded and working on the new Arma 3 mod with Raymix wich should be rather nice but has a log way to go.

 

 

I'm very interested in installing P4L but I noticed you have it setup to replace alot of key files that I have several edits within for other scripts. Any chance of getting a tutorial out that shows step by step adding each piece of code your adding/changing within each file for us server owners that have several scripts already implemented? If you have this already, could you point me in the right direction? Would be greatly appreciated!

Share this post


Link to post
Share on other sites

Thanks ElDubya, exactly what I was looking for.

As for Halvhjearne, it has nothing to do with knowing how to do scripts but rather seeing the difference in code between two files as alot of my files have already been editted for other scripts. Per Rimblocks tutorial instructions it relayed for replacing existing files that I've already made several changes to for other existing scripts on my server.

Share this post


Link to post
Share on other sites

Thanks ElDubya, exactly what I was looking for.

As for Halvhjearne, it has nothing to do with knowing how to do scripts but rather seeing the difference in code between two files as alot of my files have already been editted for other scripts. Per Rimblocks tutorial instructions it relayed for replacing existing files that I've already made several changes to for other existing scripts on my server.

 

this is perhaps the stupidest reply i have heard in a while now.

 

first of all this obviusly has to do with scripting, comparing and merging scripts (idk what else that scripting could be?).

 

if you already custimized your files a lot, then this should be quite a simple task to do as you should by now already know how your own scripts works.

 

if you cant figure out whats diffrent to your own files cause they have already been modded then most likely you did not do the actual modding of the files, however as it is also mentioned before there are plenty of tools to merge or compare script out there, you can just grab one and try it out.

you can start up by comparing to the default files to see what diffrense there actually are and if you know what you are doing that should not be too hard either.

Share this post


Link to post
Share on other sites

this is perhaps the stupidest reply i have heard in a while now.

 

first of all this obviusly has to do with scripting, comparing and merging scripts (idk what else that scripting could be?).

 

if you already custimized your files a lot, then this should be quite a simple task to do as you should by now already know how your own scripts works.

 

if you cant figure out whats diffrent to your own files cause they have already been modded then most likely you did not do the actual modding of the files, however as it is also mentioned before there are plenty of tools to merge or compare script out there, you can just grab one and try it out.

you can start up by comparing to the default files to see what diffrense there actually are and if you know what you are doing that should not be too hard either.

^^ this guy lol, you have anything else better to do than start drama? -- Yes, I've added my own changes. I was merely looking for some guidance on how I could compare his files with mine as I haven't needed to do so until now as this tutorial was made for fresh epoch servers and not current customized modded servers. I didn't need you smart ass comment of "server owners that have several scripts already implemented, should know how to do this already ..." , instead some support as ElDubya provided. Take care bud..

Share this post


Link to post
Share on other sites

^^ this guy lol, you have anything else better to do than start drama? -- Yes, I've added my own changes. I was merely looking for some guidance on how I could compare his files with mine as I haven't needed to do so until now as this tutorial was made for fresh epoch servers and not current customized modded servers. I didn't need you smart ass comment of "server owners that have several scripts already implemented, should know how to do this already ..." , instead some support as ElDubya provided. Take care bud..

 

lol, butthurt much?

Share this post


Link to post
Share on other sites

 

Plot For Life v2.5 with Snap Pro v1.4.1 & Precise Base Building 1.0.4 (Built for Epoch 1.0.5.1)
 
Current Version
 

 

Hey RimBlock,

I've tried to install this for a friend by integrating it to what he already has, but the money stashed in things only stays until restarts and I have both original and added scroll options on plot poles with the Take Ownership thing perhaps coming up when it shouldn't; can you tell me if it's possible for me to fix it so I can use Zupa's Single Currency and your Plot4Life 2.5 together? or is there no way to do that due to conflicting methods and have I failed badly? XD

 

It's totally possible I fricked up merging things, but I am just wondering if P4L 2.5 and Dwarfer's ZSC 3.0 with Config Traders are supposed to be happy to merge or if it needs additional code tweaking.

 

Love your work man!

 

*edit* I don't get any client or server side errors at all btw >.<

Share this post


Link to post
Share on other sites

Hi,

 

A Plot for life does not save the ownership in the objects inventory field, it uses the Worldspace field in the DB.  I have not used any single currency mods so I am not aware of where the money is stored for that.

 

For loading the object records and getting the ownership info you need to check the server_monitor.sqf file.  A Plot for Life is a fairly simple mod but touches lots of files.  v2.5 should be simpler to integrate as it assumes if you install it then you do not want to turn it off (ie. no 'turned on or off' checks needed) but it does not use the player_build.sqf file at all but uses the modular build system instead.  If another mod changes the saving of objects back to using the player_build.sqf file then you will need to redirect the calls to player_build.sqf over the modular_build.sqf and the sub files it calls.  The subfiles when combined together more or less make up the player_build.sqf but they have just been chopped up for faster code execution (smaller files = faster execution if the code is the same) and for ease of changing one small part and not having to redistribute the entire player_build file.

 

They are the two things I would checkout first.

 

Regards

Share this post


Link to post
Share on other sites

Hi,

 

A Plot for life does not save the ownership in the objects inventory field, it uses the Worldspace field in the DB.  I have not used any single currency mods so I am not aware of where the money is stored for that.

 

For loading the object records and getting the ownership info you need to check the server_monitor.sqf file.  A Plot for Life is a fairly simple mod but touches lots of files.  v2.5 should be simpler to integrate as it assumes if you install it then you do not want to turn it off (ie. no 'turned on or off' checks needed) but it does not use the player_build.sqf file at all but uses the modular build system instead.  If another mod changes the saving of objects back to using the player_build.sqf file then you will need to redirect the calls to player_build.sqf over the modular_build.sqf and the sub files it calls.  The subfiles when combined together more or less make up the player_build.sqf but they have just been chopped up for faster code execution (smaller files = faster execution if the code is the same) and for ease of changing one small part and not having to redistribute the entire player_build file.

 

They are the two things I would checkout first.

 

Regards

 

Thanks ever so much mate! I've revised the server_monitor thoroughly and currency is all happy :)

 

The Plot 4 Life code is also working I Think, but I've never actually seen it in action so I'm not 100% sure, like Show and Hide Radius options both stay available to the user scrolling on the plot and don't toggle based on what you last chose- can you confirm that's normal functionality?

 

Everything looks perfect except one little odd error has crept in where unlocking vehicles says (Null) used to unlock vehicle instead of the key name, and the log says:

Error in expression <xt [format["%1 used to unlock vehicle.",_key], "PLAIN"];
};

s_player_lockUnlock>
  Error position: <_key], "PLAIN"];
};

s_player_lockUnlock>
  Error Undefined variable in expression: _key
File z\addons\dayz_code\actions\unlock_veh.sqf, line 19

the one thread I can find regarding this issue and a fella said he found it was a fail on his part when installing P4L, which I have evidently made myself. I hope he will reply to me, but I would also like to ask you if you could perhaps identify how this could be, given your familiarity with your own code?

 

I really appreciate everything you do for the Epoch community mate- thank you such much :D

 

*edit* OK it's in that thread for the record hehe apparently I needed to change the line that adds the Unlock Vehicle scroll option from ownerID to characterID <3

Share this post


Link to post
Share on other sites

Plot For Life v2.5 with Snap Pro v1.4.1 & Precise Base Building 1.0.4 (Built for Epoch 1.0.5.1)

 
Current Version

Sorry to bother you once again RimBlock. I searched the thread for the info but I can only find a few people asking about it; Take Ownership is causing a BattlEye kick for publicvariable #3 when there are actually any objects to modify.

 

I've since made the change suggested a couple of pages back where I changed the _findNearestObjects = (position _plotpole) nearEntities line, though I don't know if the kick will be fixed by my having done that, or if it's even at all related.

 

Anyway, "PVDZE_fullobj_Publish" is being blocked by the BE publicvariables filter it seems- is adding that as an exception the correct thing to do, or should I be doing something else?

 

Thanks!!

Share this post


Link to post
Share on other sites

Np,

 

Yep add the PVDZE_fullobj_Publish in to the PV variables BE filters.  You can copy the entry that is used for PVDZE_obj_Publish.  The PVDZE_fullobj_Publish function just lets you update the info that would take two DB calls with the standard Epoch function in a single DB call.  Apart from that it is exactly the same :) .

Share this post


Link to post
Share on other sites

Np,

 

Yep add the PVDZE_fullobj_Publish in to the PV variables BE filters.  You can copy the entry that is used for PVDZE_obj_Publish.  The PVDZE_fullobj_Publish function just lets you update the info that would take two DB calls with the standard Epoch function in a single DB call.  Apart from that it is exactly the same :) .

 

Thanks mate! Did that and it all seemed cool, but then I noticed when I tried to upgrade a Half Cinder Wall, it said Unable to upgrade, plot pole nearby (because clearly I haven't hassled you enough XD)

 

I took a stab and went looking for where player_upgrade.sqf is referenced to no avail, but then I noticed this error in the log I believe to be my culprit:

Error in expression < player_build_getConfig;

_classname = _itemConfig select 0; 
_classnametmp = _>
  Error position: <_itemConfig select 0; 
_classnametmp = _>
  Error Undefined variable in expression: _itemconfig
File mpmissions\__CUR_MP.chernarus\Custom\A_Plot_for_Life\Action\modular_build.sqf, line 43

I looked at the player_build_getConfig function to see if I can find any problem but all I noticed was that we had the require plot pole set to 0 in our init which again, may be totally unrelated idk.

Any tips, you lovely person? ^_^

 

*edit* In the tradition of offering solutions to ones own stupid problems, I'd just like to mention that I found I was using the default player_upgrade.sqf in my fn_selfActions.sqf so obviously P4L wouldn't work. I am a moron and u are a champion! Thanks again for all your scripts and efforts <3

Share this post


Link to post
Share on other sites

Looks like it could be an isue with player_build_getConfig or, more likely as it works most of the time, the actual object cfg file record.  The cfg files get all rolled up in to the config.bin.

 

You will need to work out what you are building when it happens and then look for the config entry on the Epoch Git to see what details are provided.  You can then see what items are being searched for in that .sqf file and see if the config has all the entries.

 

Unfortunately, modular_build is not written by myself and i have no control over the cfg file entries.

 

Cfg files can be found on the Epoch Git here.  Most of the Epoch items are in here.

 

Does the error actually break anything ?.

Share this post


Link to post
Share on other sites

Looks like it could be an isue with player_build_getConfig or, more likely as it works most of the time, the actual object cfg file record.  The cfg files get all rolled up in to the config.bin.

 

You will need to work out what you are building when it happens and then look for the config entry on the Epoch Git to see what details are provided.  You can then see what items are being searched for in that .sqf file and see if the config has all the entries.

 

Unfortunately, modular_build is not written by myself and i have no control over the cfg file entries.

 

Cfg files can be found on the Epoch Git here.  Most of the Epoch items are in here.

 

Does the error actually break anything ?.

 

Sorry, I made things a little unclear by editing that post. That error I quoted was there at the time I was trying to work out what turned out to be my using the default dayz_code's player_upgrade.sqf, but I don't believe the error was actually related to that. Nothing seems to be broken by the error at any rate, I Think.

I will check it out again real quick and see if I can determine exactly what I'm doing that causes the error- it's not during building though.

 

Ugh.. Can't actually check it at the moment as the server kicks me with a generic You have been kicked off the game.. sigh..

 

Well I'm sure I didn't do any building in my last game where the error was still present, the only thing I did building-wise was do a Maintenance Preview I believe.

 

*edit2* OK, managed to get my game working again and that error is nowhere to be found when I use the scroll options on the plot pole. No idea where it came from >.<

Share this post


Link to post
Share on other sites

I have run into an issue installing 2.5. I can build anything, however, after i upgrade it, it appears to work, but when I attempt to upgrade a second time the following text pops up: "Not setup yet...". On server reset, the item placed is gone. Any item I place that is not upgraded is still there after reset. However, if I use the Admin "Save Object", then I can continue to upgrade a second time. If I Admin "Save Object" again, it will stay in the database after reset. I suspect it has to do with the update object file, but am not sure. Below are the suspect files:

 

modular_build.sqf

//Check if building already in progress, exit if so.
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;

private ["_itemConfig","_classname","_classnametmp","_require","_text","_ghost","_lockable","_requireplot","_isAllowedUnderGround","_offset","_isPole","_isLandFireDZ","_hasRequired","_hasrequireditem","_reason","_buildObject","_location1","_object","_objectHelper","_position","_controls","_cancel","_dir","_plot_check_result","_nearest_pole"];

/*Basic Defines*/
DZE_Q = false;
DZE_Z = false;

DZE_Q_alt = false;
DZE_Z_alt = false;

DZE_Q_ctrl = false;
DZE_Z_ctrl = false;

DZE_5 = false;
DZE_4 = false;
DZE_6 = false;

DZE_F = false;

DZE_cancelBuilding = false;

call gear_ui_init;
closeDialog 1;

DZE_buildItem = _this; //This is a magazine! It's global to allow access to it from outside functions

//count nearby objects. Returns [_cnt] number
[] call player_build_countNearby;

//Check illegal player states. Returns [_isFine] string
[] call player_build_states;

//check for nearby requirements (campfire, workshop, fueltank).
[] call player_build_needNearby;

//check config files and gather info about item (if using custom buildables, make your own similar function instead).
_itemConfig = [] call player_build_getConfig;

//define items collected from function
_classname = _itemConfig select 0; //string
_classnametmp = _itemConfig select 1; //string
_require = _itemConfig select 2; // array
_text = _itemConfig select 3; // string
_ghost = _itemConfig select 4; //string
_lockable = _itemConfig select 5; //int -- 0/1=No 2=lockbox, 3=combolock, 4=safe
_requireplot = _itemConfig select 6; //int
_isAllowedUnderGround = _itemConfig select 7; //int
_offset = _itemConfig select 8; //array
_isPole = _itemConfig select 9; //bool
_isLandFireDZ = _itemConfig select 10; //bool

//Check for nearby plotpoles. Returns [_IsNearPlot,_nearestPole,_ownerID,_friendlies] [int,Obj,int,array]
_plot_check_result = [_isPole, _requireplot, _isLandFireDZ] call player_build_plotCheck;

if (DZE_ActionInProgress) then { //needed otherwise _hasRequired gets RPT error

_nearest_pole = _plot_check_result select 1;
_distance = _plot_check_result select 4;

//Check for build requirements (missing tools and items). Returns [_hasrequireditem,_reason] [bool,string]
_hasRequired = [_require, _text, true, true] call player_build_buildReq;

//define item collected from function
_hasrequireditem = _hasRequired select 0; //bool

	if (_hasrequireditem) then {
		
		//Create object that is attached to a player (i.e Ghost preview if available)
		_buildObject = [_classname, _ghost, _offset, true, _requireplot, _nearest_pole,_distance] call player_build_create;
		
		//define items collected from function
		_location1 = _buildObject select 0; //array
		_object = _buildObject select 1; //Obj
		_objectHelper = _buildObject select 2; //Obj
		
		_controls = [_object, _isAllowedUnderGround, _location1, _objectHelper] call player_build_controls;

		//define items collected from function
		_cancel = _controls select 0; //bool
		_reason = _controls select 1; //string
		_position = _controls select 2; //array
		_dir = _controls select 3; //int
		
		//Publish item to a database
		[_cancel, _position, _classnametmp,_isAllowedUnderGround, _text, _isPole, _lockable,_dir, _reason,_requireplot] call player_build_publish;
	};
};

 

player_build_publish.sqf

private ["_passArray","_cancel","_position","_reason","_classnametmp","_classname","_tmpbuilt","_dir","_location","_text","_limit","_isOk","_proceed","_counter","_dis","_sfx","_started","_finished","_animState","_isMedic","_num_removed","_lockable","_combinationDisplay","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_playerUID","_OwnerUID","_toohigh"];

//defines
_cancel = _this select 0;
_position = _this select 1;
_classnametmp = _this select 2;
_isAllowedUnderGround = _this select 3;
_text = _this select 4;
_isPole = _this select 5;
_lockable = _this select 6;
_dir = _this select 7;
_reason = _this select 8;
_requireplot = _this select 9;

_playerUID = [player] call FNC_GetPlayerUID;

_passArray = [];

_isOk = true;
_proceed = false;
_counter = 0;
_location = [0,0,0];

//No building on roads unless toggled
if (!DZE_BuildOnRoads) then {
	if (isOnRoad _position) then {
		_cancel = true;
		_reason = "Cannot build on a road.";
	};
};

// No building in trader zones
if(!canbuild) then {
	_cancel = true;
	_reason = "Cannot build in a city.";
};

if(!_cancel) then {

	_classname = _classnametmp;

	// Start Build
	_tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; //create actual object that will be published to database

	_tmpbuilt setdir _dir; //set direction inherited from passed args from control

	// Get position based on object
	_location = _position;

	if((_isAllowedUnderGround == 0) && ((_location select 2) < 0)) then { //check Z axis if not allowed to build underground
		_location set [2,0]; //reset Z axis to zero (above terrain)
	};

	if (surfaceIsWater _location) then {
		_tmpbuilt setPosASL _location;
		_location = ASLtoATL _location; //Database uses ATL
	} else {
		_tmpbuilt setPosATL _location;
	};

	cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"];

	_limit = 3; //times it takes to build by default

	if (DZE_StaticConstructionCount > 0) then { //if count is manually overridden inside init.sqf, use that instead, else use limits configured in config files
		_limit = DZE_StaticConstructionCount;
	}
	else {
		if (isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then {
			_limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount");
		};
	};

	while {_isOk} do { //publish phase

		[10,10] call dayz_HungerThirst;
		player playActionNow "Medic"; //animation
		
		//alert zombies
		_dis=20;
		_sfx = "repair";
		[player,_sfx,0,false,_dis] call dayz_zombieSpeak;
		[player,_dis,true,(getPosATL player)] spawn player_alertZombies;

		r_interrupt = false;
		r_doLoop = true;
		_started = false;
		_finished = false;

		while {r_doLoop} do { //while player is not interrupted, go trough animations
			_animState = animationState player;
			_isMedic = ["medic",_animState] call fnc_inString;
			if (_isMedic) then {
				_started = true;
			};
			if (_started && !_isMedic) then {
				r_doLoop = false;
				_finished = true;
			};
			if (r_interrupt || (player getVariable["combattimeout", 0] >= time)) then {
				r_doLoop = false;
			};
			if (DZE_cancelBuilding) exitWith {
				r_doLoop = false;
			};
			sleep 0.1;
		};
		r_doLoop = false;


		if(!_finished) exitWith { //exit if interrupted
			_isOk = false;
			_proceed = false;
		};

		if(_finished) then { //if animation finished, add to build count
			_counter = _counter + 1;
		};

		cutText [format[(localize "str_epoch_player_139"),_text, _counter,_limit], "PLAIN DOWN"]; //report how many steps are done out of total limit

		if(_counter == _limit) exitWith { //if all steps done proceed with next step, otherwise cancel publish
			_isOk = false;
			_proceed = true;
		};

	};

	if (_proceed) then {

		_num_removed = ([player,DZE_buildItem] call BIS_fnc_invRemove); //remove item's magazine from inventory
		if(_num_removed == 1) then {

			cutText [format[localize "str_build_01",_text], "PLAIN DOWN"];

			if (_isPole) then { //if item was a plotpole, build a visual radius around it
				[] spawn player_plotPreview;
			};

			_tmpbuilt setVariable ["OEMPos",_location,true]; //store original location as a variable

			if(_lockable > 1) then { //if item has code lock on it

				_combinationDisplay = ""; //define new display

				switch (_lockable) do { //generate random combinations depending on item type

					case 2: { // 2 lockbox
						_combination_1 = (floor(random 3)) + 100; // 100=red,101=green,102=blue
						_combination_2 = floor(random 10);
						_combination_3 = floor(random 10);
						_combination = format["%1%2%3",_combination_1,_combination_2,_combination_3];
						dayz_combination = _combination;
						if (_combination_1 == 100) then {
							_combination_1_Display = "Red";
						};
						if (_combination_1 == 101) then {
							_combination_1_Display = "Green";
						};
						if (_combination_1 == 102) then {
							_combination_1_Display = "Blue";
						};
						_combinationDisplay = format["%1%2%3",_combination_1_Display,_combination_2,_combination_3];
					};

					case 3: { // 3 combolock
						_combination_1 = floor(random 10);
						_combination_2 = floor(random 10);
						_combination_3 = floor(random 10);
						_combination = format["%1%2%3",_combination_1,_combination_2,_combination_3];
						dayz_combination = _combination;
						_combinationDisplay = _combination;
					};

					case 4: { // 4 safe
						_combination_1 = floor(random 10);
						_combination_2 = floor(random 10);
						_combination_3 = floor(random 10);
						_combination_4 = floor(random 10);
						_combination = format["%1%2%3%4",_combination_1,_combination_2,_combination_3,_combination_4];
						dayz_combination = _combination;
						_combinationDisplay = _combination;
					};
				};

				_tmpbuilt setVariable ["CharacterID",_combination,true];
				_tmpbuilt setVariable ["ownerPUID",_playerUID,true];
				
				//call publish precompiled function with given args and send public variable to server to save item to database
				PVDZE_obj_Publish = [_combination,_tmpbuilt,[_dir,_location,_playerUID],_classname];
				publicVariableServer "PVDZE_obj_Publish";

				cutText [format[(localize "str_epoch_player_140"),_combinationDisplay,_text], "PLAIN DOWN", 5]; //display new combination


			} else { //if not lockable item
				_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];
				_tmpbuilt setVariable ["ownerPUID",_playerUID,true];

				// fire?
				if(_tmpbuilt isKindOf "Land_Fire_DZ") then { //if campfire, then spawn, but do not publish to database
					_tmpbuilt spawn player_fireMonitor;
				} else {
					
					PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,_playerUID],_classname];
					publicVariableServer "PVDZE_obj_Publish";
				};
			};
		} else { //if magazine was not removed, cancel publish
			deleteVehicle _tmpbuilt;
			cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"];
		};

	} else { //if player was interrupted, cancel publish and stop build animations
		r_interrupt = false;
		if (vehicle player == player) then {
			[objNull, player, rSwitchMove,""] call RE;
			player playActionNow "stop";
		};

		deleteVehicle _tmpbuilt;

		cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"];
	};

} else { //cancel build if passed _cancel arg was true or building on roads/trader city
	cutText [format[(localize "str_epoch_player_47"),_text,_reason], "PLAIN DOWN"];
};

DZE_ActionInProgress = false; //in any case always finish last function with this to "reset" everything.

 

player_upgrade.sqf

/*
	DayZ Base Building Upgrades
	Made for DayZ Epoch please ask permission to use/edit/distrubute email [email protected]
*/
private ["_location","_dir","_classname","_missing","_text","_proceed","_num_removed","_object","_missingQty","_itemIn","_countIn","_qty","_removed","_removed_total","_tobe_removed_total","_objectID","_objectUID","_temp_removed_array","_textMissing","_newclassname","_requirements","_obj","_upgrade","_lockable","_combination_1","_combination_2","_combination_3","_combination","_objectCharacterID","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_distance","_needText","_IsNearPlot","_playerUID","_plotcheck","_buildcheck","_isowner","_isfriendly"];

if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_52") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;

player removeAction s_player_upgrade_build;
s_player_upgrade_build = 1;

_distance = DZE_PlotPole select 0;
_needText = localize "str_epoch_player_246";
_canBuildOnPlot = false;

_plotcheck = [player, false] call FNC_find_plots;
_distance = _plotcheck select 0;
_IsNearPlot = _plotcheck select 1;
_nearestPole = _plotcheck select 2;

if(_IsNearPlot == 0) then {
	_canBuildOnPlot = true;
} else {

	// Since there are plot poles nearby we need to check ownership && friend status
	_buildcheck = [player, _nearestPole] call FNC_check_owner;
	_isowner = _buildcheck select 0;
	_isfriendly = _buildcheck select 1;
	if ((_isowner) || (_isfriendly)) then {
		_canBuildOnPlot = true;		
	};
};

// exit if not allowed due to plot pole
if(!_canBuildOnPlot) exitWith {  DZE_ActionInProgress = false; cutText [format[(localize "str_epoch_player_157"),_needText,_distance] , "PLAIN DOWN"]; };

// get cursortarget from addaction
_obj = _this select 3;

// Find objectID
_objectID 	= _obj getVariable ["ObjectID","0"];

// Find objectUID
_objectUID	= _obj getVariable ["ObjectUID","0"];

if(_objectID == "0" && _objectUID == "0") exitWith {DZE_ActionInProgress = false; s_player_upgrade_build = -1; cutText [(localize "str_epoch_player_50"), "PLAIN DOWN"];};

// Get classname
_classname = typeOf _obj;

// Find display name
_text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName");

// Find next upgrade
_upgrade = getArray (configFile >> "CfgVehicles" >> _classname >> "upgradeBuilding");

if ((count _upgrade) > 0) then {

	_newclassname = _upgrade select 0;

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

	_requirements = _upgrade select 1;
	
	_missingQty = 0;
	_missing = "";
	
	_proceed = true;
	{
		_itemIn = _x select 0;
		_countIn = _x select 1;
		_qty = { (_x == _itemIn) || (configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn) } count magazines player;
		if(_qty < _countIn) exitWith { _missing = _itemIn; _missingQty = (_countIn - _qty); _proceed = false; };
	} forEach _requirements;
	
	if (_proceed) then {
		[1,1] call dayz_HungerThirst;
		player playActionNow "Medic";
		[player,20,true,(getPosATL player)] spawn player_alertZombies;
	
		_temp_removed_array = [];
		_removed_total = 0;
		_tobe_removed_total = 0;
		
		{
			_removed = 0;
			_itemIn = _x select 0;
			_countIn = _x select 1;
			// diag_log format["Recipe Finish: %1 %2", _itemIn,_countIn];
			_tobe_removed_total = _tobe_removed_total + _countIn;

			{					
				if( (_removed < _countIn) && ((_x == _itemIn) || configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn)) then {
					_num_removed = ([player,_x] call BIS_fnc_invRemove);
					_removed = _removed + _num_removed;
					_removed_total = _removed_total + _num_removed;
					if(_num_removed >= 1) then {
						_temp_removed_array set [count _temp_removed_array,_x];
					};
				};
		
			} forEach magazines player;

		} forEach _requirements;

		// all parts removed proceed
		if (_tobe_removed_total == _removed_total) then {
			
			// Get position
			_location	= _obj getVariable["OEMPos",(getposATL _obj)];

			// Get direction
			_dir = getDir _obj;

			// Current charID
			_objectCharacterID 	= _obj getVariable ["CharacterID","0"];
			_ownerID = _obj getVariable["ownerPUID","0"];

			_classname = _newclassname;
			
			// Create new object 
			_object = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"];

			// Set direction
			_object setDir _dir;

			// Set location
			_object setPosATL _location;

			// Set Owner.
			_object setVariable ["ownerPUID",_ownerID,true];

			if (_lockable == 3) then {

				_combination_1 = floor(random 10);
				_combination_2 = floor(random 10);
				_combination_3 = floor(random 10);
				_combination = format["%1%2%3",_combination_1,_combination_2,_combination_3];
				
				_objectCharacterID = _combination;
				
				cutText [format[(localize "str_epoch_player_158"),_combination,_text], "PLAIN DOWN", 5];
			} else {	
				cutText [format[(localize "str_epoch_player_159"),_text], "PLAIN DOWN", 5];
			};

			PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location, _ownerID],_classname,_obj,player];
			publicVariableServer "PVDZE_obj_Swap";

			player reveal _object;
			
			PVDZE_veh_Update = [_object, "all"];
			publicVariableServer "PVDZE_veh_Update";
			
		} else {
		
			{player addMagazine _x;} count _temp_removed_array;
			cutText [format[(localize "str_epoch_player_145"),_removed_total,_tobe_removed_total], "PLAIN DOWN"];
		
		};
	} else {
		_textMissing = getText(configFile >> "CfgMagazines" >> _missing >> "displayName");
		cutText [format[(localize "str_epoch_player_146"),_missingQty, _textMissing], "PLAIN DOWN"];
	};

} else {
	cutText [(localize "str_epoch_player_82"), "PLAIN DOWN"];
};

DZE_ActionInProgress = false;
s_player_upgrade_build = -1; 

 

I also have the following addons installed: Plot Management, Door Management, ZSC 3.0 Single Currency, Elevators, Evac Helicopters

 

2.5 was installed after ZSC, Elevators and Evac Helis forcing me to do code merges of some of the related files. Plot/Door Management was installed after.

ZCS appears to be working as intended

Plot/Door Management appears to be working as intented

Elevators have the same issue as above (when upgraded, it is not updating the database and will disappear on server reset), you can however use the elevator until server reset occurs (this was working before).

Evac Helis do not save the evac marker in the database (this was working before).

 

I suspect whatever is the cause of the building upgrade issue is also the source of the rest. Please advise.

Share this post


Link to post
Share on other sites
Guest

Ultima_weapon - you are missing some Parts from the Door Management.

In my player Upgrade it looks somewhat like this:

 

PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location,_vector,_playerUID],_classname,_obj,player];
			publicVariableServer "PVDZE_obj_Swap";

			player reveal _object;
			
			_friendUID = getPlayerUID player;
			_friendName = name  player;
			_friends = [[_friendUID,_friendName]] ; 


			_object setVariable ["doorfriends", _friends, true];
			PVDZE_veh_Update = [_object,"gear"];
			publicVariableServer "PVDZE_veh_Update";
			PVDZE_veh_Update call server_updateObject;

Share this post


Link to post
Share on other sites
Guest

Yes, sorry. You don't have vector build installed, so just change the Line to this:

PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location,_playerUID],_classname,_obj,player];

Share this post


Link to post
Share on other sites

Now I am getting: "Error Undefined variable in expression: server_updateobject"

 

Edit:

 

This is what my server_updateobject.sqf looks like.

 

/*
[_object,_type] spawn server_updateObject;
*/
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]);
    //force fail
    _objectID = "0";
    _uid = "0";
};

if (_object getVariable "DZAI" == 1) exitWith {}; 

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

// do not update if buildable && not ok
if (_isNotOk && _isbuildable) exitWith {  };

// delete if still not ok
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;

// TODO ----------------------
_object_position = {
	private["_position","_worldspace","_fuel","_key"];
		_position = getPosATL _object;
		_worldspace = [(getDir _object) call KK_fnc_floatToString,	_position call KK_fnc_positionToString];
		_fuel = 0;
		if (_object isKindOf "AllVehicles") then {
			_fuel = fuel _object;
		};
		_key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel];
		//diag_log ("HIVE: WRITE: "+ str(_key));
		_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
		/*ZSC*/
		, _object getVariable["bankMoney",0]
		/*ZSC*/
		];
	};
	
	_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];
		};
		//diag_log ("HIVE: WRITE: "+ str(_key));
		_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];
		//diag_log ("HIVE: WRITE: "+ str(_key));
		_key call server_hiveWrite;
	_object setVariable ["needUpdate",false,true];
	};

_object_killed = {
	private["_hitpoints","_array","_hit","_selection","_key","_damage"];
	_hitpoints = _object call vehicle_getHitpoints;
	//_damage = damage _object;
	_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];
	};
	//diag_log ("HIVE: WRITE: "+ str(_key));
	_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];
	//diag_log ("HIVE: WRITE: "+ str(_key));
	_key call server_hiveWrite;
	_object setVariable ["needUpdate",false,true];
};

_object_vehicleKey = {
	private ["_hit","_selection","_fuel","_gotcha","_retry","_vehicleID","_key","_result","_outcome","_player","_class","_newKey","_newKeyName","_oldVehicleID","_oldVehicleUID","_hitpoints","_damage","_array","_inventory","_vehicleUID","_position","_dir","_worldspace"];
	
	/* Setting up variables */
	_player = _this select 0;
	_class = _this select 1;
	_newKey = _this select 2;
	_newKeyName = _this select 3;
	_oldVehicleID = _this select 4;
	_oldVehicleUID = _this select 5;

	/* Get Damage of the Vehicle */
	_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];
	} forEach _hitpoints;
	
	/* Get the Fuel of the Vehicle */
	_fuel = 0;
	if (_object isKindOf "AllVehicles") then {
		_fuel = fuel _object;
	};
	
	/* Get the Inventory of the Vehicle */
	_inventory = [
		getWeaponCargo _object,
		getMagazineCargo _object,
		getBackpackCargo _object
	];
	
	/* Get the position of the Vehicle */
	_position 	= getPosASL _object;
	if !(surfaceIsWater _position) then {
		_position =  ASLToATL _position;
	};
	_dir 		= getDir _object;
	_worldspace = [_dir,_position];

	/* Delete the current Database entry */
	[_oldVehicleID,_oldVehicleUID,_player] call server_deleteObj;
	sleep 1;
	
	/* Generate a new UID */
	_vehicleUID = _worldspace call dayz_objectUID3;

	/* Write the new Database entry and LOG the action*/
	_key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, _damage , _newKey, _worldspace, _inventory, _array, _fuel,_vehicleUID];
	_key call server_hiveWrite;
	diag_log ("HIVE: WRITE: VEHICLE KEY CHANGER: "+ str(_key)); 
	diag_log format["HIVE: WRITE: VEHICLE KEY CHANGER: Vehicle:%1 NewKey:%2 BY %3(%4)", _object, _newKeyName, (name _player), (getPlayerUID _player)];

	/* Get the ObjectID of the entry in the Database */
	_retry = 0;
	_gotcha = false;
	while {!_gotcha && _retry < 10} do {
		sleep 1;
		
		/* Send the request */
		_key = format["CHILD:388:%1:",_vehicleUID];
		diag_log ("HIVE: READ: VEHICLE KEY CHANGER: "+ str(_key));
		_result = _key call server_hiveReadWrite;
		_outcome = _result select 0;
		
		/* We got a answer */
		if (_outcome == "PASS") then {
			_vehicleID = _result select 1;
			
			/* Compare with old ObjectID to check if it not was deleted yet */
			if (_oldVehicleID == _vehicleID) then {
				/* Not good lets give it another try */
				_gotcha = false;
				_retry = _retry + 1;
			} else {
				/* GOTCHA! */
				diag_log("CUSTOM: VEHICLE KEY CHANGER: Selected " + str(_vehicleID));
				_gotcha = true;
				_retry = 11;

				_object setVariable ["VKC_disabled", 1,true];
				_object setVariable ["VKC_claiming_disabled", 1,true];

				[_object] spawn {
					private ["_veh"];
					_veh = _this select 0;

					sleep 30;
					_veh setVariable ["VKC_disabled", 0,true];
					_veh setVariable ["VKC_claiming_disabled", 0,true];
				};

				PVDZE_vkc_Success = true;
				(owner _player) publicVariableClient "PVDZE_vkc_Success";

				/* Lock the Vehicle */
				_object setVehicleLock "locked";
	
				/* Save the ObjectID and ObjectUID to the vehicles variable and make it public */
				_object setVariable ["ObjectID", _vehicleID, true];
				_object setVariable ["ObjectUID", _vehicleUID, true];
	
				/* Set the lastUpdate time to current */
				_object setVariable ["lastUpdate",time,true];
	
				/* Set the CharacterID to the new Key so we can access it! */
				_object setVariable ["CharacterID", _newKey, true];
	
				/* Some other variables you might need for disallow lift/tow/cargo locked Vehicles and such */
				/* Uncomment if you use this */
	
				/* R3F Arty and LOG block lift/tow/cargo locked vehicles*/
				_object setVariable ["R3F_LOG_disabled",true,true];

				/* =BTC= Logistic block lift locked vehicles*/
				_object setVariable ["BTC_Cannot_Lift",true,true];
			};
		} else {
			/* Something went wrong on the request give it another try */
			diag_log("CUSTOM: VEHICLE KEY CHANGER: trying again to get id for: " + str(_vehicleUID));
			_gotcha = false;
			_retry = _retry + 1;
		};
	};
};
// TODO ----------------------

_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 {
			//diag_log format["DEBUG Position: Added to NeedUpdate=%1",_object];
			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 {
				//diag_log format["DEBUG Damage: Added to NeedUpdate=%1",_object];
				needUpdate_objects set [count needUpdate_objects, _object];
			};
		};
	};
	case "killed": {
		call _object_killed;
	};
	case "repair": {
		call _object_damage;
	};
	case "vehiclekey": {
		_activatingPlayer = _this select 2;
		_vehicleClassname = _this select 3;
		_toKey = _this select 4;
		_toKeyName = _this select 5;
		_vehicle_ID = _this select 6;
		_vehicle_UID = _this select 7;
		[_activatingPlayer, _vehicleClassname, _toKey, _toKeyName, _vehicle_ID, _vehicle_UID] call _object_vehicleKey;;
	};
}; 

Share this post


Link to post
Share on other sites
Guest

That can't be right. How does your dayz_server.pbo\init\server_functions.sqf look like?

PS: Instead of hunting errors, did you try to simply revert and do the tutorial again?

Share this post


Link to post
Share on other sites

my server_functions.sqf

dzmsmajdone = false;
dzmsmindone = false;
_safety = [];
[] execVM "\z\addons\dayz_server\init\AH.sqf";
waituntil {!isnil "bis_fnc_init"};

BIS_MPF_remoteExecutionServer = {
	if ((_this select 1) select 2 == "JIPrequest") then {
		[nil,(_this select 1) select 0,"loc",rJIPEXEC,[any,any,"per","execVM","ca\Modules\Functions\init.sqf"]] call RE;
	};
};

BIS_Effects_Burn =				{};

call compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\KK_Functions.sqf";

server_playerLogin =			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf";
server_playerSetup =			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf";
server_onPlayerDisconnect = 	compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf";
server_updateObject =			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf";
server_playerDied =				compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf";
server_publishObj = 			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf";
server_publishFullObject = 		compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishFullObject.sqf";
server_deleteObj =				compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf";
server_swapObject =				compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_swapObject.sqf"; 
server_publishVeh = 			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle.sqf";
server_publishVeh2 = 			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle2.sqf";
server_publishVeh3 = 			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishVehicle3.sqf";
server_tradeObj = 				compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_tradeObject.sqf";
server_traders = 				compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_traders.sqf";
server_playerSync =				compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf";
server_spawnCrashSite  =    	compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf";
server_spawnEvents =			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf";

/////////////////////////// custom
server_carAN2  =    			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_carAN2.sqf";
server_cardrop  =    			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_cardrop.sqf";

//server_weather =				compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_weather.sqf";
fnc_plyrHit   =					compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf";
server_deaths = 				compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf";
server_maintainArea = 			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_maintainArea.sqf";

/* PVS/PVC - Skaronator */
server_sendToClient =			compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_sendToClient.sqf";

//onPlayerConnected 			{[_uid,_name] call server_onPlayerConnect;};
onPlayerDisconnected 		{[_uid,_name] call server_onPlayerDisconnect;};

server_updateNearbyObjects = {
	private["_pos"];
	_pos = _this select 0;
	{
		[_x, "gear"] call server_updateObject;
	} count nearestObjects [_pos, dayz_updateObjects, 10];
};

server_handleZedSpawn = {
	private["_zed"];
	_zed = _this select 0;
	_zed enableSimulation false;
};

zombie_findOwner = {
	private["_unit"];
	_unit = _this select 0;
	#ifdef DZE_SERVER_DEBUG
	diag_log ("CLEANUP: DELETE UNCONTROLLED ZOMBIE: " + (typeOf _unit) + " OF: " + str(_unit) );
	#endif
	deleteVehicle _unit;
};

vehicle_handleInteract = {
	private["_object"];
	_object = _this select 0;
	needUpdate_objects = needUpdate_objects - [_object];
	[_object, "all"] call server_updateObject;
};

array_reduceSizeReverse = {
	private["_array","_count","_num","_newarray","_startnum","_index"];
	_array = _this select 0;
	_newarray = [];
	_count = _this select 1;
	_num = count _array;
	if (_num > _count) then {
		_startnum = _num - 1;
		_index = _count - 1;
		for "_i" from 0 to _index do {
			_newarray set [(_index-_i),_array select (_startnum - _i)];
		};
		_array = _newarray;
	}; 
	_array
};

array_reduceSize = {
	private ["_array1","_array","_count","_num"];
	_array1 = _this select 0;
	_array = _array1 - ["Hatchet_Swing","Machete_Swing","Fishing_Swing","sledge_swing","crowbar_swing","CSGAS"];
	_count = _this select 1;
	_num = count _array;
	if (_num > _count) then {
		_array resize _count;
	};
	_array
};

object_handleServerKilled = {
	private["_unit","_objectID","_objectUID","_killer"];
	_unit = _this select 0;
	_killer = _this select 1;
	
	_objectID =	 _unit getVariable ["ObjectID","0"];
	_objectUID = _unit getVariable ["ObjectUID","0"];
		
	[_objectID,_objectUID,_killer] call server_deleteObj;
	
	_unit removeAllMPEventHandlers "MPKilled";
	_unit removeAllEventHandlers "Killed";
	_unit removeAllEventHandlers "HandleDamage";
	_unit removeAllEventHandlers "GetIn";
	_unit removeAllEventHandlers "GetOut";
};

check_publishobject = {
	private["_allowed","_object","_playername"];

	_object = _this select 0;
	_playername = _this select 1;
	_allowed = false;

	if ((typeOf _object) in dayz_allowedObjects) then {
			//diag_log format ["DEBUG: Object: %1 published by %2 is Safe",_object, _playername];
			_allowed = true;
	};
    _allowed
};

//event Handlers
eh_localCleanup = {
	private ["_object"];
	_object = _this select 0;
	_object addEventHandler ["local", {
		if(_this select 1) then {
			private["_type","_unit"];
			_unit = _this select 0;
			_type = typeOf _unit;
			 _myGroupUnit = group _unit;
 			_unit removeAllMPEventHandlers "mpkilled";
 			_unit removeAllMPEventHandlers "mphit";
 			_unit removeAllMPEventHandlers "mprespawn";
 			_unit removeAllEventHandlers "FiredNear";
			_unit removeAllEventHandlers "HandleDamage";
			_unit removeAllEventHandlers "Killed";
			_unit removeAllEventHandlers "Fired";
			_unit removeAllEventHandlers "GetOut";
			_unit removeAllEventHandlers "GetIn";
			_unit removeAllEventHandlers "Local";
			clearVehicleInit _unit;
			deleteVehicle _unit;
			if ((count (units _myGroupUnit) == 0) && (_myGroupUnit != grpNull)) then {
				deleteGroup _myGroupUnit;
			};
			//_unit = nil;
			// diag_log ("CLEANUP: DELETED A " + str(_type) );
		};
	}];
};

server_hiveWrite = {
	private["_data"];
	_data = "HiveExt" callExtension _this;
};

server_hiveReadWrite = {
	private["_key","_resultArray","_data"];
	_key = _this;
	_data = "HiveExt" callExtension _key;
	_resultArray = call compile format ["%1",_data];
	_resultArray
};

server_hiveReadWriteLarge = {
	private["_key","_resultArray","_data"];
	_key = _this;
	_data = "HiveExt" callExtension _key;
	_resultArray = call compile _data;
	_resultArray
};

server_checkIfTowed = {
	private ["_vehicle","_player","_attached"];
	if (DZE_HeliLift) then {
		_vehicle = 	_this select 0;
		_player = 	_this select 2;
		_attached = _vehicle getVariable["attached",false];
		if (typeName _attached == "OBJECT") then {
			_player action ["eject", _vehicle];
			detach _vehicle;
			_vehicle setVariable["attached",false,true];
			_attached setVariable["hasAttached",false,true];
		};
	};
};

server_characterSync = {
	private ["_characterID","_playerPos","_playerGear","_playerBackp","_medical","_currentState","_currentModel","_key"];
	_characterID = 	_this select 0;	
	_playerPos =	_this select 1;
	_playerGear =	_this select 2;
	_playerBackp =	_this select 3;
	_medical = 		_this select 4;
	_currentState =	_this select 5;
	_currentModel = _this select 6;
	
	_key = format["CHILD:201:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:",_characterID,_playerPos,_playerGear,_playerBackp,_medical,false,false,0,0,0,0,_currentState,0,0,_currentModel,0];
	_key call server_hiveWrite;
};

if(isnil "dayz_MapArea") then {
	dayz_MapArea = 10000;
};
if(isnil "DynamicVehicleArea") then {
	DynamicVehicleArea = dayz_MapArea / 2;
};

// Get all buildings && roads only once TODO: set variables to nil after done if nessicary 
MarkerPosition = getMarkerPos "center";
RoadList = MarkerPosition nearRoads DynamicVehicleArea;

// Very taxing !!! but only on first startup
BuildingList = [];
{
	if (DZE_MissionLootTable) then {
		if (isClass (missionConfigFile >> "CfgBuildingLoot" >> (typeOf _x))) then
		{
				BuildingList set [count BuildingList,_x];
		};
	} else {
		if (isClass (configFile >> "CfgBuildingLoot" >> (typeOf _x))) then
		{
			BuildingList set [count BuildingList,_x];
		};
	};
	
	
} count (MarkerPosition nearObjects ["building",DynamicVehicleArea]);

spawn_vehicles = {
	private ["_random","_lastIndex","_weights","_index","_vehicle","_velimit","_qty","_isAir","_isShip","_position","_dir","_istoomany","_veh","_objPosition","_marker","_iClass","_itemTypes","_cntWeights","_itemType","_num","_allCfgLoots"];
	
	if (!isDedicated) exitWith { }; //Be sure the run this

	while {count AllowedVehiclesList > 0} do {
		// BIS_fnc_selectRandom replaced because the index may be needed to remove the element
		_index = floor random count AllowedVehiclesList;
		_random = AllowedVehiclesList select _index;

		_vehicle = _random select 0;
		_velimit = _random select 1;

		_qty = {_x == _vehicle} count serverVehicleCounter;

		// If under limit allow to proceed
		if (_qty <= _velimit) exitWith {};

		// vehicle limit reached, remove vehicle from list
		// since elements cannot be removed from an array, overwrite it with the last element && cut the last element of (as long as order is not important)
		_lastIndex = (count AllowedVehiclesList) - 1;
		if (_lastIndex != _index) then {
			AllowedVehiclesList set [_index, AllowedVehiclesList select _lastIndex];
		};
		AllowedVehiclesList resize _lastIndex;
	};

	if (count AllowedVehiclesList == 0) then {
		diag_log("DEBUG: unable to find suitable vehicle to spawn");
	} else {

		// add vehicle to counter for next pass
		serverVehicleCounter set [count serverVehicleCounter,_vehicle];
	
		// Find Vehicle Type to better control spawns
		_isAir = _vehicle isKindOf "Air";
		_isShip = _vehicle isKindOf "Ship";
	
		if(_isShip || _isAir) then {
			if(_isShip) then {
				// Spawn anywhere on coast on water
				waitUntil{!isNil "BIS_fnc_findSafePos"};
				_position = [MarkerPosition,0,DynamicVehicleArea,10,1,2000,1] call BIS_fnc_findSafePos;
				//diag_log("DEBUG: spawning boat near coast " + str(_position));
			} else {
				// Spawn air anywhere that is flat
				waitUntil{!isNil "BIS_fnc_findSafePos"};
				_position = [MarkerPosition,0,DynamicVehicleArea,10,0,2000,0] call BIS_fnc_findSafePos;
				//diag_log("DEBUG: spawning air anywhere flat " + str(_position));
			};
		
		
		} else {
			// Spawn around buildings && 50% near roads
			if((random 1) > 0.5) then {
			
				waitUntil{!isNil "BIS_fnc_selectRandom"};
				_position = RoadList call BIS_fnc_selectRandom;
			
				_position = _position modelToWorld [0,0,0];
			
				waitUntil{!isNil "BIS_fnc_findSafePos"};
				_position = [_position,0,10,10,0,2000,0] call BIS_fnc_findSafePos;
			
				//diag_log("DEBUG: spawning near road " + str(_position));
			
			} else {
			
				waitUntil{!isNil "BIS_fnc_selectRandom"};
				_position = BuildingList call BIS_fnc_selectRandom;
			
				_position = _position modelToWorld [0,0,0];
			
				waitUntil{!isNil "BIS_fnc_findSafePos"};
				_position = [_position,0,40,5,0,2000,0] call BIS_fnc_findSafePos;
			
				//diag_log("DEBUG: spawning around buildings " + str(_position));
		
			};
		};
		// only proceed if two params otherwise BIS_fnc_findSafePos failed && may spawn in air
		if ((count _position) == 2) then { 
	
			_dir = round(random 180);
		
			_istoomany = _position nearObjects ["AllVehicles",50];
			if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many vehicles at " + str(_position)); };
		
			//place vehicle 
			_veh = createVehicle [_vehicle, _position, [], 0, "CAN_COLLIDE"];
			_veh setdir _dir;
			_veh setpos _position;		
			
			if(DZEdebug) then {
				_marker = createMarker [str(_position) , _position];
				_marker setMarkerShape "ICON";
				_marker setMarkerType "DOT";
				_marker setMarkerText _vehicle;
			};	
		
			// Get position with ground
			_objPosition = getPosATL _veh;
		
			clearWeaponCargoGlobal  _veh;
			clearMagazineCargoGlobal  _veh;
			// _veh setVehicleAmmo DZE_vehicleAmmo;

			// Add 0-3 loots to vehicle using random cfgloots 
			_num = floor(random 4);
			_allCfgLoots = ["trash","civilian","food","generic","medical","military","policeman","hunter","worker","clothes","militaryclothes","specialclothes","trash"];
			
			for "_x" from 1 to _num do {
				_iClass = _allCfgLoots call BIS_fnc_selectRandom;

				_itemTypes = [];
				if (DZE_MissionLootTable) then{
					{
						_itemTypes set[count _itemTypes, _x select 0]
					} count getArray(missionConfigFile >> "cfgLoot" >> _iClass);
				}
				else {
					{
						_itemTypes set[count _itemTypes, _x select 0]
					} count getArray(configFile >> "cfgLoot" >> _iClass);
				};

				_index = dayz_CLBase find _iClass;
				_weights = dayz_CLChances select _index;
				_cntWeights = count _weights;
				
				_index = floor(random _cntWeights);
				_index = _weights select _index;
				_itemType = _itemTypes select _index;
				_veh addMagazineCargoGlobal [_itemType,1];
				//diag_log("DEBUG: spawed loot inside vehicle " + str(_itemType));
			};

			[_veh,[_dir,_objPosition],_vehicle,true,"0"] call server_publishVeh;
		};
	};
};

spawn_ammosupply = {
	private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"];
	if (isDedicated) then {
		_WreckList = ["Supply_Crate_DZE"];
		waitUntil{!isNil "BIS_fnc_selectRandom"};
		_position = RoadList call BIS_fnc_selectRandom;
		_position = _position modelToWorld [0,0,0];
		waitUntil{!isNil "BIS_fnc_findSafePos"};
		_position = [_position,5,20,5,0,2000,0] call BIS_fnc_findSafePos;
		if ((count _position) == 2) then {

			_istoomany = _position nearObjects ["All",5];
			
			if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many at " + str(_position)); };
			
			_spawnveh = _WreckList call BIS_fnc_selectRandom;

			if(DZEdebug) then {
				_marker = createMarker [str(_position) , _position];
				_marker setMarkerShape "ICON";
				_marker setMarkerType "DOT";
				_marker setMarkerText str(_spawnveh);
			};
			
			_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
			_veh enableSimulation false;
			_veh setDir round(random 360);
			_veh setpos _position;
			_veh setVariable ["ObjectID","1",true];
		};
	};
};

DZE_LocalRoadBlocks = [];

spawn_roadblocks = {
	private ["_position","_veh","_istoomany","_marker","_spawnveh","_WreckList"];
	_WreckList = ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"];
	
	waitUntil{!isNil "BIS_fnc_selectRandom"};
	if (isDedicated) then {
	
		_position = RoadList call BIS_fnc_selectRandom;
		
		_position = _position modelToWorld [0,0,0];
		
		waitUntil{!isNil "BIS_fnc_findSafePos"};
		_position = [_position,0,10,5,0,2000,0] call BIS_fnc_findSafePos;
		
		if ((count _position) == 2) then {
			// Get position with ground
			
			_istoomany = _position nearObjects ["All",5];
		
			if((count _istoomany) > 0) exitWith { diag_log("DEBUG: Too many at " + str(_position)); };
			
			waitUntil{!isNil "BIS_fnc_selectRandom"};
			_spawnveh = _WreckList call BIS_fnc_selectRandom;

			if(DZEdebug) then {
				_marker = createMarker [str(_position) , _position];
				_marker setMarkerShape "ICON";
				_marker setMarkerType "DOT";
				_marker setMarkerText str(_spawnveh);
			};

			_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
			_veh enableSimulation false;

			_veh setDir round(random 360); // Randomize placement a bit
			_veh setpos _position;

			_veh setVariable ["ObjectID","1",true];
		};
	
	};
	
};

spawn_mineveins = {
	private ["_position","_veh","_istoomany","_marker","_spawnveh","_positions"];

	if (isDedicated) then {
		
		_position = [getMarkerPos "center",0,(HeliCrashArea*0.75),10,0,2000,0] call BIS_fnc_findSafePos;

		if ((count _position) == 2) then {
			
			_positions = selectBestPlaces [_position, 500, "(1 + forest) * (1 + hills) * (1 - houses) * (1 - sea)", 10, 5];

			_position = (_positions call BIS_fnc_selectRandom) select 0;

			// Get position with ground
			_istoomany = _position nearObjects ["All",10];
		
			if((count _istoomany) > 0) exitWith { diag_log("DEBUG VEIN: Too many objects at " + str(_position)); };

			if(isOnRoad _position) exitWith { diag_log("DEBUG VEIN: on road " + str(_position)); };
			
			_spawnveh = ["Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Iron_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Silver_Vein_DZE","Gold_Vein_DZE","Gold_Vein_DZE"] call BIS_fnc_selectRandom;

			if(DZEdebug) then {
				_marker = createMarker [str(_position) , _position];
				_marker setMarkerShape "ICON";
				_marker setMarkerType "DOT";
				_marker setMarkerText str(_spawnveh);
			};
			
			//diag_log("DEBUG: Spawning a crashed " + _spawnveh + " with " + _spawnloot + " at " + str(_position));
			_veh = createVehicle [_spawnveh,_position, [], 0, "CAN_COLLIDE"];
			_veh enableSimulation false;

			// Randomize placement a bit
			_veh setDir round(random 360);
			_veh setpos _position;

			_veh setVariable ["ObjectID","1",true];

		
		};
	};
};

if(isnil "DynamicVehicleDamageLow") then {
	DynamicVehicleDamageLow = 0;
};
if(isnil "DynamicVehicleDamageHigh") then {
	DynamicVehicleDamageHigh = 100;
};

if(isnil "DynamicVehicleFuelLow") then {
	DynamicVehicleFuelLow = 0;
};
if(isnil "DynamicVehicleFuelHigh") then {
	DynamicVehicleFuelHigh = 100;
};

if(isnil "DZE_DiagFpsSlow") then {
	DZE_DiagFpsSlow = false;
};
if(isnil "DZE_DiagFpsFast") then {
	DZE_DiagFpsFast = false;
};
if(isnil "DZE_DiagVerbose") then {
	DZE_DiagVerbose = false;
};

dze_diag_fps = {
	if(DZE_DiagVerbose) then {
		diag_log format["DEBUG FPS : %1 OBJECTS: %2 : PLAYERS: %3", diag_fps,(count (allMissionObjects "")),(playersNumber west)];
	} else {
		diag_log format["DEBUG FPS : %1", diag_fps];
	};
};

// Damage generator function
generate_new_damage = {
	private ["_damage"];
    _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100;
	_damage;
};

// Damage generator fuction
generate_exp_damage = {
	private ["_damage"];
    _damage = ((random(DynamicVehicleDamageHigh-DynamicVehicleDamageLow))+DynamicVehicleDamageLow) / 100;
	
	// limit this to 85% since vehicle would blow up otherwise.
	//if(_damage >= 0.85) then {
	//	_damage = 0.85;
	//};
	_damage;
};

server_getDiff =	{
	private["_variable","_object","_vNew","_vOld","_result"];
	_variable = _this select 0;
	_object = 	_this select 1;
	_vNew = 	_object getVariable[_variable,0];
	_vOld = 	_object getVariable[(_variable + "_CHK"),_vNew];
	_result = 	0;
	if (_vNew < _vOld) then {
		//JIP issues
		_vNew = _vNew + _vOld;
		_object getVariable[(_variable + "_CHK"),_vNew];
	} else {
		_result = _vNew - _vOld;
		_object setVariable[(_variable + "_CHK"),_vNew];
	};
	_result
};

server_getDiff2 =	{
	private["_variable","_object","_vNew","_vOld","_result"];
	_variable = _this select 0;
	_object = 	_this select 1;
	_vNew = 	_object getVariable[_variable,0];
	_vOld = 	_object getVariable[(_variable + "_CHK"),_vNew];
	_result = _vNew - _vOld;
	_object setVariable[(_variable + "_CHK"),_vNew];
	_result
};

dayz_objectUID = {
	private["_position","_dir","_key","_object"];
	_object = _this;
	_position = getPosATL _object;
	_dir = direction _object;
	_key = [_dir,_position] call dayz_objectUID2;
    _key
};

dayz_objectUID2 = {
	private["_position","_dir","_key"];
	_dir = _this select 0;
	_key = "";
	_position = _this select 1;
	{
		_x = _x * 10;
		if ( _x < 0 ) then { _x = _x * -10 };
		_key = _key + str(round(_x));
	} count _position;
	_key = _key + str(round(_dir));
	_key
};

dayz_objectUID3 = {
	private["_position","_dir","_key"];
	_dir = _this select 0;
	_key = "";
	_position = _this select 1;
	{
		_x = _x * 10;
		if ( _x < 0 ) then { _x = _x * -10 };
		_key = _key + str(round(_x));
	} count _position;
	_key = _key + str(round(_dir + time));
	_key
};

dayz_recordLogin = {
	private["_key"];
	_key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
	_key call server_hiveWrite;
};

dayz_perform_purge = {
	if(!isNull(_this)) then {
		_group = group _this;
		_this removeAllMPEventHandlers "mpkilled";
		_this removeAllMPEventHandlers "mphit";
		_this removeAllMPEventHandlers "mprespawn";
		_this removeAllEventHandlers "FiredNear";
		_this removeAllEventHandlers "HandleDamage";
		_this removeAllEventHandlers "Killed";
		_this removeAllEventHandlers "Fired";
		_this removeAllEventHandlers "GetOut";
		_this removeAllEventHandlers "GetIn";
		_this removeAllEventHandlers "Local";
		clearVehicleInit _this;
		deleteVehicle _this;
		if ((count (units _group) == 0) && (_group != grpNull)) then {
			deleteGroup _group;
		};
	};
};

dayz_perform_purge_player = {

	private ["_countr","_backpack","_backpackType","_backpackWpn","_backpackMag","_objWpnTypes","_objWpnQty","_location","_dir","_holder","_weapons","_magazines"];
    diag_log ("Purging player: " + str(_this));	

	if(!isNull(_this)) then {

		_location = getPosATL _this;
		_dir = getDir _this;

		_holder = createVehicle ["GraveDZE", _location, [], 0, "CAN_COLLIDE"];
		_holder setDir _dir;
		_holder setPosATL _location;

		_holder enableSimulation false;

		_weapons = weapons _this;
		_magazines = magazines _this;

		// find backpack
		if(!(isNull unitBackpack _this)) then {
			_backpack = unitBackpack _this;
			_backpackType = typeOf _backpack;
			_backpackWpn = getWeaponCargo _backpack;
			_backpackMag = getMagazineCargo _backpack;

			_holder addBackpackCargoGlobal [_backpackType,1];

			// add items from backpack 
			_objWpnTypes = _backpackWpn select 0;
			_objWpnQty = _backpackWpn select 1;
			_countr = 0;
			{
				_holder addWeaponCargoGlobal [_x,(_objWpnQty select _countr)];
				_countr = _countr + 1;
			} count _objWpnTypes;

			// add backpack magazine items
			_objWpnTypes = _backpackMag select 0;
			_objWpnQty = _backpackMag select 1;
			_countr = 0;
			{
				_holder addMagazineCargoGlobal [_x,(_objWpnQty select _countr)];
				_countr = _countr + 1;
			} count _objWpnTypes;
		};
	};

	// add weapons
	{ 
		_holder addWeaponCargoGlobal [_x, 1];
	} count _weapons;

	// add mags
	{ 
		_holder addMagazineCargoGlobal [_x, 1];
	} count _magazines;
	_group = group _this;
	_this removeAllMPEventHandlers "mpkilled";
	_this removeAllMPEventHandlers "mphit";
	_this removeAllMPEventHandlers "mprespawn";
	_this removeAllEventHandlers "FiredNear";
	_this removeAllEventHandlers "HandleDamage";
	_this removeAllEventHandlers "Killed";
	_this removeAllEventHandlers "Fired";
	_this removeAllEventHandlers "GetOut";
	_this removeAllEventHandlers "GetIn";
	_this removeAllEventHandlers "Local";
	clearVehicleInit _this;
	deleteVehicle _this;
	if ((count (units _group) == 0) && (_group != grpNull)) then {
		deleteGroup _group;
	};
	//  _this = nil;
};


dayz_removePlayerOnDisconnect = {
	if(!isNull(_this)) then {
		_group = group _this;
		_this removeAllMPEventHandlers "mphit";
		deleteVehicle _this;
		deleteGroup (group _this);
	};
};

server_timeSync = {
	//Send request
	private ["_hour","_minute","_date","_key","_result","_outcome"];
    _key = "CHILD:307:";
	_result = _key call server_hiveReadWrite;
	_outcome = _result select 0;
	if(_outcome == "PASS") then {
		_date = _result select 1; 
		
		if(dayz_fullMoonNights) then {
			_hour = _date select 3;
			_minute = _date select 4;
			//Force full moon nights
			_date = [2013,8,3,_hour,_minute];
		};

		setDate _date;
		PVDZE_plr_SetDate = _date;
		publicVariable "PVDZE_plr_SetDate";
		diag_log ("TIME SYNC: Local Time set to " + str(_date));	
	};
};

// must spawn these 
server_spawncleanDead = {
	private ["_deathTime","_delQtyZ","_delQtyP","_qty","_allDead"];
	_allDead = allDead;
	_delQtyZ = 0;
	_delQtyP = 0;
	{
		if (local _x) then {
			if (_x isKindOf "zZombie_Base") then
			{
				_x call dayz_perform_purge;
				sleep 0.05;
				_delQtyZ = _delQtyZ + 1;
			} else {
				if (_x isKindOf "CAManBase") then {
					_deathTime = _x getVariable ["processedDeath", diag_tickTime];
					if (diag_tickTime - _deathTime > 1800) then {
						_x call dayz_perform_purge_player;
						sleep 0.025;
						_delQtyP = _delQtyP + 1;
					};
				};
			};
		};
		sleep 0.025;
	} count _allDead;
	if (_delQtyZ > 0 || _delQtyP > 0) then {
		_qty = count _allDead;
		diag_log (format["CLEANUP: Deleted %1 players && %2 zombies out of %3 dead",_delQtyP,_delQtyZ,_qty]);
	};
};
server_cleanupGroups = {
	if (DZE_DYN_AntiStuck3rd > 3) then { DZE_DYN_GroupCleanup = nil; DZE_DYN_AntiStuck3rd = 0; };
	if(!isNil "DZE_DYN_GroupCleanup") exitWith {  DZE_DYN_AntiStuck3rd = DZE_DYN_AntiStuck3rd + 1;};
	DZE_DYN_GroupCleanup = true;
	{
		if ((count (units _x) == 0) && (_x != grpNull)) then {
			deleteGroup _x;
		};
		sleep 0.001;
	} count allGroups;
	DZE_DYN_GroupCleanup = nil;
};

//server_checkHackers = {
//	if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; };
//	if(!isNil "DZE_DYN_HackerCheck") exitWith {  DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;};
//	DZE_DYN_HackerCheck = true;
//	{
//	if (!((isNil "_x") || {(isNull _x)})) then {
//		if((vehicle _x != _x) && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x)  && !((typeOf vehicle _x) in (DZE_safeVehicle))) then {
//			diag_log ("CLEANUP: KILLING A HACKER " + (name _x) + " " + str(_x) + " IN " + (typeOf vehicle _x));
//			(vehicle _x) setDamage 1;
//			_x setDamage 1;
//			sleep 0.25;
//		};
//	};
//		sleep 0.001;
//	} count allUnits;
//	DZE_DYN_HackerCheck = nil;
//};

server_spawnCleanFire = {
	private ["_delQtyFP","_qty","_delQtyNull","_missionFires"];
	_missionFires = allMissionObjects "Land_Fire_DZ";
	_delQtyFP = 0;
	{
		if (local _x) then {
			deleteVehicle _x;
			sleep 0.025;
			_delQtyFP = _delQtyFP + 1;
		};
		sleep 0.001;
	} count _missionFires;
	if (_delQtyFP > 0) then {
		_qty = count _missionFires;
		diag_log (format["CLEANUP: Deleted %1 fireplaces out of %2",_delQtyNull,_qty]);
	};
};
server_spawnCleanLoot = {
	private ["_created","_delQty","_nearby","_age","_keep","_qty","_missionObjs","_dateNow"];
	if (DZE_DYN_AntiStuck > 3) then { DZE_DYN_cleanLoot = nil; DZE_DYN_AntiStuck = 0; };
	if(!isNil "DZE_DYN_cleanLoot") exitWith {  DZE_DYN_AntiStuck = DZE_DYN_AntiStuck + 1;};
	DZE_DYN_cleanLoot = true;

	_missionObjs =  allMissionObjects "ReammoBox";
	_delQty = 0;
	_dateNow = (DateToNumber date);
	{
		if (!isNull _x) then {
			_keep = _x getVariable["permaLoot", false];
			if (!_keep) then {
				_created = _x getVariable["created", -0.1];
				if (_created == -0.1) then{
					_x setVariable["created", _dateNow, false];
					_created = _dateNow;
				}
				else {
					_age = (_dateNow - _created) * 525948;
					if (_age > 20) then{
						_nearby = { (isPlayer _x) && (alive _x) } count(_x nearEntities[["CAManBase", "AllVehicles"], 130]);
						if (_nearby == 0) then{
							deleteVehicle _x;
							sleep 0.025;
							_delQty = _delQty + 1;
						};
					};
				};
			};
		};
		sleep 0.001;
	} count _missionObjs;
	if (_delQty > 0) then {
		_qty = count _missionObjs;
		diag_log (format["CLEANUP: Deleted %1 Loot Piles out of %2",_delQty,_qty]);
	};
	DZE_DYN_cleanLoot = nil;
};

server_spawnCleanAnimals = {
	private ["_pos","_delQtyAnimal","_qty","_missonAnimals","_nearby"];
	_missonAnimals = entities "CAAnimalBase";
	_delQtyAnimal = 0;
	{
		if (local _x) then {
			_x call dayz_perform_purge;
			sleep 0.05;
			_delQtyAnimal = _delQtyAnimal + 1;
		} else {
			if (!alive _x) then {
				_pos = getPosATL _x;
				if (count _pos > 0) then {
					_nearby = {(isPlayer _x) && (alive _x)} count (_pos nearEntities [["CAManBase","AllVehicles"], 130]);
					if (_nearby==0) then {
						_x call dayz_perform_purge;
						sleep 0.05;
						_delQtyAnimal = _delQtyAnimal + 1;
					};
				};
			};
		};
		sleep 0.001;
	} count _missonAnimals;
	if (_delQtyAnimal > 0) then {
		_qty = count _missonAnimals;
		diag_log (format["CLEANUP: Deleted %1 Animals out of %2",_delQtyAnimal,_qty]);
	};
};

server_logUnlockLockEvent = {
	private["_player", "_obj", "_objectID", "_objectUID", "_statusText", "_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];
	};
};

currentInvites = [];
publicVariable "currentInvites";
"currentInvites" addPublicVariableEventHandler {publicVariable "currentInvites";}; 

 

PS. Only reason I haven't just started over is that i have added so many addons (and spent a few months doing it) that doing so would likely break several other addons :(

Share this post


Link to post
Share on other sites

I would suggest clearing your log file (creating a new one), starting your server and doing whatever you are doing to get any errors and then shutting down the server.  Take that log file and then either post it here (in spoiler tages as I see you have been doing for the other files ou posted :) ) or put it on pastebin and link to it.

 

The errors are unlikely to be a single error in the log file that is causing all these issues.  We really need a full view of the issues the server is complaining about.

 

Would be good to do that with both the server and the client log files.

 

I suspect that there will be multiple errors in both (just going on previous experience ;) ).

Share this post


Link to post
Share on other sites

After reverting the above modified files back to the originals found in the GitHub file for this addon (basicly returning to what i had in the first place before all the errors) here are the reports.

 

ArmA2OA.RPT

=====================================================================
== C:\Program Files (x86)\Steam\steamapps\common\ARMA 2 Operation Arrowhead\ArmA2OA.exe
== "C:\Program Files (x86)\Steam\steamapps\common\ARMA 2 Operation Arrowhead\ArmA2OA.exe"  -connect=68.0.184.37 -port=-5536 "-mod=C:\Program Files (x86)\Steam\steamapps\common\Arma 2;Expansion;C:\Program Files (x86)\Steam\steamapps\common\Arma 2\@DayzOrigins179;C:\Program Files (x86)\Steam\steamapps\common\Arma 2\@DayzOverwatch;C:\Program Files (x86)\Steam\steamapps\common\Arma 2\@lingor;C:\Program Files (x86)\Steam\steamapps\common\Arma 2\@DayZ_Epoch1051;" -nosplash -showScriptErrors
=====================================================================
Exe timestamp: 2015/01/11 19:47:34
Current time:  2015/04/14 21:46:16

Version 1.63.125548
Item STR_EQUIP_NAME_41 listed twice
Item STR_EQUIP_DESC_41 listed twice
Conflicting addon Monaro in 'holdenmonarocop\', previous definition in 'holdenmonaro\'
File nissan_350z\config.cpp, line 244: '/CfgVehicles/350zBase/Library.libTextDesc': Missing ';' prior '}'
Unsupported language English in stringtable
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</German>
		<English>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</English>
		<Italian>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Italian>
		<Spanish>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Spanish>
		<French>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</French>
		<Czech>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Czech>
		<Russian>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Russian>
		<Polish>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Polish>
		<Hungarian>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Hungarian>
    </Key>
    <Key ID="STR_VIL_AKS74UB_BS1_SHORT">
      <German>Compact assault rifle with silenced grenade launcher&lt'
Item STR_VIL_DN_BS1 listed twice
Item STR_AUTHOR_VILAS listed twice
Item STR_VIL_EASTERN listed twice
Item STR_VIL_WEAPONS listed twice
Item str_dss_10rnd_vss listed twice
Item str_dss_20rnd_vss listed twice
Item str_dn_20rnd_9x39_sp5_vss listed twice
Item str_dn_ak_107_gl_pso listed twice
Item str_dn_ak_107_kobra listed twice
Item str_dn_M40A3 listed twice
Item str_dn_rpk_74 listed twice
Item str_ep1_dn_fn_fal listed twice
Updating base class ->NonStrategic, by Ca\config.bin/CfgVehicles/HouseBase/
Updating base class ->HouseBase, by Ca\config.bin/CfgVehicles/Ruins/
Updating base class ->DestructionEffects, by Ca\config.bin/CfgVehicles/House/DestructionEffects/
Updating base class ->FlagCarrierCore, by ca\ca_pmc\config.bin/CfgVehicles/FlagCarrier/
Updating base class ->Car, by holdenmonaro\config.bin/CfgVehicles/Car_sedan/
Updating base class HouseBase->, by ibr\lingor_objects\config.cpp/CfgVehicles/House/
Updating base class ->HouseBase, by mbg_buildings_2\config.bin/CfgVehicles/House/
Updating base class ->Man, by nof_fsk\config.cpp/CfgVehicles/CAManBase/
Updating base class HouseBase->, by taviana\budovy\bunkry\config.bin/CfgVehicles/House/
Updating base class NonStrategic->House, by taviana\paf_stad_obj\config.bin/CfgVehicles/LAND_pbaflgoals/
Updating base class ->HouseBase, by ca\buildings2\a_generalstore_01\config.bin/CfgVehicles/House/
Updating base class ->Ruins, by ca\structures_e\config.bin/CfgVehicles/Ruins_EP1/
Updating base class ->BulletCore, by ca\weapons\config.bin/CfgAmmo/BulletBase/
Updating base class ->GrenadeCore, by ca\weapons\config.bin/CfgAmmo/GrenadeBase/
Updating base class ->VehicleMagazine, by ca\weapons\config.bin/CfgMagazines/14Rnd_FFAR/
Updating base class ->PistolCore, by ca\weapons\config.bin/cfgWeapons/Pistol/
Updating base class ->Default, by ca\weapons\config.bin/cfgWeapons/GrenadeLauncher/
Updating base class ->RifleCore, by ca\weapons\config.bin/cfgWeapons/Rifle/
Updating base class ->LauncherCore, by ca\weapons\config.bin/cfgWeapons/RocketPods/
Updating base class ->RocketPods, by ca\weapons\config.bin/cfgWeapons/FFARLauncher/
Updating base class ->Default, by ca\weapons\config.bin/cfgWeapons/ItemCore/
Updating base class ->Bag_Base_EP1, by ca\weapons_e\ammoboxes\config.bin/cfgVehicles/US_Patrol_Pack_EP1/
Updating base class ->Bag_Base_EP1, by ca\weapons_e\ammoboxes\config.bin/cfgVehicles/US_Backpack_EP1/
Updating base class ->Bag_Base_EP1, by ca\weapons_e\ammoboxes\config.bin/cfgVehicles/CZ_Backpack_EP1/
Updating base class Man->CAManBase, by ca\characters\config.bin/CfgVehicles/Civilian/
Updating base class ->Ship, by ca\water\config.bin/CfgVehicles/Boat/
Updating base class TalkTopics->TalkTopics, by bb_mercs_desert\config.bin/CfgVehicles/SoldierWB/TalkTopics/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_Light/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier2/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_GL/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_Officer/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_SL/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_TL/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_LAT/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_AT/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_HAT/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_AA/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_Medic/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_AR/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_MG/
Updating base class ->USMC_SoldierS_Sniper, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierS_SniperH/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierM_Marksman/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierS/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierS_Engineer/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_TL/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_R/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_Marksman/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_Corpsman/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_AR/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_GL/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_Sapper/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_AC/
Updating base class ->RU_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/RU_Soldier2/
Updating base class Soldier->MVD_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/MVD_Soldier/
Updating base class ->Citizen, by ca\characters2\config.bin/CfgVehicles/Citizen1/
Updating base class ->US_Soldier_Base_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_EP1/
Updating base class ->US_Soldier_Base_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_TL_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_Medic_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_AR_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_Marksman_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_Air_Controller_EP1/
Updating base class ->HMMWV_Base, by ca\wheeled\config.bin/CfgVehicles/HMMWV_M2/
Updating base class ->HMMWV_Base, by ca\wheeled\config.bin/CfgVehicles/HMMWV_TOW/
Updating base class ->HMMWV_Base, by ca\wheeled\config.bin/CfgVehicles/HMMWV_MK19/
Updating base class Car->SkodaBase, by ca\wheeled\config.bin/CfgVehicles/car_sedan/
Updating base class ->Pickup_PK_base, by ca\wheeled\datsun_armed\config.bin/CfgVehicles/Pickup_PK_GUE/
Updating base class ->Offroad_DSHKM_base, by ca\wheeled\hilux_armed\config.bin/CfgVehicles/Offroad_DSHKM_Gue/
Updating base class ->Offroad_DSHKM_base, by ca\wheeled\hilux_armed\config.bin/CfgVehicles/Offroad_SPG9_Gue/
Updating base class ->UH60_Base, by ca\air\config.bin/CfgVehicles/MH60S/
Updating base class ->House, by ca\misc3\config.bin/CfgVehicles/Land_Fire/
Updating base class ->House, by ca\misc3\config.bin/CfgVehicles/Land_A_tent/
Updating base class ->Camp_base, by ca\misc3\config.bin/CfgVehicles/ACamp/
Updating base class ->Car, by ca\wheeled2\lada\config.bin/CfgVehicles/Lada_base/
Updating base class Default->, by chn_crocodile\config.bin/CfgFaces/Man/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Small_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street1_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street2_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lampa_Ind_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_PowLines_Conc2L_EP1/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_2/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_3/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind_zebr/
Updating base class RscStandardDisplay->, by z\addons\dayz_code\config.bin/RscDisplayStart/
Updating base class RscShortcutButton->RscShortcutButtonMain, by z\addons\dayz_code\config.bin/RscDisplayMain/controls/CA_Exit/
Updating base class RscText->, by z\addons\dayz_code\config.bin/RscTitles/Default/
Updating base class zZombie_Base->zZombie_new_Base, by z\addons\dayz_code\config.bin/CfgVehicles/z_villager1/
Updating base class zZombie_Base->zZombie_new_Base, by z\addons\dayz_code\config.bin/CfgVehicles/z_worker1/
Updating base class Soldier_Crew_PMC->Soldier_Bodyguard_M4_PMC, by z\addons\dayz_code\config.bin/CfgVehicles/SurvivorW2_DZ/
Updating base class HighCommand->Logic, by z\addons\dayz_code\config.bin/CfgVehicles/HighCommandSubordinate/
Updating base class ->ViewOptics, by z\addons\dayz_code\config.bin/CfgVehicles/Mi17_base/Turrets/MainTurret/ViewOptics/
Updating base class HouseBase->, by z\addons\dayz_code\config.bin/CfgVehicles/House/
Updating base class NonStrategic->BuiltItems, by z\addons\dayz_code\config.bin/CfgVehicles/Fort_RazorWire/
Updating base class MeleeHatchet->MeleeWeapon, by z\addons\dayz_code\config.bin/CfgWeapons/MeleeCrowbar/
Updating base class ->Default, by z\addons\dayz_code\config.bin/CfgFaces/Man/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face1/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face2/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face3/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face4/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face5/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face5_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face6/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face6_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face7/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face8/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face8_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face9/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face10/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face11/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face12/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face13/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face13_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face14/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face15/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face16/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face17/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face18/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face19/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face20/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face21/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face22/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face23/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face24/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face25/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face26/
Updating base class ->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face27/
Updating base class ->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face28/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face29/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face30/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face31/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face32/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face33/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Pro_Helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Pro_Helmet_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Pro_Helmet_2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Kevlar_Helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Kevlar_Helmet_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/wdl_helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Barett/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/US_green_beret/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/US_black_beret/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Barett_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Bdu_cap/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Bdu_cap_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/b_TacticalGlasses/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/headset/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/headset_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask_helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask_red/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask_helmet2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/pilot_mask/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/pilot_mask_v/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/pilot_v/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/skull_cap/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/skull_cap2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/taliban_hat_shadow/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/dive_mask/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/BlackSun_sof_w/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/RedSun_sof_w/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/None_sof_w/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/goggles_winter/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/29Rnd_30mm_AGS30/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/48Rnd_40mm_MK19/
Updating base class 4000Rnd_762x51_M134->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/2000Rnd_762x51_M134/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/100Rnd_127x99_M2/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/50Rnd_127x107_DSHKM/
Updating base class Hatchet_Swing->Melee_Swing, by z\addons\dayz_code\config.bin/CfgMagazines/crowbar_swing/
Updating base class CA_Magazine->Melee_Swing, by z\addons\dayz_code\config.bin/CfgMagazines/Hatchet_Swing/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_1L2/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_3I3/
Updating base class ->Plane, by ca\air2\mv22\config.bin/CfgVehicles/MV22/
Updating base class ViewOptics->, by ca\air2\uh1y\config.bin/CfgVehicles/UH1_Base/Turrets/MainTurret/ViewOptics/
Updating base class ->WarfareBBaseStructure, by ca\misc3\wf\config.bin/CfgVehicles/Base_WarfareBVehicleServicePoint/
Updating base class ->HouseBase, by ca\misc_e\config.bin/CfgVehicles/House/
Updating base class ->Land_CamoNet_EAST, by ca\misc_e\config.bin/CfgVehicles/Land_CamoNet_EAST_EP1/
Updating base class ->Land_CamoNetB_EAST, by ca\misc_e\config.bin/CfgVehicles/Land_CamoNetB_EAST_EP1/
Updating base class ->Sign_1L_Noentry, by ca\misc_e\config.bin/CfgVehicles/Sign_1L_Noentry_EP1/
Updating base class ->Sign_circle, by ca\misc_e\config.bin/CfgVehicles/Helper_Base_EP1/
Updating base class ->Rifle, by ca\weapons_baf\config.bin/cfgWeapons/BAF_AS50_scoped/
Updating base class ->Rifle, by ca\weapons_e\config.bin/cfgWeapons/M60A4_EP1/
Updating base class ->M249, by ca\weapons_e\config.bin/cfgWeapons/M249_EP1/
Updating base class ->M249, by ca\weapons_e\config.bin/cfgWeapons/M249_m145_EP1/
Updating base class ->m107, by ca\weapons_e\m107\config.bin/CfgWeapons/m107_TWS_EP1/
Updating base class ->M240, by ca\weapons_e\m240\config.bin/CfgWeapons/m240_scoped_EP1/
Updating base class ->V3S_Base, by ca\wheeled_e\v3s\config.bin/CfgVehicles/V3S_Base_EP1/
Updating base class ->V3S_Base_EP1, by ca\wheeled_e\v3s\config.bin/CfgVehicles/V3S_Refuel_TK_GUE_EP1/
Updating base class AKS_BASE->AK_BASE, by vilas_aks_cfg\config.cpp/cfgWeapons/AKS_74_UN_kobra/
Updating base class House->DZE_OpenHouse, by warehouse\config.bin/CfgVehicles/Land_Ind_Pec_03/
Updating base class ->C130J_base, by ca\air_e\config.bin/CfgVehicles/C130J_US_EP1/
Updating base class ->Helicopter, by ca\air_e\ah6j\config.bin/CfgVehicles/AH6_Base_EP1/
Updating base class ->Plane, by ca\air_e\an2\config.bin/CfgVehicles/An2_Base_EP1/
Updating base class ->CH47_base_EP1, by ca\air_e\ch47\config.bin/CfgVehicles/CH_47F_EP1/
Updating base class ViewOptics->, by ca\air_e\uh1h\config.bin/CfgVehicles/UH1H_base/Turrets/MainTurret/ViewOptics/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_Crew_PMC/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_TL_PMC/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_Bodyguard_M4_PMC/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_Bodyguard_AA12_PMC/
Updating base class ->BAF_Soldier_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_W/
Updating base class ->BAF_Soldier_L_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_L_W/
Updating base class ->BAF_Soldier_Officer_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_Officer_W/
Updating base class ->BAF_Soldier_SniperH_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_SniperH_W/
Updating base class ->M113Ambul_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113Ambul_UN_EP1/
Updating base class ->M113_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113_UN_EP1/
Updating base class ->M113Ambul_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113Ambul_TK_EP1/
Updating base class ->M113_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113_TK_EP1/
Updating base class ->Helicopter, by ca\air_d_baf\config.bin/CfgVehicles/BAF_Merlin_HC3_D/
Updating base class AK_BASE->AKS_BASE, by ca\communityconfigurationproject_e\ai_madeaks74unkobrafullysilenced\config.bin/CfgWeapons/AKS_74_UN_kobra/
Old style material 207 used in ReportStack not available
Land_Lamp_Small_EP1: hide - unknown animation source HitBulb
Warning: looped for animation: ca\anims\characters\data\anim\sdr\mov\erc\wlk\non\non\amovpercmwlksnonwnondf.rtm differs (looped now 0)! MoveName: amovpercmstpsnonwnondnon_amovpercmstpsraswpstdnon
Warning: looped for animation: ca\anims\characters\data\anim\sdr\mov\erc\wlk\non\non\amovpercmwlksnonwnondf.rtm differs (looped now 1)! MoveName: amovpercmrunsnonwbindf_rfl
"DayZ Epoch: PRELOAD Functions\init [[L 1-1-A:1 REMOTE],any]"
"DayZ Epoch: MPframework inited"
"Origins Base Building Config initialized!"
DZAP: loading version 1.0.0
DZAP: loading config...
DZAP: loading function library...
DZAP: loading click actions handler...
DZAP: loading deploy anything addon...
BIKE: loading version 2.5.1 ...
DZAP: loading weapon mod addon...
WMOD v1.1.0: loading...
DZAP: loading suicide addon...
SUICIDE v1.2.2: initializing...
DZAP: loading clothes addon...
TAKECLOTHES: initializing...
TAKECLOTHES: Added 61 base clothing matches...
DZAP: loading kits addon...
KITS: loading functions
KITS: waiting for player login
DZAP: loading map addon...
MAP MARKER: loading functions...
"DEBUG: loadscreen guard started."
BIKE: waiting for login...
TAKECLOTHES: waiting for login...
"Res3tting B!S effects..."
"AC_functions version 1.03"
"Elevator script initialized"
"[PMC_CONTRACTOR]: Selected safezones/blacklisted areas for world: lingor"
"[PMC_CONTRACTOR]: Client waiting for Trader Position ..."
Old style material 204 used in ReportStack not available
Old style material 205 used in ReportStack not available
Warning: z\addons\dayz_communityassets\models\compass.p3d:0 Error while trying to generate ST for points: 863, 853, 852
No speaker given for Jesse Brown
"[PMC_CONTRACTOR]: Client created local markers ..."
350z_gold: ABSwitch - unknown animation source ABSwitch
Client: Network message 39e (update info 301ab3e0) is pending
Client: Network message 39f (update info 301ab268) is pending
Client: Network message 3a0 (update info 301ab2c0) is pending
Client: Network message 3a0 (update info 301ab5d8) is pending
Client: Network message 3a1 (update info 301ab3c8) is pending
ori_rth_originsmod_bathmobile: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
ori_rth_originsmod_bathmobile: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_rth_originsmod_bathmobile: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
class HitPoints::HitRGlass not found in ori_rth_originsmod_bathmobile
class HitPoints::HitLGlass not found in ori_rth_originsmod_bathmobile
class HitPoints::HitLF2Wheel not found in ori_rth_originsmod_bathmobile
class HitPoints::HitRF2Wheel not found in ori_rth_originsmod_bathmobile
class HitPoints::HitLMWheel not found in ori_rth_originsmod_bathmobile
class HitPoints::HitRMWheel not found in ori_rth_originsmod_bathmobile
class HitPoints::HitLF2Wheel not found in ori_excavator
class HitPoints::HitRF2Wheel not found in ori_excavator
class HitPoints::HitLMWheel not found in ori_excavator
class HitPoints::HitRMWheel not found in ori_excavator
Array tex in bin\config.bin/CfgVehicles/ori_p85_originsmod_CUCV/Damage/ not even
ori_p85_originsmod_cucv_pickup: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_p85_originsmod_cucv_pickup: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_p85_originsmod_cucv_pickup: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_p85_originsmod_cucv_pickup: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
class HitPoints::HitLF2Wheel not found in ori_p85_originsmod_cucv_pickup
class HitPoints::HitRF2Wheel not found in ori_p85_originsmod_cucv_pickup
class HitPoints::HitLMWheel not found in ori_p85_originsmod_cucv_pickup
class HitPoints::HitRMWheel not found in ori_p85_originsmod_cucv_pickup
AH6X_DZ: FLIR_turret - unknown animation source FLIR_turret
AH6X_DZ: FLIR_gun - unknown animation source FLIR_gun
350z_yellow: ABSwitch - unknown animation source ABSwitch
Array tex in bin\config.bin/CfgVehicles/ori_vil_originsmod_truck_civ/Damage/ not even
ori_vil_originsmod_truck_civ: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_vil_originsmod_truck_civ: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_vil_originsmod_truck_civ: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_vil_originsmod_truck_civ: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
In Vehicle: origins_pack\vehicles\vil_truck_civ2.p3d missing codriver get in direction point
class HitPoints::HitLF2Wheel not found in ori_vil_originsmod_truck_civ
class HitPoints::HitRF2Wheel not found in ori_vil_originsmod_truck_civ
class HitPoints::HitLMWheel not found in ori_vil_originsmod_truck_civ
class HitPoints::HitRMWheel not found in ori_vil_originsmod_truck_civ
class HitPoints::HitRGlass not found in ori_titanic
class HitPoints::HitLGlass not found in ori_titanic
class HitPoints::HitBody not found in ori_titanic
class HitPoints::HitFuel not found in ori_titanic
class HitPoints::HitLF2Wheel not found in ori_titanic
class HitPoints::HitRF2Wheel not found in ori_titanic
car_American_Law_Enforcement: Invalid parent bone 'osa_door_r1' for 'door_r1'
car_American_Law_Enforcement: Invalid parent bone 'osa_door_r2' for 'door_r2'
car_American_Law_Enforcement: Invalid parent bone 'osa_door_l1' for 'door_l1'
car_American_Law_Enforcement: Invalid parent bone 'osa_door_l2' for 'door_l2'
car_American_Law_Enforcement: Invalid parent bone 'osa_kapota' for 'kapota'
car_American_Law_Enforcement: Invalid parent bone 'osa_kufr' for 'kufr'
Array tex in bin\config.bin/CfgVehicles/ori_p85_originsmod_CUCV/Damage/ not even
ori_p85_originsmod_CUCV: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_p85_originsmod_CUCV: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_p85_originsmod_CUCV: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_p85_originsmod_CUCV: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
class HitPoints::HitLF2Wheel not found in ori_p85_originsmod_CUCV
class HitPoints::HitRF2Wheel not found in ori_p85_originsmod_CUCV
class HitPoints::HitLMWheel not found in ori_p85_originsmod_CUCV
class HitPoints::HitRMWheel not found in ori_p85_originsmod_CUCV
350z_black: ABSwitch - unknown animation source ABSwitch
: Invalid parent bone 'osa_door_r1' for 'door_r1'
: Invalid parent bone 'osa_door_r2' for 'door_r2'
: Invalid parent bone 'osa_door_l1' for 'door_l1'
: Invalid parent bone 'osa_door_l2' for 'door_l2'
: Invalid parent bone 'osa_kapota' for 'kapota'
: Invalid parent bone 'osa_kufr' for 'kufr'
Array tex in bin\config.bin/CfgVehicles/ori_scrapTank/Damage/ not even
vil_ori_autogyro: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
class HitPoints::HitMissiles not found in vil_ori_autogyro
class HitPoints::HitRGlass not found in vil_ori_autogyro
class HitPoints::HitLGlass not found in vil_ori_autogyro
ori_survivorBus: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_survivorBus: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_survivorBus: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_survivorBus: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
ori_survivorBus: Glass9_destruct - unknown animation source HitGlass9
ori_survivorBus: Glass10_destruct - unknown animation source HitGlass10
class HitPoints::HitLF2Wheel not found in ori_survivorBus
class HitPoints::HitRF2Wheel not found in ori_survivorBus
class HitPoints::HitLMWheel not found in ori_survivorBus
class HitPoints::HitRMWheel not found in ori_survivorBus
: Invalid parent bone 'osa_door_r1' for 'door_r1'
: Invalid parent bone 'osa_door_r2' for 'door_r2'
: Invalid parent bone 'osa_door_l1' for 'door_l1'
: Invalid parent bone 'osa_door_l2' for 'door_l2'
: Invalid parent bone 'osa_kapota' for 'kapota'
: Invalid parent bone 'osa_kufr' for 'kufr'
ori_vil_lada_2105_rust: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_vil_lada_2105_rust: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_vil_lada_2105_rust: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_vil_lada_2105_rust: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
ori_vil_lada_2105_rust: Glass9_destruct - unknown animation source HitGlass9
ori_vil_lada_2105_rust: Glass10_destruct - unknown animation source HitGlass10
class HitPoints::HitLF2Wheel not found in ori_vil_lada_2105_rust
class HitPoints::HitRF2Wheel not found in ori_vil_lada_2105_rust
class HitPoints::HitLMWheel not found in ori_vil_lada_2105_rust
class HitPoints::HitRMWheel not found in ori_vil_lada_2105_rust
: Invalid parent bone 'osa_door_r1' for 'door_r1'
: Invalid parent bone 'osa_door_r2' for 'door_r2'
: Invalid parent bone 'osa_door_l1' for 'door_l1'
: Invalid parent bone 'osa_door_l2' for 'door_l2'
: Invalid parent bone 'osa_kapota' for 'kapota'
: Invalid parent bone 'osa_kufr' for 'kufr'
ori_bigRaft: Vr1 - unknown animation source wheel
ori_vil_originsmod_volvo_fl290: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_vil_originsmod_volvo_fl290: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_vil_originsmod_volvo_fl290: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_vil_originsmod_volvo_fl290: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
In Vehicle: origins_pack\vehicles\vil_volvo_fl290.p3d missing codriver get in direction point
class HitPoints::HitLF2Wheel not found in ori_vil_originsmod_volvo_fl290
class HitPoints::HitRF2Wheel not found in ori_vil_originsmod_volvo_fl290
class HitPoints::HitLMWheel not found in ori_vil_originsmod_volvo_fl290
class HitPoints::HitRMWheel not found in ori_vil_originsmod_volvo_fl290
350z_v: ABSwitch - unknown animation source ABSwitch
350z_blue: ABSwitch - unknown animation source ABSwitch
ori_originsmod_pickupold: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_originsmod_pickupold: kolaOchrana - unknown animation source kolaOchrana
ori_originsmod_pickupold: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_originsmod_pickupold: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
class HitPoints::HitLF2Wheel not found in ori_originsmod_pickupold
class HitPoints::HitRF2Wheel not found in ori_originsmod_pickupold
class HitPoints::HitLMWheel not found in ori_originsmod_pickupold
class HitPoints::HitRMWheel not found in ori_originsmod_pickupold
350z_white: ABSwitch - unknown animation source ABSwitch
350z_red: ABSwitch - unknown animation source ABSwitch
350z_pink: ABSwitch - unknown animation source ABSwitch
: Invalid parent bone 'osa_door_r1' for 'door_r1'
: Invalid parent bone 'osa_door_r2' for 'door_r2'
: Invalid parent bone 'osa_door_l1' for 'door_l1'
: Invalid parent bone 'osa_door_l2' for 'door_l2'
: Invalid parent bone 'osa_kapota' for 'kapota'
: Invalid parent bone 'osa_kufr' for 'kufr'
Array tex in bin\config.bin/CfgVehicles/ori_vil_originsmod_lublin_truck/Damage/ not even
ori_vil_originsmod_lublin_truck: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_vil_originsmod_lublin_truck: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_vil_originsmod_lublin_truck: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_vil_originsmod_lublin_truck: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
class HitPoints::HitLF2Wheel not found in ori_vil_originsmod_lublin_truck
class HitPoints::HitRF2Wheel not found in ori_vil_originsmod_lublin_truck
class HitPoints::HitLMWheel not found in ori_vil_originsmod_lublin_truck
class HitPoints::HitRMWheel not found in ori_vil_originsmod_lublin_truck
: Invalid parent bone 'osa_door_r1' for 'door_r1'
: Invalid parent bone 'osa_door_r2' for 'door_r2'
: Invalid parent bone 'osa_door_l1' for 'door_l1'
: Invalid parent bone 'osa_door_l2' for 'door_l2'
: Invalid parent bone 'osa_kapota' for 'kapota'
: Invalid parent bone 'osa_kufr' for 'kufr'
ORI_gunship_helicopter: smalltenthide - unknown animation source smalltenthide
ORI_gunship_helicopter: bigtenthide - unknown animation source bigtenthide
UH1Y_DZ: ObsTurret - unknown animation source ObsTurret
UH1Y_DZ: ObsGun - unknown animation source ObsGun
: Invalid parent bone 'osa_door_r1' for 'door_r1'
: Invalid parent bone 'osa_door_r2' for 'door_r2'
: Invalid parent bone 'osa_door_l1' for 'door_l1'
: Invalid parent bone 'osa_door_l2' for 'door_l2'
: Invalid parent bone 'osa_kapota' for 'kapota'
: Invalid parent bone 'osa_kufr' for 'kufr'
"End Mission"
ori_poldek_black: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_poldek_black: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_poldek_black: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_poldek_black: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
ori_poldek_black: Glass9_destruct - unknown animation source HitGlass9
ori_poldek_black: Glass10_destruct - unknown animation source HitGlass10
class HitPoints::HitLF2Wheel not found in ori_poldek_black
class HitPoints::HitRF2Wheel not found in ori_poldek_black
class HitPoints::HitLMWheel not found in ori_poldek_black
class HitPoints::HitRMWheel not found in ori_poldek_black
"DayZ Epoch: PRELOAD Functions\init [[L 1-1-A:1 REMOTE],any]"
"DayZ Epoch: MPframework inited"
No speaker given for Alexander Carter
UH1Y_DZE: ObsTurret - unknown animation source ObsTurret
UH1Y_DZE: ObsGun - unknown animation source ObsGun
ori_transit: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_transit: kolaOchrana - unknown animation source kolaOchrana (defined in AnimationSources::kolaOchrana)
ori_transit: predniOknoOchrana - unknown animation source predniOknoOchrana (defined in AnimationSources::predniOknoOchrana)
ori_transit: oknaOchrana - unknown animation source oknaOchrana (defined in AnimationSources::oknaOchrana)
ori_transit: Glass9_destruct - unknown animation source HitGlass9
ori_transit: Glass10_destruct - unknown animation source HitGlass10
class HitPoints::HitLF2Wheel not found in ori_transit
class HitPoints::HitRF2Wheel not found in ori_transit
class HitPoints::HitLMWheel not found in ori_transit
class HitPoints::HitRMWheel not found in ori_transit
ori_ScrapBuggy: pluhPredni - unknown animation source pluhPredni (defined in AnimationSources::pluhPredni)
ori_ScrapBuggy: HoodSwivel - unknown animation source FrontDamper
class HitPoints::HitRGlass not found in ori_ScrapBuggy
class HitPoints::HitLGlass not found in ori_ScrapBuggy
class HitPoints::HitLF2Wheel not found in ori_ScrapBuggy
class HitPoints::HitRF2Wheel not found in ori_ScrapBuggy
class HitPoints::HitLMWheel not found in ori_ScrapBuggy
class HitPoints::HitRMWheel not found in ori_ScrapBuggy
Fresnel k must be >0, given n=0.8,k=0
Fresnel k must be >0, given n=0.8,k=0
Group B 1-1-A (0x42b4d000) - network ID 2:2197
 - no main subgroup
Network simulation, time = 1.108
Group B 1-1-A (0x42b4d000) - network ID 2:2197
 - no main subgroup
Group B 1-1-A (0x42b4d000) - network ID 2:2197
 - no main subgroup
Group B 1-1-A (0x42b4d000) - network ID 2:2197
 - no main subgroup
Group B 1-1-A (0x42b4d000) - network ID 2:2197
 - no main subgroup
Group B 1-1-A (0x42b4d000) - network ID 2:2197
 - no main subgroup
Group B 1-1-A (0x42b4d000) - network ID 2:2197
 - no main subgroup
Group B 1-1-A (0x42b4d000) - network ID 2:2197
 - no main subgroup
"Origins Base Building Config initialized!"
DZAP: loading version 1.0.0
DZAP: loading config...
DZAP: loading function library...
DZAP: loading click actions handler...
DZAP: loading deploy anything addon...
BIKE: loading version 2.5.1 ...
DZAP: loading weapon mod addon...
WMOD v1.1.0: loading...
BIKE: waiting for login...
"DEBUG: loadscreen guard started."
DZAP: loading suicide addon...
SUICIDE v1.2.2: initializing...
DZAP: loading clothes addon...
TAKECLOTHES: initializing...
TAKECLOTHES: Added 61 base clothing matches...
DZAP: loading kits addon...
KITS: loading functions
KITS: waiting for player login
DZAP: loading map addon...
MAP MARKER: loading functions...
"Res3tting B!S effects..."
TAKECLOTHES: waiting for login...
"AC_functions version 1.03"
"Elevator script initialized"
"[PMC_CONTRACTOR]: Selected safezones/blacklisted areas for world: lingor"
"[PMC_CONTRACTOR]: Client waiting for Trader Position ..."
"[PMC_CONTRACTOR]: Client created local markers ..."
"PLAYER RESULT: true"
Duplicate weapon ItemGPS detected for Navy_SEAL_TL
Duplicate weapon ItemMap detected for Navy_SEAL_TL
Duplicate weapon ItemCompass detected for Navy_SEAL_TL
Duplicate weapon ItemWatch detected for Navy_SEAL_TL
Duplicate weapon ItemRadio detected for Navy_SEAL_TL
"PLOGIN: Login loop completed!"
"infiSTAR.de - randvar26 created (159.538)"
TAKECLOTHES: hooking...
KITS: checking if player is admin
"infiSTAR.de - randvar1 started (159.834)"
"infiSTAR.de - randvar1 created randvar27a (160.28)"
"infiSTAR.de - 30012015IAHAT343C - Successfully Loaded on Client ID2332 (160.28)"
"infiSTAR.de - randvar1 created randvar27 (160.28)"
Warning: z\addons\dayz_communityassets\models\razor.p3d:0 Error while trying to generate ST for points: 214, 349, 208
z\addons\dayz_epoch\models\steel_door_frame_ghost.p3d: No geometry and no visual shape
z\addons\dayz_epoch\models\steel_door_frame_ghost.p3d: No geometry and no visual shape 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By vbawol
      Open world survival mod set just two years after the mass extinction of billions of people. Those that remain are left with remnants of a once technological society. Try to survive, build, or explore your way through the harsh dynamic environment.
      Features
      Powerful persistence framework for Arma 3 with native Windows and Linux dedicated server support. Fully configurable script based security checks. Base Building re-envisioned for Arma 3 PhysX. Persistent secure and insecure storage devices. Upgradeable locking doors. Barter based economy and trading systems backed a single currency ¤ called "Krypto". Hostile Environment with several different types of antagonists, Air and Water temperature extremes, and Earthquakes. Hunting, Fishing, Tame Dogs, Explore & Loot: Wrecked ships, Abandoned vehicles and buildings, Perform task based missions and more! Open source APL-SA Epoch Survival MP gamemode. Open source APL-SA Modders resource configs and Class List. Assets can be used as a mod dependency on Steam workshop.
    • By McLovin
      NOTICE: Duplicate of another question posted in the wrong section.
       
      So I've been playing this server that has a number of mods installed. I've been playing it for quite a while with the only errors I've been getting are regarding a 45 round RPK mag being missing, but other than that I've had no errors or any issues loading. Upon trying to place a plot pole, nothing happens; absolutely nothing, like no preview shows up, no prompt saying "starting construction" or anything like that, just blankness. When I try to do it again it says "building already in progress" and I can't do anything, not even lock my vehicle. Is there anything that can be done, or that can explain this phenomenon? To further the understanding of how this came to be, I bought a plot pole from the trader in Trader City Stary and tried placing it near Stary, but not too near it (near a thicket of bushes in the distance). Upon right clicking and hitting the build option, that's when I face my issue.
    • By xtrmsnpr
      Hello to all.

      So, the old company from {grof communty} is back,this time away from that clan.We are operating by ourselves and we have opened a new dayz mod epoch server!
      https://steamcommunity.com/groups/kirterpos

      And we want you to join us and have fun!
      It runs 24/7

      Server IP:
      144.76.99.158:2600

      Name:
      Kir Terpos Playground Epoch|DAY/NIGHT|Startkit|Custom events

      Map: Chernarus

      Slots:
      30

      Location:
      Germany


      --------

      In order to join the server, you need to download through DZlauncher these files:

      dayz Epoch 1.0.6.2

      and of course ARMA 2OA beta patch (obsolete) through STEAM.
      and arma2oa beta version from steam options!

      ---------------

      Server will restart every 6hours (no notification yet).
      Server will backup database every 8hours.

      Server has custom random events.
      Server has day/night circle (UTC+6)
      You start with custom gear,ready for PVP with a shiny m9SD and some surprises as well.

      @Sandbird is an extra feature to this server
      ---
      Discord for you:
      https://discord.gg/684KQH

      Welcome all,and we hope you like it.

      kir terpos aka kir menios aka xtrmsnpr
    • By victorks
      my first work in editin :) https://uploaddeimagens.com.br/imagens/20180307202515_1-jpg https://uploaddeimagens.com.br/imagens/20180307202245_1-jpg DOWNLOAD: https://www.dropbox.com/s/oq97j7x59362kqe/CASTLEai.sqf?dl=0 AI M2 NEED WAI: https://pastebin.com/GJMnPvZP ON THE MAP: https://pastebin.com/cyqH9rNV  
       
      https://www.dropbox.com/s/oq97j7x59362kqe/CASTLEai.sqf?dl=0
       
       
       
       
       
       
       
       
       
    • By UGRexie
      Dayz epoch server 
      Name: Dayz Epoch Tavi -missions-Hardcore-unitedgamers   Connection Info: 193.111.186.225:2302 Map  - Taviana
      List of mods in sever , 
      -Single Coin Currency
      Plot For Life
      Plot Management
      Group Management
      Lift & Tow
      Service points
      Custom start gear
      No weight limit
      Slow zombies
      1 Step build
      Andre Convoys
      Para Spawn
      DZAI 
      Wai Missions
      DZMS Missions
       
      -Our Server is Hardcore ,
      -if you has a idea for a mod ask a admin , 
       
       
      -Server Restart every 4 hours 
      -Admin Teamspeak support, 
        ts- ts3.unitedgamers.eu
      Server Admin - Ask in ts for them if needed,
       [UG]Chieff,[UG]Rexie
  • Advertisement
  • Supporters
  • Discord

×
×
  • Create New...