Jump to content
  • 0

Guide To Install most common mods (1.0.5.1)


juandayz

Question

This is a Guide to install the most common mods. (Without Plot4life...but with persisten plot after player die using plotmanagement and a very usefull script to add you as owner the plot automatically).

This is NOT a support for any mod just a guide that i use to install all this mods in a fresh server.. thers some "fixes" for mods when his steps become a lil confuse.

And if u respect the order to install each mods can be most easy and quick.

 Mods to install:

Spoiler

-Single Currency 3.0 (most easy in the world XD)
-Advanced Trading 2.1 (very easy)
-Create customs fn_selfactions/compiles/variables. (easy and large)
-Admin Tools if u dont use infistar.(medium)
-Snap Pro (easy)
-Plot Management (hard)
-Server Configs (easy)
-Deploy Anything (Right Click actions) (easy)
-Group Management (medium but very large)
-ESSV2 (medium but very large)
-Tow&Lift (very easy)
-Rearm/Refuel/Repair (very easy)
-Safezones (very easy)
-DebugMonitor (easy)
-Autorestart (medium)
-Restric Building near defined areas (easy)

-Optional add you automatically as owner the plot when you plant it (easy)
-Dart (Rcon Tool used to kick and ban players..also to write msg through BEC) (easy)

-Optional: Infistar Fix for vehicles non spawned after bought/Others Servers Packages/Others Greats Mods

 

 

Follow this guide to get a epoch fresh server.

Spoiler

 

INSTALLING:

few tips before start:

Spoiler

*When you have to make any changes in your dayz_server.pbo (\@DayZ_Epoch_Server\addons\dayz_server\ )  Please once you finish remember repack again your dayz_server.pbo.

*Any kind of change maked in any kind of file inside \@DayZ_Epoch\addons\    Folder NOT suffer effect. If u need make a change into any of this files..you must drop the file into MPmissions/yourinstance/ folder or into dayz_Server.pbo  and change the call for it. Generally located into  CUSTOMS compiles.sqf or init.sqf somecase also fn_Selfactions.sqf and others.

*Everytime you finish the install of mod.. test everything...cuz if u proceed and something stop to work you will not know what happened.

1-Single Currency 3.0.
 

Spoiler

Download Mod from here: https://github.com/EpochSC/SingleCurrencyStorage

A: Overwrite all your Servers Files with single currency files and mod its done!.

 

*Important: we have to make a lil config: so go to: \MPMissions\DayZ_Epoch_11.Chernarus\ZSC\gold\

*open: ZSCconfig.sqf and change this line for default in true by false; like this:
 
 


// if TRUE: Overwrites yours fn_selfactions.sqf with default 1 + edits. | IF False: Change content yourself @ step D
ZSC_Overwrite_SelfActions = false;

 

2-Before proceed... we need  make some changes:

Spoiler

A-first unpack your dayz_server.pbo (located in YOUR SERVER ROOT\@DayZ_Epoch_Server\addons\)

B-find into \system\ folder your server_monitor.sqf (open it).

C-Find and change all words called "intentory" by "inventory"  (you will find 14 words).

D-Repack your .pbo

3-Now is time to make some customs files (fn_selfactions.sqf/compiles.sqf/variables.sqf).

Spoiler

A-So now go to YOURSERVERROOT\@DayZ_Epoch\addons\ and unpack your dayz_code.pbo

B-open \@DayZ_Epoch\addons\dayz_code\init\  and copy this two files:  compiles.sqf and variables.sqf

C-Now we have to create a new folder for this files so go to: YOURSERVERROOT\MPMissions\DayZ_Epoch_11.Chernarus\
and create a new folder called "custom". Then paste inside the compiles.sqf and variables.sqf

D-Now we have to drop the fn_selfactions.sqf .. go to \MPMissions\DayZ_Epoch_11.Chernarus\ZSC\compiles\
copy fn_selfActions.sqf and paste into YOURSERVERROOT\MPMissions\DayZ_Epoch_11.Chernarus\custom\ with the new compiles.sqf and variables.sqf.

 

4-Making the calls for this 3 new files: (fn_selfactions.sqf/compiles.sqf/variables.sqf).

Spoiler

A-First open your init.sqf and

find this line:


call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf";

change by:


call compile preprocessFileLineNumbers "custom\variables.sqf";

B-find this line:


call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";    

change by:


call compile preprocessFileLineNumbers "custom\compiles.sqf";    

C-Find this line:


progressLoadingScreen 1.0;

bellow paste:
 


fnc_usec_selfActions = compile preprocessFileLineNumbers "custom\fn_selfActions.sqf";

D-At least we need remove the original call for fn_Selfactions.sqf located into the new custom compiles.sqf
so proceed to open your custom compiles.sqf located into the custom folder and find this line:


fnc_usec_selfActions =           compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf";

change by: (or just remove the whole line)
 


//fnc_usec_selfActions =     compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf";

Note:(when you use a bar before a line this is equal to remove the line.So now the call stop to work and we only calling selfactions.sqf from init.sqf).

Note: For now on... everytime a mod ask for changes in compiles.sqf/variables.sqf or fn_selfactions.sqf we have to make this change into the files located in custom folder.

5-We already have SingleCurrency installed.. its time to

Install Advanced Trading:

Spoiler

download from here:
https://github.com/DevZupa/AdvancedTrading/releases/tag/v2.1

A-open the custom fn_selfactions.sqf located in custom folder and find this:


// Database menu
_buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false, "",""];
s_player_parts set [count s_player_parts,_buy];

above paste:


_buyV = player addAction ["<t color='#0059FF'>Advanced Trading</t>", "zupa\advancedTrading\init.sqf",(_traderMenu select 0), 999, true, false, "",""];
s_player_parts set [count s_player_parts,_buyV];

B- in description.ext, add the following on the very very bottom


#include "zupa\advancedTrading\advancedTrading.hpp"

C- open: \MPMissions\DayZ_Epoch_11.Chernarus\zupa\advancedTrading\config.sqf

uste true in this line:


Z_SingleCurrency = true; // Does your server use a single currency system.

 

D- (INFISTAR) Add the following exceptions to your antihack if u use infistar

AdvancedTrading
711197

Advanced trading its done!

 

6-ADMIN TOOLS (skip if u gonna use infistar or other adm mod).

Spoiler

download from here: https://github.com/noxsicarius/Epoch-Admin-Tools

Thers no much to explain in the install of this mod Follow the original guide to install it.. the only thing that can be confused is the step 9:

The original guide says:

Quote

If you use the normal battleye antiahck or similar do this step, if not then skip it.

    Find the antihack line in your init.sqf, it may or may not be the same as this

    [] execVM "\z\addons\dayz_code\system\antihack.sqf";

    if you have the line above replace it with this:

    // Epoch Admin Tools
    if ( !((getPlayerUID player) in AdminList) && !((getPlayerUID player) in ModList)) then
    {
      [] execVM "admintools\antihack\antihack.sqf"; // Epoch Antihack with bypass
    };

 

This means:
A-in your init.sqf find this line:


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

bellow paste:


// Epoch Admin Tools
if ( !((getPlayerUID player) in AdminList) && !((getPlayerUID player) in ModList)) then 
{
  [] execVM "admintools\antihack\antihack.sqf"; // Epoch Antihack with bypass
};

nothing more.

TIME TO TEST ALL THIS NEW MODS: go with traders, try to buy and sell using advanced trading menu, test money storage , restart your server
and see if the money still are into the storages.

7-INSTALL SNAP-PRO:

Spoiler

Download from here:https://github.com/raymix/SnapPro

A-open your Custom compiles.sqf (the one into custom folder).

B-Find this line:


player_build =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";

Replace by:


player_build =  compile preprocessFileLineNumbers "custom\snap_pro\player_build.sqf";

 

 

Find this other:


dayz_spaceInterrupt =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\dayz_spaceInterrupt.sqf";

replace by:


dayz_spaceInterrupt = compile preprocessFileLineNumbers "custom\snap_pro\dayz_spaceInterrupt.sqf";

 

 

And find this:


player_deathBoard =     compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\list_playerDeathsAlt.sqf";

bellow paste:


snap_build =       compile preprocessFileLineNumbers "custom\snap_pro\snap_build.sqf";

C-Open your description.ext (root of your MPMissions folder), add this to the very bottom:


#include "custom\snap_pro\snappoints.hpp"

D-Copy snap_pro folder inside your custom folder and you are done. Simple as that!

8-PLOT MANAGEMENT:

Spoiler

download from here:  https://github.com/DevZupa/PlotManagement  (use maintain version NON PLOT4life)

STEP 1 (Copying Files)

First, unpack your mission file.
Now copy the "plotManagement" folder to your mission directory.

STEP 2 (Modifying description.ext)
At the bottom, add


#include "plotManagement\defines.hpp"
#include "plotManagement\plotManagement.hpp"

STEP 3:

into  compiles.sqf: (the one into custom folder)

find:


if (!isDedicated) then {

paste bellow:


 /*Plot*/
    PlotGetFriends      = compile preprocessFileLineNumbers "plotManagement\plotGetFriends.sqf";
    PlotNearbyHumans    = compile preprocessFileLineNumbers "plotManagement\plotNearbyHumans.sqf";
    PlotAddFriend       = compile preprocessFileLineNumbers "plotManagement\plotAddFriend.sqf";
    PlotRemoveFriend    = compile preprocessFileLineNumbers "plotManagement\plotRemoveFriend.sqf";
    MaintainPlot        = compile preprocessFileLineNumbers "plotManagement\maintain_area.sqf";
    PlotPreview            = compile preprocessFileLineNumbers "plotManagement\plotToggleMarkers.sqf";
    PlotObjects         = compile preprocessFileLineNumbers "plotManagement\plotObjects.sqf"; // NEW
    /*Plot End*/


STEP 4 (Modifying variables.sqf)
After


//Player self-action handles
dayz_resetSelfActions = {

Add


s_player_plotManagement = -1;

STEP 5 (Modifying fn_selfActions.sqf) (the one into custom folder)

Find


if (s_player_maintain_area < 0) then {

Above that, add:


if (s_player_plotManagement < 0) then {
    _adminList = ["0152"]; // Add admins here if you admins to able to manage all plotpoles
    _owner = _cursorTarget getVariable ["CharacterID","0"];
    _friends = _cursorTarget getVariable ["plotfriends", []];
    _fuid = [];
    {
    _friendUID = _x select 0;
    _fuid = _fuid + [_friendUID];
    } forEach _friends;
    _allowed = [_owner];    
    _allowed = [_owner] + _adminList + _fuid;
    if(_owner == dayz_characterID || (getPlayerUID player) in _allowed)then{            
    s_player_plotManagement = player addAction ["<t color='#0059FF'>Manage Plot</t>", "plotManagement\initPlotManagement.sqf", [], 5, false];
    };
};


5 B:
Find


} else {
    player removeAction s_player_maintain_area;
    s_player_maintain_area = -1;
    player removeAction s_player_maintain_area_preview;
    s_player_maintain_area_preview = -1;
};

Replace that with:


} else {
    player removeAction s_player_plotManagement;
    s_player_plotManagement = -1;
    player removeAction s_player_maintain_area;
    s_player_maintain_area = -1;
    player removeAction s_player_maintain_area_preview;
    s_player_maintain_area_preview = -1;
};

Step 5-C
Find:


//Allow owners to delete modulars 
if(_isModular && (dayz_characterID == _ownerID)) then {
 if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { 
 _player_deleteBuild = true; }; }; 
//Allow owners to delete modular doors without locks 
if(_isModularDoor && (dayz_characterID == _ownerID)) then {
 if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {
 _player_deleteBuild = true; }; }; 


Replace with :


///Allow owners to delete modulars
if(_isModular) then {
        if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {
            _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], DZE_PlotPole select 0];
            _IsNearPlot = count (_findNearestPoles);
            _fuid  = [];
            _allowed = [];
            if(_IsNearPlot > 0)then{
                _thePlot = _findNearestPoles select 0;
                _owner =  _thePlot getVariable ["CharacterID","010"];
                _friends = _thePlot getVariable ["plotfriends", []];
                {
                  _friendUID = _x select 0;
                  _fuid  =  _fuid  + [_friendUID];
                } forEach _friends;
                _allowed = [_owner];    
                _allowed = [_owner] +  _fuid;   
                if (_owner == dayz_characterID || (getPlayerUID player) in _allowed) then {  // // If u want that the object also belongs to someone on the plotpole.
                    _player_deleteBuild = true;
                };                  
            }else{
                if(_owner == dayz_characterID)then{
                    _player_deleteBuild = true;
                };
            };                                        
        };
};
//Allow owners to delete modular doors without locks
if(_isModularDoor) then {
        if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {         
            _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], DZE_PlotPole select 0];
            _IsNearPlot = count (_findNearestPoles);
            _fuid  = [];
            _allowed = [];
            if(_IsNearPlot > 0)then{
                _thePlot = _findNearestPoles select 0;
                _owner =  _thePlot getVariable ["CharacterID","010"];
                _friends = _thePlot getVariable ["plotfriends", []];
                {
                  _friendUID = _x select 0;
                  _fuid  =  _fuid  + [_friendUID];
                } forEach _friends;
                _allowed = [_owner];    
                _allowed = [_owner] +  _fuid;   
                if (_owner == dayz_characterID || (getPlayerUID player) in _allowed) then { //  // If u want that the object also belongs to someone on the plotpole.
                    _player_deleteBuild = true;
                };                  
            }else{
                if(_owner == dayz_characterID)then{
                    _player_deleteBuild = true;
                };
            };                              
        };      
};

***Note: if u wanna remove the default maintain in red...  delete this part.***


if (s_player_maintain_area < 0) then {
              s_player_maintain_area = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false];
             s_player_maintain_area_preview = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTPREV"], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false];
         };

       
Step 5 D:

    Find: (near of the end)


{dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = [];
	s_player_repair_crtl = -1;
	{player removeAction _x} count s_player_combi;s_player_combi = [];
	dayz_myCursorTarget = objNull;
	s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull];
	{player removeAction _x} count s_player_parts;s_player_parts = [];
	s_player_parts_crtl = -1;
	{player removeAction _x} count s_player_lockunlock;s_player_lockunlock = [];
	s_player_lockUnlock_crtl = -1;
	player removeAction s_player_checkGear;
	s_player_checkGear = -1;
	player removeAction s_player_SurrenderedGear;
	s_player_SurrenderedGear = -1;
	player removeAction s_player_forceSave;
	s_player_forceSave = -1;
	player removeAction s_player_flipveh;
	s_player_flipveh = -1;
	player removeAction s_player_sleep;
	s_player_sleep = -1;
	player removeAction s_player_deleteBuild;
	s_player_deleteBuild = -1;
	player removeAction s_player_butcher;
	s_player_butcher = -1;

Above that, add


player removeAction s_player_plotManagement;
s_player_plotManagement = -1;


    
Step 5 E:
you need copy from  @Dayz_Epoch\addons\dayz_code\actions\ this files:
 

player_upgrade.sqf

player_buildingDowngrade.sqf

player_build.sqf"// DO NOT COPY AND PASTE THIS FILE ure using snap pro. u already have it. modify this file from snap_pro folder.
 
!!Make this copy and paste into : MPMISSIONS\YOUR INSTANCE\plotManagement\


Again go to your Custom fn_selfActions.sqf and find :


s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""];

change by:


s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "plotManagement\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""];


Now find:


s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "\z\addons\dayz_code\actions\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true, "",""];

Change by:


s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "plotManagement\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true, "",""];

 

STEP 6 (Modifying remove.sqf)

NO CHANGES NEEDED, the effect has been realised in 5 C. RESTORE TO THE NORMAL REMOVES.SQF
DONT DO NOTHING HERE..PROCEED.

STEP 7 (Modifying player_build.sqf, player_upgrade.sqf, and player_buildingDowngrade.sqf)
ALL THREE OF THESE FILES NEED THE SAME EDIT, MAKE SURE YOU DO ALL FILES!!!!
Remember you have  player_upgrade.sqf, and player_buildingDowngrade.sqf into plotManagement folder and player_build.sqf into snap_pro folder.

Find:


_friendlies     = player getVariable ["friendlyTo",[]];
// check if friendly to owner
if(_ownerID in _friendlies) then {
    _canBuildOnPlot = true;
};

Replace that with:


_friendlies = _nearestPole getVariable ["plotfriends",[]];
_fuid  = [];
{
      _friendUID = _x select 0;
      _fuid  =  _fuid  + [_friendUID];
} forEach _friendlies;
_builder  = getPlayerUID player;
// check if friendly to owner
if(_builder in _fuid) then {
    _canBuildOnPlot = true;
};

 

STEP 8: This one is in your dayz_server.pbo (Modifying server_monitor.sqf)

8 A
Find


_object setVariable ["ObjectID", _idKey, true];

After that, add


if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then {
_object setVariable ["plotfriends", _inventory, true];
};

STEP -8 B

Find


if (count _inventory > 0) then {

Replace that with:


if ((count _inventory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ")) then {

 

STEP 9 Again, this is in your dayz_server.pbo (Modifying server_updateObject.sqf)
Find:


_inventory = [
getWeaponCargo _object,
getMagazineCargo _object,
getBackpackCargo _object
];

Replace that with:


if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{
    _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item
} else {
    _inventory = [
    getWeaponCargo _object,
    getMagazineCargo _object,
    getBackpackCargo _object
    ];
};

STEP 10: open plotObjects.sqf  located in plotManagement folder and.

replace:


_range = DZE_PlotPole select 0;
_count = count ((getPosATL player) nearObjects ["All",_range]);

by:


_range = DZE_PlotPole select 0;
_cptarget = player;
_objectClasses = DZE_maintainClasses;
_objects = nearestObjects [_cptarget, _objectClasses, _range];
 
_objectsnearcount = count _objects;
_count = _objectsnearcount;

STEP 11. Repack your .pbo

STEP 12: open your custom variables.sqf (located in custom folder)

FIND:


if(isNil "DZE_DamageBeforeMaint") then {
    DZE_DamageBeforeMaint = 0.9;
};

Replace by:


if(isNil "DZE_DamageBeforeMaint") then {
    DZE_DamageBeforeMaint = 0.1; //or 0 to get maintain option all time.
};

STEP 13:

into your serverroot/instance_11.chernarus or other/  find and open your HiveExt.ini

change this line:

CleanupPlacedAfterDays = -1   // remove the , at start of the line. and place -1

**and remember run as query the sql damageonage events.

STEP 14:INFISTAR users


Add the following number to the dialogs array:

711194

and Add:

"PlotManagement"

to

_cMenu =

PLOT MANAGEMENT ITS DONE! MAKE A TEST.

 

9-Time to make some configs:

This is for prevent players stuck on loading screen:

Spoiler

open your custom compiles.sqf (the one located in custom folder)

find this lines:


// 120 sec timeout (12000 * 0.01)
        while { _timeOut < 12000 } do {
            if (dayz_clientPreload && dayz_authed) exitWith { diag_log "PLOGIN: Login loop completed!"; };

replace by:


// 120 sec timeout (12000 * 0.01)
        while { _timeOut < 12000 } do {
            if (dayz_clientPreload && dayz_authed) exitWith { 
					diag_log "PLOGIN: Login loop completed!"; 
					endLoadingScreen;
				 };

 

 

Spoiler

open your init.sqf

find:


dayz_minpos = -1;
dayz_maxpos = 16000;

paste bellow:


DZE_SelfTransfuse = true; // default value //allow self transufe
DZE_StaticConstructionCount = 1; //reduce time to build only 1 step
DZE_PlayerZed = false; //remove player chance to spawn as zed.

Find:
MaxVehicleLimit = 300; // Default = 50

300 its a LOT!!!!!!!! reduce this value for less vehicles spawn.

find:
MaxDynamicDebris = 200; // Default = 100

also reduce this value.

 

find:

dayz_maxLocalZombies = 50; // Default = 30

This is a lot of zombies reduce this value please :)

 

Now this is for config your server difficulty (most detailed..i will use veteran difficulty.. check your hiveext.ini to see what youre using)

Open your ServerROOt\instance_11_Chernarus\Users\instance_11_Chernarus\  "instance_11_Chernarus.ArmA2OAProfile"

at very bottom paste:


class Difficulties
{
    class Veteran
    {
        class Flags
        {
            3rdPersonView=1;
            armor=0;
            autoAim=0;
            autoGuideAT=0;
            autoSpot=0;
            cameraShake=1;
            clockIndicator=0;
            deathMessages=1;
            enemyTag=0;
            friendlyTag=0;
            hud=1;
            hudGroupInfo=1;
            hudPerm=0;
            hudWp=1;
            hudWpPerm=0;
            map=1;
            netStats=1;
            tracers=0;
            ultraAI=0;
            unlimitedSaves=0;
            vonId=0;
            weaponCursor=1;
        };
        skillFriendly=1;
        precisionFriendly=1;
        skillEnemy=0.89999998;
        precisionEnemy=0.75;
    };
};
sceneComplexity=300000;
viewDistance=1600;
terrainGrid=10;
volumeCD=6.5;
volumeFX=8.5;
volumeSpeech=5.5;
volumeVoN=6.5;
vonRecThreshold=0.029999999;

and change values if u dont like this.

10-INSTALL deploy anything 2.8.1

Spoiler

Download from original post:

https://epochmod.com/forum/topic/13603-release-1051-deploy-anything-281-now-with-epoch-building-customizable-db-saving-plot-vehiclesbuildings-packing/

Thers nothing to explain here, the guide is pretty simple and easy to install.

11-INSTALL GROUP MANAGEMENT.

Spoiler

Download from original post:http://opendayz.net/threads/release-dzgm-dayz-group-management.20293/
This guide is very easy i just wanna say:  In step 6.. you already have a custom ui_selectslot.sqf located in: \MPMissions\DayZ_Epoch_11.Chernarus\overwrites\click_actions\
so for step 6 make the changes into this file.

this change:
2. In ui_selectSlot.sqf (Located in \MPMissions\DayZ_Epoch_11.Chernarus\overwrites\click_actions\) add this after the for loop, but above _pos set [3,_height];, around line 57:

See the change with a bunch of code above to get a reference:


//### BEGIN MODIFIED CODE: extra click actions
    {
        private["_classname","_text","_execute","_condition"];
        _classname   = _x select 0;
        _text        = _x select 1;
        _execute     = _x select 2;
        _condition   = _x select 3;
        // if the clicked item matches, then assign the script call and display text
        if(_item == _classname && (call compile _condition)) then {
            _menu = _parent displayCtrl (1600 + _numActions);
            _menu ctrlShow true;
            _height = _height + (0.025 * safezoneH);
            uiNamespace setVariable ['uiControl', _control];
            _menu ctrlSetText _text;
            _menu ctrlSetEventHandler ["ButtonClick",_execute];
            _numActions = _numActions + 1;
        };
    } forEach DZE_CLICK_ACTIONS;
     //### END MODIFIED CODE: extra click actions
    
    
     ////////////GROUP MANAGEMENT CHANGE START HERE/////////
    
    _erc_cfgActions = (missionConfigFile >> "ExtraRc" >> _item);
    _erc_numActions = (count _erc_cfgActions);
    if (isClass _erc_cfgActions) then {
     for "_j" from 0 to (_erc_numActions - 1) do
     {
       _menu =  _parent displayCtrl (1600 + _j + _numActions);
       _menu ctrlShow true;
       _config =  (_erc_cfgActions select _j);
       _text =  getText (_config >> "text");
       _script =  getText (_config >> "script");
       _height = _height + (0.025 * safezoneH);
       uiNamespace setVariable ['uiControl', _control];
       _menu ctrlSetText _text;
       _menu ctrlSetEventHandler ["ButtonClick",_script];
      };
   };
    //GROUP MANAGEMENT CHANGE END HERE//
  

 

12:INSTALL ESSV2 (Spawn slection)

Spoiler

Download from original post: http://opendayz.net/threads/release-essv2-enhanced-spawn-selection-v2.21547/  

THIS IS ANOTHER AND PRETTY EASY GUIDE WELL DONE, SO DONT NEED EXTRA INFO TO PROCEED. JUST FOLLOW THE ORIGINAL GUIDE.

13-INSTALL TOW & LIFT.

Spoiler

Download and follow the original guide:
https://epochmod.com/forum/topic/14934-logistic-tow-lift/

14-INSTALL :REARM - REFUEL -REPAIR

Spoiler

VERY VERY SIMPLE YOU CAN FOLLOW THE ORIGINAL GUIDE AND DOWNLOAD FROM HERE:
https://epochmod.com/forum/topic/3935-release-vehicle-service-point-refuel-repair-rearm-script/

15-MAKE A SAFEZONE.sqf

Spoiler

If ure using infistar and you already have a safezone.sqf skip this step.

A-First inside your custom folder you need create another folder called "others"
Now into "others" folder create a new sqf called "safezone" and paste this code inside:

Spoiler


/*
   by: http://infiSTAR.de || http://DayzAntiHack.com
   *updated on 24.12.2014
    
    Instructions:
    1. Copy paste this pastebin code into a file called SafeZone.sqf - save the file.
    2. Now extract your mpmission pbo and put the SafeZone.sqf into the extracted folder.
    3. Open the init.sqf of the mpmission.
    4. At the bottom of the file add
    [] execVM 'SafeZone.sqf';
    5. Save the init.sqf, repack your mpmission, upload it to your gameserver and restart your server
*/
USE_CANBUILD = false;        // if you don't want to define your own positions
USE_TraderCity = false;    //    if you don't want to define your own positions (Epoch 1.0.5)
USE_POSITIONS = true;    // to use own positions and radius
USE_AI_REMOVER = false;    // use this to remove Missionbots (AI) within 100m of a player if the player is in a SafeZone
USE_AntiSteal = true;    // use this to block opening gear if another player is within 3m!
USE_SPEEDLIMIT = true;    // very secret function, nobody is supposed to find out what it does.
    SPEEDLIMIT = 25;        // Only used if USE_SPEEDLIMIT is true.
USE_SIGNS = false;        // use this to build signs around the SafeZone
LOG_EnterLeave = true;    // This will log to your .rpt when a player enters or leaves a SafeZone! (only works with infiSTAR.de Admintools / AntiHack)
/* You can use USE_CANBUILD or/and (works together) the custom positions below (USE_POSITIONS) [position or zone,radius] */
_infiSZ =
[
    [[6325.6772,7807.7412,0],150,true],//stary
    [[4063.4226,11664.19,0],150,true],//bash
    [[11447.472,11364.504,0],150,true],//klen
    [[1606.6443,7803.5156,0],150,true],//bandit
    [[12944.227,12766.889,0],150,true],//hero
    [[4361.4937,2259.9526,0],50,true],//wholesalerSouth
    [[12060,12640,0],200,true]//air dealear
];
if (isServer) exitWith
{
    if (USE_SIGNS) then
    {
        {
            _center = _x select 0;
            _radius = _x select 1;
            _lSign = _x select 2;
            if (_lSign) then
            {
                for '_i' from 0 to 360 step (270 / _radius)*2 do
                {
                    _location = [(_center select 0) + ((cos _i) * _radius), (_center select 1) + ((sin _i) * _radius),0];
                    _dir = ((_center select 0) - (_location select 0)) atan2 ((_center select 1) - (_location select 1));
                    _object = createVehicle ['Sign_sphere100cm_EP1', _location, [], 0, 'CAN_COLLIDE'];
                    //    _object = createVehicle ['SignM_FARP_Winchester_EP1', _location, [], 0, 'CAN_COLLIDE'];
                    //    _object setVehicleInit 'this setObjectTexture [0,''Addons\SafeZones\sign.paa''];';
                    _object setDir _dir;
                };
            };
        } forEach _infiSZ;
    };
};
waitUntil {((!isNil 'dayz_animalCheck') || (!isNil 'dayz_medicalH') || (!isNil 'dayz_slowCheck') || (!isNil 'dayz_gui'))};
if (isNil 'inSafeZone') then { inSafeZone = false; } else { if (typename inSafeZone != 'BOOL') then { inSafeZone = false; }; };
[_infiSZ] spawn {
    _infiSZ = _this select 0;
    _startSafeZone =
    {
        if (isNil 'outNow') then
        {
            _msg = 'You entered a Safe Zone!';
            hint _msg;
            taskHint [_msg, [0,1,0,1], 'taskDone'];
            inNow = nil;
            outNow = true;
            
            if (LOG_EnterLeave) then
            {
                PVDZE_send = [player,'SafeZoneState',[1]];
                publicVariableServer 'PVDZE_send';
            };
        };
        player_fired = {
            deleteVehicle (nearestObject [_this select 0,_this select 4]);
            cutText ['You can not fire in a SafeZone!','WHITE IN'];
        };
        wild_spawnZombies = {};
        zombie_generate = {};
        
        fnc_usec_damageHandler = {};
        player removeAllEventHandlers 'handleDamage';
        player addEventHandler ['handleDamage', {false}];
        player allowDamage false;
        _veh = vehicle player;
        _szs = _veh getVariable ['inSafeZone',0];
        if (_szs == 0) then
        {
            _veh setVariable ['inSafeZone',1,true];
            if (player != _veh) then
            {
                _veh removeAllEventHandlers 'Fired';
                _veh addEventHandler ['Fired', {_this call player_fired;}];
                {
                    _x removeAllEventHandlers 'Fired';
                    _x addEventHandler ['Fired', {_this call player_fired;}];
                } forEach (crew _veh);
                vehicle_handleDamage = {false};
                _veh removeAllEventHandlers 'HandleDamage';
                _veh addeventhandler ['HandleDamage',{ _this call vehicle_handleDamage } ];
                _veh allowDamage false;
            };
        };
        _notInSafeZone =
        [
            'MAAWS','RPG7V','M136','RPG18','STINGER',
            'MeleeHatchet_DZE','MeleeHatchet','MeleeCrowbar','MeleeMachete','MeleeFishingPole','MeleeSledge',
            'MeleeBaseBallBatNails','MeleeBaseBallBatBarbed','MeleeBaseBallBat'
        ];
        _cwep = currentWeapon player;
        if (_cwep in _notInSafeZone) then
        {
            _swep = '';
            {
                if ((getNumber (configFile >> 'CfgWeapons' >> _x >> 'Type')) == 2) exitWith
                {
                    _swep = _x;
                };
            } forEach (weapons player);
            if (_swep == '') then
            {
                player playActionNow 'PutDown';
                _iPos = getPosATL player;
                _radius = 1;
                _removed = ([player,_cwep,1] call BIS_fnc_invRemove);
                if (_removed == 1) then
                {
                    _item = createVehicle ['WeaponHolder', _iPos, [], _radius, 'CAN_COLLIDE'];
                    _item addWeaponCargoGlobal [_cwep,1];
                };
            }
            else
            {
                player selectweapon _swep;
            };
        };
    };
    _endSafeZone =
    {
        if (isNil 'inNow') then
        {
            if (str fnc_usec_damageHandler == '{}') then
            {
                _msg = 'You left the Safe Zone!';
                hint _msg;
                taskHint [_msg, [1,0,0.1,1], 'taskFailed'];
            };
            inNow = true;
            outNow = nil;
            
            if (LOG_EnterLeave) then
            {
                PVDZE_send = [player,'SafeZoneState',[0]];
                publicVariableServer 'PVDZE_send';
            };
        };
        wild_spawnZombies = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\wild_spawnZombies.sqf';
        zombie_generate = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\zombie_generate.sqf';
        
        
        player_fired = {
            _this call compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\player_fired.sqf';
            _unit = _this select 0;
            _weapon = _this select 1;
            _muzzle = _this select 2;
            _mode = _this select 3;
            _ammo = _this select 4;
            _magazine = _this select 5;
            _projectile = _this select 6;
            _screenToWorld = screenToWorld [0.5,0.5];
            _near = _screenToWorld nearEntities ['AllVehicles',100];
            {
                if (isPlayer _x) then
                {
                    _szs = _x getVariable ['inSafeZone',0];
                    if (_szs == 1) then
                    {
                        deleteVehicle (nearestObject [_unit,_ammo]);
                    };
                };
            } forEach _near;
        };
        
        fnc_usec_unconscious = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_unconscious.sqf';
        object_monitorGear = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\object_monitorGear.sqf';
        vehicle_handleDamage = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\vehicle_handleDamage.sqf';
        
        _veh = vehicle player;
        _szs = _veh getVariable ['inSafeZone',0];
        if (_szs == 1) then
        {
            _veh setVariable ['inSafeZone',0,true];
            if (player != _veh) then
            {
                _veh removeAllEventHandlers 'HandleDamage';
                _veh addeventhandler ['HandleDamage',{ _this call vehicle_handleDamage } ];
                _veh allowDamage true;
            };
        };
        
        _end = false;
        if (isNil 'gmadmin') then
        {
            _end = true;
        }
        else
        {
            if (gmadmin == 0) then
            {
                _end = true;
            };
        };
        if (_end) then
        {
            player allowDamage true;
            fnc_usec_damageHandler = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_damageHandler.sqf';
            player removeAllEventHandlers 'HandleDamage';
            player addeventhandler ['HandleDamage',{_this call fnc_usec_damageHandler;} ];
        };
    };
    while {1 == 1} do
    {
        if (isNil 'inSafeZone') then { inSafeZone = false; } else { if (typename inSafeZone != 'BOOL') then { inSafeZone = false; }; };
        _state = false;
        if (isNil 'USE_POSITIONS') then { USE_POSITIONS = false; } else { if (typename USE_POSITIONS != 'BOOL') then { USE_POSITIONS = false; }; };
        if (USE_POSITIONS) then
        {
            {
                _z = _x select 0;
                _r = _x select 1;
                if ((vehicle player) distance _z < _r) then {_state = true;};
            } forEach _infiSZ;
        };
        if (isNil 'USE_CANBUILD') then { USE_CANBUILD = true; } else { if (typename USE_CANBUILD != 'BOOL') then { USE_CANBUILD = true; }; };
        if (USE_CANBUILD) then
        {
            if (isNil 'canbuild') then { canbuild = true; } else { if (typename canbuild != 'BOOL') then { canbuild = true; }; };
            if (!canbuild) then {_state = true;};
        };
        if (isNil 'USE_TraderCity') then { USE_TraderCity = true; } else { if (typename USE_TraderCity != 'BOOL') then { USE_TraderCity = true; }; };
        if (USE_TraderCity) then
        {
            if (isNil 'isInTraderCity') then { isInTraderCity = false; } else { if (typename isInTraderCity != 'BOOL') then { isInTraderCity = false; }; };
            if (isInTraderCity) then {_state = true;};
        };
        if (_state) then
        {
            inSafeZone = true;
            call _startSafeZone;
            {
                if (!isNull _x) then
                {
                    if !(isPlayer _x) then
                    {
                        deletevehicle _x;
                    };
                };
            } forEach ((vehicle player) nearEntities ['zZombie_Base',50]);
            
            if (isNil 'USE_AI_REMOVER') then { USE_AI_REMOVER = false; } else { if (typename USE_AI_REMOVER != 'BOOL') then { USE_AI_REMOVER = false; }; };
            if (USE_AI_REMOVER) then
            {
                {
                    if ((!isNull group _x) && (getPlayerUID _x == '')) then
                    {
                        deleteVehicle _x;
                    };
                } forEach (player nearEntities ['Man',100]);
            };
        }
        else
        {
            inSafeZone = false;
        };
        uiSleep 2;
        if (!inSafeZone) then
        {
            call _endSafeZone;
        };
    };
};
if ((USE_AntiSteal) || (USE_SPEEDLIMIT)) then
{
    [] spawn {
        _USE_AntiSteal = USE_AntiSteal;
        _USE_SPEEDLIMIT = USE_SPEEDLIMIT;
        _speedlimit = SPEEDLIMIT;
        while {1 == 1} do
        {
            if (inSafezone) then
            {
                if (_USE_AntiSteal) then
                {
                    _cnt = {isPlayer _x && _x != player} count (player nearEntities [['CAManBase'],4]);
                    if ((_cnt > 0) && (!isNull (findDisplay 106))) then
                    {
                        (findDisplay 106) closedisplay 0;
                        closeDialog 0;closeDialog 0;closeDialog 0;
                        _log = format['%1 You are not allowed to open Gear while near another player!',name player];
                        cutText [_log,'PLAIN'];
                        hint _log;
                    };
                };
                if (_USE_SPEEDLIMIT) then
                {
                    _obj = vehicle player;
                    if !(_obj isKindOf 'Plane') then
                    {
                        _speed = abs speed _obj;
                        if ((_obj != player) && (_speed > _speedlimit)) then
                        {
                            _vel = velocity _obj;
                            _x = 0.8;
                            if (_speed > 50) then {_x = 0.1;};
                            _velNew = [(_vel select 0) * _x, (_vel select 1) * _x,(_vel select 2) * _x];
                            _obj SetVelocity _velNew;
                        };
                    };
                };
            }
            else
            {
                uiSleep 2;
            };
            uiSleep .01;
        };
    };
                  };

 

B-Now its time to go to your init.sqf to make the call to this new safezone.sqf

At very bottom of init.sqf paste:



//SafeZone///////////////////////////////////////////////////
[] execVM "custom\others\safezone.sqf";
/////////////////////////////////////////////////////////////

 

16-MAKE YOUR DEBUG MONITOR. (toogle with scroll menu) SKIP IF U ALREADY HAVE ANOTHER

Spoiler

A: Now into custom\others\  create a new sqf called "debug_init"  and iside paste this code:




if (isnil "debuginit") then {debuginit = true;};

    if (debuginit) then
    {
        []spawn
        {
            private["_veh", "_idb", "_idb2"];
            _idb = -1;
            while {alive player} do
            {
                if (_idb == -1) then
                {
                    _idb = (vehicle player) addaction [("<t color=""#ff0000"">" + ("Toggle debug") +"</t>"),"custom\others\custom_monitor.sqf","",0,false,true,"",""];
                    _veh = vehicle player;
                };
                if (_veh != vehicle player) then
                {
                    _veh removeAction _idb;
                    _idb = -1;      
                };
                Sleep 2;
            };
        };
        debuginit = false;
    };
    waituntil {!alive player ; sleep 2;};
    debuginit = true;

B:Now create another sqf into the same folder called "custom_monitor" and inside paste this code:

Spoiler

if (isNil "debugMonitor") then { debugMonitor = false; };
        if (debugMonitor) then {
            debugMonitor = false;
            hintSilent "";
        } else {
    debugMonitor = true;
private["_time","_hours","_minutes","_restartTime"];

/************************* CONFIG *************************/
    _restartTime = 180; //total time before server restart (3hrs = 180 minutes)    
/************************* CONFIG *************************/

while {debugMonitor} do {

_time = (round(_restartTime-(serverTime)/60));     //Want it to count up instead of down? use _time = (round serverTime)/60;
    _hours = (floor(_time/60));
    _minutes = (_time - (_hours * 60));
    
    switch(_minutes) do
    {
        case 9: {_minutes = "09"};
        case 8: {_minutes = "08"};
        case 7: {_minutes = "07"};
        case 6: {_minutes = "06"};
        case 5: {_minutes = "05"};
        case 4: {_minutes = "04"};
        case 3: {_minutes = "03"};
        case 2: {_minutes = "02"};
        case 1: {_minutes = "01"};
        case 0: {_minutes = "00"};
    };
_pic = (gettext (configFile >> 'CfgVehicles' >> (typeof vehicle player) >> 'picture'));
if (player == vehicle player) then
{
_pic = (gettext (configFile >> 'cfgWeapons' >> (currentWeapon player) >> 'picture'));
}else{
_pic = (gettext (configFile >> 'CfgVehicles' >> (typeof vehicle player) >> 'picture'));};

hintSilent parseText format ["
    <t size='1' font='Bitstream' align='left' color='#FFCC00'>SERVER NAME HERE</t>
    <br/>
    <t size='1' font='Bitstream' align='left' color='#FFCC00'>TS HERE:</t>
    <br/>
    <t size='1' font='Bitstream' align='center' color='#ff5200'>%1</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Players Online: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%2</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>FPS: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%3</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Blood: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%4</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Humanity: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%5</t><br/>
    <br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Murders: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%6</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Bandit Kills:  </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%7</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Zombie Kills: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%8</t><br/>
    <t color='#FFCC00' size='1' font='Bitstream' align='left'>Restart In: </t><t color='#FFCC00' size='1' font='Bitstream' align='right'>%9Hr(s) %10Min(s)</t><br/>
    <img size='3' image='%11'/><br/>    
    ",

(name player),//1
(count playableUnits),//2
(round diag_fps),//3
(player getVariable['USEC_BloodQty', r_player_blood]),//4
(player getVariable['humanity', 0]),//5
(player getVariable['humanKills', 0]),//6
(player getVariable['banditKills', 0]),//7
(player getVariable['zombieKills', 0]),//8
_hours, // Used on line 52 to display hours //9
_minutes, // Used on line 52 to display minutes //10
_pic//11
];
sleep 2;
};
};

**take a look in this line.. you will need put your server name:



<t size='1' font='Bitstream' align='left' color='#FFCC00'>SERVER NAME HERE</t>

 

**and in this line your TS address:



<t size='1' font='Bitstream' align='left' color='#FFCC00'>TS HERE:</t>


C-Now its time to go to your init.sqf and make the call for the debug so open init.sqf

find this lines:
 



if (!isDedicated) then {
    //Conduct map operations

and bellow paste:   



    // Debug Monitor
[] execVM "custom\others\debug_init.sqf";
[] execVM "custom\others\custom_monitor.sqf";

 

AND DONE!.

17-AUTORESTART FILES:

Spoiler

here you have my files: http://www.mediafire.com/file/6afp6inam56tfq2/autorestart.rar

1-Drop battleye folder into serverRoot\instance_11_Chernarus\

2-The others 3 .bat files must be in your serverRoot-

3-now you need change the paths in the files:

A-open "monitor.bat" (located in your serverroot) and change the paths for your server route.
B-open "Premod_restart.bat" (located in your serverroot) and change the paths for your server route.
C-open "BEC_Control_Epoch.bat" (located in serverRoot\instance_11_Chernarus\BattlEye\Bec) and change the paths for your server route.
D-open "Config.cfg"(located in YourServerRoot\instance_11_Chernarus\BattlEye\Bec\Config\) and change the paths for your server route.

E-open "Shedule.xml" (located in YourServerRoot\instance_11_Chernarus\BattlEye\Bec\Config\)
and  needs add this at every last shedule id job:


<cmd>C:\Users\Administrador\Desktop\Dayz Epoch Server\Premod_restart.bat</cmd>  

 (change for ur server paths).

My example:


 <Scheduler>

<!-- 12:00 AM restart -->

<job id="0">
    <time>23:45:00</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>say -1 This server will restart in 15 minutes</cmd>
    <cmdtype>0</cmdtype>
</job>

<job id="1">
    <time>23:55:00</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>say -1 This server will restart in 5 minutes</cmd>
    <cmdtype>0</cmdtype>
</job>

<job id="2">
    <time>23:59:00</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>say -1 This server will restart in 1 minute, Log out now!</cmd>
    <cmdtype>0</cmdtype>
</job>

<job id="3">
    <time>00:00:00</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>#shutdown</cmd>
    <cmdtype>0</cmdtype>
</job>

<job id="4">
    <time>00:00:10</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>C:\Users\Administrador\Desktop\Dayz Epoch Server\Premod_restart.bat</cmd>
    <cmdtype>1</cmdtype>
</job>

<!-- End 12:00 AM restart -->

***Do the same for each job id group.

*******************************IMPORTANT!:For now on.. start your server using "monitor.bat"++++++++++++++

18-Restrict Buildings Near Defined Areas ( i forgot this great complement..remember this when BiggEgg give the "like" sory! ).

Spoiler

Download from here:

Thers no much to say about it.Pretty easy and nice explained..  just  make the changes into player_build.sqf the one located into snap_pro folder.

19-OPTIONAL ADD YOU AUTOMATICALLY AS OWNER WHEN YOU PUT THE PLOT.

Spoiler

Open the player_build.sqf the one located into snap_pro folder:

1-At the top of player_build.sqf, add this to the private array, inmediataly after private [


"_nearPlots", "_selectedPlot", "_onPlot", "_uidPlayer", "_playerName",

so its looks:

private ["_nearPlots", "_selectedPlot", "_onPlot", "_uidPlayer", "_playerName","the rest of the original player build variables"...];

2-find this block of code (around line 667):

Spoiler


_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];

// fire?
if(_tmpbuilt isKindOf "Land_Fire_DZ") then {
	_tmpbuilt spawn player_fireMonitor;
} else {
	PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,_vector],_classname];
	publicVariableServer "PVDZE_obj_Publish";
};

Replace that block with this:

Spoiler


_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];

if (_tmpbuilt isKindof "Plastic_Pole_EP1_DZ") then {
	PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,_vector],_classname];
	publicVariableServer "PVDZE_obj_Publish";
	_nearPlots = nearestObjects [player, ["Plastic_Pole_EP1_DZ"],15];
	_selectedPlot = _nearPlots select 0;
	_onPlot = _selectedPlot getVariable ["plotfriends",[]];
	_uidPlayer = getPlayerUID player;
	_playerName = name player;
	_onPlot = _onPlot  + [[_uidPlayer,_playerName]];
	_selectedPlot setVariable ["plotfriends", _onPlot, true];
	PVDZE_veh_Update = [_selectedPlot,"gear"];
	publicVariableServer "PVDZE_veh_Update";
	if (isServer) then {
		PVDZE_veh_Update call server_updateObject;
	};
} else {
	if(_tmpbuilt isKindOf "Land_Fire_DZ") then {
		_tmpbuilt spawn player_fireMonitor;
	} else {
		PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,_vector],_classname];
		publicVariableServer "PVDZE_obj_Publish";
	};
};

Done. Original post:

Spoiler

 

 

20-INSTALL DART (KICK/BAN/MSG Players).

Spoiler

Download from here: http://www.dayztv.com/apps/download/dayz-dart-admin-rcon-tool-windows/

Original post:

Well here to get it work.

Once you install DART:

You will see 3 options at left of the screen:

HOST/PORT/PASSWORD

Host:  here you need entry your server ip. (if ure runing DART at same machine that server is running then use 127.0.0.1  (the @localhost)

Port: your server port  in my case 2302

Password: Here you need to define a password.. its not your DB password.. is your BEC password so go here: SERVER ROOT\instance_11_Chernarus\BattlEye\

and open the file called BEServer.cfg  you will see this:


RConPassword password123
MaxPing 250

"password123" it for default please change it.  for example: mygirlfriendshowersucks

"MaxPing" its the limit for BEC before kick a player automatically by high ping.

Now go back to your dart  and in password field put your new pass.. in this example mygirlfriendshowersucks

So its look:

Host: 127.0.0.1 (for a server running in a same machine with dart).

Port: 2302

Password: mygirlfriendshowersucks

now press connect! ( your server and your BEC must be running)  and its done!

Go to setting to adjust some options.

 

**IMPORTANT** IF URE INFISTAR USER AND BOUGHT VEHICLES NOT SPAWNING YOU CAN TRY THIS FIX by @zachtucker18  shared by @sercanatici

Spoiler

..."After a lot of looking around to find out the FIX, and i finally find out a way to fix it."...

Its the infistar issue. i changed the Ah.sql file

        'PVDZE_veh_Publish2' addPublicVariableEventHandler
        {
            _array = (_this select 1);
            _worldspace = _array select 0;
            _class = _array select 1;
            _activatingPlayer = _array select 5;
            _pos = _worldspace select 1;
            _txt = getText (configFile >> 'CfgVehicles' >> _class >> 'displayName');
            if(isNull _activatingPlayer || {!isPlayer _activatingPlayer})exitWith {
                _log = format['Vehicle spawned without valid player %1 (%2) | Position: %3',_class,_txt,_pos];
                diag_log ('infiSTAR.de Log: '+_log);
            };


'PVDZE_veh_Publish2' addPublicVariableEventHandler
		{
			_array = (_this select 1);
			_worldspace = _array select 1;
			_class = _array select 2;
			_activatingPlayer = _array select 5;
			_pos = _worldspace select 1;
			_txt = getText (configFile >> 'CfgVehicles' >> _class >> 'displayName');
			if(isNull _activatingPlayer || {!isPlayer _activatingPlayer})exitWith {
				_log = format['Vehicle spawned without valid player %1 (%2) | Position: %3',_class,_txt,_pos];
				diag_log ('infiSTAR.de Log: '+_log);
			};

Others Servers Packages: (already installed).

Spoiler

Unified Epoch Project:

Juandayz Server Package (Epoch) :

Spoiler

http://www.mediafire.com/download/5brut5ftfw0paf0/JUANDAYZSERVER.rar

Install guide included into .rar Mods:

*AdminTools/*Coins/*Plot Management/*Advanced Trading/*DZGM Group Management/*Spawn Class/*Snap Pro/*Tow&Lift/*Rearm-Refuel-Repair/*DZMS Missions/*Vehicle Locked GodMode/*SafeZones in Trades/
*Delete Vehicles abandoned in Safezones/*WELCOME MSGS/*AUTORESTART/*RESTRICTED AREAS TO PLAYER BUILD/*CUSTOM MAP/*SELFBLOODBAG/*WORKS AREAS/*MORE TRADERS IN STARY/*MILITAR TRADE CITY
*CUSTOM MARKERS/*SPAWN IN CIVIL DEFENSE/*LARGE WALL FROM EAST TO WEST/*AI GUARD BORDER CROSSINGS/*CRAFT HOUSES BASED ON SURVIVED DAYS/*RIGHT CLICK ACTIONS ON SHOVEL AND SLEDGE
*AND MORE

 

ElDubya Overpoch Server:

Spoiler

 

Sheeps Epoch Repack:

 

 

Tnks to:

Spoiler

@theduke  he help me a lot!

@Cherdenko he also help me in each test!

@seelenapparat he is like batman...lots of time only appear to help me and then just disappear XD

@chi @lonewolfgaming @ElDubya

Tnks to for this comunity to @vbawol  @Richie  @raymix   and the other staff :)

Many Many tnks for this greats mods used in this tuto to:

@Zupa Single currency 3.0 / Advanced Trading 2.1 / Plot Management.

@NoxSicarius  Admin tools.

@raymix  Snap_Pro.

@mudzereli Deploy Anything 2.8.1.

@ebaydayz DZGM / ESSV2.

@nightmare  for his remake on Lift & Tow.

@Axe Cop Vehicle Service Point (Refuel-Repair-Rearm)

@BigEgg Restrict Building near defined areas and non-P4L Automatically Add Plot Owner to plot.

 

 

 

and hope you make all of this work :)

 

OPTIONAL:

Here you got some others greats mods that you can use and try to install using the originals guides.

Spoiler

Delete Vehicles in SafeZones: by @Halvhjearne

Spoiler

 

Day/Night : by @Donnovan

Spoiler

 

Workshop   by @juandayz  (Sory for put one of my :)  )

WAI Missions by @f3cuk

WELCOME MSGS by @ZedBuster (from opendayz)

LOGO OVERLAY TO SCREEN by @ixxo (from opendayz)

CUSTOM GUI MENU by @theduke

Spoiler

 

Anti-Dupe by @JustBullet

Spoiler

 

Vehicle god mode by @Donnovan

Spoiler

 

Harvest and smoke  Drugs by @FragZ

Spoiler

 

Epoch Events: 4 side missions by @Aidem and upload again by @A Man

Spoiler

 

 

 

 

Link to comment
Share on other sites

19 answers to this question

Recommended Posts

  • 0
1 hour ago, Brody said:

hey man how about me make a deal for your server files if your intrested in making some money contact me

[email protected]

hope well talk 

no, no i dont take money for comunity users :) .. what do you need for free?

if u want my server files take a look on main post...

Others Servers Packages: (already installed).

Link to comment
Share on other sites

  • 0

@juandayz okay so for deployanything. yes it is very simple.... but I cant get the scroll wheel for packing to apear. its just not there. I can deploy, and I set bike and mozzie to true in the config for anyone can re-pack, but the scroll option just isn't there... the page for deploy anything doesn't tell me how at all. I just cant figure it out... please someone help.

 

On 2016-11-10 at 2:00 PM, juandayz said:

This is a Guide to install the most common mods. (Without Plot4life...but with persisten plot after player die using plotmanagement and a very usefull script to add you as owner the plot automatically).

This is NOT a support for any mod just a guide that i use to install all this mods in a fresh server.. thers some "fixes" for mods when his steps become a lil confuse.

And if u respect the order to install each mods can be most easy and quick.

 Mods to install:

  Reveal hidden contents

-Single Currency 3.0 (most easy in the world XD)
-Advanced Trading 2.1 (very easy)
-Create customs fn_selfactions/compiles/variables. (easy and large)
-Admin Tools if u dont use infistar.(medium)
-Snap Pro (easy)
-Plot Management (hard)
-Server Configs (easy)
-Deploy Anything (Right Click actions) (easy)
-Group Management (medium but very large)
-ESSV2 (medium but very large)
-Tow&Lift (very easy)
-Rearm/Refuel/Repair (very easy)
-Safezones (very easy)
-DebugMonitor (easy)
-Autorestart (medium)
-Restric Building near defined areas (easy)

-Optional add you automatically as owner the plot when you plant it (easy)
-Dart (Rcon Tool used to kick and ban players..also to write msg through BEC) (easy)

-Optional: Infistar Fix for vehicles non spawned after bought/Others Servers Packages/Others Greats Mods

 

 

Follow this guide to get a epoch fresh server.

  Reveal hidden contents

 

INSTALLING:

few tips before start:

  Reveal hidden contents

*When you have to make any changes in your dayz_server.pbo (\@DayZ_Epoch_Server\addons\dayz_server\ )  Please once you finish remember repack again your dayz_server.pbo.

*Any kind of change maked in any kind of file inside \@DayZ_Epoch\addons\    Folder NOT suffer effect. If u need make a change into any of this files..you must drop the file into MPmissions/yourinstance/ folder or into dayz_Server.pbo  and change the call for it. Generally located into  CUSTOMS compiles.sqf or init.sqf somecase also fn_Selfactions.sqf and others.

*Everytime you finish the install of mod.. test everything...cuz if u proceed and something stop to work you will not know what happened.

1-Single Currency 3.0.
 

  Reveal hidden contents

Download Mod from here: https://github.com/EpochSC/SingleCurrencyStorage

A: Overwrite all your Servers Files with single currency files and mod its done!.

 

*Important: we have to make a lil config: so go to: \MPMissions\DayZ_Epoch_11.Chernarus\ZSC\gold\

*open: ZSCconfig.sqf and change this line for default in true by false; like this:
 
 



// if TRUE: Overwrites yours fn_selfactions.sqf with default 1 + edits. | IF False: Change content yourself @ step D
ZSC_Overwrite_SelfActions = false;

 

2-Before proceed... we need  make some changes:

  Reveal hidden contents

A-first unpack your dayz_server.pbo (located in YOUR SERVER ROOT\@DayZ_Epoch_Server\addons\)

B-find into \system\ folder your server_monitor.sqf (open it).

C-Find and change all words called "intentory" by "inventory"  (you will find 14 words).

D-Repack your .pbo

3-Now is time to make some customs files (fn_selfactions.sqf/compiles.sqf/variables.sqf).

  Hide contents

A-So now go to YOURSERVERROOT\@DayZ_Epoch\addons\ and unpack your dayz_code.pbo

B-open \@DayZ_Epoch\addons\dayz_code\init\  and copy this two files:  compiles.sqf and variables.sqf

C-Now we have to create a new folder for this files so go to: YOURSERVERROOT\MPMissions\DayZ_Epoch_11.Chernarus\
and create a new folder called "custom". Then paste inside the compiles.sqf and variables.sqf

D-Now we have to drop the fn_selfactions.sqf .. go to \MPMissions\DayZ_Epoch_11.Chernarus\ZSC\compiles\
copy fn_selfActions.sqf and paste into YOURSERVERROOT\MPMissions\DayZ_Epoch_11.Chernarus\custom\ with the new compiles.sqf and variables.sqf.

 

4-Making the calls for this 3 new files: (fn_selfactions.sqf/compiles.sqf/variables.sqf).

  Reveal hidden contents

A-First open your init.sqf and

find this line:



call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf";

change by:



call compile preprocessFileLineNumbers "custom\variables.sqf";

B-find this line:



call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";    

change by:



call compile preprocessFileLineNumbers "custom\compiles.sqf";    

C-Find this line:



progressLoadingScreen 1.0;

bellow paste:
 



fnc_usec_selfActions = compile preprocessFileLineNumbers "custom\fn_selfActions.sqf";

D-At least we need remove the original call for fn_Selfactions.sqf located into the new custom compiles.sqf
so proceed to open your custom compiles.sqf located into the custom folder and find this line:



fnc_usec_selfActions =           compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf";

change by: (or just remove the whole line)
 



//fnc_usec_selfActions =     compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf";

Note:(when you use a bar before a line this is equal to remove the line.So now the call stop to work and we only calling selfactions.sqf from init.sqf).

Note: For now on... everytime a mod ask for changes in compiles.sqf/variables.sqf or fn_selfactions.sqf we have to make this change into the files located in custom folder.

5-We already have SingleCurrency installed.. its time to

Install Advanced Trading:

  Reveal hidden contents

download from here:
https://github.com/DevZupa/AdvancedTrading/releases/tag/v2.1

A-open the custom fn_selfactions.sqf located in custom folder and find this:



// Database menu
_buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false, "",""];
s_player_parts set [count s_player_parts,_buy];

above paste:



_buyV = player addAction ["<t color='#0059FF'>Advanced Trading</t>", "zupa\advancedTrading\init.sqf",(_traderMenu select 0), 999, true, false, "",""];
s_player_parts set [count s_player_parts,_buyV];

B- in description.ext, add the following on the very very bottom



#include "zupa\advancedTrading\advancedTrading.hpp"

C- open: \MPMissions\DayZ_Epoch_11.Chernarus\zupa\advancedTrading\config.sqf

uste true in this line:



Z_SingleCurrency = true; // Does your server use a single currency system.

 

D- (INFISTAR) Add the following exceptions to your antihack if u use infistar

AdvancedTrading
711197

Advanced trading its done!

 

6-ADMIN TOOLS (skip if u gonna use infistar or other adm mod).

  Reveal hidden contents

download from here: https://github.com/noxsicarius/Epoch-Admin-Tools

Thers no much to explain in the install of this mod Follow the original guide to install it.. the only thing that can be confused is the step 9:

The original guide says:

This means:
A-in your init.sqf find this line:



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

bellow paste:



// Epoch Admin Tools
if ( !((getPlayerUID player) in AdminList) && !((getPlayerUID player) in ModList)) then 
{
  [] execVM "admintools\antihack\antihack.sqf"; // Epoch Antihack with bypass
};

nothing more.

TIME TO TEST ALL THIS NEW MODS: go with traders, try to buy and sell using advanced trading menu, test money storage , restart your server
and see if the money still are into the storages.

7-INSTALL SNAP-PRO:

  Reveal hidden contents

Download from here:https://github.com/raymix/SnapPro

A-open your Custom compiles.sqf (the one into custom folder).

B-Find this line:



player_build =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";

Replace by:



player_build =  compile preprocessFileLineNumbers "custom\snap_pro\player_build.sqf";

 

 

Find this other:



dayz_spaceInterrupt =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\dayz_spaceInterrupt.sqf";

replace by:



dayz_spaceInterrupt = compile preprocessFileLineNumbers "custom\snap_pro\dayz_spaceInterrupt.sqf";

 

 

And find this:



player_deathBoard =     compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\list_playerDeathsAlt.sqf";

bellow paste:



snap_build =       compile preprocessFileLineNumbers "custom\snap_pro\snap_build.sqf";

C-Open your description.ext (root of your MPMissions folder), add this to the very bottom:



#include "custom\snap_pro\snappoints.hpp"

D-Copy snap_pro folder inside your custom folder and you are done. Simple as that!

8-PLOT MANAGEMENT:

  Reveal hidden contents

download from here:  https://github.com/DevZupa/PlotManagement  (use maintain version NON PLOT4life)

STEP 1 (Copying Files)

First, unpack your mission file.
Now copy the "plotManagement" folder to your mission directory.

STEP 2 (Modifying description.ext)
At the bottom, add



#include "plotManagement\defines.hpp"
#include "plotManagement\plotManagement.hpp"

STEP 3:

into  compiles.sqf: (the one into custom folder)

find:



if (!isDedicated) then {

paste bellow:



 /*Plot*/
    PlotGetFriends      = compile preprocessFileLineNumbers "plotManagement\plotGetFriends.sqf";
    PlotNearbyHumans    = compile preprocessFileLineNumbers "plotManagement\plotNearbyHumans.sqf";
    PlotAddFriend       = compile preprocessFileLineNumbers "plotManagement\plotAddFriend.sqf";
    PlotRemoveFriend    = compile preprocessFileLineNumbers "plotManagement\plotRemoveFriend.sqf";
    MaintainPlot        = compile preprocessFileLineNumbers "plotManagement\maintain_area.sqf";
    PlotPreview            = compile preprocessFileLineNumbers "plotManagement\plotToggleMarkers.sqf";
    PlotObjects         = compile preprocessFileLineNumbers "plotManagement\plotObjects.sqf"; // NEW
    /*Plot End*/


STEP 4 (Modifying variables.sqf)
After



//Player self-action handles
dayz_resetSelfActions = {

Add



s_player_plotManagement = -1;

STEP 5 (Modifying fn_selfActions.sqf) (the one into custom folder)

Find



if (s_player_maintain_area < 0) then {

Above that, add:



if (s_player_plotManagement < 0) then {
    _adminList = ["0152"]; // Add admins here if you admins to able to manage all plotpoles
    _owner = _cursorTarget getVariable ["CharacterID","0"];
    _friends = _cursorTarget getVariable ["plotfriends", []];
    _fuid = [];
    {
    _friendUID = _x select 0;
    _fuid = _fuid + [_friendUID];
    } forEach _friends;
    _allowed = [_owner];    
    _allowed = [_owner] + _adminList + _fuid;
    if(_owner == dayz_characterID || (getPlayerUID player) in _allowed)then{            
    s_player_plotManagement = player addAction ["<t color='#0059FF'>Manage Plot</t>", "plotManagement\initPlotManagement.sqf", [], 5, false];
    };
};


5 B:
Find



} else {
    player removeAction s_player_maintain_area;
    s_player_maintain_area = -1;
    player removeAction s_player_maintain_area_preview;
    s_player_maintain_area_preview = -1;
};

Replace that with:



} else {
    player removeAction s_player_plotManagement;
    s_player_plotManagement = -1;
    player removeAction s_player_maintain_area;
    s_player_maintain_area = -1;
    player removeAction s_player_maintain_area_preview;
    s_player_maintain_area_preview = -1;
};

Step 5-C
Find:



//Allow owners to delete modulars 
if(_isModular && (dayz_characterID == _ownerID)) then {
 if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then { 
 _player_deleteBuild = true; }; }; 
//Allow owners to delete modular doors without locks 
if(_isModularDoor && (dayz_characterID == _ownerID)) then {
 if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {
 _player_deleteBuild = true; }; }; 


Replace with :



///Allow owners to delete modulars
if(_isModular) then {
        if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {
            _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], DZE_PlotPole select 0];
            _IsNearPlot = count (_findNearestPoles);
            _fuid  = [];
            _allowed = [];
            if(_IsNearPlot > 0)then{
                _thePlot = _findNearestPoles select 0;
                _owner =  _thePlot getVariable ["CharacterID","010"];
                _friends = _thePlot getVariable ["plotfriends", []];
                {
                  _friendUID = _x select 0;
                  _fuid  =  _fuid  + [_friendUID];
                } forEach _friends;
                _allowed = [_owner];    
                _allowed = [_owner] +  _fuid;   
                if (_owner == dayz_characterID || (getPlayerUID player) in _allowed) then {  // // If u want that the object also belongs to someone on the plotpole.
                    _player_deleteBuild = true;
                };                  
            }else{
                if(_owner == dayz_characterID)then{
                    _player_deleteBuild = true;
                };
            };                                        
        };
};
//Allow owners to delete modular doors without locks
if(_isModularDoor) then {
        if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {         
            _findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], DZE_PlotPole select 0];
            _IsNearPlot = count (_findNearestPoles);
            _fuid  = [];
            _allowed = [];
            if(_IsNearPlot > 0)then{
                _thePlot = _findNearestPoles select 0;
                _owner =  _thePlot getVariable ["CharacterID","010"];
                _friends = _thePlot getVariable ["plotfriends", []];
                {
                  _friendUID = _x select 0;
                  _fuid  =  _fuid  + [_friendUID];
                } forEach _friends;
                _allowed = [_owner];    
                _allowed = [_owner] +  _fuid;   
                if (_owner == dayz_characterID || (getPlayerUID player) in _allowed) then { //  // If u want that the object also belongs to someone on the plotpole.
                    _player_deleteBuild = true;
                };                  
            }else{
                if(_owner == dayz_characterID)then{
                    _player_deleteBuild = true;
                };
            };                              
        };      
};

***Note: if u wanna remove the default maintain in red...  delete this part.***



if (s_player_maintain_area < 0) then {
              s_player_maintain_area = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false];
             s_player_maintain_area_preview = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTPREV"], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false];
         };

       
Step 5 D:

    Find: (near of the end)



{dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = [];
	s_player_repair_crtl = -1;
	{player removeAction _x} count s_player_combi;s_player_combi = [];
	dayz_myCursorTarget = objNull;
	s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull];
	{player removeAction _x} count s_player_parts;s_player_parts = [];
	s_player_parts_crtl = -1;
	{player removeAction _x} count s_player_lockunlock;s_player_lockunlock = [];
	s_player_lockUnlock_crtl = -1;
	player removeAction s_player_checkGear;
	s_player_checkGear = -1;
	player removeAction s_player_SurrenderedGear;
	s_player_SurrenderedGear = -1;
	player removeAction s_player_forceSave;
	s_player_forceSave = -1;
	player removeAction s_player_flipveh;
	s_player_flipveh = -1;
	player removeAction s_player_sleep;
	s_player_sleep = -1;
	player removeAction s_player_deleteBuild;
	s_player_deleteBuild = -1;
	player removeAction s_player_butcher;
	s_player_butcher = -1;

Above that, add



player removeAction s_player_plotManagement;
s_player_plotManagement = -1;


    
Step 5 E:
you need copy from  @Dayz_Epoch\addons\dayz_code\actions\ this files:
 

player_upgrade.sqf

player_buildingDowngrade.sqf

player_build.sqf"// DO NOT COPY AND PASTE THIS FILE ure using snap pro. u already have it. modify this file from snap_pro folder.
 
!!Make this copy and paste into : MPMISSIONS\YOUR INSTANCE\plotManagement\


Again go to your Custom fn_selfActions.sqf and find :



s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""];

change by:



s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "plotManagement\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""];


Now find:



s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "\z\addons\dayz_code\actions\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true, "",""];

Change by:



s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "plotManagement\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true, "",""];

 

STEP 6 (Modifying remove.sqf)

NO CHANGES NEEDED, the effect has been realised in 5 C. RESTORE TO THE NORMAL REMOVES.SQF
DONT DO NOTHING HERE..PROCEED.

STEP 7 (Modifying player_build.sqf, player_upgrade.sqf, and player_buildingDowngrade.sqf)
ALL THREE OF THESE FILES NEED THE SAME EDIT, MAKE SURE YOU DO ALL FILES!!!!
Remember you have  player_upgrade.sqf, and player_buildingDowngrade.sqf into plotManagement folder and player_build.sqf into snap_pro folder.

Find:



_friendlies     = player getVariable ["friendlyTo",[]];
// check if friendly to owner
if(_ownerID in _friendlies) then {
    _canBuildOnPlot = true;
};

Replace that with:



_friendlies = _nearestPole getVariable ["plotfriends",[]];
_fuid  = [];
{
      _friendUID = _x select 0;
      _fuid  =  _fuid  + [_friendUID];
} forEach _friendlies;
_builder  = getPlayerUID player;
// check if friendly to owner
if(_builder in _fuid) then {
    _canBuildOnPlot = true;
};

 

STEP 8: This one is in your dayz_server.pbo (Modifying server_monitor.sqf)

8 A
Find



_object setVariable ["ObjectID", _idKey, true];

After that, add



if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then {
_object setVariable ["plotfriends", _inventory, true];
};

STEP -8 B

Find



if (count _inventory > 0) then {

Replace that with:



if ((count _inventory > 0) && !(typeOf( _object) == "Plastic_Pole_EP1_DZ")) then {

 

STEP 9 Again, this is in your dayz_server.pbo (Modifying server_updateObject.sqf)
Find:



_inventory = [
getWeaponCargo _object,
getMagazineCargo _object,
getBackpackCargo _object
];

Replace that with:



if (typeOf (_object) == "Plastic_Pole_EP1_DZ") then{
    _inventory = _object getVariable ["plotfriends", []]; //We're replacing the inventory with UIDs for this item
} else {
    _inventory = [
    getWeaponCargo _object,
    getMagazineCargo _object,
    getBackpackCargo _object
    ];
};

STEP 10: open plotObjects.sqf  located in plotManagement folder and.

replace:



_range = DZE_PlotPole select 0;
_count = count ((getPosATL player) nearObjects ["All",_range]);

by:



_range = DZE_PlotPole select 0;
_cptarget = player;
_objectClasses = DZE_maintainClasses;
_objects = nearestObjects [_cptarget, _objectClasses, _range];
 
_objectsnearcount = count _objects;
_count = _objectsnearcount;

STEP 11. Repack your .pbo

STEP 12: open your custom variables.sqf (located in custom folder)

FIND:



if(isNil "DZE_DamageBeforeMaint") then {
    DZE_DamageBeforeMaint = 0.9;
};

Replace by:



if(isNil "DZE_DamageBeforeMaint") then {
    DZE_DamageBeforeMaint = 0.1; //or 0 to get maintain option all time.
};

STEP 13:

into your serverroot/instance_11.chernarus or other/  find and open your HiveExt.ini

change this line:

CleanupPlacedAfterDays = -1   // remove the , at start of the line. and place -1

**and remember run as query the sql damageonage events.

STEP 14:INFISTAR users


Add the following number to the dialogs array:

711194

and Add:

"PlotManagement"

to

_cMenu =

PLOT MANAGEMENT ITS DONE! MAKE A TEST.

 

9-Time to make some configs:

This is for prevent players stuck on loading screen:

  Reveal hidden contents

open your custom compiles.sqf (the one located in custom folder)

find this lines:



// 120 sec timeout (12000 * 0.01)
        while { _timeOut < 12000 } do {
            if (dayz_clientPreload && dayz_authed) exitWith { diag_log "PLOGIN: Login loop completed!"; };

replace by:



// 120 sec timeout (12000 * 0.01)
        while { _timeOut < 12000 } do {
            if (dayz_clientPreload && dayz_authed) exitWith { 
					diag_log "PLOGIN: Login loop completed!"; 
					endLoadingScreen;
				 };

 

 

  Reveal hidden contents

open your init.sqf

find:



dayz_minpos = -1;
dayz_maxpos = 16000;

paste bellow:



DZE_SelfTransfuse = true; // default value //allow self transufe
DZE_StaticConstructionCount = 1; //reduce time to build only 1 step
DZE_PlayerZed = false; //remove player chance to spawn as zed.

Find:
MaxVehicleLimit = 300; // Default = 50

300 its a LOT!!!!!!!! reduce this value for less vehicles spawn.

find:
MaxDynamicDebris = 200; // Default = 100

also reduce this value.

 

find:

dayz_maxLocalZombies = 50; // Default = 30

This is a lot of zombies reduce this value please :)

 

Now this is for config your server difficulty (most detailed..i will use veteran difficulty.. check your hiveext.ini to see what youre using)

Open your ServerROOt\instance_11_Chernarus\Users\instance_11_Chernarus\  "instance_11_Chernarus.ArmA2OAProfile"

at very bottom paste:



class Difficulties
{
    class Veteran
    {
        class Flags
        {
            3rdPersonView=1;
            armor=0;
            autoAim=0;
            autoGuideAT=0;
            autoSpot=0;
            cameraShake=1;
            clockIndicator=0;
            deathMessages=1;
            enemyTag=0;
            friendlyTag=0;
            hud=1;
            hudGroupInfo=1;
            hudPerm=0;
            hudWp=1;
            hudWpPerm=0;
            map=1;
            netStats=1;
            tracers=0;
            ultraAI=0;
            unlimitedSaves=0;
            vonId=0;
            weaponCursor=1;
        };
        skillFriendly=1;
        precisionFriendly=1;
        skillEnemy=0.89999998;
        precisionEnemy=0.75;
    };
};
sceneComplexity=300000;
viewDistance=1600;
terrainGrid=10;
volumeCD=6.5;
volumeFX=8.5;
volumeSpeech=5.5;
volumeVoN=6.5;
vonRecThreshold=0.029999999;

and change values if u dont like this.

10-INSTALL deploy anything 2.8.1

  Hide contents

Download from original post:

https://epochmod.com/forum/topic/13603-release-1051-deploy-anything-281-now-with-epoch-building-customizable-db-saving-plot-vehiclesbuildings-packing/

Thers nothing to explain here, the guide is pretty simple and easy to install.

11-INSTALL GROUP MANAGEMENT.

  Reveal hidden contents

Download from original post:http://opendayz.net/threads/release-dzgm-dayz-group-management.20293/
This guide is very easy i just wanna say:  In step 6.. you already have a custom ui_selectslot.sqf located in: \MPMissions\DayZ_Epoch_11.Chernarus\overwrites\click_actions\
so for step 6 make the changes into this file.

this change:
2. In ui_selectSlot.sqf (Located in \MPMissions\DayZ_Epoch_11.Chernarus\overwrites\click_actions\) add this after the for loop, but above _pos set [3,_height];, around line 57:

See the change with a bunch of code above to get a reference:



//### BEGIN MODIFIED CODE: extra click actions
    {
        private["_classname","_text","_execute","_condition"];
        _classname   = _x select 0;
        _text        = _x select 1;
        _execute     = _x select 2;
        _condition   = _x select 3;
        // if the clicked item matches, then assign the script call and display text
        if(_item == _classname && (call compile _condition)) then {
            _menu = _parent displayCtrl (1600 + _numActions);
            _menu ctrlShow true;
            _height = _height + (0.025 * safezoneH);
            uiNamespace setVariable ['uiControl', _control];
            _menu ctrlSetText _text;
            _menu ctrlSetEventHandler ["ButtonClick",_execute];
            _numActions = _numActions + 1;
        };
    } forEach DZE_CLICK_ACTIONS;
     //### END MODIFIED CODE: extra click actions
    
    
     ////////////GROUP MANAGEMENT CHANGE START HERE/////////
    
    _erc_cfgActions = (missionConfigFile >> "ExtraRc" >> _item);
    _erc_numActions = (count _erc_cfgActions);
    if (isClass _erc_cfgActions) then {
     for "_j" from 0 to (_erc_numActions - 1) do
     {
       _menu =  _parent displayCtrl (1600 + _j + _numActions);
       _menu ctrlShow true;
       _config =  (_erc_cfgActions select _j);
       _text =  getText (_config >> "text");
       _script =  getText (_config >> "script");
       _height = _height + (0.025 * safezoneH);
       uiNamespace setVariable ['uiControl', _control];
       _menu ctrlSetText _text;
       _menu ctrlSetEventHandler ["ButtonClick",_script];
      };
   };
    //GROUP MANAGEMENT CHANGE END HERE//
  

 

12:INSTALL ESSV2 (Spawn slection)

  Reveal hidden contents

Download from original post: http://opendayz.net/threads/release-essv2-enhanced-spawn-selection-v2.21547/  

THIS IS ANOTHER AND PRETTY EASY GUIDE WELL DONE, SO DONT NEED EXTRA INFO TO PROCEED. JUST FOLLOW THE ORIGINAL GUIDE.

13-INSTALL TOW & LIFT.

  Reveal hidden contents

Download and follow the original guide:
https://epochmod.com/forum/topic/14934-logistic-tow-lift/

14-INSTALL :REARM - REFUEL -REPAIR

  Reveal hidden contents

VERY VERY SIMPLE YOU CAN FOLLOW THE ORIGINAL GUIDE AND DOWNLOAD FROM HERE:
https://epochmod.com/forum/topic/3935-release-vehicle-service-point-refuel-repair-rearm-script/

15-MAKE A SAFEZONE.sqf

  Reveal hidden contents

If ure using infistar and you already have a safezone.sqf skip this step.

A-First inside your custom folder you need create another folder called "others"
Now into "others" folder create a new sqf called "safezone" and paste this code inside:

  Reveal hidden contents



/*
   by: http://infiSTAR.de || http://DayzAntiHack.com
   *updated on 24.12.2014
    
    Instructions:
    1. Copy paste this pastebin code into a file called SafeZone.sqf - save the file.
    2. Now extract your mpmission pbo and put the SafeZone.sqf into the extracted folder.
    3. Open the init.sqf of the mpmission.
    4. At the bottom of the file add
    [] execVM 'SafeZone.sqf';
    5. Save the init.sqf, repack your mpmission, upload it to your gameserver and restart your server
*/
USE_CANBUILD = false;        // if you don't want to define your own positions
USE_TraderCity = false;    //    if you don't want to define your own positions (Epoch 1.0.5)
USE_POSITIONS = true;    // to use own positions and radius
USE_AI_REMOVER = false;    // use this to remove Missionbots (AI) within 100m of a player if the player is in a SafeZone
USE_AntiSteal = true;    // use this to block opening gear if another player is within 3m!
USE_SPEEDLIMIT = true;    // very secret function, nobody is supposed to find out what it does.
    SPEEDLIMIT = 25;        // Only used if USE_SPEEDLIMIT is true.
USE_SIGNS = false;        // use this to build signs around the SafeZone
LOG_EnterLeave = true;    // This will log to your .rpt when a player enters or leaves a SafeZone! (only works with infiSTAR.de Admintools / AntiHack)
/* You can use USE_CANBUILD or/and (works together) the custom positions below (USE_POSITIONS) [position or zone,radius] */
_infiSZ =
[
    [[6325.6772,7807.7412,0],150,true],//stary
    [[4063.4226,11664.19,0],150,true],//bash
    [[11447.472,11364.504,0],150,true],//klen
    [[1606.6443,7803.5156,0],150,true],//bandit
    [[12944.227,12766.889,0],150,true],//hero
    [[4361.4937,2259.9526,0],50,true],//wholesalerSouth
    [[12060,12640,0],200,true]//air dealear
];
if (isServer) exitWith
{
    if (USE_SIGNS) then
    {
        {
            _center = _x select 0;
            _radius = _x select 1;
            _lSign = _x select 2;
            if (_lSign) then
            {
                for '_i' from 0 to 360 step (270 / _radius)*2 do
                {
                    _location = [(_center select 0) + ((cos _i) * _radius), (_center select 1) + ((sin _i) * _radius),0];
                    _dir = ((_center select 0) - (_location select 0)) atan2 ((_center select 1) - (_location select 1));
                    _object = createVehicle ['Sign_sphere100cm_EP1', _location, [], 0, 'CAN_COLLIDE'];
                    //    _object = createVehicle ['SignM_FARP_Winchester_EP1', _location, [], 0, 'CAN_COLLIDE'];
                    //    _object setVehicleInit 'this setObjectTexture [0,''Addons\SafeZones\sign.paa''];';
                    _object setDir _dir;
                };
            };
        } forEach _infiSZ;
    };
};
waitUntil {((!isNil 'dayz_animalCheck') || (!isNil 'dayz_medicalH') || (!isNil 'dayz_slowCheck') || (!isNil 'dayz_gui'))};
if (isNil 'inSafeZone') then { inSafeZone = false; } else { if (typename inSafeZone != 'BOOL') then { inSafeZone = false; }; };
[_infiSZ] spawn {
    _infiSZ = _this select 0;
    _startSafeZone =
    {
        if (isNil 'outNow') then
        {
            _msg = 'You entered a Safe Zone!';
            hint _msg;
            taskHint [_msg, [0,1,0,1], 'taskDone'];
            inNow = nil;
            outNow = true;
            
            if (LOG_EnterLeave) then
            {
                PVDZE_send = [player,'SafeZoneState',[1]];
                publicVariableServer 'PVDZE_send';
            };
        };
        player_fired = {
            deleteVehicle (nearestObject [_this select 0,_this select 4]);
            cutText ['You can not fire in a SafeZone!','WHITE IN'];
        };
        wild_spawnZombies = {};
        zombie_generate = {};
        
        fnc_usec_damageHandler = {};
        player removeAllEventHandlers 'handleDamage';
        player addEventHandler ['handleDamage', {false}];
        player allowDamage false;
        _veh = vehicle player;
        _szs = _veh getVariable ['inSafeZone',0];
        if (_szs == 0) then
        {
            _veh setVariable ['inSafeZone',1,true];
            if (player != _veh) then
            {
                _veh removeAllEventHandlers 'Fired';
                _veh addEventHandler ['Fired', {_this call player_fired;}];
                {
                    _x removeAllEventHandlers 'Fired';
                    _x addEventHandler ['Fired', {_this call player_fired;}];
                } forEach (crew _veh);
                vehicle_handleDamage = {false};
                _veh removeAllEventHandlers 'HandleDamage';
                _veh addeventhandler ['HandleDamage',{ _this call vehicle_handleDamage } ];
                _veh allowDamage false;
            };
        };
        _notInSafeZone =
        [
            'MAAWS','RPG7V','M136','RPG18','STINGER',
            'MeleeHatchet_DZE','MeleeHatchet','MeleeCrowbar','MeleeMachete','MeleeFishingPole','MeleeSledge',
            'MeleeBaseBallBatNails','MeleeBaseBallBatBarbed','MeleeBaseBallBat'
        ];
        _cwep = currentWeapon player;
        if (_cwep in _notInSafeZone) then
        {
            _swep = '';
            {
                if ((getNumber (configFile >> 'CfgWeapons' >> _x >> 'Type')) == 2) exitWith
                {
                    _swep = _x;
                };
            } forEach (weapons player);
            if (_swep == '') then
            {
                player playActionNow 'PutDown';
                _iPos = getPosATL player;
                _radius = 1;
                _removed = ([player,_cwep,1] call BIS_fnc_invRemove);
                if (_removed == 1) then
                {
                    _item = createVehicle ['WeaponHolder', _iPos, [], _radius, 'CAN_COLLIDE'];
                    _item addWeaponCargoGlobal [_cwep,1];
                };
            }
            else
            {
                player selectweapon _swep;
            };
        };
    };
    _endSafeZone =
    {
        if (isNil 'inNow') then
        {
            if (str fnc_usec_damageHandler == '{}') then
            {
                _msg = 'You left the Safe Zone!';
                hint _msg;
                taskHint [_msg, [1,0,0.1,1], 'taskFailed'];
            };
            inNow = true;
            outNow = nil;
            
            if (LOG_EnterLeave) then
            {
                PVDZE_send = [player,'SafeZoneState',[0]];
                publicVariableServer 'PVDZE_send';
            };
        };
        wild_spawnZombies = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\wild_spawnZombies.sqf';
        zombie_generate = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\zombie_generate.sqf';
        
        
        player_fired = {
            _this call compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\player_fired.sqf';
            _unit = _this select 0;
            _weapon = _this select 1;
            _muzzle = _this select 2;
            _mode = _this select 3;
            _ammo = _this select 4;
            _magazine = _this select 5;
            _projectile = _this select 6;
            _screenToWorld = screenToWorld [0.5,0.5];
            _near = _screenToWorld nearEntities ['AllVehicles',100];
            {
                if (isPlayer _x) then
                {
                    _szs = _x getVariable ['inSafeZone',0];
                    if (_szs == 1) then
                    {
                        deleteVehicle (nearestObject [_unit,_ammo]);
                    };
                };
            } forEach _near;
        };
        
        fnc_usec_unconscious = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_unconscious.sqf';
        object_monitorGear = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\object_monitorGear.sqf';
        vehicle_handleDamage = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\vehicle_handleDamage.sqf';
        
        _veh = vehicle player;
        _szs = _veh getVariable ['inSafeZone',0];
        if (_szs == 1) then
        {
            _veh setVariable ['inSafeZone',0,true];
            if (player != _veh) then
            {
                _veh removeAllEventHandlers 'HandleDamage';
                _veh addeventhandler ['HandleDamage',{ _this call vehicle_handleDamage } ];
                _veh allowDamage true;
            };
        };
        
        _end = false;
        if (isNil 'gmadmin') then
        {
            _end = true;
        }
        else
        {
            if (gmadmin == 0) then
            {
                _end = true;
            };
        };
        if (_end) then
        {
            player allowDamage true;
            fnc_usec_damageHandler = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\fn_damageHandler.sqf';
            player removeAllEventHandlers 'HandleDamage';
            player addeventhandler ['HandleDamage',{_this call fnc_usec_damageHandler;} ];
        };
    };
    while {1 == 1} do
    {
        if (isNil 'inSafeZone') then { inSafeZone = false; } else { if (typename inSafeZone != 'BOOL') then { inSafeZone = false; }; };
        _state = false;
        if (isNil 'USE_POSITIONS') then { USE_POSITIONS = false; } else { if (typename USE_POSITIONS != 'BOOL') then { USE_POSITIONS = false; }; };
        if (USE_POSITIONS) then
        {
            {
                _z = _x select 0;
                _r = _x select 1;
                if ((vehicle player) distance _z < _r) then {_state = true;};
            } forEach _infiSZ;
        };
        if (isNil 'USE_CANBUILD') then { USE_CANBUILD = true; } else { if (typename USE_CANBUILD != 'BOOL') then { USE_CANBUILD = true; }; };
        if (USE_CANBUILD) then
        {
            if (isNil 'canbuild') then { canbuild = true; } else { if (typename canbuild != 'BOOL') then { canbuild = true; }; };
            if (!canbuild) then {_state = true;};
        };
        if (isNil 'USE_TraderCity') then { USE_TraderCity = true; } else { if (typename USE_TraderCity != 'BOOL') then { USE_TraderCity = true; }; };
        if (USE_TraderCity) then
        {
            if (isNil 'isInTraderCity') then { isInTraderCity = false; } else { if (typename isInTraderCity != 'BOOL') then { isInTraderCity = false; }; };
            if (isInTraderCity) then {_state = true;};
        };
        if (_state) then
        {
            inSafeZone = true;
            call _startSafeZone;
            {
                if (!isNull _x) then
                {
                    if !(isPlayer _x) then
                    {
                        deletevehicle _x;
                    };
                };
            } forEach ((vehicle player) nearEntities ['zZombie_Base',50]);
            
            if (isNil 'USE_AI_REMOVER') then { USE_AI_REMOVER = false; } else { if (typename USE_AI_REMOVER != 'BOOL') then { USE_AI_REMOVER = false; }; };
            if (USE_AI_REMOVER) then
            {
                {
                    if ((!isNull group _x) && (getPlayerUID _x == '')) then
                    {
                        deleteVehicle _x;
                    };
                } forEach (player nearEntities ['Man',100]);
            };
        }
        else
        {
            inSafeZone = false;
        };
        uiSleep 2;
        if (!inSafeZone) then
        {
            call _endSafeZone;
        };
    };
};
if ((USE_AntiSteal) || (USE_SPEEDLIMIT)) then
{
    [] spawn {
        _USE_AntiSteal = USE_AntiSteal;
        _USE_SPEEDLIMIT = USE_SPEEDLIMIT;
        _speedlimit = SPEEDLIMIT;
        while {1 == 1} do
        {
            if (inSafezone) then
            {
                if (_USE_AntiSteal) then
                {
                    _cnt = {isPlayer _x && _x != player} count (player nearEntities [['CAManBase'],4]);
                    if ((_cnt > 0) && (!isNull (findDisplay 106))) then
                    {
                        (findDisplay 106) closedisplay 0;
                        closeDialog 0;closeDialog 0;closeDialog 0;
                        _log = format['%1 You are not allowed to open Gear while near another player!',name player];
                        cutText [_log,'PLAIN'];
                        hint _log;
                    };
                };
                if (_USE_SPEEDLIMIT) then
                {
                    _obj = vehicle player;
                    if !(_obj isKindOf 'Plane') then
                    {
                        _speed = abs speed _obj;
                        if ((_obj != player) && (_speed > _speedlimit)) then
                        {
                            _vel = velocity _obj;
                            _x = 0.8;
                            if (_speed > 50) then {_x = 0.1;};
                            _velNew = [(_vel select 0) * _x, (_vel select 1) * _x,(_vel select 2) * _x];
                            _obj SetVelocity _velNew;
                        };
                    };
                };
            }
            else
            {
                uiSleep 2;
            };
            uiSleep .01;
        };
    };
                  };

 

B-Now its time to go to your init.sqf to make the call to this new safezone.sqf

At very bottom of init.sqf paste:




//SafeZone///////////////////////////////////////////////////
[] execVM "custom\others\safezone.sqf";
/////////////////////////////////////////////////////////////

 

16-MAKE YOUR DEBUG MONITOR. (toogle with scroll menu) SKIP IF U ALREADY HAVE ANOTHER

  Reveal hidden contents

A: Now into custom\others\  create a new sqf called "debug_init"  and iside paste this code:





if (isnil "debuginit") then {debuginit = true;};

    if (debuginit) then
    {
        []spawn
        {
            private["_veh", "_idb", "_idb2"];
            _idb = -1;
            while {alive player} do
            {
                if (_idb == -1) then
                {
                    _idb = (vehicle player) addaction [("<t color=""#ff0000"">" + ("Toggle debug") +"</t>"),"custom\others\custom_monitor.sqf","",0,false,true,"",""];
                    _veh = vehicle player;
                };
                if (_veh != vehicle player) then
                {
                    _veh removeAction _idb;
                    _idb = -1;      
                };
                Sleep 2;
            };
        };
        debuginit = false;
    };
    waituntil {!alive player ; sleep 2;};
    debuginit = true;

B:Now create another sqf into the same folder called "custom_monitor" and inside paste this code:

  Reveal hidden contents

if (isNil "debugMonitor") then { debugMonitor = false; };
        if (debugMonitor) then {
            debugMonitor = false;
            hintSilent "";
        } else {
    debugMonitor = true;
private["_time","_hours","_minutes","_restartTime"];

/************************* CONFIG *************************/
    _restartTime = 180; //total time before server restart (3hrs = 180 minutes)    
/************************* CONFIG *************************/

while {debugMonitor} do {

_time = (round(_restartTime-(serverTime)/60));     //Want it to count up instead of down? use _time = (round serverTime)/60;
    _hours = (floor(_time/60));
    _minutes = (_time - (_hours * 60));
    
    switch(_minutes) do
    {
        case 9: {_minutes = "09"};
        case 8: {_minutes = "08"};
        case 7: {_minutes = "07"};
        case 6: {_minutes = "06"};
        case 5: {_minutes = "05"};
        case 4: {_minutes = "04"};
        case 3: {_minutes = "03"};
        case 2: {_minutes = "02"};
        case 1: {_minutes = "01"};
        case 0: {_minutes = "00"};
    };
_pic = (gettext (configFile >> 'CfgVehicles' >> (typeof vehicle player) >> 'picture'));
if (player == vehicle player) then
{
_pic = (gettext (configFile >> 'cfgWeapons' >> (currentWeapon player) >> 'picture'));
}else{
_pic = (gettext (configFile >> 'CfgVehicles' >> (typeof vehicle player) >> 'picture'));};

hintSilent parseText format ["
    <t size='1' font='Bitstream' align='left' color='#FFCC00'>SERVER NAME HERE</t>
    <br/>
    <t size='1' font='Bitstream' align='left' color='#FFCC00'>TS HERE:</t>
    <br/>
    <t size='1' font='Bitstream' align='center' color='#ff5200'>%1</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Players Online: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%2</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>FPS: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%3</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Blood: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%4</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Humanity: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%5</t><br/>
    <br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Murders: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%6</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Bandit Kills:  </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%7</t><br/>
    <t color='#009FCF' size='1' font='Bitstream' align='left'>Zombie Kills: </t><t color='#ff5200' size='1' font='Bitstream' align='right'>%8</t><br/>
    <t color='#FFCC00' size='1' font='Bitstream' align='left'>Restart In: </t><t color='#FFCC00' size='1' font='Bitstream' align='right'>%9Hr(s) %10Min(s)</t><br/>
    <img size='3' image='%11'/><br/>    
    ",

(name player),//1
(count playableUnits),//2
(round diag_fps),//3
(player getVariable['USEC_BloodQty', r_player_blood]),//4
(player getVariable['humanity', 0]),//5
(player getVariable['humanKills', 0]),//6
(player getVariable['banditKills', 0]),//7
(player getVariable['zombieKills', 0]),//8
_hours, // Used on line 52 to display hours //9
_minutes, // Used on line 52 to display minutes //10
_pic//11
];
sleep 2;
};
};

**take a look in this line.. you will need put your server name:



<t size='1' font='Bitstream' align='left' color='#FFCC00'>SERVER NAME HERE</t>

 

**and in this line your TS address:



<t size='1' font='Bitstream' align='left' color='#FFCC00'>TS HERE:</t>


C-Now its time to go to your init.sqf and make the call for the debug so open init.sqf

find this lines:
 



if (!isDedicated) then {
    //Conduct map operations

and bellow paste:   



    // Debug Monitor
[] execVM "custom\others\debug_init.sqf";
[] execVM "custom\others\custom_monitor.sqf";

 

AND DONE!.

17-AUTORESTART FILES:

  Reveal hidden contents

here you have my files: http://www.mediafire.com/file/6afp6inam56tfq2/autorestart.rar

1-Drop battleye folder into serverRoot\instance_11_Chernarus\

2-The others 3 .bat files must be in your serverRoot-

3-now you need change the paths in the files:

A-open "monitor.bat" (located in your serverroot) and change the paths for your server route.
B-open "Premod_restart.bat" (located in your serverroot) and change the paths for your server route.
C-open "BEC_Control_Epoch.bat" (located in serverRoot\instance_11_Chernarus\BattlEye\Bec) and change the paths for your server route.
D-open "Config.cfg"(located in YourServerRoot\instance_11_Chernarus\BattlEye\Bec\Config\) and change the paths for your server route.

E-open "Shedule.xml" (located in YourServerRoot\instance_11_Chernarus\BattlEye\Bec\Config\)
and  needs add this at every last shedule id job:



<cmd>C:\Users\Administrador\Desktop\Dayz Epoch Server\Premod_restart.bat</cmd>  

 (change for ur server paths).

My example:



 <Scheduler>

<!-- 12:00 AM restart -->

<job id="0">
    <time>23:45:00</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>say -1 This server will restart in 15 minutes</cmd>
    <cmdtype>0</cmdtype>
</job>

<job id="1">
    <time>23:55:00</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>say -1 This server will restart in 5 minutes</cmd>
    <cmdtype>0</cmdtype>
</job>

<job id="2">
    <time>23:59:00</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>say -1 This server will restart in 1 minute, Log out now!</cmd>
    <cmdtype>0</cmdtype>
</job>

<job id="3">
    <time>00:00:00</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>#shutdown</cmd>
    <cmdtype>0</cmdtype>
</job>

<job id="4">
    <time>00:00:10</time>
    <delay>000000</delay>
    <day>1,2,3,4,5,6,7</day>
    <loop>0</loop>
    <cmd>C:\Users\Administrador\Desktop\Dayz Epoch Server\Premod_restart.bat</cmd>
    <cmdtype>1</cmdtype>
</job>

<!-- End 12:00 AM restart -->

***Do the same for each job id group.

*******************************IMPORTANT!:For now on.. start your server using "monitor.bat"++++++++++++++

18-Restrict Buildings Near Defined Areas ( i forgot this great complement..remember this when BiggEgg give the "like" sory! ).

  Reveal hidden contents

Download from here:

Thers no much to say about it.Pretty easy and nice explained..  just  make the changes into player_build.sqf the one located into snap_pro folder.

19-OPTIONAL ADD YOU AUTOMATICALLY AS OWNER WHEN YOU PUT THE PLOT.

  Reveal hidden contents

Open the player_build.sqf the one located into snap_pro folder:

1-At the top of player_build.sqf, add this to the private array, inmediataly after private [



"_nearPlots", "_selectedPlot", "_onPlot", "_uidPlayer", "_playerName",

so its looks:

private ["_nearPlots", "_selectedPlot", "_onPlot", "_uidPlayer", "_playerName","the rest of the original player build variables"...];

2-find this block of code (around line 667):

  Reveal hidden contents



_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];

// fire?
if(_tmpbuilt isKindOf "Land_Fire_DZ") then {
	_tmpbuilt spawn player_fireMonitor;
} else {
	PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,_vector],_classname];
	publicVariableServer "PVDZE_obj_Publish";
};

Replace that block with this:

  Reveal hidden contents



_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];

if (_tmpbuilt isKindof "Plastic_Pole_EP1_DZ") then {
	PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,_vector],_classname];
	publicVariableServer "PVDZE_obj_Publish";
	_nearPlots = nearestObjects [player, ["Plastic_Pole_EP1_DZ"],15];
	_selectedPlot = _nearPlots select 0;
	_onPlot = _selectedPlot getVariable ["plotfriends",[]];
	_uidPlayer = getPlayerUID player;
	_playerName = name player;
	_onPlot = _onPlot  + [[_uidPlayer,_playerName]];
	_selectedPlot setVariable ["plotfriends", _onPlot, true];
	PVDZE_veh_Update = [_selectedPlot,"gear"];
	publicVariableServer "PVDZE_veh_Update";
	if (isServer) then {
		PVDZE_veh_Update call server_updateObject;
	};
} else {
	if(_tmpbuilt isKindOf "Land_Fire_DZ") then {
		_tmpbuilt spawn player_fireMonitor;
	} else {
		PVDZE_obj_Publish = [dayz_characterID,_tmpbuilt,[_dir,_location,_vector],_classname];
		publicVariableServer "PVDZE_obj_Publish";
	};
};

Done. Original post:

  Reveal hidden contents

 

 

20-INSTALL DART (KICK/BAN/MSG Players).

  Reveal hidden contents

Download from here: http://www.dayztv.com/apps/download/dayz-dart-admin-rcon-tool-windows/

Original post:

Well here to get it work.

Once you install DART:

You will see 3 options at left of the screen:

HOST/PORT/PASSWORD

Host:  here you need entry your server ip. (if ure runing DART at same machine that server is running then use 127.0.0.1  (the @localhost)

Port: your server port  in my case 2302

Password: Here you need to define a password.. its not your DB password.. is your BEC password so go here: SERVER ROOT\instance_11_Chernarus\BattlEye\

and open the file called BEServer.cfg  you will see this:



RConPassword password123
MaxPing 250

"password123" it for default please change it.  for example: mygirlfriendshowersucks

"MaxPing" its the limit for BEC before kick a player automatically by high ping.

Now go back to your dart  and in password field put your new pass.. in this example mygirlfriendshowersucks

So its look:

Host: 127.0.0.1 (for a server running in a same machine with dart).

Port: 2302

Password: mygirlfriendshowersucks

now press connect! ( your server and your BEC must be running)  and its done!

Go to setting to adjust some options.

 

**IMPORTANT** IF URE INFISTAR USER AND BOUGHT VEHICLES NOT SPAWNING YOU CAN TRY THIS FIX by @zachtucker18  shared by @sercanatici

  Reveal hidden contents

..."After a lot of looking around to find out the FIX, and i finally find out a way to fix it."...

Its the infistar issue. i changed the Ah.sql file

        'PVDZE_veh_Publish2' addPublicVariableEventHandler
        {
            _array = (_this select 1);
            _worldspace = _array select 0;
            _class = _array select 1;
            _activatingPlayer = _array select 5;
            _pos = _worldspace select 1;
            _txt = getText (configFile >> 'CfgVehicles' >> _class >> 'displayName');
            if(isNull _activatingPlayer || {!isPlayer _activatingPlayer})exitWith {
                _log = format['Vehicle spawned without valid player %1 (%2) | Position: %3',_class,_txt,_pos];
                diag_log ('infiSTAR.de Log: '+_log);
            };



'PVDZE_veh_Publish2' addPublicVariableEventHandler
		{
			_array = (_this select 1);
			_worldspace = _array select 1;
			_class = _array select 2;
			_activatingPlayer = _array select 5;
			_pos = _worldspace select 1;
			_txt = getText (configFile >> 'CfgVehicles' >> _class >> 'displayName');
			if(isNull _activatingPlayer || {!isPlayer _activatingPlayer})exitWith {
				_log = format['Vehicle spawned without valid player %1 (%2) | Position: %3',_class,_txt,_pos];
				diag_log ('infiSTAR.de Log: '+_log);
			};

Others Servers Packages: (already installed).

  Reveal hidden contents

Unified Epoch Project:

Juandayz Server Package (Epoch) :

  Reveal hidden contents

http://www.mediafire.com/download/5brut5ftfw0paf0/JUANDAYZSERVER.rar

Install guide included into .rar Mods:

*AdminTools/*Coins/*Plot Management/*Advanced Trading/*DZGM Group Management/*Spawn Class/*Snap Pro/*Tow&Lift/*Rearm-Refuel-Repair/*DZMS Missions/*Vehicle Locked GodMode/*SafeZones in Trades/
*Delete Vehicles abandoned in Safezones/*WELCOME MSGS/*AUTORESTART/*RESTRICTED AREAS TO PLAYER BUILD/*CUSTOM MAP/*SELFBLOODBAG/*WORKS AREAS/*MORE TRADERS IN STARY/*MILITAR TRADE CITY
*CUSTOM MARKERS/*SPAWN IN CIVIL DEFENSE/*LARGE WALL FROM EAST TO WEST/*AI GUARD BORDER CROSSINGS/*CRAFT HOUSES BASED ON SURVIVED DAYS/*RIGHT CLICK ACTIONS ON SHOVEL AND SLEDGE
*AND MORE

 

ElDubya Overpoch Server:

  Reveal hidden contents

 

Sheeps Epoch Repack:

 

 

Tnks to:

  Reveal hidden contents

@theduke  he help me a lot!

@Cherdenko he also help me in each test!

@seelenapparat he is like batman...lots of time only appear to help me and then just disappear XD

@chi @lonewolfgaming @ElDubya

Tnks to for this comunity to @vbawol  @Richie  @raymix   and the other staff :)

Many Many tnks for this greats mods used in this tuto to:

@Zupa Single currency 3.0 / Advanced Trading 2.1 / Plot Management.

@NoxSicarius  Admin tools.

@raymix  Snap_Pro.

@mudzereli Deploy Anything 2.8.1.

@ebaydayz DZGM / ESSV2.

@nightmare  for his remake on Lift & Tow.

@Axe Cop Vehicle Service Point (Refuel-Repair-Rearm)

@BigEgg Restrict Building near defined areas and non-P4L Automatically Add Plot Owner to plot.

 

 

 

and hope you make all of this work :)

 

OPTIONAL:

Here you got some others greats mods that you can use and try to install using the originals guides.

  Reveal hidden contents

Delete Vehicles in SafeZones: by @Halvhjearne

  Reveal hidden contents

 

Day/Night : by @Donnovan

  Reveal hidden contents

 

Workshop   by @juandayz  (Sory for put one of my :)  )

WAI Missions by @f3cuk

  Reveal hidden contents

WELCOME MSGS by @ZedBuster (from opendayz)

LOGO OVERLAY TO SCREEN by @ixxo (from opendayz)

CUSTOM GUI MENU by @theduke

  Reveal hidden contents

 

Anti-Dupe by @JustBullet

  Reveal hidden contents

 

Vehicle god mode by @Donnovan

  Reveal hidden contents

 

Harvest and smoke  Drugs by @FragZ

  Reveal hidden contents

 

Epoch Events: 4 side missions by @Aidem and upload again by @A Man

  Reveal hidden contents

 

 

 

 

 

Link to comment
Share on other sites

  • 0

Hi all, New user here.

Just letting you know that I have had servers before this but I'm a little rusty when it comes to some things.

I've been trying to set up plotmanagement on my server now for a few days, as it is one of the most important scripts when it comes to dayz.

I've been searching for the fn_selfactions file for a bit now and have had no luck. I have the variables and compiles files as well but do not think they work with 1.0.5.1 as when i have the files with all the epoch code in them but when i start the server, i get to the end of the loading screen but am unable to spawn in properly. 

I though this had something to do with the calling of the custom/fn_selfactions.sqf so i took the call line out, but still had the issue.

 

I had the same issue with both the variables.sqf and compiles.sqf files so i took the calling out for the variables but left the compiles in for snap build but still have the server call the \z\addons\.........\compiles.sqf with only 


if (!isDedicated) then {
	player_build = compile preprocessFileLineNumbers "custom\snap_pro\player_build.sqf";
	snap_build = compile preprocessFileLineNumbers "custom\snap_pro\snap_build.sqf";
	dayz_spaceInterrupt = compile preprocessFileLineNumbers "custom\snap_pro\dayz_spaceInterrupt.sqf";
};

 in there so i wouldn't run into any issues.

any chance someone could upload the text for the epoch variables.sqf, complies.sqf and fn_selfactions.sqf so I can get this plotmanagement working?

Would be greatly appreciated.

All because i cant find this line

if (s_player_maintain_area < 0) then {

Thanks to anyone who is able to help. I will leave the code to the variables, compiles and fn_selfactions i have now down below for you to be able to compare if you need. :)

 

fn_selfactions.sqf

Spoiler

scriptName "Functions\misc\fn_selfActions.sqf";
/***********************************************************
    ADD ACTIONS FOR SELF
    - Function
    - [] call fnc_usec_selfActions;
************************************************************/
private ["_allowedDistance","_vehicle","_inVehicle","_cursorTarget","_primaryWeapon","_currentWeapon","_magazinesPlayer",
"_onLadder","_canDo","_canDrink","_nearLight","_canPickLight","_text","_canDoThis","_waterHoles","_w2m","_bb","_dir",
"_typeOfCursorTarget","_isVehicle","_isBicycle","_isMan","_isAnimal","_isZombie","_isDestructable","_isHarvested",
"_isGenerator","_ownerID","_isVehicletype","_isFuel","_hasFuel20","_hasFuel5","_hasEmptyFuelCan","_itemsPlayer",
"_hasToolbox","_hasbottleitem","_isAlive","_isPlant","_istypeTent","_upgradeItems","_isCampSite","_hasknife",
"_hasRawMeat","_hastinitem","_displayName","_hasIgnators","_hasCarBomb","_menu","_menu1","_isHouse","_isGate",
"_isFence","_isLockableGate","_isUnlocked","_isOpen","_isClosed","_ownerArray","_ownerBuildLock","_ownerPID",
"_isPlane"];

_vehicle = vehicle player;
_inVehicle = (_vehicle != player);
_cursorTarget = cursorTarget;
_primaryWeapon = primaryWeapon player;
_currentWeapon = currentWeapon player;
_magazinesPlayer = magazines player;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder);
//_canDrink = count nearestObjects [getPosATL player, ["Land_pumpa","Land_water_tank"], 2] > 0;

_nearLight = nearestObject [player,"LitObject"];
_canPickLight = false;

if (!isNull _nearLight) then {
    if (_nearLight distance player < 4) then {
        _canPickLight = isNull (_nearLight getVariable ["owner",objNull]);
    };
};

//Grab Flare
if (_canPickLight && !dayz_hasLight) then {
    if (s_player_grabflare < 0) then {
        _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName");
        s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true];
        s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true];
    };
} else {
    player removeAction s_player_grabflare;
    player removeAction s_player_removeflare;
    s_player_grabflare = -1;
    s_player_removeflare = -1;
};

if (s_player_equip_carry < 0) then {
    if (dayz_onBack != "" && { !_inVehicle && { !_onLadder && { !r_player_unconscious } } }) then {
        dz_plr_carryActionItem = dayz_onBack;
        _text = getText (configFile >> "CfgWeapons" >> dz_plr_carryActionItem >> "displayName");
        s_player_equip_carry = player addAction [
            format [localize "STR_ACTIONS_WEAPON", _text],
            "\z\addons\dayz_code\actions\player_switchWeapon_action.sqf",
            nil, 0.5, false, true];
    };
} else {
    if (dayz_onBack != dz_plr_carryActionItem || { _inVehicle || { _onLadder || { r_player_unconscious } } } ) then {
        player removeAction s_player_equip_carry;
        s_player_equip_carry = -1;
    };
};

/*if (dayz_onBack != "" /*&& !dayz_onBackActive && !_inVehicle && !_onLadder && !r_player_unconscious) then {
    if (s_player_equip_carry < 0) then {
        _text = getText (configFile >> "CfgWeapons" >> dayz_onBack >> "displayName");
        s_player_equip_carry = player addAction [format[localize "STR_ACTIONS_WEAPON", _text], "\z\addons\dayz_code\actions\player_switchWeapon_action.sqf", nil, 0.5, false, true];
    };
} else {
    player removeAction s_player_equip_carry;
    s_player_equip_carry = -1;
};*/

//fishing
if ((_currentWeapon in Dayz_fishingItems) && {!dayz_fishingInprogress} && {!_inVehicle} && {!dayz_isSwimming}) then {
    if (s_player_fishing < 0) then {
        s_player_fishing = player addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf",player, 0.5, false, true];
    };
} else {
    player removeAction s_player_fishing;
    s_player_fishing = -1;
};
if ((_primaryWeapon in Dayz_fishingItems) && {!dayz_fishingInprogress} && {_inVehicle && (driver _vehicle != player)}) then {
    if (s_player_fishing_veh < 0) then {
        s_player_fishing_veh = _vehicle addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf",_vehicle, 0.5, false, true];
    };
} else {
    _vehicle removeAction s_player_fishing_veh;
    s_player_fishing_veh = -1;
};

_canDoThis=false;
if (_canDo && !_inVehicle && !dayz_isSwimming) then {
    {
        _waterHoles = if (typeOf _x == "waterHoleProxy") then {nearestObjects [_x, [], 1];} else {[_x];};
        {
            _w2m = _x worldToModel (getPosATL player);
            _bb = (boundingbox _x) select 1;
            _dir = [player, _x] call BIS_fnc_relativeDirTo; if (_dir > 180) then {_dir = _dir - 360};
            if (((abs _dir < 45) && {(_x distance player < 2.22)})  // wells, kasna, pumpa
                or {((("" == typeOf _x) && ((_w2m select 2) < 0.05)) && {((abs(_w2m select 0) < (_bb select 0)) && (abs(_w2m select 1) < (_bb select 1)))})}) exitWith { // ponds
                _canDoThis = true;
            };
        } count _waterHoles;
        if (_canDoThis) exitWith {
            if (s_player_Drinkfromhands < 0) then {
                s_player_Drinkfromhands = player addAction [localize "STR_ACTIONS_DRINK2", "\z\addons\dayz_code\actions\player_drinkWater.sqf",player, 0.5, false, true];
            };
        };
    } foreach nearestObjects [player, ["waterHoleProxy", "Land_pumpa"], 50];
};
if (!_canDoThis && s_player_Drinkfromhands >= 0) then {
    player removeAction s_player_Drinkfromhands;
    s_player_Drinkfromhands = -1;
};

// Increase distance only if Fishing_Boat
_allowedDistance = if (typeOf _cursorTarget == "Fishing_Boat") then {8} else {4};

if (!isNull _cursorTarget && !_inVehicle && (player distance _cursorTarget < _allowedDistance) && _canDo) then { 
//Has some kind of target
    _typeOfCursorTarget = typeOf _cursorTarget;
    _isVehicle = _cursorTarget isKindOf "AllVehicles";
    _isBicycle = _cursorTarget isKindOf "Bicycle";
    _isPlane = _cursorTarget isKindOf "Plane";
    _isMan = _cursorTarget isKindOf "Man";
    _isAnimal = _cursorTarget isKindOf "Animal";
    _isZombie = _cursorTarget isKindOf "zZombie_base";
    _isDestructable = _cursorTarget isKindOf "BuiltItems";
    _isHarvested = _cursorTarget getVariable["meatHarvested",false];
    _isGenerator = _cursorTarget isKindOf "Generator_DZ";
    _ownerID = _cursorTarget getVariable ["characterID","0"];
    _isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"];
    _isFuel = false;
    _hasFuel20 = "ItemJerrycan" in _magazinesPlayer;
    _hasFuel5 = "ItemFuelcan" in _magazinesPlayer;
    _hasEmptyFuelCan = (("ItemJerrycanEmpty" in _magazinesPlayer) || ("ItemFuelcanEmpty" in _magazinesPlayer));
    _itemsPlayer = items player;
    _hasToolbox = "ItemToolbox" in _itemsPlayer;
    _hasbottleitem = (("ItemWaterBottle" in _magazinesPlayer) || ("ItemWaterBottleInfected" in _magazinesPlayer) || ("ItemWaterBottleSafe" in _magazinesPlayer));
    _isAlive = alive _cursorTarget;
    _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName");
    _isPlant = _typeOfCursorTarget in Dayz_plants;
    _istypeTent = (_cursorTarget isKindOf "TentStorage_base") or (_cursorTarget isKindOf "IC_Tent");
    _upgradeItems = ["TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DomeTentStorage4"];
    _isCampSite = _cursorTarget isKindOf "IC_Fireplace1";

    //fuel tanks
    if (_hasEmptyFuelCan) then {
        //_isFuel = _typeOfCursorTarget in ["Land_Ind_TankSmall","Land_fuel_tank_big","Land_fuel_tank_stairs","Land_wagon_tanker","Land_fuelstation","Land_fuelstation_army"];
        _isFuel = (_cursorTarget isKindOf "Land_Ind_TankSmall") or (_cursorTarget isKindOf "Land_fuel_tank_big") or (_cursorTarget isKindOf "Land_fuel_tank_stairs") or (_cursorTarget isKindOf "Land_wagon_tanker");
    };

    //remove gathered plant if empty
    if (_isPlant) then {
        _cursorTarget call player_gather;
    };

    //flip vehicle
    if (_isVehicletype && {!(canMove _cursorTarget)} && {_isAlive} && {player distance _cursorTarget >= 2} && {(count (crew _cursorTarget))== 0} && {((vectorUp _cursorTarget) select 2) < 0.5}) then {
        if (s_player_flipveh < 0) then {
            s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget, 1, true, true];
        };
    } else {
        player removeAction s_player_flipveh;
        s_player_flipveh = -1;
    };
    
    if (_isPlane && {_isAlive} && {count (crew _cursorTarget) == 0}) then {
        if (s_player_pushPlane < 0) then {
            s_player_pushPlane = player addAction [format[localize "str_actions_push",_text], "\z\addons\dayz_code\actions\player_pushPlane.sqf",_cursorTarget,1,true,true];
        };
    } else {
        player removeAction s_player_pushPlane;
        s_player_pushPlane = -1;
    };
    
    //Allow player to fill Fuel can
    if (_hasEmptyFuelCan && {_isFuel} && {!a_player_jerryfilling} && {_isAlive}) then {
        if (s_player_fillfuel < 0) then {
            s_player_fillfuel = player addAction [localize "str_actions_self_10", "\z\addons\dayz_code\actions\jerry_fill.sqf",_cursorTarget, 1, false, true];
        };
    } else {
        player removeAction s_player_fillfuel;
        s_player_fillfuel = -1;
    };
    
    if (damage _cursorTarget < 1) then {
        //Allow player to fill vehicle 20L
        if (_hasFuel20 && {!_isZombie} && {!_isAnimal} && {!_isMan} && {_isVehicle or _isGenerator} && {fuel _cursorTarget < 1} && {!a_player_jerryfilling}) then {
            if (s_player_fillfuel20 < 0) then {
                s_player_fillfuel20 = player addAction [format[localize "str_actions_medical_10",_text,"20"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemJerrycan",_cursorTarget], 0, true, true, "", "'ItemJerrycan' in magazines player"];
            };
        } else {
            player removeAction s_player_fillfuel20;
            s_player_fillfuel20 = -1;
        };

        //Allow player to fill vehicle 5L
        if (_hasFuel5 && {!_isZombie} && {!_isAnimal} && {!_isMan} && {_isVehicle or _isGenerator} && {fuel _cursorTarget < 1} && {!a_player_jerryfilling}) then {
            if (s_player_fillfuel5 < 0) then {
                s_player_fillfuel5 = player addAction [format[localize "str_actions_medical_10",_text,"5"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemFuelcan",_cursorTarget], 0, true, true, "", "'ItemFuelcan' in magazines player"];
            };
        } else {
            player removeAction s_player_fillfuel5;
            s_player_fillfuel5 = -1;
        };
        /*
        //power on Gen
        if (_isGenerator && (fuel _cursorTarget > 0)) then {
            player action["EngineOn", _cursorTarget];
        };
        */
        //
        //Allow player to siphon vehicles
        if (_hasEmptyFuelCan && {!_isZombie} && {!_isAnimal} && {!_isMan} && {_isVehicle} && {!_isBicycle} && {!a_player_jerryfilling} && {fuel _cursorTarget > 0}) then {
            if (s_player_siphonfuel < 0) then {
                s_player_siphonfuel = player addAction [format[localize "str_siphon_start"], "\z\addons\dayz_code\actions\siphonFuel.sqf",_cursorTarget, 0, true, true];
            };
        } else {
            player removeAction s_player_siphonfuel;
            s_player_siphonfuel = -1;
        };
    } else {
        player removeAction s_player_fillfuel20;
        s_player_fillfuel20 = -1;
        player removeAction s_player_fillfuel5;
        s_player_fillfuel5 = -1;
        player removeAction s_player_siphonfuel;
        s_player_siphonfuel = -1;
    };
    
    //Harvested
    if (!_isAlive && _isAnimal && !_isHarvested) then {
        //_hasknife = {_x in ["ItemKnife","ItemKnife5","ItemKnife4","ItemKnife3","ItemKnife2","ItemKnifeBlunt"]} count _itemsPlayer > 0;
        //make sure the player has a knife
        //if (_hasknife) then {
        if (s_player_butcher < 0) then {
            s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true];
        };
        //} else {
        //    player removeAction s_player_butcher;
        //    s_player_butcher = -1;
        //};
    } else {
        player removeAction s_player_butcher;
        s_player_butcher = -1;
    };
    
    //Fireplace Actions check
    if ((_cursorTarget call isInflamed) or (inflamed _cursorTarget)) then {
        _hasRawMeat = {_x in Dayz_meatraw} count _magazinesPlayer > 0;
        _hastinitem = {_x in boil_tin_cans} count _magazinesPlayer > 0;
        
    //Cook Meat    
        if (_hasRawMeat && !a_player_cooking) then {
            if (s_player_cook < 0) then {
                s_player_cook = player addAction [localize "str_actions_self_05", "\z\addons\dayz_code\actions\cook.sqf",_cursorTarget, 3, true, true];
            };
        }; 
    //Boil Water
        if (_hastinitem && _hasbottleitem && !a_player_boil) then {
            if (s_player_boil < 0) then {
                s_player_boil = player addAction [localize "str_actions_boilwater", "\z\addons\dayz_code\actions\boil.sqf",_cursorTarget, 3, true, true];
            };
        };
    } else {
        if (a_player_cooking) then {
            player removeAction s_player_cook;
            s_player_cook = -1;
        };
        if (a_player_boil) then {
            player removeAction s_player_boil;
            s_player_boil = -1;
        };
    };
    
//    Not needed.
/*
    if(_cursorTarget == dayz_hasFire) then {
        if ((s_player_fireout < 0) && !(_cursorTarget call isInflamed) && (player distance _cursorTarget < 3)) then {
            s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget, 0, false, true];
        };
    } else {
        player removeAction s_player_fireout;
        s_player_fireout = -1;
    };
*/

    //remove Own objects
    if (_ownerID == dayz_characterID) then {
        if (_isDestructable && _hasToolbox) then {
            if (s_player_deleteBuild < 0) then {
                s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text], "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true];
            };
        } else {
            player removeAction s_player_deleteBuild;
            s_player_deleteBuild = -1;
        };    
        //upgrade items
        if (_typeOfCursorTarget in _upgradeItems) then {
            if (s_player_upgradestorage < 0) then {
                if (isText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "Upgrade" >> "create")) then {
                    _displayName = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName");
                    s_player_upgradestorage = player addAction [format[localize "str_upgrade",_displayName], "\z\addons\dayz_code\actions\object_upgradeStorage.sqf",_cursorTarget, 0, false, true];
                };
            };
        } else {
            player removeAction s_player_upgradestorage;
            s_player_upgradestorage = -1
        };
        if (_istypeTent) then {
            //Packing my tent
            if (s_player_packtent < 0) then {
                s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true];
            };
        } else {
            player removeAction s_player_packtent;
            s_player_packtent = -1;
        };
    } else {
        player removeAction s_player_deleteBuild;
        s_player_deleteBuild = -1;
        player removeAction s_player_upgradestorage;
        s_player_upgradestorage = -1;
        player removeAction s_player_packtent;
        s_player_packtent = -1;
    };
    //other tents
    if (_istypeTent) then {
        //destroy tents
        //Located in variables Dayz_Ignators = ["ItemMatchbox","Item5Matchbox","Item4Matchbox","Item3Matchbox","Item2Matchbox","Item1Matchbox"];
        _hasIgnators = {_x in Dayz_Ignators} count _itemsPlayer > 0;
        if ((_hasFuel20 or _hasFuel5) && _hasIgnators) then {
            if (s_player_destorytent < 0) then {
                s_player_destorytent = player addAction [localize "str_actions_self_destorytent", "\z\addons\dayz_code\actions\player_destroyTent.sqf",_cursorTarget, 0, false, true];
            };
        } else {
            player removeAction s_player_destorytent;
            s_player_destorytent = -1;
        };        
        if (_typeOfCursorTarget in ["IC_DomeTent","IC_Tent"]) then {
            if (s_player_packtentinfected < 0) then {
                s_player_packtentinfected = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true];
            };
        } else {
            player removeAction s_player_packtentinfected;
            s_player_packtentinfected = -1;
        };
        //sleep
        if (s_player_sleep < 0) then {
            s_player_sleep = player addAction [localize "str_actions_self_sleep", "\z\addons\dayz_code\actions\player_sleep.sqf",_cursorTarget, 0, false, true];
        };
    } else {
        player removeAction s_player_sleep;
        s_player_sleep = -1;
    };
                    
    //Study Body
    if (_isMan && {!_isAlive} && {!_isZombie} && {!_isAnimal}) then {
        if (s_player_studybody < 0) then {
            s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true];
        };
    } else {
        player removeAction s_player_studybody;
        s_player_studybody = -1;
    };
/*    
    //Carbomb
    _hasCarBomb = "ItemCarBomb" in _magazinesPlayer;
    if (((_cursorTarget isKindOf "Car") || (_cursorTarget isKindOf "Air") || (_cursorTarget isKindOf "Motorcycle")) && _hasCarBomb) then {
        if (s_player_attach_bomb < 0) then {
            s_player_attach_bomb = player addAction [localize "str_bombAttach", "\z\addons\dayz_code\actions\player_attach_bomb.sqf",_cursorTarget, 3, true, true];
        };
    } else {
            player removeAction s_player_attach_bomb;
            s_player_attach_bomb = -1;
    };
*/
    //Repairing Vehicles
    if (_isVehicle && {!_isMan} && {dayz_myCursorTarget != _cursorTarget} && {_hasToolbox} && {damage _cursorTarget < 1}) then {
        if (s_player_repair_crtl < 0) then {
            dayz_myCursorTarget = _cursorTarget;
            _menu = dayz_myCursorTarget addAction [localize "str_actions_repairveh", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false];
            if (!_isBicycle) then { //Bike wheels should not give full size tires. Also model does not update to show removed wheels.
                _menu1 = dayz_myCursorTarget addAction [localize "str_actions_salvageveh", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false];
                s_player_repairActions set [count s_player_repairActions,_menu1];
            };
            s_player_repairActions set [count s_player_repairActions,_menu];
            s_player_repair_crtl = 1;
        } else {
            {dayz_myCursorTarget removeAction _x} forEach s_player_repairActions;
            s_player_repairActions = [];
            s_player_repair_crtl = -1;
        };
    };
    
    // House locking and unlocking
    _isHouse = _typeOfCursorTarget in ["SurvivorWorkshopAStage5", "SurvivorWorkshopBStage5", "SurvivorWorkshopCStage5"];
    _isGate = _typeOfCursorTarget in ["WoodenGate_1","WoodenGate_2","WoodenGate_3","WoodenGate_4","MetalGate_1","MetalGate_2","MetalGate_3","MetalGate_4"];
    _isFence = _typeOfCursorTarget in ["WoodenFence_1","WoodenFence_2","WoodenFence_3","WoodenFence_4","WoodenFence_5","WoodenFence_6","MetalFence_1","MetalFence_2","MetalFence_3","MetalFence_4","MetalFence_5","MetalFence_6","MetalFence_7"];

    //Only the owners can lock the gates
    _isLockableGate = _typeOfCursorTarget in ["WoodenGate_2","WoodenGate_3","WoodenGate_4","MetalGate_2","MetalGate_3","MetalGate_4"];
    _isUnlocked = _cursorTarget getVariable ["isOpen","0"] == "1";

    //Allow the gates to be opened when not locked by anyone
    _isOpen = ((_cursorTarget animationPhase "DoorL") == 1) || ((_cursorTarget animationPhase "DoorR") == 1);
    _isClosed = ((_cursorTarget animationPhase "DoorL") == 0) || ((_cursorTarget animationPhase "DoorR") == 0);
    
    //[["ownerArray",["PID"]]]
    _ownerArray = _cursorTarget getVariable ["ownerArray",["0"]];
    _ownerBuildLock = _cursorTarget getVariable ["BuildLock",false];    
    _ownerPID = (_ownerArray select 0);
    
    // open Gate
    if (_isGate && _isClosed && _isUnlocked) then {
        if (s_player_openGate < 0) then {
            s_player_openGate = player addAction [localize "STR_BLD_ACTIONS_OPENGATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Open"], 1, true, true];
        };
    } else {
        player removeAction s_player_openGate;
        s_player_openGate = -1;
    };
    // Close Gate
    if (_isGate && _isOpen && _isUnlocked) then {
        if (s_player_CloseGate < 0) then {
            s_player_CloseGate = player addAction [localize "STR_BLD_ACTIONS_CLOSEGATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Close"], 1, true, true];
        };
    } else {
        player removeAction s_player_CloseGate;
        s_player_CloseGate = -1;
    };
    // Set
    if ((_isHouse or _isLockableGate) && (_ownerPID == (getPlayerUID player)) && !_isUnlocked && _isClosed) then {
        if (s_player_setCode < 0) then {
            s_player_setCode = player addAction [localize "STR_BLD_ACTIONS_SETLOCKCODE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Set"], 1, true, true];
        };
    } else {
        player removeAction s_player_setCode;
        s_player_setCode = -1;
    };
    //Lock Build point
    if ((_isFence or _isGate) && (_ownerPID == (getPlayerUID player)) && !_ownerBuildLock) then {
        if (s_player_BuildLock < 0) then {
            s_player_BuildLock = player addAction [localize "STR_BLD_ACTIONS_LOCKBUILD", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"BuildLock"], 1, true, true];
        };
    } else {
        player removeAction s_player_BuildLock;
        s_player_BuildLock = -1;
    };
    //UnLock Build point
    if ((_isFence or _isGate) && (_ownerPID == (getPlayerUID player)) && _ownerBuildLock) then {
        if (s_player_BuildUnLock < 0) then {
            s_player_BuildUnLock = player addAction [localize "STR_BLD_ACTIONS_UNLOCKBUILD", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"BuildUnLock"], 1, true, true];
        };
    } else {
        player removeAction s_player_BuildUnLock;
        s_player_BuildUnLock = -1;
    };
    // Unlock Gate/House
    if ((_isHouse or _isLockableGate) && !_isUnlocked && _isClosed) then {
        if (s_player_unlockhouse < 0) then {
            s_player_unlockhouse = player addAction [localize "STR_BLD_ACTIONS_UNLOCKGATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Unlock"], 1, true, true];
        };
    } else {
        player removeAction s_player_unlockhouse;
        s_player_unlockhouse = -1;
    };
    // Lock Gate/House
    if ((_isHouse or _isLockableGate) && _isUnlocked && _isClosed) then {
        if (s_player_lockhouse < 0) then {
            s_player_lockhouse = player addAction [localize "STR_BLD_ACTIONS_LOCKGATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Lock"], 1, true, true];
        };
    } else {
        player removeAction s_player_lockhouse;
        s_player_lockhouse = -1;
    };
    //Break In
    if ((_isHouse or _isLockableGate) && (_ownerPID != (getPlayerUID player)) && !_isUnlocked) then {
        if (s_player_breakinhouse < 0) then {
            s_player_breakinhouse = player addAction [localize "STR_BLD_ACTIONS_BREAKIN", "\z\addons\dayz_code\actions\player_breakin.sqf",_cursorTarget, 1, true, true];
        };
    } else {
        player removeAction s_player_breakinhouse;
        s_player_breakinhouse = -1;
    };
} else {
    //Engineering
    {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = [];
    player removeAction s_player_repair_crtl;
    s_player_repair_crtl = -1;
    dayz_myCursorTarget = objNull;
    player removeAction s_player_flipveh;
    s_player_flipveh = -1;
    player removeAction s_player_pushPlane;
    s_player_pushPlane = -1;
    player removeAction s_player_sleep;
    s_player_sleep = -1;
    player removeAction s_player_deleteBuild;
    s_player_deleteBuild = -1;
    player removeAction s_player_butcher;
    s_player_butcher = -1;
    player removeAction s_player_cook;
    s_player_cook = -1;
    player removeAction s_player_boil;
    s_player_boil = -1;
    player removeAction s_player_fireout;
    s_player_fireout = -1;
    player removeAction s_player_packtent;
    s_player_packtent = -1;
    player removeAction s_player_packtentinfected;
    s_player_packtentinfected = -1;
    player removeAction s_player_fillfuel;
    s_player_fillfuel = -1;
    player removeAction s_player_studybody;
    s_player_studybody = -1;
    //fuel
    player removeAction s_player_fillfuel20;
    s_player_fillfuel20 = -1;
    player removeAction s_player_fillfuel5;
    s_player_fillfuel5 = -1;
    //Allow player to siphon vehicle fuel
    player removeAction s_player_siphonfuel;
    s_player_siphonfuel = -1;
    //Allow player to gather
    player removeAction s_player_gather;
    s_player_gather = -1;
    player removeAction s_player_destorytent;
    s_player_destorytent = -1;
    // player removeAction s_player_attach_bomb;
    //  s_player_attach_bomb = -1;
    //debug
    //player removeAction s_player_debugCheck;
    //s_player_debugCheck = -1;
    player removeAction s_player_upgradestorage;
    s_player_upgradestorage = -1;
    //Unlock,Lock
    player removeAction s_player_setCode;
    s_player_setCode = -1;
    player removeAction s_player_lockhouse;
    s_player_lockhouse = -1;
    player removeAction s_player_unlockhouse;
    s_player_unlockhouse = -1;
    player removeAction s_player_openGate;
    s_player_openGate = -1;
    player removeAction s_player_CloseGate;
    s_player_CloseGate = -1;
    player removeAction s_player_breakinhouse;
    s_player_breakinhouse = -1;
    player removeAction s_player_BuildUnLock;
    s_player_BuildUnLock = -1;
    player removeAction s_player_BuildLock;
    s_player_BuildLock = -1;
};

//Monitor
player setVariable ["selfActions", diag_ticktime, false];
 



compiles.sqf

Spoiler

if (isServer) then {
    call compile preprocessFileLineNumbers "\z\addons\dayz_server\init\server_functions.sqf";
    fnc_veh_setFixServer = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_setFixServer.sqf";    //process the hit as a NORMAL damage (useful for persistent vehicles)
    pvs_processSetAccessCode = compile preprocessFile "\z\addons\dayz_code\eventHandlers\processSetAccessCode.sqf";
    pvs_processAccessCode = compile preprocessFile "\z\addons\dayz_code\eventHandlers\processAccessCode.sqf";
};

if (!isDedicated) then {
    player_build = compile preprocessFileLineNumbers "custom\snap_pro\player_build.sqf";
    snap_build = compile preprocessFileLineNumbers "custom\snap_pro\snap_build.sqf";
    dayz_spaceInterrupt = compile preprocessFileLineNumbers "custom\snap_pro\dayz_spaceInterrupt.sqf";
//    "filmic" setToneMappingParams [0.153, 0.357, 0.231, 0.1573, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";
    "filmic" setToneMappingParams [0.07, 0.31, 0.23, 0.37, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";
    
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_padlock.sqf";
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\util\compile.sqf";
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\loot\compile.sqf";
    
    fn_dropItem = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_dropItem.sqf"; //fnc to drop items. _item call fn_dropItem;
    BIS_Effects_Burn = compile preprocessFile "\ca\Data\ParticleEffects\SCRIPTS\destruction\burn.sqf";
    player_zombieCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieCheck.sqf";    //Run on a players computer, checks if the player is near a zombie
    player_zombieAttack = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieAttack.sqf";    //Run on a players computer, causes a nearby zombie to attack them
    player_attackdelay = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_attackfsmdelay.sqf";
    fnc_usec_damageActions = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageActions.sqf";        //Checks which actions for nearby casualty
    fnc_inAngleSector = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inAngleSector.sqf";        //Checks which actions for nearby casualty
    fnc_usec_selfActions = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf";        //Checks which actions for self
    fnc_usec_upgradeActions = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_upgradeActions.sqf";
    fnc_usec_unconscious = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_unconscious.sqf";
    player_temp_calculation = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_temperatur.sqf";        //Temperatur System //TeeChange
    player_weaponFiredNear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponFiredNear.sqf";
    player_spawnCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnCheck.sqf";
    //player_spawnLootCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnlootCheck.sqf";
    //player_spawnZedCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnzedCheck.sqf";
    building_spawnLoot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnLoot.sqf";
    //player_taskHint = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_taskHint.sqf";
    building_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnZombies.sqf";
    //animal_monitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\animal_monitor.sqf";
    //building_monitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\building_monitor.sqf";
    player_fired = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_fired.sqf";            //Runs when player fires. Alerts nearby Zeds depending on calibre and audial rating
    player_packTent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_packTent.sqf";
    //control_zombieAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\control_zombieAgent.sqf";
    player_updateGui = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_updateGui.sqf";
    player_crossbowBolt = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_crossbowBolt.sqf";
    player_music = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_music.sqf";            //Used to generate ambient music
    //player_login = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_login.sqf";            //Used to generate ambient music
    player_death = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_death.sqf";
    player_switchModel = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_switchModel.sqf";
    player_checkStealth = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_checkStealth.sqf";
    world_sunRise = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_sunRise.sqf";
    world_surfaceNoise = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_surfaceNoise.sqf";
    player_humanityMorph = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityMorph.sqf";
    player_throwObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_throwObject.sqf";
    player_alertZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_alertZombies.sqf";
    player_fireMonitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\fire_monitor.sqf";
    player_countMagazines = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_countMagazines.sqf";
    player_forceSave = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_forceSave.sqf";
    //player_destroyTent = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_destroyTent.sqf";
    vehicle_getOut = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_getOut.sqf";
    //Objects
    object_setpitchbank = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_setpitchbank.sqf";
    object_monitorGear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_monitorGear.sqf";
    object_dismantle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_dismantle.sqf";
    
    //Collisions
    fn_collisions = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_collisions.sqf";

    //Zombies
    zombie_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_findTargetAgent.sqf";
    player_zombieSwarmAttack = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieSwarmAttack.sqf";
    zombie_loiter = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_loiter.sqf";            //Server compile, used for loiter behaviour
    zombie_generate = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_generate.sqf";            //Server compile, used for loiter behaviours
    //zombie_generateSwarm = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\swarm_generate.sqf";

    //actions
    player_addToolbelt = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_addToolbelt.sqf";
    player_addtoBack = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_addtoBack.sqf";
    player_reloadMag = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_reloadMags.sqf";
    player_createstash = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_createstash.sqf";
    player_drinkWater = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_drinkWater.sqf";
    player_consume = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_consume.sqf";
    player_emptyContainer = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_emptyContainer.sqf";
    player_useMeds = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_useMeds.sqf";
    player_useAttchment = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_useAttchment.sqf";
    player_attachAttachment = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_attachAttachment.sqf";
    player_removeAttachment = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_removeAttachment.sqf";
    player_fillWater = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\water_fill.sqf";
    player_makeFire = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_makefire.sqf";
    player_chopWood = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_chopWood.sqf";
    player_mineStone = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_mineStone.sqf";
    player_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";
    fn_buildCamera = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_buildCamera.sqf";
    object_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_build.sqf";
    object_upgradeFireplace = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_upgradeFireplace.sqf";
    player_wearClothes = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_wearClothes.sqf";
    player_dropWeapon = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_dropWeapon.sqf";
    //player_setTrap = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_setTrap.sqf";
    object_pickup = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_pickup.sqf";
    //player_sleep = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sleep.sqf";
    player_combineMag = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_combineMags.sqf";
    player_combineAntibiotics = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_combineAntibiotics.sqf";
    player_createquiver = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_createQuiver.sqf";
    player_fillquiver = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_fillQuiver.sqf";
    //player_takearrow = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_takeArrow.sqf";
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_switchWeapon.sqf";
    //player_goFishing = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_goFishing.sqf";
    player_gather = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_gather.sqf";
    player_fixBottle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_fixBottle.sqf";
    player_tearClothes = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_tearClothes.sqf";
    //object_remove = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\remove.sqf";
    player_fixHatchet = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_fixTools.sqf";
    player_sharpen = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sharpen.sqf";

    //ui
    player_toggleSoundMute = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_toggleSoundMute.sqf";
    player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf";
    player_selectWeapon = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_selectWeapon.sqf";
    player_gearSet = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_gearSet.sqf";
    ui_changeDisplay = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_changeDisplay.sqf";
    ui_gear_sound = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_gear_sound.sqf";

    //playerstats
    horde_epeen_fnc_fill_page = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\fill_page_fnc.sqf";
    horde_epeen_determine_humanity_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\determine_humanity_fnc.sqf";
    horde_epeen_setText_journal_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\epeen_setText_journal.sqf";
    horde_epeen_setText_humanity_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\epeen_setText_humanity.sqf";
    horde_epeen_setText_stats_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\epeen_setText_stats.sqf";
    horde_epeen_show_humanity_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\show_humanity_fnc.sqf";

    //System
    player_spawn_2 = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_2.sqf";
    infectedcamps = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_infectedcamps.sqf";
    //camp_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\camp_spawnZombies.sqf";            //Server compile, used for loiter behaviour

    //Crafting
    fn_updateCraftUI = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_updateCraftUI.sqf";
    player_craftItem = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_craftItem.sqf";
    player_craftItemGUI = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_craftItemGUI.sqf";
    player_checkRecipe = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_checkRecipe.sqf";    

    dayz_losChance = {
        private["_agent","_maxDis","_dis","_val","_maxExp","_myExp"];
        _agent = _this select 0;
        _dis = _this select 1;
        _maxDis = _this select 2;
        //diag_log ("VAL:  " + str(_this));
        _maxDis = 0.1 max _maxDis;
        _val = (_maxDis - _dis) max 0;
        _maxExp = ((exp 2) * _maxDis);
        _myExp = ((exp 2) * (_val)) / _maxExp;
        _myExp = _myExp * 0.7;
        _myExp
    };

    ui_initDisplay = {
        private ["_ctrlBleed","_ctrlFracture"];
        disableSerialization;
        _display = uiNamespace getVariable 'DAYZ_GUI_display';
        _control = _display displayCtrl 1204;
        _control ctrlShow false;
        if (!r_player_injured) then {
            _ctrlBleed = _display displayCtrl 1303;
            _ctrlBleed ctrlShow false;
        };
        if (!r_fracture_legs && !r_fracture_arms) then {
            _ctrlFracture = _display displayCtrl 1203;
            _ctrlFracture ctrlShow false;
        };
    };

    dayz_angleCheck = {
        private ["_degree","_tPos","_zPos","_inAngle"];
        _target = _this select 0;
        _agent = _this select 1;
        _degree = _this select 2;
        _inAngle = false;
        _tPos = getPosASL _target;
        _zPos = getPosASL _agent;
        _eyeDir = direction _agent;
        _inAngle = [_zPos,_eyeDir,_degree,_tPos] call fnc_inAngleSector;
        _inAngle
    };
    
    dayz_losCheck = {
        private ["_cantSee","_target","_agent"];
        _target = _this select 0; // PUT THE PLAYER IN FIRST ARGUMENT!!!!
        _agent = _this select 1;
        _cantSee = true;
        
        if ((!isNull _target) && (!isNull _agent)) then {
            private ["_tPos","_zPos"];
            _tPos = eyePos _target;
            _zPos = eyePos _agent;
            if ((count _tPos > 0) && (count _zPos > 0)) then {
                _cantSee = terrainIntersectASL [(eyePos _target), (eyePos _agent)];
                //diag_log ("terrainIntersectASL: " + str(_cantSee));
                
                if (!_cantSee) then {
                    _cantSee = lineIntersects [(eyePos _target), (eyePos _agent)];
                    //diag_log ("lineIntersects: " + str(_cantSee));
                };
            };
        };
        _cantSee
    };
    /*
    dayz_dropItem = {
        private ["_nearByPile","_item"];
        
        _type = _this select 0;
        _dropItem = _this select 1;
        _dropAmount = _this select 2;
    
        _nearByPile = nearestObjects [(getPosATL player), ["WeaponHolder","WeaponHolderBase"],2];
        if (count _nearByPile == 0) then {
            _item = createVehicle ["WeaponHolder", (getPosATL player), [], 0.0, "CAN_COLLIDE"];
        } else {
            _item = _nearByPile select 0;
        };
        _item addMagazineCargoGlobal [_dropItem,_dropAmount];
        _item setvelocity [0,0,1];
    };
    */
    dayz_NutritionSystem = {
        private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
        //["type",regen,[NutritionTable,thirst(Working Class),hunger(Working Class)]]
        //info to be added
        _type = _this select 0;
        _baseRegen = _this select 1;
        _nutrition = _this select 2;
        
        //Nutrition array
        _calorieCount = ((_this select 2) select 0);
        //gain
        _hungerCount = ((_this select 2) select 1);
        _thirstCount = ((_this select 2) select 2);
        _tempCount = ((_this select 2) select 3);
        
        //3610 is based on a 80kg male 180cm tall
        if (_calorieCount > 0) then {
            _hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
            _thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
        };
        
        switch (_type) do {
            case "FoodDrink": {
                //hunger
                if (_hungerCount > 0) then { 
                    if (dayz_hunger > _hungerCount) then {
                        dayz_hunger = dayz_hunger - (_hungerCount);  
                    } else {
                        dayz_hunger = 0;
                    };
                };
                //thirst
                if (_thirstCount > 0) then { 
                    if (dayz_thirst > _thirstCount) then {
                        dayz_thirst = dayz_thirst - _thirstCount;
                    } else {
                        dayz_thirst = 0;
                    };
                };
                //temp
                if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
                //calorie
                if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
                //blood
                if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
            };
                                    
            case "Working": {
                if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - _calorieCount; };
                if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + _thirstCount; };
                if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + _hungerCount; };
                if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
            };
        
        };

        dayz_thirst = (dayz_thirst min SleepWater) max 0;
        dayz_hunger = (dayz_hunger min SleepFood) max 0;
        dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
        //systemChat str [ "nutrition, r_player_bloodregen+=",_baseRegen,"dayz_nutrition+=", _calorieCount, "dayz_thirst+=", _thirstCount, "dayz_hunger+=", _hungerCount ];
        //systemChat format ["%6, Nutrition add: %1, Nutrition Total: %2, Thirst: %3, Hunger: %4, dayz_temperatur: %5",_this,dayz_nutrition,dayz_thirst,dayz_hunger,dayz_temperatur];
        //diag_log format ["%6, Nutrition add: %1, Nutrition Total: %7/%2, Thurst: %3, Hunger: %4, BloodRegen: %5",_this,r_player_Nutrition,_Thirst,_Hunger,_bloodregen,_type,_golbalNutrition];
    };

    gear_ui_offMenu = {
        private["_control","_parent","_menu","_grpPos"];
        disableSerialization;
        _control = _this select 0;
        _parent = findDisplay 106;
        if (!(_this select 3)) then {
            for "_i" from 0 to 9 do {
                _menu = _parent displayCtrl (1600 + _i);
                _menu ctrlShow false;
            };
            _grpPos = ctrlPosition _control;
            _grpPos set [3,0];
            _control ctrlSetPosition _grpPos;
            _control ctrlShow false;
            _control ctrlCommit 0;
        };
    };

    gear_ui_init = {
        //private["_control","_parent","_menu","_grpPos"];
        disableSerialization;
        _parent = findDisplay 106;
        _control = _parent displayCtrl 6902;
        for "_i" from 0 to 9 do {
            _menu = _parent displayCtrl (1600 + _i);
            _menu ctrlShow false;
        };
        _grpPos = ctrlPosition _control;
        _grpPos set [3,0];
        _control ctrlSetPosition _grpPos;
        _control ctrlShow false;
        _control ctrlCommit 0;
    };

    gear_ui_hide = {
        //private["_display","_BP"];
        disableSerialization;
        _display = findDisplay 106;
        _BP = unitBackpack player;
        if (ctrlShown (_display displayCtrl 159)) then {//prevent background images in backpack view
            for "_i" from 1006 to 1011 do {
                (_display displayCtrl _i) ctrlShow false;
            };
        } else {
            for "_i" from 1006 to 1011 do {
                if (!(ctrlShown (_display displayCtrl _i))) then {
                    (_display displayCtrl _i) ctrlShow true;
                };
            };
        };
        //hide buttons if unnecessary
        if (isNull _BP || ((typeOf _BP) == "")) then {
            (_display displayCtrl 132) ctrlShow false;
            (_display displayCtrl 157) ctrlShow false;
            (_display displayCtrl 158) ctrlShow false;
        };

        // Prevent carrying 2 rifles 'exploit'
        if (primaryWeapon player == "" && dayz_onBack != "" && !(dayz_onBack in MeleeWeapons)) then {
            //["gear"] call player_switchWeapon;
            0 call dz_fn_switchWeapon;
        };

        if (primaryWeapon player != "" && (primaryWeapon player in MeleeWeapons || dayz_onBack in MeleeWeapons)) then {
            (_display displayCtrl 1204) ctrlShow true;
        } else {
            (_display displayCtrl 1204) ctrlShow false;
        };

        if (DayZ_onBack != "") then {
            (_display displayCtrl 1208) ctrlShow true;
        } else {
            (_display displayCtrl 1208) ctrlShow false;
        };

        for "_i" from 0 to (lbSize (_display displayCtrl 105)) - 1 do {
            (_display displayCtrl 105) lbSetColor [_i, [0.06, 0.05, 0.03, 1]];
        };
    };

    dayz_lowHumanity = {
        //private["_unit","_humanity","_delay"];
        _unit = _this;
        if ((_unit distance player) < 15) then {
            private "_humanity";
            _humanity = _unit getVariable["humanity",0];
            dayz_heartBeat = true;
            if (_humanity < -3000) then {
                private "_delay";
                _delay = ((10000 + _humanity) / 5500) + 0.3;
                playSound "heartbeat_1";
                uiSleep _delay;
            };
            dayz_heartBeat = false;
        };
    };
    
    dz_fn_meleeMagazines = {
        if (_this) then {
            { player addMagazine _x } count MeleeMagazines;
        } else {
            { player removeMagazines _x } count MeleeMagazines;
        };
    };
    
    dayz_meleeMagazineCheck = {
        //private["_meleeNum","_magType","_wpnType","_ismelee"];
        _wpnType = primaryWeapon player;
        _ismelee = (getNumber (configFile >> "CfgWeapons" >> _wpnType >> "melee") == 1);
        if (_ismelee) then {
            private ["_meleeNum","_magType"];
            _magType = ([] + getArray (configFile >> "CfgWeapons" >> _wpnType >> "magazines")) select 0;
            _meleeNum = ({_x == _magType} count magazines player);
            if (_meleeNum < 1) then {
                player addMagazine _magType;
            };
        };

        // combine matchboxes
        private ["_matches","_fullBox","_remain"];
        _matches = 0;
        {
            if (configName inheritsFrom (configfile >> "cfgWeapons" >> _x) == "ItemMatchbox") then { // iskindOf does not work here?!
                 _matches = _matches + getNumber(configfile >> "cfgWeapons" >> _x >> "Ignators" >> "matches");
                 player removeWeapon _x;
            };
        } count (items player);
        // limit to 1 fullbox and 1 used matchbox
        _fullBox = floor (_matches / 5);        
        _remain = _matches % 5;
        if (_fullBox > 0) then { player addWeapon "Item5Matchbox"; };
          if (_fullBox > 1) then { 
            player addWeapon "Item4Matchbox"; 
        } else {
            if (_remain > 0) then { player addWeapon ("Item"+str(_remain)+"Matchbox"); };
        };
    };
    
    dayz_rollingMessages = {
        if ((diag_ticktime - Message_1_time) < 5) then {
            if ((time - Message_2_time) < 5) then {
                Message_3 = Message_2;
                Message_3_time = Message_2_time;
            } else {
                Message_3 = "";
            };
            
            Message_2 = Message_1;
            Message_2_time = Message_1_time;
        } else {
            Message_2 = "";
            Message_3 = "";
        };

        Message_1 = _this;
        Message_1_time = diag_ticktime;
        cutText [format ["%1\n%2\n%3", Message_1, Message_2, Message_3], "PLAIN DOWN"];
    };
    
    dayz_originalPlayer = player;
};

//Both
BIS_fnc_selectRandom = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selectRandom.sqf";        //Checks which actions for nearby casualty
BIS_fnc_relativeDirTo = compile("private '_dir';_dir=_this call{" + (preprocessFileLineNumbers "ca\modules\Functions\geometry\fn_relativeDirTo.sqf")+"};if(_dir>180)then{_dir=_dir-360;};if(_dir<-180)then{_dir=_dir+360;};_dir");
fnc_buildWeightedArray = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_buildWeightedArray.sqf";        //Checks which actions for nearby casualty
zombie_initialize = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_initialize.sqf";
object_getHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_getHit.sqf";            //gets the hit value for a HitPoint (i.e. HitLegs) against the selection (i.e. "legs"), returns the value
object_setHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHit.sqf";            //process the hit as a NORMAL damage (useful for persistent vehicles)
object_processHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_processHit.sqf";        //process the hit in the REVO damage system (records and sets hit)
//object_cargoCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_cargoCheck.sqf";        //Run by the player or server to monitor changes in cargo contents
fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf";        //Event handler run on damage
// Vehicle damage fix
fnc_veh_handleDam = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleDam.sqf";
fnc_veh_handleKilled = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleKilled.sqf";
fnc_veh_handleRepair = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleRepair.sqf";    //process the hit as a NORMAL damage (useful for persistent vehicles)
fnc_veh_ResetEH = compile preprocessFileLineNumbers "\z\addons\dayz_code\init\veh_ResetEH.sqf";            //Initialize vehicle
fnc_inString = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inString.sqf";
fnc_isInsideBuilding = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding.sqf";    //_isInside = [_unit,_building] call fnc_isInsideBuilding;
dayz_zombieSpeak = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_speak.sqf";            //Used to generate random speech for a unit
vehicle_getHitpoints = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_getHitpoints.sqf";
local_gutObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObject.sqf";        //Generated on the server (or local to unit) when gutting an object
local_zombieDamage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerZ.sqf";        //Generated by the client who created a zombie to track damage
local_setFuel = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_setFuel.sqf";            //Generated when someone refuels a vehicle
local_eventKill = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_eventKill.sqf";        //Generated when something is killed
//player_weaponCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponCheck.sqf";    //Run by the player or server to monitor whether they have picked up a new weapon
//curTimeStr = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_curTimeStr.sqf";
player_medBandage = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf";
//player_medInject = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medInject.sqf";
player_medEpi = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medEpi.sqf";
player_medTransfuse = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medTransfuse.sqf";
player_medMorphine = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medMorphine.sqf";
player_medPainkiller = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medPainkiller.sqf";
player_medAntiBiotics = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medAntibiotics.sqf";
player_humanityChange = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityChange.sqf";
player_projectileNear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_projectileNear.sqf";
player_bloodCalc = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\bloodCalc.sqf";
fn_selectRandomLocation = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selectRandomLocation.sqf";
fn_chance = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selectRandomChance.sqf";
fn_getModelName = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_getModelName.sqf";
fn_niceSpot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_niceSpot.sqf";
fnc_Obj_FenceHandleDam = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fence_handleDam.sqf";
object_roadFlare = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_roadFlare.sqf";
DZ_KeyDown_EH = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\keyboard.sqf";

call compile preprocessFileLineNumbers "\z\addons\dayz_code\traps\init.sqf";
call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\psrnd.sqf"; // pseudo random for plantSpanwer

player_sumMedical = {
    private["_character","_wounds","_legs","_arms","_medical","_status"];
    _character = _this;
    _wounds = [];
    if (_character getVariable["USEC_injured",false]) then {
        {
            _status = _character getVariable["hit_"+_x,false];
            if ((typeName _status == "BOOLEAN") && {(_status)}) then {
                _wounds set [count _wounds,_x];
            };
        } forEach USEC_typeOfWounds;
    };
    _legs = _character getVariable ["hit_legs",0];
    _arms = _character getVariable ["hit_arms",0];
    _medical = [
        _character getVariable["USEC_isDead",false],
        _character getVariable["NORRN_unconscious", false],
        _character getVariable["USEC_infected",false],
        _character getVariable["USEC_injured",false],
        _character getVariable["USEC_inPain",false],
        _character getVariable["USEC_isCardiac",false],
        _character getVariable["USEC_lowBlood",false],
        _character getVariable["USEC_BloodQty",12000],
        _wounds,
        [_legs,_arms],
        _character getVariable["unconsciousTime",0],
        _character getVariable["blood_type",""],
        _character getVariable["rh_factor",""],
        _character getVariable["messing",[0,0,0]],
        _character getVariable["blood_testdone",false]
    ];
    _medical
};

dayz_reduceItems = {
    private ["_item","_class","_amount","_qtyRemaining"];
    
    _item = _this select 0; //Item in current inventory.
    _class = _this select 1; //Class type to use.

    //Does player have the original item? (Not Really needed player_useMeds checks)
    if (_item in magazines player) exitWith {
        //Amount in current box (will be -1 for a random chance to start the reducing)
        _amount = getNumber(configfile >> "CfgMagazines" >> _item >> _class >> "amount");

        //Item to move too if there is some left
        _qtyRemaining = getText(configfile >> "CfgMagazines" >> _item >> _class >> "qtyRemaining");
                
        //Only run for the random amount.
        if (_amount == -1) then { 
            //Chance to start the reduction 
            if ([getNumber(configfile >> "CfgMagazines" >> _item >> _class >> "chance")] call fn_chance) then {
                player removeMagazine _item;
                player addMagazine _qtyRemaining;
            };
        } else {
            player removeMagazine _item;
            player addMagazine _qtyRemaining;
        };
    };
    true
};


dayz_inflame = {
    private ["_object","_hasTool"];

    _object = _this select 0;
    // true = light the fire
    if (_this select 1) then {
        _hasTool = false;
        {
            if (_x in items player) exitWith {
                _matches = getNumber(configfile >> "cfgWeapons" >> _x >> "Ignators" >> "matches");
                _qtyRemaining = getText(configfile >> "cfgWeapons" >> _x >> "Ignators" >> "qtyRemaining");
                
                //diag_log format["%1[%2,%3]",_x,_matches,_qtyRemaining];

                if (_matches == -1) then { 
                    if ([getNumber(configfile >> "cfgWeapons" >> _x >> "Ignators" >> "chance")] call fn_chance) then {
                        player removeWeapon _x;
                        player addWeapon _qtyRemaining;
                    };
                } else {
                    // remove a match
                    player removeWeapon _x;
                    player addWeapon _qtyRemaining;
                };
                _hasTool = true;
            };
        } count Dayz_Ignators;
        
        if (_hasTool) then { _object inflame true; };
    } else { // put out the fire
        _object inflame false;
    };
};

dayz_inflame_showMenu = {
    private ["_object","_ret","_flame","_islit","_hasTool","_whatIwant"];

    _object = _this select 0;
    _whatIwant = _this select 1;
    _ret = false;

    _islit = (inflamed _object);
    
    _hasTool = false;
    if (!_islit) then {
        {
            if (_x in items player) exitWith { _hasTool = true; };
        } count Dayz_Ignators;
    };
    _ret = (_whatIwant && !_islit && _hasTool) or (!_whatIwant && _isLit);

    _ret
};

dayz_inflame_other = {
    private ["_fireplace","_ret","_flame","_islit","_hasTool","_isLit","_pos"];

    _fireplace = _this select 0;
    if (_this select 1) then { // true = light the fire
        _flame = nearestObjects [_fireplace, ["flamable_DZ"], 1];
        _flame = if (count _flame > 0) then { _flame select 0 } else { objNull };
        if (isNull _flame) then {
            //_flame = if (local _fireplace) then { "flamable_DZ" createVehicleLocal getMarkerpos "respawn_west" } else {  createVehicle [ "flamable_DZ", getMarkerpos "respawn_west", [], 0, "CAN_COLLIDE"] };
            _flame = createVehicle [ "flamable_DZ", getPosATL _fireplace, [], 0, "CAN_COLLIDE"]; // fireplace can be local (towngenerator, poi...) but flames will be networked
            _pos = _fireplace modelToWorld (_fireplace selectionPosition "ohniste"); // ATL
            _flame setPosATL _pos;
        };

        _hasTool = false;
        {
            if (_x in items player) exitWith {
                _matches = getNumber(configfile >> "cfgWeapons" >> _x >> "Ignators" >> "matches");
                _qtyRemaining = getText(configfile >> "cfgWeapons" >> _x >> "Ignators" >> "qtyRemaining");
                
                //diag_log format["%1[%2,%3]",_x,_matches,_qtyRemaining];

                if (_matches == -1) then { 
                    if ([getNumber(configfile >> "cfgWeapons" >> _x >> "Ignators" >> "chance")] call fn_chance) then {
                        player removeWeapon _x;
                        player addWeapon _qtyRemaining;
                    };
                } else {
                    // remove a match
                    player removeWeapon _x;
                    player addWeapon _qtyRemaining;
                };
                _hasTool = true;
            };
        } count Dayz_Ignators;
        if (_hasTool) then { _flame inflame true; };

    } else { // put out the fire
        _flame = nearestObjects [_fireplace, ["flamable_DZ"], 1];
        if (count _flame > 0) then { (_flame select 0) inflame false; };
    };
};

dayz_inflame_showMenu_other = {
    private ["_fireplace","_ret","_flame","_islit","_hasTool","_whatIwant"];

    _fireplace = _this select 0;
    _whatIwant = _this select 1;
    _ret = false;
    // return a boolean. true <=> player can put out the lit fire, can light a fire with match
    _flame = nearestObjects [_fireplace, ["flamable_DZ"], 1];
    _flame = if (count _flame > 0) then { _flame select 0 } else { objNull };
    _islit = !(isNull _flame) && {(inflamed _flame)};
    _hasTool = false;
    if (!_islit) then {
        {
            if (_x in items player) exitWith { _hasTool = true; };
        } count Dayz_Ignators;
    };
    _ret = (_whatIwant && !_islit && _hasTool) or (!_whatIwant && _isLit);
    //systemChat str [_flame, _hasTool, _islit, _ret];

    _ret
};

isInflamed = {
    private "_flame";

    _flame = nearestObjects [_this, ["flamable_DZ"], 1];
    _flame = if (count _flame > 0) then { _flame select 0 } else { objNull };
    !(isNull _flame) && {(inflamed _flame)}
};

//Matchbox combine system.
dayz_combine_Inventory = {
    private ["_qty","_fullBox","_remain"];    
    //ItemMatchbox,ItemAntibiotic    
    _qty = 0;
    {
        if (configName inheritsFrom (configfile >> "cfgWeapons" >> _x) == "ItemMatchbox") then {
             _qty = _qty + getNumber(configfile >> "cfgWeapons" >> _x >> "Ignators" >> "matches");
             player removeWeapon _x;
        };
    } count (items player);
    
    // limit to 1 fullbox and 1 used matchbox
    _fullBox = floor (_qty / 5);
    _remain = _qty % 5;
    
    if (_fullBox > 0) then { player addWeapon "Item5Matchbox"; };
    
    if (_fullBox > 1) then { 
        player addWeapon "Item4Matchbox"; 
    } else {
        if (_remain > 0) then { player addWeapon ("Item"+str(_remain)+"Matchbox"); };
    };
};    

dayz_engineSwitch = {
    //private["_unit","_humanity","_delay"];
    _vehicle = _this select 0;
    _state = _this select 1;
    
    if (local _vehicle) then {
        _vehicle engineOn _state;
    } else {
        PVDZ_send = [_vehicle,"SetEngineState",[_vehicle,_state]];
        publicVariableServer "PVDZ_send";
    };
};


 

variables.sqf

Spoiler

disableSerialization;

//Model Variables
Bandit1_DZ = "Bandit1_DZ";
BanditW1_DZ = "BanditW1_DZ";
Survivor1_DZ = "Survivor1_DZ";
Survivor2_DZ = "Survivor2_DZ";
SurvivorW2_DZ = "SurvivorW2_DZ";
Sniper1_DZ = "Sniper1_DZ";
Camo1_DZ = "Camo1_DZ";
Soldier1_DZ = "Soldier1_DZ";
Rocket_DZ = "Rocket_DZ";

//Rolling Msg system
Message_1 = "";
Message_2 = "";
Message_3 = "";
Message_1_time = 0;
Message_2_time = 0;
Message_3_time = 0;

//OpenTarget timer
OpenTarget_Time = 0;

///Player classes
AllPlayers = ["Survivor_DZ","Survivor1_DZ","SurvivorW2_DZ","Survivor2_DZ","Sniper1_DZ","Soldier1_DZ","Camo1_DZ","BanditW1_DZ","Bandit1_DZ","Survivor3_DZ"];
DayZ_Male = ["Survivor_DZ","Survivor1_DZ","Survivor2_DZ","Survivor3_DZ","Sniper1_DZ","Soldier1_DZ","Camo1_DZ","Bandit1_DZ"];
DayZ_Female = ["SurvivorW2_DZ","BanditW1_DZ"];

//Classnames for specific items
MeleeWeapons = ["MeleeHatchet","MeleeCrowbar","MeleeMachete","MeleeBaseball","MeleeBaseBallBat","MeleeBaseBallBatBarbed","MeleeBaseBallBatNails","MeleeFishingPole"];
MeleeMagazines = ["Hatchet_Swing","Crowbar_Swing","Machete_Swing","Bat_Swing","BatBarbed_Swing","BatNails_Swing","Fishing_Swing"];
MeleeAmmo = ["Hatchet_Swing_Ammo","Crowbar_Swing_Ammo","Machete_Swing_Ammo","Bat_Swing_Ammo","BatBarbed_Swing_Ammo","BatNailed_Swing_Ammo","Fishing_Swing_Ammo"];
Dayz_fishingItems = ["MeleeFishingPole"];
Dayz_plants = ["Dayz_Plant1","Dayz_Plant2","Dayz_Plant3"];
Dayz_attachment_array = ["Attachment_ACG","Attachment_AIM"];
//DayZ_Tents = ["TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","TentStorage4","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DomeTentStorage4"]
//DayZ_Stashs = ["StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","StashMedium4"]
//DayZ_cutter = ["Wire_cat1","Sandbag1_DZ","Fence_DZ","Generator_DZ","Hedgehog_DZ","CamoNet_DZ"]
DayZ_Backpacks = ["DZ_Patrol_Pack_EP1","DZ_Assault_Pack_EP1","DZ_Czech_Vest_Puch","DZ_ALICE_Pack_EP1","DZ_TK_Assault_Pack_EP1","DZ_British_ACU","DZ_CivilBackpack_EP1","DZ_Backpack_EP1"];
Dayz_Gutting = ["ItemKnife","ItemKnife5","ItemKnife4","ItemKnife3","ItemKnife2","ItemKnife1","ItemKnifeBlunt"];
Dayz_Ignators = ["ItemMatchbox","Item5Matchbox","Item4Matchbox","Item3Matchbox","Item2Matchbox","Item1Matchbox"];
DayZ_fuelCans = ["ItemJerrycan","ItemFuelcan"];
DayZ_fuelCansEmpty = ["ItemJerrycanEmpty","ItemFuelcanEmpty"];
DayZ_traps = ["Trap_Cans","TrapTripwireFlare","TrapBearTrapSmoke","TrapTripwireGrenade","TrapTripwireSmoke","TrapBearTrapFlare"];
DayZ_ViralZeds = ["z_new_villager2","z_new_villager3","z_new_villager4","z_new_worker2","z_new_worker3","z_new_worker4"];
DayZ_SafeObjects = ["Base_Fire_DZ","WoodenGate_1","WoodenGate_2","WoodenGate_3","WoodenGate_4","Land_Fire_DZ","TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","TentStorage4","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","StashMedium4","Wire_cat1","Sandbag1_DZ","Fence_DZ","Generator_DZ","Hedgehog_DZ","BearTrap_DZ","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DomeTentStorage4","CamoNet_DZ","Trap_Cans","TrapTripwireFlare","TrapBearTrapSmoke","TrapTripwireGrenade","TrapTripwireSmoke","TrapBearTrapFlare"];
DayZ_GearedObjects = ["Car","Helicopter","Motorcycle","Ship","TentStorage_base","StashSmall_base","StashMedium_base"];
DayZ_RestingAnims = ["amovpsitmstpsnonwpstdnon_ground","amovpsitmstpsnonwpstdnon_smoking","amovpsitmstpsraswrfldnon_weaponcheck1","amovpsitmstpsraswrfldnon"];
dayz_playerAchievements = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
dayz_trees = ["ind_timbers.p3d","t_picea2s_snow.p3d","b_corylus.p3d","t_quercus3s.p3d","t_larix3s.p3d","t_pyrus2s.p3d","str_briza_kriva.p3d","dd_borovice.p3d","les_singlestrom_b.p3d","les_singlestrom.p3d","smrk_velky.p3d","smrk_siroky.p3d","smrk_maly.p3d","les_buk.p3d","str krovisko vysoke.p3d","str_fikovnik_ker.p3d","str_fikovnik.p3d","str vrba.p3d","hrusen2.p3d","str dub jiny.p3d","str lipa.p3d","str briza.p3d","p_akat02s.p3d","jablon.p3d","p_buk.p3d","str_topol.p3d","str_topol2.p3d","p_osika.p3d","t_picea3f.p3d","t_picea2s.p3d","t_picea1s.p3d","t_fagus2w.p3d","t_fagus2s.p3d","t_fagus2f.p3d","t_betula1f.p3d","t_betula2f.p3d","t_betula2s.p3d","t_betula2w.p3d","t_alnus2s.p3d","t_acer2s.p3d","t_populus3s.p3d","t_quercus2f.p3d","t_sorbus2s.p3d","t_malus1s.p3d","t_salix2s.p3d","t_picea1s_w.p3d","t_picea2s_w.p3d","t_ficusb2s_ep1.p3d","t_populusb2s_ep1.p3d","t_populusf2s_ep1.p3d","t_amygdalusc2s_ep1.p3d","t_pistacial2s_ep1.p3d","t_pinuse2s_ep1.p3d","t_pinuss3s_ep1.p3d","t_prunuss2s_ep1.p3d","t_pinusn2s.p3d","t_pinusn1s.p3d","t_pinuss2f.p3d","t_poplar2f_dead_pmc.p3d","misc_torzotree_pmc.p3d","misc_burnspruce_pmc.p3d","brg_cocunutpalm8.p3d","brg_umbrella_acacia01b.p3d","brg_jungle_tree_canopy_1.p3d","brg_jungle_tree_canopy_2.p3d","brg_cocunutpalm4.p3d","brg_cocunutpalm3.p3d","palm_01.p3d","palm_02.p3d","palm_03.p3d","palm_04.p3d","palm_09.p3d","palm_10.p3d","brg_cocunutpalm2.p3d","brg_jungle_tree_antiaris.p3d","brg_cocunutpalm1.p3d","str habr.p3d","brg_bird_1.p3d","brg_bird_2.p3d","brg_bird_3.p3d","brg_umbrella_acacia02b.p3d","brg_africandoumpalm_1.p3d","brg_umbrella_acacia04b.p3d","brg_datepalm_4.p3d","brg_datepalm_1.p3d","brg_umbrella_acacia03b.p3d","brg_bottle_4.p3d","brg_aloe1.p3d","brg_umbrella_acacia03.p3d","brg_umbrella_acacia01.p3d","brg_umbrella_acacia04.p3d","brg_aloe2.p3d","brg_umbrella_acacia02.p3d","brg_aloe3.p3d","brg_bottle_1.p3d","brg_datepalm_3.p3d","brg_datepalm_2.p3d","brg_baobab_1.p3d","brg_bottle_2.p3d","brg_bottle_3.p3d"];

Dayz_meatraw =
[
    "FoodBeefRaw",
    "FoodMuttonRaw",
    "FoodChickenRaw",
    "FoodRabbitRaw",
    "FoodBaconRaw",
    "FoodGoatRaw",
    "FishRawTrout",
    "FishRawSeaBass",
    "FishRawTuna"
];

Dayz_meatcooked =
[
    "FoodBeefCooked",
    "FoodMuttonCooked",
    "FoodChickenCooked",
    "FoodRabbitCooked",
    "FoodBaconCooked",
    "FoodGoatCooked",
    "FishCookedTrout",
    "FishCookedSeaBass",
    "FishCookedTuna"
];

boil_tin_cans =
[
    "TrashTinCan",
    "FoodCanGriffEmpty",
    "FoodCanBadguyEmpty",
    "FoodCanBoneboyEmpty",
    "FoodCanCornEmpty",
    "FoodCanCurgonEmpty",
    "FoodCanDemonEmpty",
    "FoodCanFraggleosEmpty",
    "FoodCanHerpyEmpty",
    "FoodCanDerpyEmpty",
    "FoodCanOrlokEmpty",
    "FoodCanPowellEmpty",
    "FoodCanTylersEmpty",
    "FoodCanUnlabeledEmpty",
    "FoodCanRusUnlabeledEmpty",
    "FoodCanRusStewEmpty",
    "FoodCanRusPorkEmpty",
    "FoodCanRusPeasEmpty",
    "FoodCanRusMilkEmpty",
    "FoodCanRusCornEmpty",
    "ItemSodaEmpty",
    "ItemSodaClaysEmpty",
    "ItemSodaDrwasteEmpty",
    "ItemSodaFrankaEmpty",
    "ItemSodaGrapeDrinkEmpty",
    "ItemSodaLemonadeEmpty",
    "ItemSodaLirikEmpty",
    "ItemSodaLvgEmpty",
    "ItemSodaMtngreenEmpty",
    "ItemSodaMzlyEmpty",
    "ItemSodaPeppsyEmpty",
    "ItemSodaR4z0rEmpty",
    "ItemSodaRabbitEmpty",
    "ItemSodaRocketFuelEmpty",
    "ItemSodaSacriteEmpty",
    //"ItemSodaSherbetEmpty",
    "ItemSodaSmashtEmpty",
    "FoodCanPotatoesEmpty",
    "FoodCanBeefEmpty"
];

canPickup = false;
pickupInit = false;
mouseOverCarry = false; //for carry slot since determining mouse pos doesn't work right
dayZ_partClasses = ["PartFueltank","PartWheel","PartEngine"]; //No need to add PartGeneric, it is default for everything
dayZ_explosiveParts = ["palivo","motor"];

//Survival Variables
SleepFood = 2160; //minutes (48 hours)
SleepWater = 1440; //minutes (24 hours)
SleepTemperatur = 90 / 100;    //First value = Minutes until player reaches the coldest point at night (without other effects! night factor expected to be -1) //TeeChange

//Server Variables
allowConnection = false;
dayz_serverObjectMonitor = [];

//GUI
Dayz_GUI_R = 0.38; // 0.7 .38
Dayz_GUI_G = 0.63; // -0.63
Dayz_GUI_B = 0.26; // -0.26

//actions blockers
a_player_cooking = false;
a_player_boil = false;
a_player_jerryfilling = false;
a_player_repairing = false;

//Player self-action handles
dayz_resetSelfActions = {
    s_player_equip_carry = -1;
    s_player_dragbody = -1;
    s_player_fire = -1;
    s_player_cook = -1;
    s_player_boil = -1;
    s_player_fireout = -1;
    s_player_butcher = -1;
    s_player_packtent = -1;
    s_player_packtentinfected = -1;
    s_player_fillwater = -1;
    s_player_fillwater2 = -1;
    s_player_fillfuel = -1;
    s_player_grabflare = -1;
    s_player_removeflare = -1;
    s_player_painkiller = -1;
    s_player_studybody = -1;
    s_build_Sandbag1_DZ = -1;
    s_build_Hedgehog_DZ = -1;
    s_build_Wire_cat1 = -1;
    s_player_deleteBuild = -1;
    s_player_flipveh = -1;
    s_player_pushPlane = -1;
    s_player_stats = -1;
    s_player_sleep = -1;
    s_player_fillfuel20 = -1;
    s_player_fillfuel5 = -1;
    s_player_siphonfuel = -1;
    s_player_repair_crtl = -1;
    s_player_fishing = -1;
    s_player_fishing_veh = -1;
    s_player_gather = -1;
    s_player_debugCheck = -1;
    s_player_destorytent = -1;
    s_player_attach_bomb = -1;
    s_player_upgradestorage = -1;
    s_player_Drinkfromhands = -1;
    s_player_lockhouse = -1;
    s_player_unlockhouse = -1;
    s_player_openGate = -1;
    s_player_CloseGate = -1;
    s_player_breakinhouse = -1;
    s_player_setCode = -1;
    s_player_BuildUnLock = -1;
    s_player_BuildLock = -1;
};
call dayz_resetSelfActions;

dayz_resetUpgradeActions = {
    s_player_disassembly = -1;
    s_player_building = -1;
    s_player_maintenance = -1;
};
call dayz_resetUpgradeActions;

//Engineering variables
s_player_lastTarget = objNull;
s_player_repairActions = [];

//Initialize Medical Variables
force_dropBody = false;
r_interrupt = false;
r_doLoop = false;
r_self = false;
r_self_actions = [];
r_drag_sqf = false;
r_action = false;
r_action_unload = false;
r_player_handler = false;
r_player_unconsciousInProgress = false;
r_player_unconsciousInputDisabled = false;
r_player_dead = false;
r_player_unconscious = false;
r_player_infected = false;
//infection from hits
r_player_Sepsis = [false, 0];
r_player_injured = false;
r_player_inpain = false;
r_player_loaded = false;
r_player_cardiac = false;
r_fracture_legs = false;
r_fracture_arms = false;
r_player_vehicle = player;
r_player_blood = 12000;
r_player_bloodregen = 0;
r_player_bloodgainpersec = 0;
r_player_bloodlosspersec = 0;
r_player_bloodpersec = 0; //Blood Per Sec (gain - loss)
r_player_foodstack = 1;
//player skill
r_player_lowblood = false;
r_player_timeout = 0;
r_player_bloodTotal = r_player_blood;
r_public_blood = r_player_blood;
r_player_bloodDanger = r_player_bloodTotal * 0.2;
r_player_actions = [];
r_handlerCount = 0;
r_action_repair = false;
r_action_targets = [];
r_pitchWhine = false;
r_isBandit = false;
dayz_DisplayGenderSelect = true;
//blood test vars
r_A_watered = false;
r_B_watered = false;
r_D_watered = false;
r_control_watered = false;
r_canClick_resultsCard = false;
r_resultsCard_Clicked = false;
r_water_clicked = false;
r_needleclicked = 0;
r_needleReset = false;
r_control_done = false;
r_antiA_done = false;
r_antiB_done = false;
r_antiD_done = false;
carryClick = false;
dayz_workingInprogress = false;

//player warming up vars
//heatpack
r_player_warming_heatpack = [false, 0];
r_player_warming_heatpack_time = 600; 

//displays temp progress
r_player_temp_factor = 0; //to be used for temp(up/down) indicators
r_player_temp_min_factor = -0.04; //(lvl3 down arrow)
r_player_temp_max_factor = 0.04; //(lvl3 up arrow)
 
//INT Nutrition Info
r_player_Nutrition = 0; // Calories
r_player_nutritionMuilpty = 2;

//count actions
r_action_count = 0;

//ammo routine
r_player_actions2 = [];
r_action2 = false;
r_player_lastVehicle = objNull;
r_player_lastSeat = [];
r_player_removeActions2 = {
    if (!isNull r_player_lastVehicle) then {
        {
            r_player_lastVehicle removeAction _x;
        } count r_player_actions2;
        r_player_actions2 = [];
        r_action2 = false;
    };
};

USEC_woundHit = ["","body","hands","legs","head_hit"]; // limbs hit given by arma engine when fnc_usec_damageHandler is called
DAYZ_woundHit = [["body","hands","legs","head_hit"],[0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,3]];
DAYZ_woundHit_ok = [["body","hands","legs"],[0,0,0,0,0,1,1,1,2,2]];
USEC_MinorWounds = ["hands","legs"];
USEC_woundPoint = [ // translation table USEC_woundHit -> SV suffixes
    ["Pelvis","aimpoint"],
    ["aimpoint"], //,"RightShoulder","LeftShoulder"
    ["lelbow","relbow"],
    ["RightFoot","LeftFoot"],
    ["neck","pilot"]
];
USEC_typeOfWounds = [ // used by player_sumMedical, should contains all limbs described in USEC_woundPoint. These limbs statuses are saved by server_playerSync in HIVE if they are bleeding (medical select 8)
    "Pelvis",
    "aimpoint",
    "lelbow","relbow",
    "RightFoot","LeftFoot",
    "neck","pilot"
];

//Initialize Zombie Variables
dayz_zombieTargetList = [["SoldierWB",50],["Air",500],["LandVehicle",200]];
PVDZ_obj_Publish = []; // Used for eventhandler to spawn a mirror of players tent
PVCDZ_obj_HideBody = objNull;

//DayZ settings
dayz_maxAnimals = 5;
dayz_maxPlants = 3;
dayz_animalDistance = 600;
dayz_plantDistance = 600;

dayz_maxMaxModels = 80; // max quantity of Man models (player or Z, dead or alive) around players. Below this limit we can spawn Z // max quantity of loot piles around players. Below this limit we can spawn some loot
dayz_cantseeDist = 150; // distance from which we can spawn a Z in front of any player without ray-tracing and angle checks
dayz_cantseefov = 70; // half player field-of-view. Visible Z won't be spawned in front of any near players
dayz_canDelete = 350; // Z, further than this distance from its "owner", will be deleted
dayz_traps = [];
dayz_traps_active = [];
dayz_traps_trigger = [];

//Settings Not under dayz_settings
if(isNil "dayz_attackRange") then { 
    dayz_attackRange = 3;
};
if(isNil "dayz_DamageMultiplier") then { 
    dayz_DamageMultiplier = 1;
};
if(isNil "dayz_quickSwitch") then {
    dayz_quickSwitch = false; //Enable quick weapon switch,
};
//Will be moved to map
if(isNil "dayz_infectiouswaterholes") then {
    dayz_infectiouswaterholes = true; //Enable infected waterholes
};
if(isNil "dayz_POIs") then {
    dayz_POIs = true; //Enable POI's
};
if(isNil "dayz_ForcefullmoonNights") then {
    dayz_ForcefullmoonNights = false; // Forces night time to be full moon.
};
if(isNil "dayz_randomMaxFuelAmount") then {
    dayz_randomMaxFuelAmount = 250; //Puts a random amount of fuel in all fuel stations.
};
if(isNil "dayz_townGenerator") then {
    dayz_townGenerator = true; // Spawn map junk. Currently only compatible with Chernarus. Need to add coordinates for other maps.
};
if(isNil "dayz_townGeneratorBlackList") then {
    dayz_townGeneratorBlackList = []; // Town generator will not spawn junk within 150m of these positions.
};

//Replace server individual settings with ranked settings
if(isNil "dayz_presets") then { dayz_presets = "Vanilla"; };

switch (dayz_presets) do {
    case "Custom": { //Custom 
        if(isNil "dayz_enableGhosting") then { dayz_enableGhosting = false; };
        if(isNil "dayz_ghostTimer") then { dayz_ghostTimer = 120; };
        if(isNil "dayz_spawnselection") then { dayz_spawnselection = 0; };
        if(isNil "dayz_spawncarepkgs_clutterCutter") then { dayz_spawncarepkgs_clutterCutter = 0; };
        if(isNil "dayz_spawnCrashSite_clutterCutter") then { dayz_spawnCrashSite_clutterCutter = 0; };
        if(isNil "dayz_spawnInfectedSite_clutterCutter") then { dayz_spawnInfectedSite_clutterCutter = 0; };
        if(isNil "dayz_bleedingeffect") then { dayz_bleedingeffect = 2; };
        if(isNil "dayz_OpenTarget_TimerTicks") then { dayz_OpenTarget_TimerTicks = 60 * 10; };
        if(isNil "dayz_temperature_override") then { dayz_temperature_override = true; };
        if(isNil "dayz_nutritionValuesSystem") then { dayz_nutritionValuesSystem = false; };
        //Not implmented yet
        if(isNil "dayz_classicBloodBagSystem") then { dayz_classicBloodBagSystem = false; };
    };
    case "Classic": { //Classic
        dayz_enableGhosting = false; //Enable disable the ghosting system.
        dayz_ghostTimer = 120; //Sets how long in seconds a player must be dissconnected before being able to login again.
        dayz_spawnselection = 0; //Turn on spawn selection 0 = random only spawns, 1 = Spawn choice based on limits
        dayz_spawncarepkgs_clutterCutter = 0; //0 =  loot hidden in grass, 1 = loot lifted and 2 = no grass
        dayz_spawnCrashSite_clutterCutter = 0;    // heli crash options 0 =  loot hidden in grass, 1 = loot lifted and 2 = no grass
        dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass 
        dayz_bleedingeffect = 2; //1= blood on the ground, 2= partical effect, 3 = both.
        dayz_OpenTarget_TimerTicks = 60 * 10; //how long can a player be freely attacked for after attacking someone unprovoked.
        dayz_temperature_override = true; // Set to true to disable all temperature changes.
        dayz_nutritionValuesSystem = false; //Enables nutrition system
        //Not implmented yet
        dayz_classicBloodBagSystem = true; //Enables one type of bloodbag
    };
    case "Elite": { //Elite
        dayz_enableGhosting = true; //Enable disable the ghosting system.
        dayz_ghostTimer = 90; //Sets how long in seconds a player must be dissconnected before being able to login again.
        dayz_spawnselection = 0; //Turn on spawn selection 0 = random only spawns, 1 = Spawn choice based on limits
        dayz_spawncarepkgs_clutterCutter = 0; //0 =  loot hidden in grass, 1 = loot lifted and 2 = no grass
        dayz_spawnCrashSite_clutterCutter = 0;    // heli crash options 0 =  loot hidden in grass, 1 = loot lifted and 2 = no grass
        dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass 
        dayz_bleedingeffect = 3; //1= blood on the ground, 2= partical effect, 3 = both.
        dayz_OpenTarget_TimerTicks = 60 * 25; //how long can a player be freely attacked for after attacking someone unprovoked.
        dayz_temperature_override = false; // Set to true to disable all temperature changes.
        dayz_nutritionValuesSystem = true; //Enables nutrition system
        //Not implmented yet
        dayz_classicBloodBagSystem = false; //Enables one type of bloodbag
    };
    default { //Vanilla
        dayz_enableGhosting = true; //Enable disable the ghosting system.
        dayz_ghostTimer = 60; //Sets how long in seconds a player must be disconnected before being able to login again.
        dayz_spawnselection = 1; //Turn on spawn selection 0 = random only spawns, 1 = Spawn choice based on limits
        dayz_spawncarepkgs_clutterCutter = 0; //0 =  loot hidden in grass, 1 = loot lifted and 2 = no grass
        dayz_spawnCrashSite_clutterCutter = 0;    // heli crash options 0 =  loot hidden in grass, 1 = loot lifted and 2 = no grass
        dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass 
        dayz_bleedingeffect = 3; //1= blood on the ground, 2= partical effect, 3 = both.
        dayz_OpenTarget_TimerTicks = 60 * 10; //how long can a player be freely attacked for after attacking someone unprovoked.
        dayz_temperature_override = false; // Set to true to disable all temperature changes.
        dayz_nutritionValuesSystem = true; //Enables nutrition system
        //Not implmented yet
        dayz_classicBloodBagSystem = false; //Enables one type of bloodbag
    };
};

switch (toLower worldName) do {
    case "napf";
    case "sauerland" : {dayz_minpos = -1000; dayz_maxpos = 26000;};
    case "tavi" : {dayz_minpos = -26000; dayz_maxpos = 26000;};
    case "chernarus" : {dayz_minpos = -1; dayz_maxpos = 16000;};
    case default {dayz_minpos = -20000; dayz_maxpos = 20000;};
};

//start achievements_init
//call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\achievements_init.sqf";

if (isServer) then {
    dead_bodyCleanup = [];
    needUpdate_objects = [];
    Server_InfectedCamps = [];
    //dayz_spawnCrashSite_clutterCutter=0; // helicrash spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass 
    //dayz_spawnInfectedSite_clutterCutter=0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass 
    //Objects to remove when killed.
    DayZ_nonCollide = ["TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","TentStorage4","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3", "StashMedium4", "DomeTentStorage", "DomeTentStorage0", "DomeTentStorage1", "DomeTentStorage2", "DomeTentStorage3", "DomeTentStorage4", "CamoNet_DZ"];
    DayZ_WoodenFence = ["WoodenFence_1","WoodenFence_2","WoodenFence_3","WoodenFence_4","WoodenFence_5","WoodenFence_6","WoodenFence_7"];
    DayZ_WoodenGates = ["WoodenGate_1","WoodenGate_2","WoodenGate_3","WoodenGate_4"];
    DayZ_removableObjects = ["Wire_cat1","Sandbag1_DZ","Hedgehog_DZ","CamoNet_DZ","Trap_Cans","TrapTripwireFlare","TrapBearTrapSmoke","TrapTripwireGrenade","TrapTripwireSmoke","TrapBearTrapFlare"];
    //[10416.695, 4198.4634],[7982.2563, 1419.8256],[10795.93, 1419.8263],[7966.083, 4088.7463],[9259.7266, 2746.1985],[5200.5234, 3915.3274],[6494.1665, 2572.7798],[5216.6968, 1246.407],[2564.7244, 3915.3296],[3858.3674, 2572.782],[2580.8977, 1246.4092],[13398.995, 4400.5874],[12242.025, 2948.3196],[13551.842, 1832.2257],[14870.512, 3009.5117],[-178.19415, 1062.4478],[1099.2754, 2388.8206],[-194.36755, 3731.3679],[10394.215, 8322.1719],[7959.7759, 5543.5342],[10773.449, 5543.5342],
    dayz_grid =[[7943.6025, 8212.4551],[9237.2461, 6869.9063],[5178.043, 8039.0361],[6471.686, 6696.4883],[5194.2163, 5370.1152],[2542.2439, 8039.0381],[3835.887, 6696.4902],[2558.4172, 5370.1172],[13376.514, 8524.2969],[12219.544, 7072.0273],[13529.361, 5955.9336],[14848.032, 7133.2197],[-200.67474, 5186.1563],[1076.7949, 6512.5283],[-216.84814, 7855.0771],[10293.751, 12197.736],[7859.312, 9419.0996],[10672.988, 9419.0996],[7843.1387, 12088.021],[9136.7822, 10745.474],[5077.5791, 11914.601],[6371.2222, 10572.052],[5093.7524, 9245.6816],[2441.78, 11914.604],[3735.4231, 10572.055],[2457.9534, 9245.6816],[13276.053, 12399.861],[12119.08, 10947.596],[13428.897, 9831.501],[14747.566, 11008.786],[-301.13867, 9061.7207],[976.33112, 10388.096],[-317.31201, 11730.642],[10271.271, 16321.429],[7836.8315, 13542.813],[10650.506, 13542.813],[7820.6582, 16211.718],[9114.3018, 14869.175],[5055.0986, 16038.3],[6348.7417, 14695.758],[5071.272, 13369.392],[2419.2996, 16038.305],[3712.9426, 14695.76],[2435.4729, 13369.392],[13253.568, 16523.553],[12096.6, 15071.295],[13406.416, 13955.209],[14725.089, 15132.486],[-323.61914, 13185.43],[953.85059, 14511.8],[-339.79248, 15854.346]];
    dayz_choppedTrees = [];
    dayz_deseedloot = [];
    dayz_ghostPlayers = [];
    dayz_activePlayers = [];
    dayz_died = [];
};

if (!isDedicated) then {
    dayz_buildingBubbleMonitor = [];

    //temperature variables
    dayz_temperatur = 36; //TeeChange
    dayz_temperaturnormal = 36; //TeeChange
    dayz_temperaturmax = 42; //TeeChange
    dayz_temperaturmin = 27; //TeeChange

    //player special variables
    dayz_lastDamageSourceNull = false;
    dayz_lastDamageSource = "none";
    dayz_lastDamageTime = 0;
    dayz_lastMedicalSource = "none";
    dayz_lastMedicalTime = 0;
    dayz_lastClothesChange = 0;
    dayZ_lastPlayerUpdate = 0;
    dayz_hunger = 0;
    dayz_thirst = 0;
    dayz_nutrition = 0;
    dayz_preloadFinished = true;
    dayz_soundMuted = false;
    dayz_statusArray = [1,1];
    dayz_disAudial = 0;
    dayz_disVisual = 0;
    dayz_firedCooldown = 0;
    dayz_damageCounter = time;
    dayz_lastSave = time;
    dayz_isSwimming = true;
    dayz_currentDay = 0;
    dayz_hasLight = false;
    dayz_surfaceNoise = 0;
    dayz_surfaceType = "None";
    dayz_noPenalty = [];
    dayz_heavenCooldown = 0;
    deathHandled = false;
    dayz_firstGroup = group player;
    dayz_originalPlayer = player;
    dayz_sourceBleeding = objNull;
    dayz_clientPreload = false;
    dayz_authed = false;
    dayz_panicCooldown = 0;
    dayz_areaAffect = 3.5;
    dayz_monitorPeriod = 0.6; // number of seconds between each player_zombieCheck calls
    dayz_heartBeat = false;
    dayz_spawnZombies = 0; // Current local
    dayz_swarmSpawnZombies = 0;
    dayz_maxLocalZombies = 15; // max quantity of Z controlled by local gameclient, used by player_spawnCheck. Below this limit we can spawn Z
    dayz_CurrentNearByZombies = 0;
    dayz_maxNearByZombies = 30; // max quantity of Z controlled by local gameclient, used by player_spawnCheck. Below this limit we can spawn Z
    dayz_currentGlobalZombies = 0; // Current total
    if(isNil "dayz_maxGlobalZeds") then {
        dayz_maxGlobalZeds = 1000;
    };
    //Animals
    dayz_currentGlobalAnimals =    0;
    dayz_maxGlobalAnimals =    50;
    //Plants    
    dayz_currentGlobalPlants = 0;
    dayz_maxGlobalPlants = 500;
    //Loot
    r_player_divideinvehicle = 0;
    dayz_currentWeaponHolders = 0;
    dayz_maxMaxWeaponHolders = 80;
    dayz_inVehicle = false;
    dayz_unsaved = false;
    dayz_scaleLight = 0;
    dayzDebug = false;
    dayzState = -1;
    dayz_onBack = "";
    dayz_fishingInprogress = false;
    dayz_siphonFuelInProgress = false;
    dayz_salvageInProgress = false;
    lastSpawned = diag_tickTime;
    lastSepsis = 0;
    //uiNamespace setVariable ['DAYZ_GUI_display',displayNull];
    //if (uiNamespace getVariable ['DZ_displayUI', 0] == 2) then {
    //    dayzDebug = true;
    //};
    dayz_dodge = false;
    Dayz_constructionContext = [];
    Dayz_freefall = [ time, 0, 0.1 ];
    dayz_getout = objNull;
    dayz_getoutTime = 0;
    dayz_HitBy = objNull; 
};
 

 

 

Thanks again.

- Matt

Link to comment
Share on other sites

  • 0

about the issue you said here:

Spoiler

 STEP 5 (Modifying fn_selfActions.sqf) (the one into custom folder)


Find


if (s_player_maintain_area < 0) then {

Above that, add:


if (s_player_plotManagement < 0) then {
    _adminList = ["0152"]; // Add admins here if you admins to able to manage all plotpoles
    _owner = _cursorTarget getVariable ["CharacterID","0"];
    _friends = _cursorTarget getVariable ["plotfriends", []];
    _fuid = [];
    {
    _friendUID = _x select 0;
    _fuid = _fuid + [_friendUID];
    } forEach _friends;
    _allowed = [_owner];    
    _allowed = [_owner] + _adminList + _fuid;
    if(_owner == dayz_characterID || (getPlayerUID player) in _allowed)then{            
    s_player_plotManagement = player addAction ["<t color='#0059FF'>Manage Plot</t>", "plotManagement\initPlotManagement.sqf", [], 5, false];
    };
};

 

 

here you got:  lines in red are that u need find.  in blue that you need add

Spoiler

if (_canDo && (speed player <= 1) && (_cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then {

if (s_player_plotManagement < 0) then {
    _adminList = ["0152"]; // Add admins here if you admins to able to manage all plotpoles
    _owner = _cursorTarget getVariable ["CharacterID","0"];
    _friends = _cursorTarget getVariable ["plotfriends", []];
    _fuid = [];
    {
    _friendUID = _x select 0;
    _fuid = _fuid + [_friendUID];
    } forEach _friends;
    _allowed = [_owner];    
    _allowed = [_owner] + _adminList + _fuid;
    if(_owner == dayz_characterID || (getPlayerUID player) in _allowed)then{            
    s_player_plotManagement = player addAction ["<t color='#0059FF'>PLOT-MANAGE</t>", "plotManagement\initPlotManagement.sqf", [], 5, false];
    };
};

         if (s_player_maintain_area < 0) then {
              s_player_maintain_area = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false];
             s_player_maintain_area_preview = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTPREV"], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false];
         };
     } else {

player removeAction s_player_plotManagement;
    s_player_plotManagement = -1;

            player removeAction s_player_maintain_area;
            s_player_maintain_area = -1;
            player removeAction s_player_maintain_area_preview;
            s_player_maintain_area_preview = -1;
     };

 

Link to comment
Share on other sites

  • 0

@juandayz, I dont think i have any issues within my server files, it's just I cannot find the fn_selfactions.sqf,  compiles.sqf and variables.sqf files. I have unpacked multiple .pbo files and can only find the file in the vanilla dayz .pbo, which lacks the scripts for everything to do with epoch...

 

I'm wondering if someone was able to pastebin the code from the 3 files and link them here?? :(

Link to comment
Share on other sites

  • 0
6 hours ago, Mattiman338 said:

@juandayz, I dont think i have any issues within my server files, it's just I cannot find the fn_selfactions.sqf,  compiles.sqf and variables.sqf files. I have unpacked multiple .pbo files and can only find the file in the vanilla dayz .pbo, which lacks the scripts for everything to do with epoch...

 

I'm wondering if someone was able to pastebin the code from the 3 files and link them here?? :(

you need make a custom fn_selfactions.sqf /compiles.sqf and variables.sqf mate.  Step 3 and 4 of this guide.

any way here you got my customs files.

selfactions:

http://pastebin.com/esMYku1U

variables:

http://pastebin.com/jXMMFufa

compiles:

http://pastebin.com/KZMrJTgQ

Link to comment
Share on other sites

  • 0
Just now, Mattiman338 said:

@juandayz

Thanks mate, I had the compiles file but not the other two. 
Either way, I thank you heaps for the helping and and you sure are a respected member of the administrative community! Thanks Juandayz, you truly are a helpful person!

matt.. take care do not use my files. just use it to compare.. i still think you need made your owns custom if u dont have this files.

if u have some mods,, maybe you already have selfactions and variables... into mpmissions folder.. if u dont have.. you need drop this files out of dayz_code.pbo

 

Link to comment
Share on other sites

  • 0
16 hours ago, Mattiman338 said:

I will be comparing the code, not using the raw code you have linked. And which dayz_code.pbo? would it be in @dayzEpoch1051 or the vanilla @DayZ?? because yeah, the files i have are missing lines for Epoch :/

compiles.sqf  and variables.sqf are into \@DayZ_Epoch\addons\dayz_code.pbo\init\

fn_selfaction in \@DayZ_Epoch\addons\dayz_code.pbo\compile\

to made this 3 files custms you need drop out of this locations and put them into  mpmissions\your instance\custom\

once you did that .. you need changes the paths for compiles.sqf and variables.sqf  in init.sqf  and the path for fn_selfactions.sqf must be removed from the new compiles.sqf  and added into the init.sqf

find this line:

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf";

change by:

call compile preprocessFileLineNumbers "custom\variables.sqf";

-find this line:

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";    

change by:

call compile preprocessFileLineNumbers "custom\compiles.sqf";    

 

Find this line:

progressLoadingScreen 1.0;

bellow paste:

fnc_usec_selfActions = compile preprocessFileLineNumbers "custom\fn_selfActions.sqf";

 

remove the original call for fn_Selfactions.sqf located into the new custom compiles.sqf
so proceed to open your custom compiles.sqf located into the custom folder and find this line:

fnc_usec_selfActions =           compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf";

remove the whole line

 

 

 

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Discord

×
×
  • Create New...