Jump to content

DangerRuss

Member
  • Posts

    963
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by DangerRuss

  1. you've got an error in your compiles.sqf.. you're missing a ; somewhere.

    and not sure about your safezonecars script but Im pretty sure you can fix the client error
     

      Error position: <s_givemoney_dialog;
    

    by opening your variables.sqf and finding

    dayz_resetSelfActions = {
    

    and adding

    s_givemoney_dialog = -1;
    

    somewhere below it..

    Don't quote me on that Im just guessing without seeing your files.but it wont hurt anything to give it a try.

  2. Well first off all, it's amazing how much time you'd have spend to help that guy out, i really appreaciate that and you should keep that up!

    Second. CreateMarker is global, it want's a caller, that has to be a String.. So in that script i can see the error immediatly: "

    _null = createMarker ["MarkerDrop",_positionB];" - "_null" is not a String, which is why this will never work. See the arma2 script reference.

    If he would call the marker from a string, i would do it from _unit (which is the player in his script) and set's the position correctly (positionM is an array) for example like so:

     

    _unit = createMarker ["MarkerDrop",[_getPos select 0, _getPos select 1]];
    

     

    it should work fine :)

     

    //EDIT: I still like your script tho, as it's a "fast" way to create markers.. So thanks for that :)

    To be clear, the original carepackage script I was using works just fine.. only the antihack completely blocks it from running when a non admin tries to call in the carepackage because it won't allow the player to create the marker. Turn the antihack off, or an admin does it, worked fine.

  3. I have installed this mod following  the instructions exactly. I currently run ZSC/Hive running on Overpoch Cherno. The only other mod that I have installed in Nox's Admin Tools. I cannot get the actions menu to appear when trying to trade. Could I get some assistance in trouble shooting my problem? Thank you in advance. 

    Try disabling your antihack. If it works with the antihack disabled, you know it's the antihack blocking it.

  4. Ok got it working now.

    will make a release thread for it, but do not expect so much support on it, because I'm pretty bad at supporting my own releases ;D

    you can install it then and I will prepare your carepackages script so you will see how to use it :)

    Edit: all of that above as soon as I'm back home ^^

    excellent man! Honestly this is the first time Ive encountered a script that doesn't handle it's on markers server side (for example AI missions always handle their own markers). So hopefully I'll just need it for this script.

  5. Looks like infiSTAR is blocking the map markers and so the script never executes. I guess you have to find a way to get the markers to execute server side. Schwede is helping me out in the above posted thread if anyone's interested. When he's finished he might release the markers as a separate mod, so that you can add map markers to any script you add through it.

  6. One thing that I wanted to mention, Im running overwatch so there is no PVDZE_plr_LoginRecord and I nothing PVDZE in my publicvariable.txt either.   I dont know if that matters at all.

     

    in my public_EH.sqf in thie if isServer section I have
     

    if (isServer) then {
    ....
    ....
    ....
    "PVDZ_plr_LoginRecord"	addPublicVariableEventHandler {_id = (_this select 1) spawn dayz_recordLogin};
    
    

    I could just add your variable there?

     

    Here's my publicvariable.txt

    //new
    5 !="BIS_effects_gepv" !="currentInvites" !="PVDZ_sec_atp" !="PVDZ_veh_Save" !="PVCDZ_obj_GutBody" !="PVDZ_obj_Publish" !="PVDZ_objgather_Knockdown" !="PVDZ_objgather_Delete" !="PVDZ_plr_Save" !="PVDZ_send" !="dayzSetFuel" !="PVDZ_obj_Delete" !="PVDZ_obj_Fire" !="PVDZ_hlt_Bleed" !="PVDZ_Server_changeOwner" !="PVDZ_Server_Simulation" !="PVDZ_plr_Death" !="PVDZ_obj_RoadFlare" !="PVDZ_getTickTime" !="PVDZ_veh_SF" !="PVDZ_drg_RaLW" !="PVDZ_drg_RLact" !="PVCDZ_obj_HideBody" !="PVCDZ_veh_SetFuel" !="dayzInfectedCamps" !="PVDZ_plr_Login1" !="PVDZ_plr_Login2" !="PVDZ_plr_LoginRecord" !="PVDZ_serverStoreVar" !="PVDZ_receiveVar" !="PVCDZ_SetVar" !="dayzSetDate" !="PVDZ_drg_RaDrag" !="PVDZ_obj_Fire" !="PVCDZ_hlt_Morphine" !="PVCDZ_hlt_Bandage" !="PVCDZ_hlt_Epi" !="PVCDZ_hlt_Transfuse" !="PVCDZ_hlt_PainK" !="PVCDZ_hlt_AntiB" !="PVCDZ_plr_Humanity" !="PVCDZ_plr_Legs" !="PVCDZ_setServerTickTimeOffset" !="drn_DynamicWeather_DebugTextEventArgs" !="drn_AskServerDynamicWeatherEventArgs" !="drn_DynamicWeatherEventArgs" !="drn_var_DynamicWeather_Rain" !="drn_var_DynamicWeather_ServerInitialized" !="DDOPP_pvSay" !="DDOPP_pvAnim" !="remExFP" !="remExField" !"player" !"PVAHR_" !="PVAH_AdminReq" !="PVAH_WriteLogReq"
    5 "PVAHR_" !"PVAHR_0_"
    1 "PVAH"
    5 "PVAH_AdminRequest"
    5 "PVAH_WriteLogRequest"
    5="player"
    5="server"
    5="PVDZ_LOW_AdminList"
    5="PVDZ_NORMAL_AdminList"
    5="PVDZ_SUPER_AdminList"
    5="PVDZ_A"
    5="PVDZ_BLOCKED"
    5="PVDZ_BanList"
    5="PVDZ_writeAdmin_log_ARRAY"
    5="PVDZ_hackerLog"
    5="PVDZ_keylog"
    5="PVDZ_AdminMenuCode"
    5="PVDZ_boooox_array"
    5 "HangenderRE"
    5 "vilegaming"
    5 "v.i.l.e"
    5 "Lystic"
    5 "Rustler"
    5 "AntiHack"
    5 "BIS_MPF_logic"
    5 "BIS_MPF_dummygroup"
    5 "BattleFieldClearance"
    5 "remExFP" !="\"remExFP\" = [,,\"per\",\"execVM\",\"ca\Modules\Functions\init.sqf\"]"
    5="AHKICK"
    5="PVAHR_KICK"
    1 "Delete"
    1="PVAH_AdminReq"
    1="PVAH_WriteLogReq"
    

    You should definitely release this! 

  7. The public_EH is in the DayZ_code.pbo but seems like you are using the vanilla one, so I will use it then :)

    As soon as I got some time I will try to get this working ;)

    you mean the entire file public_eh? or is there an SQF? I'll have a look.

     

    Found it

    "PVDZ_drg_RaLW"   		addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\publicEH\load_wounded.sqf"};
    "PVDZ_drg_RLact"		addPublicVariableEventHandler {[_this select 1] execVM "\z\addons\dayz_code\medical\load\load_wounded.sqf"};
    "PVDZ_hlt_Bleed"		addPublicVariableEventHandler {_id = (_this select 1) spawn fnc_usec_damageBleed};
    "PVCDZ_veh_SH" 			addPublicVariableEventHandler {(_this select 1) call fnc_veh_handleDam}; // set damage to vehicle part
    "PVDZ_veh_SF"			addPublicVariableEventHandler {(_this select 1) call fnc_veh_handleRepair}; // repair a part from a vehicle
    "PVCDZ_obj_HideBody"	addPublicVariableEventHandler {hideBody (_this select 1)};
    "PVCDZ_obj_GutBody"		addPublicVariableEventHandler {(_this select 1) spawn local_gutObject};
    "PVCDZ_veh_SetFuel"		addPublicVariableEventHandler {(_this select 1) spawn local_setFuel};
    "dayzInfectedCamps"		addPublicVariableEventHandler {(_this select 1) call infectedcamps};
    
    	"PVDZ_Server_changeOwner" addPublicVariableEventHandler {		
    		_agent = ((_this select 1) select 0);
    		_reciever = ((_this select 1) select 1);
    		_ownerID = owner _agent;
    		_newownerID = 1; //1 = server
    
    		if (typeName _reciever == "OBJECT") then {
    			_newownerID = owner _reciever;
    		};
    		if (isnil ("Owner")) then {
    			_agent setVariable ["Owner",_ownerID];
    		};
    
    		_agent setOwner _newownerID;
    		diag_log ("TRANSFER OWNERSHIP: " + (typeOf _agent) + " OF _unit: " + str(_agent) + " TO _client: " + str(_reciever) );
    	};
    
    	"PVDZ_Server_Simulation" addPublicVariableEventHandler {
    		_agent = ((_this select 1) select 0);
    		_control = ((_this select 1) select 1);
    		
    		_agent enableSimulation _control;
    	};
    
    if (isServer) then {
    	"PVDZ_plr_Death"		addPublicVariableEventHandler {_id = (_this select 1) spawn server_playerDied};
    	"PVDZ_plr_Save"			addPublicVariableEventHandler {_id = (_this select 1) call server_playerSync;};
    	"PVDZ_obj_Publish"		addPublicVariableEventHandler {(_this select 1) call server_publishObj};
    	"PVDZ_veh_Save" 		addPublicVariableEventHandler {(_this select 1) call server_updateObject};
    	"PVDZ_plr_Login1"		addPublicVariableEventHandler {_id = (_this select 1) call server_playerLogin};
    	"PVDZ_plr_Login2"		addPublicVariableEventHandler {(_this select 1) call server_playerSetup};
    	"PVDZ_plr_LoginRecord"	addPublicVariableEventHandler {_id = (_this select 1) spawn dayz_recordLogin};
    	"PVDZ_obj_Delete"		addPublicVariableEventHandler {(_this select 1) spawn server_deleteObj};
    	"PVDZ_send" addPublicVariableEventHandler {(_this select 1) call server_sendToClient};
    
    	"PVDZ_objgather_Delete" addPublicVariableEventHandler {
    		_obj = ((_this select 1) select 0);
    		_player = ((_this select 1) select 1);
    		_type = typeOf _obj;
    		_dis = _player distance _obj;
    
    		if (_dis < 3) then {
    			if (_type in Dayz_plants) then {
    				deleteVehicle _obj;
    			};
    		};	
    	};
    
    	"PVDZ_serverStoreVar" addPublicVariableEventHandler {
    		_obj = ((_this select 1) select 0);
    		_name = ((_this select 1) select 1);
    		_value = 0;
    
    		switch (_name) do {
    			case "looted": {
    				_obj =  ((_this select 1) select 0);
    				_name = "looted";
    				_value = ((_this select 1) select 2);
    				
    				_obj setVariable [_name, _value];
    			};
    			case "zombieSpawn": {
    				_obj = ((_this select 1) select 0);
    				_name = "zombieSpawn";
    				_value = ((_this select 1) select 2);
    				
    				_obj setVariable [_name, _value];
    			};
    			case "USEC_BloodQty": {
    				_obj = ((_this select 1) select 0);
    				_name = ((_this select 1) select 1);
    				_value = ((_this select 1) select 2);
    				//diag_log format ["%1, %2, %3", _obj, _name, _value]; 
    				if (isPlayer _obj) then {
    					_obj setVariable [_name, _value];
    				};
    			};
    		};
    	};
    
    	"PVDZ_receiveVar" addPublicVariableEventHandler {
    		_owner = ((_this select 1) select 0);
    		_object = ((_this select 1) select 1);
    		_name = ((_this select 1) select 2);
    		_value = ((_this select 1) select 3);
    
    		switch (_name) do {
    			case "looted": {
    				diag_log format ["%4 - %1, %2, %3", _object, _name, _value, "receive looted"]; 
    			};
    			case "zombieSpawn": {
    				//diag_log format ["%4 - %1, %2, %3", _object, _name, _value, "receive zombieSpawn"]; 
    			};
    		};
    
    		_ownerID = owner _owner;
    		_return = _object getVariable [_name,_value];
    		a=0;
    		b=5;
    		while {a<b} do {a=a+1};
    
    		diag_log format ["%1", _return];	
    
    		PVCDZ_SetVar = [_object,_name,_return];
    		_ownerID publicVariableClient "PVCDZ_SetVar";
    	};
    	
    	"PVDZ_getTickTime" addPublicVariableEventHandler {
    		_owner = owner (_this select 1);
    		//diag_log format["TICK TIME: %1", diag_tickTime];
    		PVCDZ_setServerTickTimeOffset = diag_TickTime;
    		_owner publicVariableClient "PVCDZ_setServerTickTimeOffset";
    	};
    };
    
    //Client only
    if (!isDedicated) then {
    	"dayzSetDate"				addPublicVariableEventHandler {setDate (_this select 1)};
    	"PVDZ_obj_RoadFlare"		addPublicVariableEventHandler {(_this select 1) spawn object_roadFlare};
    	"PVDZ_drg_RaDrag"   		addPublicVariableEventHandler {(_this select 1) execVM "\z\addons\dayz_code\medical\publicEH\animDrag.sqf"};
    	"PVDZ_obj_Fire"				addPublicVariableEventHandler {nul=(_this select 1) spawn BIS_Effects_Burn};
    	
    			//Medical
    	"PVCDZ_hlt_Morphine"		addPublicVariableEventHandler {(_this select 1) call player_medMorphine};
    	"PVCDZ_hlt_Bandage"			addPublicVariableEventHandler {(_this select 1) call player_medBandage};
    	"PVCDZ_hlt_Epi"				addPublicVariableEventHandler {(_this select 1) call player_medEpi};
    	"PVCDZ_hlt_Transfuse"		addPublicVariableEventHandler {(_this select 1) call player_medTransfuse; PVCDZ_hlt_Transfuse = nil};
    	"PVCDZ_hlt_PainK"			addPublicVariableEventHandler {(_this select 1) call player_medPainkiller};
    	"PVCDZ_hlt_AntiB"			addPublicVariableEventHandler {(_this select 1) call player_medAntiBiotics};
    
    	"PVCDZ_plr_Humanity"		addPublicVariableEventHandler {(_this select 1) spawn player_humanityChange};
    	"PVCDZ_plr_Legs"			addPublicVariableEventHandler {
    		_entity = (_this select 1) select 0;
    		_entity setHit ["legs", 1];
    
    		if (isPlayer _entity) then {
    			_entity setVariable ["hit_legs", 2, true];
    		};
    	};
    	
    	"PVCDZ_SetVar" addPublicVariableEventHandler {
    		_object = ((_this select 1) select 0);
    		_name = ((_this select 1) select 1);
    		_value = ((_this select 1) select 2);
    		_object setVariable [_name,_value];
    	};
    	
    	"PVCDZ_setServerTickTimeOffset"  addPublicVariableEventHandler {
    		_serverTickTime = _this select 1;
    		_offset = _serverTickTime - diag_tickTime;
    		dayz_tickTimeOffset = _offset;
    		//diag_log format["SERVER TIME: %1    OFFSET: %2    PLAYER TIME: %3    COMPUTED TIME: %4", _serverTickTime, _offset, diag_tickTime, (diag_tickTime + _offset)];
    	};	
    };
    
    
    

  8. I got Lopatino and Staroye in, looks great but the traders dont actually function as well as they arent safezones. Any ideas?

    Like I explained in the PM, you have to make sure the ai classnames in the server_traders.sqf match the ai classnames in the files he gives you

     

    Safe zones are dependent on either the safe zone script, where you define the coordinates and the radius of the safe zones, or it automatically recognizes the safe zone sensors in your mission.sqm and uses those, or both.

  9. Welllll I have 2 servers :)  one is Overpoch and one is Overwatch, but they're both having the same problem
    I'll show you my overwatch server files I guess

    server_functions.sqf

    [] spawn {[] execVM "\z\addons\dayz_server\init\AH.sqf";};
    #include "\z\addons\dayz_server\compile\server_toggle_debug.hpp"
    waituntil {!isnil "bis_fnc_init"};
    
    BIS_MPF_remoteExecutionServer = {
        if ((_this select 1) select 2 == "JIPrequest") then {
            [nil,(_this select 1) select 0,"loc",rJIPEXEC,[any,any,"per","execVM","ca\Modules\Functions\init.sqf"]] call RE;
        };
    };
    
    BIS_Effects_Burn =            {};
    server_playerLogin =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf";
    server_playerSetup =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf";
    server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf";
    server_updateObject =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf";
    server_playerDied =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf";
    server_publishObj =         compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf";    //Creates the object in DB
    server_publishBld =         compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishBuilding.sqf";    //Creates the building in DB
    server_deleteObj =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf";     //Removes the object from the DB
    server_playerSync =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf";
    zombie_findOwner =            compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf";
    server_updateNearbyObjects =    compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateNearbyObjects.sqf";
    fnc_plyrHit   = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf";
    server_spawnCrashSite  =    compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf";
    server_sendToClient =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_sendToClient.sqf";
    server_Wildgenerate =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_Wildgenerate.sqf";
    server_plantSpawner =        compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_plantSpawner.sqf";
    
    //Get instance name (e.g. dayz_1.chernarus)
    fnc_instanceName = {
        "dayz_" + str(dayz_instance) + "." + worldName
    };
    //spawnComposition = compile preprocessFileLineNumbers "ca\modules\dyno\data\scripts\objectMapper.sqf"; //"\z\addons\dayz_code\compile\object_mapper.sqf";
    //fn_bases = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fn_bases.sqf";
    
    vehicle_handleServerKilled = {
        private["_unit","_killer"];
        _unit = _this select 0;
        _killer = _this select 1;
            
        [_unit, "killed"] call server_updateObject;
        
        _unit removeAllMPEventHandlers "MPKilled";
        _unit removeAllMPEventHandlers "mphit";
        _unit removeAllMPEventHandlers "mprespawn";
        _unit removeAllEventHandlers "FiredNear";
        _unit removeAllEventHandlers "Killed";
        _unit removeAllEventHandlers "HandleDamage";
        _unit removeAllEventHandlers "GetIn";
        _unit removeAllEventHandlers "GetOut";
        _unit removeAllEventHandlers "Fired";
            _unit removeAllEventHandlers "Local";
    };
    
    check_publishobject = {
        private ["_allowed","_allowedObjects","_object","_playername"];
    
        _object = _this select 0;
        _playername = _this select 1;
        _allowedObjects = ["TentStorage", "Hedgehog_DZ", "Sandbag1_DZ", "BearTrap_DZ", "Wire_cat1", "StashSmall", "StashMedium", "DomeTentStorage", "CamoNet_DZ", "Trap_Cans", "TrapTripwireFlare", "TrapBearTrapSmoke", "TrapTripwireGrenade", "TrapTripwireSmoke", "TrapBearTrapFlare"];
        _allowed = false;
    
    #ifdef OBJECT_DEBUG
        diag_log format ["DEBUG: Checking if Object: %1 is allowed published by %2", _object, _playername];
    #endif
    
        if ((typeOf _object) in _allowedObjects) then {
    #ifdef OBJECT_DEBUG
            diag_log format ["DEBUG: Object: %1 published by %2 is Safe",_object, _playername];
    #endif
            _allowed = true;
        };
    
        _allowed;
    };
    
    //event Handlers
    eh_localCleanup = {
        
    private ["_object","_type","_unit"];
    _object = _this select 0;
        _object addEventHandler ["local", {
            if(_this select 1) then {
                _unit = _this select 0;
                _type = typeOf _unit;
                 _myGroupUnit = group _unit;
                 _unit removeAllMPEventHandlers "mpkilled";
                 _unit removeAllMPEventHandlers "mphit";
                 _unit removeAllMPEventHandlers "mprespawn";
                 _unit removeAllEventHandlers "FiredNear";
                _unit removeAllEventHandlers "HandleDamage";
                _unit removeAllEventHandlers "Killed";
                _unit removeAllEventHandlers "Fired";
                _unit removeAllEventHandlers "GetOut";
                _unit removeAllEventHandlers "GetIn";
                _unit removeAllEventHandlers "Local";
                clearVehicleInit _unit;
                deleteVehicle _unit;
                deleteGroup _myGroupUnit;
                _unit = nil;
                diag_log ("CLEANUP: DELETED A " + str(_type) );
            };
        }];
    };
    
    server_hiveWrite = {
        private["_data"];
        //diag_log ("ATTEMPT WRITE: " + _this);
        _data = "HiveExt" callExtension _this;
        //diag_log ("WRITE: " +str(_data));
    };
    
    server_hiveReadWrite = {
        private["_key","_resultArray","_data"];
        _key = _this;
        //diag_log ("ATTEMPT READ/WRITE: " + _key);
        _data = "HiveExt" callExtension _key;
        //diag_log ("READ/WRITE: " +str(_data));
        _resultArray = call compile format ["%1",_data];
        _resultArray;
    };
    
    onPlayerDisconnected         "[_uid,_name] call server_onPlayerDisconnect;";
    
    server_getDiff =    {
        private["_variable","_object","_vNew","_vOld","_result"];
        _variable = _this select 0;
        _object =     _this select 1;
        _vNew =     _object getVariable[_variable,0];
        _vOld =     _object getVariable[(_variable + "_CHK"),_vNew];
        _result =     0;
        if (_vNew < _vOld) then {
            //JIP issues
            _vNew = _vNew + _vOld;
            _object getVariable[(_variable + "_CHK"),_vNew];
        } else {
            _result = _vNew - _vOld;
            _object setVariable[(_variable + "_CHK"),_vNew];
        };
        _result;
    };
    
    server_getDiff2 =    {
        private["_variable","_object","_vNew","_vOld","_result"];
        _variable = _this select 0;
        _object =     _this select 1;
        _vNew =     _object getVariable[_variable,0];
        _vOld =     _object getVariable[(_variable + "_CHK"),_vNew];
        _result = _vNew - _vOld;
        _object setVariable[(_variable + "_CHK"),_vNew];
        _result;
    };
    
    dayz_objectUID2 = {
        private["_position","_dir","_key"];
        _dir = _this select 0;
        _key = "";
        _position = _this select 1;
        {
            _x = _x * 10;
            if ( _x < 0 ) then { _x = _x * -10 };
            _key = _key + str(round(_x));
        } forEach _position;
        _key = _key + str(round(_dir));
        _key;
    };
    
    dayz_recordLogin = {
        private["_key"];
        _key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
        _key call server_hiveWrite;
    };
    currentInvites = [];
    publicVariable "currentInvites"; //DZGM
    
    call compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fa_hiveMaintenance.sqf";
    #include "owcleanup.sqf";
    //Buildings
    call compile preProcessFileLineNumbers "\z\addons\dayz_server\buildings\main.sqf";
    
    //---------MapAdditions--------
    execVM "\z\addons\dayz_server\mapadditions\BerezinoStadium.sqf";
    execVM "\z\addons\dayz_server\mapadditions\BlackForest.sqf";
    execVM "\z\addons\dayz_server\mapadditions\CustomMap1.sqf";
    execVM "\z\addons\dayz_server\mapadditions\dichina_base.sqf";
    execVM "\z\addons\dayz_server\mapadditions\KamenkaEscape.sqf";
    execVM "\z\addons\dayz_server\mapadditions\KlenCastle.sqf";
    execVM "\z\addons\dayz_server\mapadditions\KlenTankTraps.sqf";
    execVM "\z\addons\dayz_server\mapadditions\LopatinoOutpost.sqf";
    execVM "\z\addons\dayz_server\mapadditions\Notebooks.sqf";
    execVM "\z\addons\dayz_server\mapadditions\NovyLugbase.sqf";
    execVM "\z\addons\dayz_server\mapadditions\NWAcustom.sqf";
    execVM "\z\addons\dayz_server\mapadditions\oilfieldsbase.sqf";
    execVM "\z\addons\dayz_server\mapadditions\Petrovka.sqf";
    execVM "\z\addons\dayz_server\mapadditions\SkalistyCastle.sqf";
    execVM "\z\addons\dayz_server\mapadditions\ZelenoCastle1.sqf";
    
    execVM "\z\addons\dayz_server\init\broadcaster.sqf"; //DZGM
    
    
    

     

    Where would I find public_EH.sqf?  I can't seem to find it in my server PBO anywhere...

  10.  

    Ive taken the liberty of putting your files in code format with numbered lines. This might help someone help you more quickly.

     

    zupa\advancedTrading\init.sqf

    disableSerialization;
     
    Z_traderData = (_this select 3); // gets the trader data ( menu_Functionary1 )
     
    Z_Selling = true;
    Z_SellingFrom = 2;
     
    if( isNil "Z_traderData" || count (Z_traderData) == 0)exitWith{
    cutText [format["There went something wrong."], "PLAIN DOWN"];
    };
     
    if(isNil "Z_AdvancedTradingInit")then{
    // initiate the functions and variables for advanced trading -- easier for the people :) otherwise it would be in compiles or different file.
    Z_SellableArray = [];
    Z_SellArray = [];
    Z_BuyArray = [];
    Z_BuyingArray = [];
    Z_vehicle = objNull;
    Z_VehicleDistance = 30;
    Z_MoneyVariable = "cashMoney"; // Change this to whichever currency You are using.
    Z_NormalCurrency = false; // No effect yet. Not supported yet
     
    if(isNil 'CurrencyName')then{
    CurrencyName = 'Coins';
    };
     
    Z_filleTradeTitle = {
    _text = _this select 0;
    ctrlSetText [7408, _text];
    };
     
    Z_clearLists = {
    lbClear 7401;
    lbClear 7402;
    };
     
    Z_clearBuyList = {
     lbClear 7421;
    };
     
    Z_clearBuyingList = {
     lbClear 7422;
    };
     
    Z_getContainer = {
    _dialog = findDisplay 711197;
    (_dialog displayCtrl 7404) ctrlSetText format["Free Slots: 0 / 0 / 0"];
    Z_clearBuyingList;
    Z_clearLists;
    Z_SellableArray = [];
    Z_SellArray = [];
    Z_BuyingArray = [];
     
    _lbIndex= _this select 0;
     
    if(Z_Selling)then{
    switch (_lbIndex) do {
    case 0: { 
    ["Selling from backpack."] call Z_filleTradeTitle;
    Z_SellingFrom = 0;
    call Z_getBackpackItems; 
    };
    case 1: { 
    ["Selling from vehicle."] call Z_filleTradeTitle;
    Z_SellingFrom = 1;
    call Z_getVehicleItems; 
    };
    case 2: { 
    ["Selling from gear."] call Z_filleTradeTitle;
    Z_SellingFrom = 2;
    call Z_getGearItems; 
    };
    };
    }else{
    _ctrltext = format[" "];
    ctrlSetText [7413, _ctrltext];
     
    _ctrltext = format["These are all the items I'm selling!"];
    ctrlSetText [7412, _ctrltext];
    switch (_lbIndex) do {
     
    case 0: { 
    Z_SellingFrom = 0;
    ["Buying in backpack."] call Z_filleTradeTitle;
    [0] call Z_calculateFreeSpace;
    };
    case 1: { 
    Z_SellingFrom = 1;
    ["Buying in vehicle."] call Z_filleTradeTitle;
    _canBuyInVehicle = call Z_CheckCloseVehicle;
    if(_canBuyInVehicle)then{
    [1] call Z_calculateFreeSpace; 
    }else{
    systemChat format["Get in driver seat to be able to trade to your vehicle."];
    (_dialog displayCtrl 7404) ctrlSetText format["Free Slots: %1 / %2 / %3",0,0,0];
    };
    };
    case 2: {
    Z_SellingFrom = 2;
    ["Buying in gear."] call Z_filleTradeTitle;
    [2] call Z_calculateFreeSpace;
    };
    };
    };
    };
     
    Z_getBackpackItems = {
    call Z_clearLists;
    Z_SellableArray = [];
    Z_SellArray = [];
    _backpack = unitBackpack player;
    if (!isNil "_backpack") then {    
    _mags = getMagazineCargo _backpack;
    _weaps = getWeaponCargo _backpack;
    _normalMags = [];
    _normalWeaps = [];
    _kinds = _mags select 0;
    _ammmounts = _mags select 1;
    {
    _counter = 0 ;
    while{ _counter < ( _ammmounts select _forEachIndex)}do{
    _normalMags set [count(_normalMags),_x];
    _counter = _counter + 1;
    };
    }forEach _kinds;
     
    _kinds2 = _weaps select 0;
    _ammmounts2 = _weaps select 1;
    {
    _counter = 0 ;
    while{ _counter < ( _ammmounts2 select _forEachIndex)}do{
    _normalWeaps set [count(_normalWeaps),_x];
    _counter = _counter + 1;
    };
    }forEach _kinds2;
     
    [_normalMags,_normalWeaps, typeOf _backpack] call Z_checkArrayInConfig;
    }else{
    _ctrltext = format["I'm not stupid."];
    ctrlSetText [7413, _ctrltext];
     
    _ctrltext = format["You are not wearing a backpack."];
    ctrlSetText [7412, _ctrltext];
    };
    };
     
    Z_getVehicleItems = {
    Z_vehicle = objNull;
    call Z_clearLists;
    Z_SellableArray = [];
    Z_SellArray = [];
    _vehicle = objNull;
     
    _list = nearestObjects [(getPosATL player), ["AllVehicles"], Z_VehicleDistance];
    {
    if(!isNull _x && local _x && !isPlayer _x && alive _x && !(_x isKindOf "zZombie_base"))then{
    systemChat format["Selected %1",typeOf _x];
    _vehicle = _x;
    };
    }count _list;
     
    if(!isNull _vehicle)then{
    Z_vehicle = _vehicle;
    _mags = getMagazineCargo _vehicle;
    _weaps = getWeaponCargo _vehicle;
     
    _normalMags = [];
    _normalWeaps = [];
     
    _kinds = _mags select 0;
    _ammmounts = _mags select 1;
    {
    _counter = 0 ;
    while{ _counter < ( _ammmounts select _forEachIndex)}do{
    _normalMags set [count(_normalMags),_x];
    _counter = _counter + 1;
    };
    }forEach _kinds;
     
    _kinds2 = _weaps select 0;
    _ammmounts2 = _weaps select 1;
    {
    _counter = 0 ;
    while{ _counter < ( _ammmounts2 select _forEachIndex)}do{
    _normalWeaps set [count(_normalWeaps),_x];
    _counter = _counter + 1;
    };
    }forEach _kinds2;
     
     
    [_normalWeaps,_normalMags, typeOf _vehicle] call Z_checkArrayInConfig;
    }else{
    _ctrltext = format["Get in driver seat first!"];
    ctrlSetText [7413, _ctrltext];
     
    _ctrltext = format["I do not see any vehicle."];
    ctrlSetText [7412, _ctrltext];
    };
    };
     
    Z_getGearItems = {
    call Z_clearLists;
    Z_SellArray = [];
    Z_SellableArray = [];
    _mags = magazines player;
    _weaps = weapons player;
    [_weaps,_mags,"your gear"] call Z_checkArrayInConfig;
    };
     
    Z_checkArrayInConfig = {
    _weaps = _this select 0;
    _mags = _this select 1;
    _extraText = _this select 2;
    _all = _weaps + _mags ;
    _total = count(_all);
    _arrayOfTraderCat = Z_traderData;
    _totalPrice = 0;
    if(_total > 0)then{
    {
    _y = _x;
    {
    _cat =  format["Category_%1",(_arrayOfTraderCat select _forEachIndex select 1)];
    _excists = false;
    if(isClass(missionConfigFile >> "CfgTraderCategory"  >> _cat >> _y ))then{
    _excists = isClass(missionConfigFile >> "CfgTraderCategory"  >> _cat >> _y );
    };
    if(_excists)exitWith{
    _pic = "";
    _text = "";
    _type = getText(missionConfigFile >> "CfgTraderCategory"  >> _cat  >> _y >> "type");
    _sell = getArray(missionConfigFile >> "CfgTraderCategory"  >> _cat  >> _y >> "sell");
     
    switch (true) do {
    case (_type == "trade_items") :
    {
    _pic = getText (configFile >> 'CfgMagazines' >> _y >> 'picture');
    _text = getText (configFile >> 'CfgMagazines' >> _y >> 'displayName');
    };
    case (_type == "trade_weapons") :
    {
    _pic = getText (configFile >> 'CfgWeapons' >> _y >> 'picture');
    _text = getText (configFile >> 'CfgWeapons' >> _y >> 'displayName');
    };
    case (_type == "trade_backpacks") :
    {
    _pic = getText (configFile >> 'CfgVehicles' >> _y >> 'picture');
    _text = getText (configFile >> 'CfgVehicles' >> _y >> 'displayName');
    };
    };
     
     
    if( isNil '_text')then{_text = _y;};
    Z_SellableArray set [count(Z_SellableArray) , [_y,_type,_sell select 0,_text,_pic]];
    _totalPrice = _totalPrice + (_sell select 0);
    };
    }forEach _arrayOfTraderCat;
    }count _all;
     
    _backUpText = _extraText;
    if(Z_SellingFrom != 2)then{
    _extraText = getText (configFile >> 'CfgVehicles' >> _extraText >> 'displayName');
    };
    if (isNil '_extraText')then{_extraText = _backUpText;};
     
    _ctrltext = format["I would offer %1 %2.", _totalPrice,CurrencyName];
    ctrlSetText [7413, _ctrltext];
    _ctrltext = format["I accept %1 items from %2.", count(Z_SellableArray) , _extraText];
    ctrlSetText [7412, _ctrltext];
    call Z_fillSellList;
    };
    };
     
    Z_calcPrice = {
    _sellPrice = 0;
    if(Z_Selling)then{
    {  
    _sellPrice = _sellPrice +  (_x select 2);
    }count Z_SellArray;
    }else{
    {
    _sellPrice = _sellPrice +  ((_x select 2) * (_x select 5));
    }count Z_BuyingArray;
    };
    _ctrltext = format["%1 %2", _sellPrice , CurrencyName];
    ctrlSetText [7410, _ctrltext];
    };
     
    Z_fillSellList = {
     
    {
    _index = lbAdd [7401,  _x select 3];
    lbSetPicture [7401, _index, _x select 4 ];
    }count Z_SellableArray;
    };
     
    Z_fillSellingList = {
    {  
    _index = lbAdd [7402, _x select 3];
    lbSetPicture [7402, _index,  _x select 4];
    }count Z_SellArray;
    };
     
    Z_pushItemToList = {
    _index = _this select 0;
    if(!isNil"_index" && _index > -1)then {
    lbDelete [7401, _index];
    _temp = Z_SellableArray select _index;
    //_item = [_temp select 0,_temp select 1 ,_temp select 2,_temp select 3, _temp select 4  ];
    Z_SellArray set [count(Z_SellArray),_temp];
    Z_SellableArray set [_index,"deleted"];
    Z_SellableArray = Z_SellableArray - ["deleted"];
    _index2 = lbAdd [7402, _temp select 3];
    lbSetPicture [7402, _index2, _temp select 4];
    call Z_calcPrice;
    };
    };
     
    Z_removeItemFromList = {
    _index = _this select 0;
    if(!isNil"_index" && _index > -1)then {
    lbDelete [7402, _index];
    _temp = Z_SellArray select _index;
    _item = [_temp select 0,_temp select 1 ,_temp select 2,_temp select 3, _temp select 4  ];
    Z_SellableArray set [count(Z_SellableArray),_item];
    Z_SellArray set [_index,"deleted"];
    Z_SellArray = Z_SellArray - ["deleted"];
    _index2 = lbAdd [7401,  _item select 3];
    lbSetPicture [7401, _index2, _item select 4];
    call Z_calcPrice;
    };
    };
     
    Z_pushAllToList = {
    Z_SellArray = Z_SellArray + Z_SellableArray;
    Z_SellableArray = [];
    call Z_clearLists;
    call Z_fillSellList;
    call Z_fillSellingList;
    call Z_calcPrice;
    };
     
    Z_removeAllToList = {
    Z_SellableArray = Z_SellableArray + Z_SellArray;
    Z_SellArray = [];
    call Z_clearLists;
    call Z_fillSellList;
    call Z_fillSellingList;
    call Z_calcPrice;
    };
     
    Z_SellItems = {
    _index = count (Z_SellArray) - 1;
    _tempArray = Z_SellArray;
    if(_index > -1)then{
    systemChat "Selling items.";
    closeDialog 2;
    _outcome = [];
    _weaponsArray = [];
    _itemsArray = [];
    _bpArray = [];
    _bpCheckArray = [];
    _weaponsCheckArray = [];
    _itemsCheckArray = [];
    {
    _type = _x select 1;
    _name = _x select 0;
     
    switch (true) do {
    case (_type == "trade_items") :
    {
    _itemsArray set [count(_itemsArray),_name];
    _itemsCheckArray set [count(_itemsCheckArray),_x select 2];
    };
    case (_type == "trade_weapons") :
    {
    _weaponsArray set [count(_weaponsArray),_name];
    _weaponsCheckArray set [count(_weaponsCheckArray),_x select 2];
    };
    case (_type == "trade_backpacks") :
    {
    _bpArray set [count(_bpArray),_name];
    _bpCheckArray set [count(_bpCheckArray),_x select 2];
    };
    };
     
     
     
    }count Z_SellArray;
     
    // closeDialog 2;
     
    if(Z_SellingFrom == 0)then{
    _outcome = [unitBackpack player,_itemsArray,_weaponsArray] call ZUPA_fnc_removeWeaponsAndMagazinesCargo;
    };
    if(Z_SellingFrom == 1)then{
    _outcome = [Z_vehicle,_itemsArray,_weaponsArray,_bpArray] call ZUPA_fnc_removeWeaponsAndMagazinesCargo;
    };
     
    //gear
    if(Z_SellingFrom == 2)then{
    _wA = [];
    _mA = [];
    {
    _localResult = [player,(_x select 0),1] call BIS_fnc_invRemove;
    if( _localResult != 1)then{
    if(_x select 1 == "trade_items")then{
    _mA set [count(_mA),0];
    }else{
    _wA set [count(_wA),0];
    };
    }else{
    if(_x select 1 == "trade_items")then{
    _mA set [count(_mA),1];
    }else{
    _wA set [count(_wA),1];
    };
    };
     
    }count Z_SellArray;
     
    _outcome set [0,_mA];
    _outcome set [1,_wA];
    _outcome set [2,[]];
    };
     
    _money = 0;
    {
    _money = _money + ( ((_itemsCheckArray select _forEachIndex)) * _x) ;
    }forEach (_outcome select 0);
    {
    _money = _money + ( ((_weaponsCheckArray select _forEachIndex)) * _x) ;
    }forEach (_outcome select 1);
     
    {
    _money = _money + ( ( (_bpCheckArray select _forEachIndex) ) * _x) ;
    }forEach (_outcome select 2);
     
    if(typeName _money  == "SCALAR")then{
    [player,_money] call SC_fnc_addCoins;
    systemChat format["Received %1 %2", _money , CurrencyName];
    }else{
    systemChat format["Money is not a number. Something went wrong."];
    };
    }else{
    systemChat format["No Items to Sell"];
    };
    };
     
    Z_BuyItems = {
    _magazinesToBuy = 0;
    _weaponsToBuy = 0;
    _backpacksToBuy = 0;
     
    _priceToBuy = 0;
     
    {
    if( _x select 1 == "trade_weapons")then{
    _weaponsToBuy = _weaponsToBuy + (_x select 5) ;
    _priceToBuy = _priceToBuy + ((_x select 5)*(_x select 2));
    };
    if( _x select 1 == "trade_items")then{
    _magazinesToBuy = _magazinesToBuy + (_x select 5) ;
    _priceToBuy = _priceToBuy + ((_x select 2)*(_x select 5));
    };
    if( _x select 1 == "trade_backpacks")then{
    _backpacksToBuy = _backpacksToBuy + (_x select 5) ;
    _priceToBuy = _priceToBuy + ((_x select 2)*(_x select 5));
    };
    } count Z_BuyingArray;
     
    //recheck if there is enough space -> not that some douche put extra stuff in.
     
    _canBuy = [_weaponsToBuy,_magazinesToBuy,_backpacksToBuy] call Z_allowBuying;
     
    _myMoney = player getVariable[Z_MoneyVariable,0];
     
    if(_myMoney >= _priceToBuy)then{
       
     
     
    if(_canBuy)then{
    systemChat format["Start Buying for %1 %2",_priceToBuy,CurrencyName];
     
    closeDialog 2;
     
    if(Z_SellingFrom == 0)then{//backpack
    systemChat format["Adding %1 Items in backpack",count (Z_BuyingArray)];
    {
    if( _x select 1 == "trade_weapons")then{
    (unitBackpack player) addWeaponCargoGlobal [_x select 0, _x select 5];
    diag_log format ["%1 x %2 added", _x select 0, _x select 5];
    };
    if( _x select 1 == "trade_items")then{
    (unitBackpack player) addMagazineCargoGlobal  [_x select 0, _x select 5];
    diag_log format ["%1 x %2 added", _x select 0, _x select 5];
    };
    } count Z_BuyingArray;
    };
     
    if(Z_SellingFrom == 1)then{//vehicle
    {
    systemChat format["Adding %1 Items in %2",count (Z_BuyingArray), typeOf Z_vehicle];
    if( _x select 1 == "trade_weapons")then{
    Z_vehicle addWeaponCargoGlobal [_x select 0, _x select 5];
    diag_log format ["%1 x %2 added", _x select 0, _x select 5];
    };
    if( _x select 1 == "trade_items")then{
    Z_vehicle addMagazineCargoGlobal [_x select 0, _x select 5];
    diag_log format ["%1 x %2 added", _x select 0, _x select 5];
    };
    if( _x select 1 == "trade_backpacks")then{
    Z_vehicle addBackpackCargoGlobal [_x select 0, _x select 5];
    diag_log format ["%1 x %2 added", _x select 0, _x select 5];
    };
    } count Z_BuyingArray;
    };
     
    if(Z_SellingFrom == 2)then{//gear
    systemChat format["Adding %1 Items in gear",count (Z_BuyingArray)];
    {
    if( _x select 1 == "trade_weapons")then{
    _count = 0;
    while(_count < _x select 5)do{
    player addWeapon (_x select 0);
    diag_log format ["%1 added", _x select 0];
    _count = _count + 1;
    };
    };
    if( _x select 1 == "trade_items")then{
    _count = 0;
    while{_count < _x select 5}do{
    player addMagazine (_x select 0);
    diag_log format ["%1 added", _x select 0];
    _count = _count + 1;
    };
    };
    } count Z_BuyingArray;
    };
    systemChat format["removing %1 coins ",_priceToBuy];
    [player,_priceToBuy] call SC_fnc_removeCoins;
    systemChat format["removed %1 coins ",_priceToBuy];
    };
    }else{
    systemChat format["You need %1 %2 to buy all these items.",_priceToBuy,CurrencyName];
    };
     
    };
     
    /* ----------------------------------------------------------------------------
    Examples:
      _result = [_backpack, ["SmokeShell","M16_AMMO"],["M16","M16","M240"]] call ZUPA_fnc_removeWeaponsAndMagazinesCargo; 
      _result == [[1,0,0,1,1,1,0],[1,0,0,1],[1,0]]; // 1 = success, 0 = fail ->( item was not in cargo)
      
    Author:
      Zupa 2014-09-30
    ---------------------------------------------------------------------------- */
    ZUPA_fnc_removeWeaponsAndMagazinesCargo = {
    private ["_unit", "_items","_weaps","_normalItems","_normalWeaps", "_count", "_i", "_unit_allItems", "_unit_allItems_types", "_unit_allItems_count", "_item_type", "_item_count", "__returnVar"];
    _unit = _this select 0;
    _items = _this select 1; 
    _weaps = _this select 2; 
    _bags = [];
    if(count _this > 3)then{
    _bags = _this select 3; 
    };
     
    _normalItems = [];
    _normalWeaps = [];
    _normalBags = [];
     
    _unit_allItems = getMagazineCargo _unit; //  [[type1, typeN, ...],[count1, countN, ...]]
    _unit_allItems_types = _unit_allItems select 0;
    _unit_allItems_count = _unit_allItems select 1;
     
    _unit_allWeaps = getWeaponCargo _unit; 
    _unit_allWeaps_types = _unit_allWeaps select 0;
    _unit_allWeaps_count = _unit_allWeaps select 1;
     
    _unit_allBags = getBackpackCargo _unit; 
    _unit_allBags_types = _unit_allBags select 0;
    _unit_allBags_count = _unit_allBags select 1;
     
    clearMagazineCargoGlobal _unit;
    clearWeaponCargoGlobal _unit;
     
    if( count _bags > 0 )then{
    clearBackpackCargoGlobal  _unit;
    };
     
    {
    _counter = 0 ;
    while{ _counter < ( _unit_allItems_count select _forEachIndex)}do{
    _normalItems set [count(_normalItems),_x];
    _counter = _counter + 1;
    };
    }forEach _unit_allItems_types;
    {
    _counter = 0 ;
    while{ _counter < ( _unit_allWeaps_count select _forEachIndex)}do{
    _normalWeaps set [count(_normalWeaps),_x];
    _counter = _counter + 1;
    };
    }forEach _unit_allWeaps_types;
    {
    _counter = 0 ;
    while{ _counter < ( _unit_allBags_count select _forEachIndex)}do{
    _normalBagss set [count(_normalBags),_x];
    _counter = _counter + 1;
    };
    }forEach _unit_allBags_types;
     
    _returnVar = [];
    _returnMag = [];
    _returnWeap = [];
    _returnBag = [];
    {
    _inCargo = _normalItems find _x;
    if(_inCargo > -1)then{
    _normalItems set [_inCargo, "soldItem"];
    _returnMag set [count(_returnMag),1];
    }else{
    _returnMag set [count(_returnMag),0];
    };
    }count _items;
    _normalItems = _normalItems - ["soldItem"];
    {
    _unit addMagazineCargoGlobal [_x, 1];
    }count _normalItems;
     
    {
    _inCargo = _normalWeaps find _x;
    if(_inCargo > -1)then{
    _normalWeaps set [_inCargo, "soldItem"];
    _returnWeap set [count(_returnWeap),1];
    }else{
    _returnWeap set [count(_returnWeap),0];
    };
    }count _weaps;
    _normalWeaps = _normalWeaps - ["soldItem"];
    {
    _unit addWeaponCargoGlobal [_x, 1];
    }count _normalWeaps;
     
    {
    _inCargo = _normalBags find _x;
    if(_inCargo > -1)then{
    _normalBags set [_inCargo, "soldItem"];
    _returnBag set [count(_returnBag),1];
    }else{
    _returnBag set [count(_returnBag),0];
    };
    }count _bags;
    _normalWeaps = _normalWeaps - ["soldItem"];
    {
    _unit addBackpackCargoGlobal [_x, 1];
    }count _normalBags;
     
    _returnVar set [0,_returnMag];
    _returnVar set [1,_returnWeap];
    _returnVar set [2,_returnBag];
    _returnVar;
    };
     
    Z_ChangeBuySell = {
    _dialog = findDisplay 711197;
    Z_Selling = !Z_Selling;
    if(Z_Selling)then{
    (_dialog displayCtrl 7416) ctrlSetText "Buy";
    (_dialog displayCtrl 7409) ctrlSetText "Selling";
    {ctrlShow [_x,true];} forEach [7401,7402,7435,7430,7431,7432,7433]; // show
    {ctrlShow [_x,false];} forEach [7421,7422,7436,7440,7441,7442,7443,7404]; // hide
    }else{
    (_dialog displayCtrl 7416) ctrlSetText "Sell";
    (_dialog displayCtrl 7409) ctrlSetText "Buying";
    {ctrlShow [_x,true];} forEach [7421,7422,7436,7440,7441,7442,7443,7404]; // show
    {ctrlShow [_x,false];} forEach [7401,7402,7435,7430,7431,7432,7433]; // hide
    call Z_fillBuyList;
    };
    [2] call Z_getContainer; // default gear
    };
     
    Z_removeAllFromBuyingList = {
    Z_clearBuyingList;
    Z_BuyingArray = [];
    };
     
    Z_removeItemFromBuyingList = {
    _index = _this select 0;
    if(!isNil"_index" && _index > -1)then {
    lbDelete [7422, _index];
    Z_BuyingArray set [_index,"deleted"];
    Z_BuyingArray = Z_BuyingArray - ["deleted"];
    call Z_calcPrice;
    };
    };
     
    Z_toBuyingList = {
    _index = _this select 0;
    _amount = parseNumber(_this select 1);
    if(!isNil"_index" && _index > -1 && (typeName _amount == "SCALAR") && _amount > 0 )then {
    _temp = Z_BuyArray select _index;
    _item = [_temp select 0,_temp select 1 ,_temp select 2,_temp select 3, _temp select 4, _amount ];
    Z_BuyingArray set [count(Z_BuyingArray),_item];
    _index2 = lbAdd [7422, format["%1x: %2",_item select 5,_item select 3]];
    lbSetPicture [7422, _index2, _item select 4];
    call Z_calcPrice;
    };
    };
     
    Z_fillBuyList = {
    call Z_clearBuyList;
    call Z_clearBuyingList;
    Z_BuyArray = [];
    Z_BuyingArray = [];
    _arrayOfTraderCat = Z_traderData;
    _counter = 0;
    {
    _cat =  format["Category_%1",(_arrayOfTraderCat select _forEachIndex select 1)];
    _cfgtraders = missionConfigFile >> "CfgTraderCategory"  >> _cat;
    for "_i" from 0 to (count _cfgtraders)-1 do
    {
    _y  = _cfgtraders select _i;
    if (isClass _y) then
    {
    _y  = configName (_y );
    _type =  getText(missionConfigFile >> "CfgTraderCategory"  >> _cat  >> _y >> "type");
    _buy = getArray(missionConfigFile >> "CfgTraderCategory"  >> _cat  >> _y >> "buy");
    _pic = "";
    _text = "";
    if(_type == "trade_items")then{
    _pic = getText (configFile >> 'CfgMagazines' >> _y >> 'picture');
    _text = getText (configFile >> 'CfgMagazines' >> _y >> 'displayName');
    Z_BuyArray set [count(Z_BuyArray) , [_y,_type,_buy select 0,_text,_pic]];
    _totalPrice = _totalPrice + (_buy select 0);
    };
    if(_type == "trade_weapons")then{
    _pic = getText (configFile >> 'CfgWeapons' >> _y >> 'picture');
    _text = getText (configFile >> 'CfgWeapons' >> _y >> 'displayName');
    Z_BuyArray set [count(Z_BuyArray) , [_y,_type,_buy select 0,_text,_pic]];
    _totalPrice = _totalPrice + (_buy select 0);
    };
    };
    };
    }forEach _arrayOfTraderCat;
    call Z_fillBuylList;
    call Z_calcPrice;
    };
     
    Z_fillBuylList = {
    {
    _index = lbAdd [7421,  _x select 3];
    lbSetPicture [7421, _index, _x select 4 ];
    }count Z_BuyArray;
    };
     
    Z_fillBuyingList = {
    {  
    _index = lbAdd [7422, _x select 3];
    lbSetPicture [7422, _index,  _x select 4];
    }count Z_BuyingArray;
    };
     
     
    Z_calculateFreeSpace = {
    _selection = _this select 0;
    _returnArray = [0,0,0];
    if(_selection == 2) then{ //gear
    systemChat format["No advanced buying of weapons/backpacks currently into gear for security reasons!"];
    _allowedMags = 20 - count(magazines player);
    _allowedWeapons = 0;
    _allowedBackpacks = 0;
    _returnArray = [_allowedMags,_allowedWeapons,_allowedBackpacks];
    };
    if(_selection == 1) then{ //vehicle
    _allowedMags = 0;
    _allowedWeapons = 0;
    _allowedBackpacks = 0;
    if (!isNull Z_vehicle) then {   
    _allowedWeapons = getNumber (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'transportMaxWeapons');
    _allowedMags = getNumber (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'transportMaxMagazines');
    _allowedBackpacks = getNumber (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'transportmaxbackpacks ');
    };
    _returnArray = [_allowedMags,_allowedWeapons,_allowedBackpacks];
    };
    if(_selection == 0) then{ //backpack
    _allowedWeapons = 0;
    _allowedMags = 0;
    _allowedBackpacks = 0;
    _backpack = unitBackpack player;
    if (!isNil "_backpack") then {   
    _allowedWeapons = getNumber (configFile >> 'CfgVehicles' >> (typeOf _backpack) >> 'transportMaxWeapons');
    _allowedMags = getNumber (configFile >> 'CfgVehicles' >> (typeOf _backpack) >> 'transportMaxMagazines');
    _allowedBackpacks = 0;
    };
    _returnArray = [_allowedMags,_allowedWeapons,_allowedBackpacks];
    };
    _dialog = findDisplay 711197;
    (_dialog displayCtrl 7404) ctrlSetText format["Free Slots: %1 / %2 / %3",_returnArray select 1,_returnArray select 0,_returnArray select 2];
    };
     
    Z_CheckCloseVehicle = {
    Z_vehicle = objNull;
    _vehicle = objNull;
    _list = nearestObjects [(getPosATL player), ["AllVehicles"], Z_VehicleDistance];
    {
    if(!isNull _x && local _x && !isPlayer _x && alive _x && !(_x isKindOf "zZombie_base"))then{
    systemChat format["Selected %1",typeOf _x];
    _vehicle = _x;
    };
    }count _list;
    _result = false;
    if(!isNull _vehicle)then{
    Z_vehicle = _vehicle;
    _result = true;
    [format["Buying in %1.", typeOf Z_vehicle]] call Z_filleTradeTitle;
    };
    _result
    };
     
    Z_allowBuying = {
    // Z_SellingFrom = 0 - backpack, 1 - car, 2 -gear
    _selection = Z_SellingFrom;
    _return = false;
    _toBuyWeaps = _this select 0;
    _toBuyMags = _this select 1;
    _toBuyBags = _this select 2;
    if(_selection == 2) then{ //gear
    systemChat format["Only 0 weapon /  backpack allowed to buy at a time for security reasons!"];
    _allowedMags = 20 - count(magazines player);
    _allowedWeapons = 0;
    _allowedBackpacks = 0;
     
    _check1 = false;
    _check2 = false;
    _check3 = false;
     
    if( _allowedWeapons >=_toBuyWeaps)then{
    _check1 = true;
    }else{
    systemChat format["You can only buy %1 weapons in your gear.",_allowedWeapons];
    };
    if( _allowedMags >= _toBuyMags)then{
    _check2 = true;
    }else{
    systemChat format["You can only buy %1 magazines  in your gear.",_allowedMags];
    };
    if( _allowedBackpacks >= _toBuyBags)then{
    _check3 = true;
    }else{
    systemChat format["You can only buy %1 backpacks  in your gear.",_allowedBackpacks];
    };
     
    if(_check1 && _check2 && _check3)then{
    _return = true;
    };
     
    };
    if(_selection == 1) then{ //vehicle
    _allowedMags = 0;
    _allowedWeapons = 0;
    _allowedBackpacks = 0;
    if ( !isNull Z_vehicle) then {   
     
    _mags = getMagazineCargo Z_vehicle;
    _weaps = getWeaponCargo Z_vehicle;
    _bags = getBackpackCargo Z_vehicle;
     
    _normalMags = [];
    _normalWeaps = [];
    _normalBags = [];
     
    _kinds = _mags select 0;
    _ammmounts = _mags select 1;
    {
    _counter = 0 ;
    while{ _counter < ( _ammmounts select _forEachIndex)}do{
    _normalMags set [count(_normalMags),_x];
    _counter = _counter + 1;
    };
    }forEach _kinds;
     
    _kinds2 = _weaps select 0;
    _ammmounts2 = _weaps select 1;
    {
    _counter = 0 ;
    while{ _counter < ( _ammmounts2 select _forEachIndex)}do{
    _normalWeaps set [count(_normalWeaps),_x];
    _counter = _counter + 1;
    };
    }forEach _kinds2;
     
    _kinds3 = _bags select 0;
    _ammmounts3 = _bags select 1;
    {
    _counter = 0 ;
    while{ _counter < ( _ammmounts3 select _forEachIndex)}do{
    _normalBags set [count(_normalBags),_x];
    _counter = _counter + 1;
    };
    }forEach _kinds3;
     
     
    _allowedWeapons = getNumber (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'transportMaxWeapons') - count(_normalWeaps);
    _allowedMags = getNumber (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'transportMaxMagazines') - count(_normalMags);
    _allowedBackpacks = getNumber (configFile >> 'CfgVehicles' >> (typeOf Z_vehicle) >> 'transportmaxbackpacks ') - count(_normalBags);
    }else{
    systemChat format["%1", typeName "Z_vehicle"];
    };
     
    _check1 = false;
    _check2 = false;
    _check3 = false;
     
    if( _allowedWeapons >= _toBuyWeaps)then{
    _check1 = true;
    }else{
    systemChat format["You can only buy %1 weapons in your vehicle.",_allowedWeapons];
    };
    if( _allowedMags >= _toBuyMags)then{
    _check2 = true;
    }else{
    systemChat format["You can only buy %1 magazines in your vehicle.",_allowedMags];
    };
    if( _allowedBackpacks >= _toBuyBags)then{
    _check3 = true;
    }else{
    systemChat format["You can only buy %1 backpacks in your vehicle.",_allowedBackpacks];
    };
     
    if(_check1 && _check2 && _check3)then{
    _return = true;
    };
    };
    if(_selection == 0) then{ //backpack
    _allowedWeapons = 0;
    _allowedMags = 0;
    _allowedBackpacks = 0;
    _backpack = unitBackpack player;
    if (!isNil "_backpack") then {   
    _allowedWeapons = getNumber (configFile >> 'CfgVehicles' >> (typeOf _backpack) >> 'transportMaxWeapons');
    _allowedMags = getNumber (configFile >> 'CfgVehicles' >> (typeOf _backpack) >> 'transportMaxMagazines');
    _allowedBackpacks = 0;
    };
     
    _check1 = false;
    _check2 = false;
    _check3 = false;
    _check4 = false;
     
    if( _allowedWeapons >= _toBuyWeaps)then{
    _check1 = true;
    };
    if( _allowedMags >= _toBuyMags)then{
    _check2 = true;
    };
    if( _allowedBackpacks >= _toBuyBags)then{
    _check3 = true;
    };
    if(_check1 && _check2 && _check3 && _check4)then{
    _return = true;
    };
     
    systemChat format["Buying to backpack is currently disabled for security reasons"];
    };
     
    _return
    };
     
    Z_AdvancedTradingInit = true;
     
    };
     
    createDialog "AdvancedTrading";
     
    _dialog = findDisplay 711197;
    (_dialog displayCtrl 7432) ctrlSetText " < ";
    (_dialog displayCtrl 7433) ctrlSetText " << ";
    (_dialog displayCtrl 7442) ctrlSetText " < ";
    (_dialog displayCtrl 7443) ctrlSetText " << ";
    {ctrlShow [_x,false];} forEach [7441,7436,7404,7422,7421,7436,7440,7442,7443,7404]; // hide - double hide ( first one didn't work it seems.
    call Z_getGearItems; 
    
    

     

    init.sqf

    startLoadingScreen ["","RscDisplayLoadCustom"];
    cutText ["","BLACK OUT"];
    enableSaving [false, false];
     
     
    dayZ_instance = 16; //The instance
    dayzHiveRequest = [];
    initialized = false;
    dayz_previousID = 0;
     
     
    player setVariable ["BIS_noCoreConversations", true];
    enableRadio false;
    enableSentences false;
     
    // DayZ Epoch config
    spawnShoremode = 1; // Default = 1 (on shore)
    spawnArea= 1500; // Default = 1500
     
    MaxVehicleLimit = 100; // Default = 50
    MaxDynamicDebris = 80; // Default = 100
    dayz_MapArea = 12000; // Default = 10000
    dayz_maxLocalZombies = 30; // Default = 30 
     
    dayz_paraSpawn = true;
     
     
     
    dayz_sellDistance_vehicle = 20;
    dayz_sellDistance_boat = 30;
    dayz_sellDistance_air = 40;
     
    dayz_maxAnimals = 5; // Default: 8
    dayz_tameDogs = true;
    DynamicVehicleDamageLow = 0; // Default: 0
    DynamicVehicleDamageHigh = 100; // Default: 100
     
    DZE_BuildOnRoads = false; // Default: False
     
    /*ZSC*/
    DZE_ConfigTrader = true; 
    /*ZSC*/
     
    EpochEvents = [["any","any","any","any",30,"crash_spawner"],["any","any","any","any",0,"crash_spawner"],["any","any","any","any",15,"supply_drop"]];
    dayz_fullMoonNights = true;
     
    //Load in compiled functions
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; //Initilize the Variables (IMPORTANT: Must happen very early)
    progressLoadingScreen 0.1;
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf"; //Initilize the publicVariable event handlers
    progressLoadingScreen 0.2;
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf"; //Functions used by CLIENT for medical
    progressLoadingScreen 0.4;
    call compile preprocessFileLineNumbers "init\compiles.sqf"; //Compile regular functions
    /*ZSC*/
    call compile preprocessFileLineNumbers "ZSC\gold\ZSCinit.sqf";
    /*ZSC*/
    progressLoadingScreen 0.5;
    call compile preprocessFileLineNumbers "server_traders.sqf"; //Compile trader configs
    progressLoadingScreen 1.0;
     
    "filmic" setToneMappingParams [0.153, 0.357, 0.231, 0.1573, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";
     
    if (isServer) then {
    call compile preprocessFileLineNumbers "\z\addons\dayz_server\missions\DayZ_Epoch_16.Panthera2\dynamic_vehicle.sqf";
    _nil = [] execVM "\z\addons\dayz_server\missions\DayZ_Epoch_16.Panthera2\mission.sqf";
    /*ZSC*/
    _serverMonitor = [] execVM "\z\addons\dayz_server\system\server_monitor.sqf";
    /*ZSC*/
    };
     
    if (!isDedicated) then {
    //Conduct map operations
    0 fadeSound 0;
    waitUntil {!isNil "dayz_loadScreenMsg"};
    dayz_loadScreenMsg = (localize "STR_AUTHENTICATING");
     
    //Run the player monitor
    _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}];
    _playerMonitor = [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";
     
    //Lights
    //[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf";
    execVM "ZSC\compiles\playerHud.sqf";
    };
     
    //#include "\z\addons\dayz_code\system\REsec.sqf"
    //Start Dynamic Weather
    execVM "\z\addons\dayz_code\external\DynamicWeatherEffects.sqf";
    //Tow and lift
    [] execVM "R3F_ARTY_AND_LOG\init.sqf";
    [] execVM "zupa\advancedTrading\init.sqf";
     
     
    #include "\z\addons\dayz_code\system\BIS_Effects\init.sqf"
    
    

     

    description.ext

    #include "ZSC\config\cfgServerTrader.hpp"
     
    respawn = "BASE";
    respawndelay = 5;
    onLoadMission="DayZ_Epoch Panthera";
    OnLoadIntro = "Welcome to Panthera Island";
    OnLoadIntroTime = False;
    OnLoadMissionTime = False;
    disabledAI = true;
    disableChannels[]={0,2,6};
    enableItemsDropping=0;
     
    briefing = 0;
    debriefing = 0;
     
    onPauseScript = "";
    loadScreen = "\z\addons\dayz_code\gui\dayz_logo_ca.paa";
     
    class Header
    {
     gameType = COOP;            //DM, Team, Coop, ...
     minPlayers = 1;             //min # of players the mission supports
     maxPlayers = 100;            //Max # of players the mission supports
    };
     
    aiKills = 1;
    diagRadio = 1;
    diagHit = 1;
     
    class RscText
    {
    type = 0;
    idc = -1;
    x = 0;
    y = 0;
    h = 0.037;
    w = 0.3;
    style = 0x100; 
    font = Zeppelin32;
    SizeEx = 0.03921;
    colorText[] = {1,1,1,1};
    colorBackground[] = {0, 0, 0, 0};
    linespacing = 1;
    };
    class RscPicture
    {
    access=0;
    type=0;
    idc=-1;
    style=48;
    colorBackground[]={0,0,0,0};
    colorText[]={1,1,1,1};
    font="TahomaB";
    sizeEx=0;
    lineSpacing=0;
    text="";
    };
    class RscLoadingText : RscText
    {
    style = 2;
    x = 0.323532;
    y = 0.666672;
    w = 0.352944;
    h = 0.039216;
    sizeEx = 0.03921;
    colorText[] = {0.543,0.5742,0.4102,1.0};
    };
    class RscProgress
    {
    x = 0.344;
    y = 0.619;
    w = 0.313726;
    h = 0.0261438;
    texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
    colorFrame[] = {0,0,0,0};
    colorBar[] = {1,1,1,1};
    };
    class RscProgressNotFreeze
    {
    idc = -1;
    type = 45;
    style = 0;
    x = 0.022059;
    y = 0.911772;
    w = 0.029412;
    h = 0.039216;
    texture = "#(argb,8,8,3)color(0,0,0,0)";
    };
    //
    // the loading screen itself
    //
    class DayZ_loadingScreen
    { 
    idd = -1;
    duration = 10e10;
    fadein = 0;
    fadeout = 0;
    name = "loading screen";
    class controlsBackground
    {
    class blackBG : RscText
    {
    x = safezoneX;
    y = safezoneY;
    w = safezoneW;
    h = safezoneH;
    text = "";
    colorText[] = {0,0,0,0};
    colorBackground[] = {0,0,0,1};
    };
    /*
    class nicePic : RscPicture
    {
    style = 48 + 0x800; // ST_PICTURE + ST_KEEP_ASPECT_RATIO
    x = safezoneX + safezoneW/2 - 0.25;
    y = safezoneY + safezoneH/2 - 0.2;
    w = 0.5;
    h = 0.4;
    text = "img\nicePic.paa";
    };
    */
    };
    class controls
    {
    class Title1 : RscLoadingText
    {
    text = "$STR_LOADING"; // "Loading" text in the middle of the screen
    };
    class CA_Progress : RscProgress // progress bar, has to have idc 104
    {
    idc = 104;
    type = 8; // CT_PROGRESS
    style = 0; // ST_SINGLE
    texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
    };
    class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
    {
    idc = 103;
    };
    class Name2: RscText // the text on the top-left
    {
    idc = 101;
    x = 0.05;
    y = 0.029412;
    w = 0.9;
    h = 0.04902;
    text = "";
    sizeEx = 0.05;
    colorText[] = {0.543,0.5742,0.4102,1.0};
    };
    };
    };
     
    class RscTitles
    {
    #include "ZSC\config\ZSChud.hpp"
    };
    #include "ZSC\config\ZSCdefines.hpp"
    #include "ZSC\config\ZSCdialogs.hpp"
     
    #include "zupa\advancedTrading\advancedTrading.hpp"
    
    

     

    fn_selfActions.sqf

    
    scriptName "Functions\misc\fn_selfActions.sqf";
    /***********************************************************
    ADD ACTIONS FOR SELF
    - Function
    - [] call fnc_usec_selfActions;
    ************************************************************/
    private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered","_isModular","_isModularDoor","_ownerKeyName","_temp_keys_names","_hasAttached","_allowTow","_liftHeli","_found","_posL","_posC","_height","_liftHelis","_attached"];
     
    if (DZE_ActionInProgress) exitWith {}; // Do not allow if any script is running.
     
    _vehicle = vehicle player;
    _isPZombie = player isKindOf "PZombie_VB";
    _inVehicle = (_vehicle != player);
     
    _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
    _canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder);
     
    _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 && !_isPZombie) 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 (DZE_HeliLift) then {
    _hasAttached = _vehicle getVariable["hasAttached",false];
    if(_inVehicle && (_vehicle isKindOf "Air") && ((([_vehicle] call FNC_getPos) select 2) < 30) && (speed _vehicle < 5) && (typeName _hasAttached == "OBJECT")) then {
    if (s_player_heli_detach < 0) then {
    dayz_myLiftVehicle = _vehicle;
    s_player_heli_detach = dayz_myLiftVehicle addAction ["Detach Vehicle","\z\addons\dayz_code\actions\player_heliDetach.sqf",[dayz_myLiftVehicle,_hasAttached],2,false,true,"",""];
    };
    } else {
    dayz_myLiftVehicle removeAction s_player_heli_detach;
    s_player_heli_detach = -1;
    };
    };
     
    if(DZE_HaloJump) then {
    if(_inVehicle && (_vehicle isKindOf "Air") && ((([_vehicle] call FNC_getPos) select 2) > 400)) then {
    if (s_halo_action < 0) then {
    DZE_myHaloVehicle = _vehicle;
    s_halo_action = DZE_myHaloVehicle addAction [localize "STR_EPOCH_ACTIONS_HALO","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true,"",""];
    };
    } else {
    DZE_myHaloVehicle removeAction s_halo_action;
    s_halo_action = -1;
    };
    };
     
    if (!DZE_ForceNameTagsOff) then {
    if (s_player_showname < 0 && !_isPZombie) then {
    if (DZE_ForceNameTags) then {
    s_player_showname = 1;
    player setVariable["DZE_display_name",true,true];
    } else {
    s_player_showname = player addAction [localize "STR_EPOCH_ACTIONS_NAMEYES", "\z\addons\dayz_code\actions\display_name.sqf",true, 0, true, false, "",""];
    s_player_showname1 = player addAction [localize "STR_EPOCH_ACTIONS_NAMENO", "\z\addons\dayz_code\actions\display_name.sqf",false, 0, true, false, "",""];
    };
    };
    };
     
    if(_isPZombie) then {
    if (s_player_callzombies < 0) then {
    s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false, "",""];
    };
    if (DZE_PZATTACK) then {
    call pz_attack;
    DZE_PZATTACK = false;
    };
    if (s_player_pzombiesvision < 0) then {
    s_player_pzombiesvision = player addAction [localize "STR_EPOCH_ACTIONS_NIGHTVIS", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"];
    };
    if (!isNull cursorTarget && (player distance cursorTarget < 3)) then { //Has some kind of target
    _isAnimal = cursorTarget isKindOf "Animal";
    _isZombie = cursorTarget isKindOf "zZombie_base";
    _isHarvested = cursorTarget getVariable["meatHarvested",false];
    _isMan = cursorTarget isKindOf "Man";
    // Pzombie Gut human corpse || animal
    if (!alive cursorTarget && (_isAnimal || _isMan) && !_isZombie && !_isHarvested) then {
    if (s_player_pzombiesfeed < 0) then {
    s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false, "",""];
    };
    } else {
    player removeAction s_player_pzombiesfeed;
    s_player_pzombiesfeed = -1;
    };
    } else {
    player removeAction s_player_pzombiesfeed;
    s_player_pzombiesfeed = -1;
    };
    };
     
    // Increase distance only if AIR || SHIP
    _allowedDistance = 4;
    _isAir = cursorTarget isKindOf "Air";
    _isShip = cursorTarget isKindOf "Ship";
    if(_isAir || _isShip) then {
    _allowedDistance = 8;
    };
     
    if (!isNull cursorTarget && !_inVehicle && !_isPZombie && (player distance cursorTarget < _allowedDistance) && _canDo) then { //Has some kind of target
     
    // set cursortarget to variable
    _cursorTarget = cursorTarget;
     
    // get typeof cursortarget once
    _typeOfCursorTarget = typeOf _cursorTarget;
     
    // hintsilent _typeOfCursorTarget;
     
    _isVehicle = _cursorTarget isKindOf "AllVehicles";
    _isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"];
    _isnewstorage = _typeOfCursorTarget in DZE_isNewStorage;
     
    // get items && magazines only once
    _magazinesPlayer = magazines player;
     
    //boiled Water
    _hasbottleitem = "ItemWaterbottle" in _magazinesPlayer;
    _hastinitem = false;
    {
    if (_x in _magazinesPlayer) then {
    _hastinitem = true;
    };
    } count boil_tin_cans;
    _hasFuelE = "ItemJerrycanEmpty" in _magazinesPlayer;
    _hasFuelBarrelE = "ItemFuelBarrelEmpty" in _magazinesPlayer;
    _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer;
     
    _itemsPlayer = items player;
     
    _temp_keys = [];
    _temp_keys_names = [];
    // find available keys
    _key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"];
    {
    if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then {
    _ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid");
    _ownerKeyName = getText(configFile >> "CfgWeapons" >> _x >> "displayName");
    _temp_keys_names set [_ownerKeyId,_ownerKeyName];
    _temp_keys set [count _temp_keys,str(_ownerKeyId)];
    };
    } count _itemsPlayer;
     
    _hasKnife = "ItemKnife" in _itemsPlayer;
    _hasToolbox = "ItemToolbox" in _itemsPlayer;
     
    _isMan = _cursorTarget isKindOf "Man";
    _traderType = _typeOfCursorTarget;
    _ownerID = _cursorTarget getVariable ["CharacterID","0"];
    _isAnimal = _cursorTarget isKindOf "Animal";
    _isDog =  (_cursorTarget isKindOf "DZ_Pastor" || _cursorTarget isKindOf "DZ_Fin");
    _isZombie = _cursorTarget isKindOf "zZombie_base";
    _isDestructable = _cursorTarget isKindOf "BuiltItems";
    _isWreck = _typeOfCursorTarget in DZE_isWreck;
    _isWreckBuilding = _typeOfCursorTarget in DZE_isWreckBuilding;
    _isModular = _cursorTarget isKindOf "ModularItems";
    _isModularDoor = _typeOfCursorTarget in ["Land_DZE_WoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_GarageWoodDoor","CinderWallDoor_DZ","CinderWallDoorSmall_DZ"];
     
    _isRemovable = _typeOfCursorTarget in DZE_isRemovable;
    _isDisallowRepair = _typeOfCursorTarget in ["M240Nest_DZ"];
     
    _isTent = _cursorTarget isKindOf "TentStorage";
     
    _isAlive = alive _cursorTarget;
     
    _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName");
     
    _rawmeat = meatraw;
    _hasRawMeat = false;
    {
    if (_x in _magazinesPlayer) then {
    _hasRawMeat = true;
    };
    } count _rawmeat; 
     
    _isFuel = false;
    if (_hasFuelE || _hasFuelBarrelE) then {
    {
    if(_cursorTarget isKindOf _x) exitWith {_isFuel = true;};
    } count dayz_fuelsources;
    };
     
    // diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID));
     
    // logic vars
    _player_flipveh = false;
    _player_deleteBuild = false;
    _player_lockUnlock_crtl = false;
     
    if (_canDo && (speed player <= 1) && (_cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then {
    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_maintain_area;
        s_player_maintain_area = -1;
        player removeAction s_player_maintain_area_preview;
        s_player_maintain_area_preview = -1;
    };
     
    // CURSOR TARGET ALIVE
    if(_isAlive) then {
     
    //Allow player to delete objects
    if(_isDestructable || _isWreck || _isRemovable || _isWreckBuilding) then {
    if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {
    _player_deleteBuild = true;
    };
    };
     
    //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;
                            };
    };
    // CURSOR TARGET VEHICLE
    if(_isVehicle) then {
     
    //flip vehicle small vehicles by your self && all other vehicles with help nearby
    if (!(canmove _cursorTarget) && (player distance _cursorTarget >= 2) && (count (crew _cursorTarget))== 0 && ((vectorUp _cursorTarget) select 2) < 0.5) then {
    _playersNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]);
    if(_isVehicletype || (_playersNear >= 2)) then {
    _player_flipveh = true;
    };
    };
     
     
    if(!_isMan && _ownerID != "0" && !(_cursorTarget isKindOf "Bicycle")) then {
    _player_lockUnlock_crtl = true;
    };
     
    };
     
    };
     
    if(_player_deleteBuild) 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;
    };
     
    if (DZE_HeliLift) then {
    _liftHeli = objNull;
    _found = false;
     
    _allowTow = false;
    if ((count (crew _cursorTarget)) == 0) then {
    {
    if(!_allowTow) then {
    _allowTow = _cursorTarget isKindOf _x;
    };
    } count DZE_HeliAllowToTow;
    };
     
    //diag_log format["CREW: %1 ALLOW: %2",(count (crew _cursorTarget)),_allowTow];
     
    if (_allowTow) then {
    _liftHelis = nearestObjects [player, DZE_HeliAllowTowFrom, 15];
    {
    if(!_found) then {
    _posL = [_x] call FNC_getPos;
    _posC = [_cursorTarget] call FNC_getPos;
    _height = (_posL select 2) - (_posC select 2);
    _hasAttached = _x getVariable["hasAttached",false];
    if(_height < 15 && _height > 5 && (typeName _hasAttached != "OBJECT")) then {
    if(((abs((_posL select 0) - (_posC select 0))) < 10) && ((abs((_posL select 1) - (_posC select 1))) < 10)) then {
    _liftHeli = _x;
    _found = true;
    };
    };
    };
    } count _liftHelis;
    };
     
    //diag_log format["HELI: %1 TARGET: %2",_found,_cursorTarget];
     
    _attached = _cursorTarget getVariable["attached",false];
    if(_found && _allowTow && _canDo && !locked _cursorTarget && !_isPZombie && (typeName _attached != "OBJECT")) then {
    if (s_player_heli_lift < 0) then {
    s_player_heli_lift = player addAction ["Attach to Heli", "\z\addons\dayz_code\actions\player_heliLift.sqf",[_liftHeli,_cursorTarget], -10, false, true, "",""];
    };
    } else {
    player removeAction s_player_heli_lift;
    s_player_heli_lift = -1;
    };
    };
     
    // Allow Owner to lock && unlock vehicle  
    if(_player_lockUnlock_crtl) then {
    if (s_player_lockUnlock_crtl < 0) then {
    _hasKey = _ownerID in _temp_keys;
    _oldOwner = (_ownerID == dayz_playerUID);
    if(locked _cursorTarget) then {
    if(_hasKey || _oldOwner) then {
    _Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (parseNumber _ownerID))], 2, true, true, "", ""];
    s_player_lockunlock set [count s_player_lockunlock,_Unlock];
    s_player_lockUnlock_crtl = 1;
    } else {
    if(_hasHotwireKit) then {
    _Unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true, "", ""];
    } else {
    _Unlock = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",_cursorTarget, 2, true, true, "", ""];
    };
    s_player_lockunlock set [count s_player_lockunlock,_Unlock];
    s_player_lockUnlock_crtl = 1;
    };
    } else {
    if(_hasKey || _oldOwner) then {
    _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true, "", ""];
    s_player_lockunlock set [count s_player_lockunlock,_lock];
    s_player_lockUnlock_crtl = 1;
    };
    };
    };
     
    } else {
    {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = [];
    s_player_lockUnlock_crtl = -1;
    };
     
    if(DZE_AllowForceSave) then {
    //Allow player to force save
    if((_isVehicle || _isTent) && !_isMan) then {
    if (s_player_forceSave < 0) then {
    s_player_forceSave = player addAction [format[localize "str_actions_save",_text], "\z\addons\dayz_code\actions\forcesave.sqf",_cursorTarget, 1, true, true, "", ""];
    };
    } else {
    player removeAction s_player_forceSave;
    s_player_forceSave = -1;
    };
    };
     
     
     
    If(DZE_AllowCargoCheck) then {
    if((_isVehicle || _isTent || _isnewstorage) && _isAlive && !_isMan && !locked _cursorTarget) then {
    if (s_player_checkGear < 0) then {
    s_player_checkGear = player addAction [localize "STR_EPOCH_PLAYER_CARGO", "\z\addons\dayz_code\actions\cargocheck.sqf",_cursorTarget, 1, true, true, "", ""];
    };
    } else {
    player removeAction s_player_checkGear;
    s_player_checkGear = -1;
    };
    };
     
     
    //flip vehicle small vehicles by your self && all other vehicles with help nearby
    if(_player_flipveh) 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;
    }; 
     
    //Allow player to fill jerrycan
    if((_hasFuelE || _hasFuelBarrelE) && _isFuel) 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",[], 1, false, true, "", ""];
    };
    } else {
    player removeAction s_player_fillfuel;
    s_player_fillfuel = -1;
    };
     
    // logic vars for addactions
    _player_butcher = false;
    _player_studybody = false;
    _player_SurrenderedGear = false;
     
    // CURSOR TARGET NOT ALIVE
    if (!_isAlive) then {
     
    // Gut animal/zed
    if((_isAnimal || _isZombie) && _hasKnife) then {
    _isHarvested = _cursorTarget getVariable["meatHarvested",false];
    if (!_isHarvested) then {
    _player_butcher = true;
    };
    };
     
    // Study body
    if (_isMan && !_isZombie && !_isAnimal) then {
    _player_studybody = true;
    }
    } else {
    // unit alive
     
    // gear access on surrendered player
    if(_isMan && !_isZombie && !_isAnimal) then {
    _isSurrendered = _cursorTarget getVariable ["DZE_Surrendered",false];
    if (_isSurrendered) then {
    _player_SurrenderedGear = true;
    };
    };
    };
     
     
    // Human Gut animal || zombie
    if (_player_butcher) then {
    if (s_player_butcher < 0) then {
    if(_isZombie) then {
    s_player_butcher = player addAction [localize "STR_EPOCH_ACTIONS_GUTZOM", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true, "", ""];
    } else {
    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;
    };
     
    // Study Body
    if (_player_studybody) 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;
    };
     
    // logic vars
    _player_cook = false;
    _player_boil = false;
     
    // CURSOR TARGET IS FIRE
    if (inflamed _cursorTarget) then {
     
    //Fireplace Actions check
    if (_hasRawMeat) then {
    _player_cook = true;
    };
     
    // Boil water
    if (_hasbottleitem && _hastinitem) then {
    _player_boil = true;
    };
    };
     
    if (_player_SurrenderedGear) then {
    if (s_player_SurrenderedGear < 0) then {
    s_player_SurrenderedGear = player addAction [localize "STR_EPOCH_ACTIONS_GEAR", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true, "", ""];
    };
    } else {
    player removeAction s_player_SurrenderedGear;
    s_player_SurrenderedGear = -1;
    };
     
    //Fireplace Actions check
    if (_player_cook) 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, "", ""];
    };
    } else {
    player removeAction s_player_cook;
    s_player_cook = -1;
    };
     
    // Boil water
    if (_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 {
    player removeAction s_player_boil;
    s_player_boil = -1;
    };
     
    if(_cursorTarget == dayz_hasFire) then {
    if ((s_player_fireout < 0) && !(inflamed _cursorTarget) && (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;
    };
     
    //Packing my tent
    if(_isTent && (player distance _cursorTarget < 3)) then {
    if (_ownerID == dayz_characterID) then {
    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 {
    if(("ItemJerrycan" in _magazinesPlayer) && ("ItemMatchbox_DZE" in weapons player)) then {
    if (s_player_packtent < 0) then {
    s_player_packtent = player addAction [localize "STR_EPOCH_ACTIONS_DESTROYTENT", "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""];
    };
    };
    };
    } else {
    player removeAction s_player_packtent;
    s_player_packtent = -1;
    };
     
    //Allow owner to unlock vault
    if((_typeOfCursorTarget in DZE_LockableStorage) && _ownerID != "0" && (player distance _cursorTarget < 3)) then {
    if (s_player_unlockvault < 0) then {
    if(_typeOfCursorTarget in DZE_LockedStorage) then {
    if(_ownerID == dayz_combination || _ownerID == dayz_playerUID) then {
    _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""];
    s_player_combi set [count s_player_combi,_combi];
    } else {
    _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
    s_player_combi set [count s_player_combi,_combi];
    };
    s_player_unlockvault = 1;
    } else {
    if(_ownerID != dayz_combination && _ownerID != dayz_playerUID) then {
    _combi = player addAction [localize "STR_EPOCH_ACTIONS_RECOMBO", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
    s_player_combi set [count s_player_combi,_combi];
    s_player_unlockvault = 1;
    };
    };
    };
    } else {
    {player removeAction _x} count s_player_combi;s_player_combi = [];
    s_player_unlockvault = -1;
    };
     
    //Allow owner to pack vault
    if(_typeOfCursorTarget in DZE_UnLockedStorage && _ownerID != "0" && (player distance _cursorTarget < 3)) then {
     
    if (s_player_lockvault < 0) then {
    if(_ownerID == dayz_combination || _ownerID == dayz_playerUID) then {
    s_player_lockvault = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""];
    };
    };
    if (s_player_packvault < 0 && (_ownerID == dayz_combination || _ownerID == dayz_playerUID)) then {
    s_player_packvault = player addAction [format["<t color='#ff0000'>%1</t>",(format[localize "STR_EPOCH_ACTIONS_PACK",_text])], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true, "",""];
    };
    } else {
    player removeAction s_player_packvault;
    s_player_packvault = -1;
    player removeAction s_player_lockvault;
    s_player_lockvault = -1;
    };
     
     
     
        //Player Deaths
    if(_typeOfCursorTarget == "Info_Board_EP1") then {
    if (s_player_information < 0) then {
    s_player_information = player addAction [localize "STR_EPOCH_ACTIONS_MURDERS", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true, "",""];
    };
    } else {
    player removeAction s_player_information;
    s_player_information = -1;
    };
     
    //Fuel Pump
    if(_typeOfCursorTarget in dayz_fuelpumparray) then {
    if (s_player_fuelauto < 0) then {
     
    // check if Generator_DZ is running within 30 meters
    _findNearestGens = nearestObjects [player, ["Generator_DZ"], 30];
    _findNearestGen = [];
    {
    if (alive _x && (_x getVariable ["GeneratorRunning", false])) then {
    _findNearestGen set [(count _findNearestGen),_x];
    };
    } count _findNearestGens;
    _IsNearRunningGen = count (_findNearestGen);
     
    // show that pump needs power if no generator nearby.
    if(_IsNearRunningGen > 0) then {
    s_player_fuelauto = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true, "",""];
    } else {
    s_player_fuelauto = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true, "",""];
    };
    };
    } else {
    player removeAction s_player_fuelauto;
    s_player_fuelauto = -1;
    };
     
    //Fuel Pump on truck
    if(_typeOfCursorTarget in DZE_fueltruckarray && alive _cursorTarget) then {
    if (s_player_fuelauto2 < 0) then {
    // show that fuel truck pump needs power.
    if(isEngineOn _cursorTarget) then {
    s_player_fuelauto2 = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true, "",""];
    } else {
    s_player_fuelauto2 = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true, "",""];
    };
    };
    } else {
    player removeAction s_player_fuelauto2;
    s_player_fuelauto2 = -1;
    };
     
    // inplace upgrade tool
    if ((_cursorTarget isKindOf "ModularItems") || (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") || (_cursorTarget isKindOf "CinderWallDoor_DZ_Base")) then {
    if ((s_player_lastTarget select 0) != _cursorTarget) then {
    if (s_player_upgrade_build > 0) then {
    player removeAction s_player_upgrade_build;
    s_player_upgrade_build = -1;
    };
    };
    if (s_player_upgrade_build < 0) then {
    // s_player_lastTarget = _cursorTarget;
    s_player_lastTarget set [0,_cursorTarget];
    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, "",""];
    };
    } else {
    player removeAction s_player_upgrade_build;
    s_player_upgrade_build = -1;
    };
     
    // downgrade system
    if((_isDestructable || _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") && (DZE_Lock_Door == _ownerID)) then {
    if ((s_player_lastTarget select 1) != _cursorTarget) then {
    if (s_player_downgrade_build > 0) then {
    player removeAction s_player_downgrade_build;
    s_player_downgrade_build = -1;
    };
    };
     
    if (s_player_downgrade_build < 0) then {
    s_player_lastTarget set [1,_cursorTarget];
    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, "",""];
    };
    } else {
    player removeAction s_player_downgrade_build;
    s_player_downgrade_build = -1;
    };
     
    // inplace maintenance tool
    if((_cursorTarget isKindOf "ModularItems" || _cursorTarget isKindOf "DZE_Housebase" || _typeOfCursorTarget == "LightPole_DZ") && (damage _cursorTarget >= DZE_DamageBeforeMaint)) then {
    if ((s_player_lastTarget select 2) != _cursorTarget) then {
    if (s_player_maint_build > 0) then {
    player removeAction s_player_maint_build;
    s_player_maint_build = -1;
    };
    };
     
    if (s_player_maint_build < 0) then {
    s_player_lastTarget set [2,_cursorTarget];
    s_player_maint_build = player addAction [format[localize "STR_EPOCH_ACTIONS_MAINTAIN",_text], "\z\addons\dayz_code\actions\player_buildingMaint.sqf",_cursorTarget, -2, false, true, "",""];
    };
    } else {
    player removeAction s_player_maint_build;
    s_player_maint_build = -1;
    };
     
     
    //Start Generator
    if(_cursorTarget isKindOf "Generator_DZ") then {
    if (s_player_fillgen < 0) then {
     
    // check if not running 
    if((_cursorTarget getVariable ["GeneratorRunning", false])) then {
    s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR1", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""];
    } else {
    // check if not filled && player has jerry.
    if((_cursorTarget getVariable ["GeneratorFilled", false])) then {
    s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR2", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];
    } else {
    if("ItemJerrycan" in _magazinesPlayer) then {
    s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR3", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];
    };
    };
    };
    };
    } else {
    player removeAction s_player_fillgen;
    s_player_fillgen = -1;
    };
     
    //Towing with tow truck
    /*
    if(_typeOfCursorTarget == "TOW_DZE") then {
    if (s_player_towing < 0) then {
    if(!(_cursorTarget getVariable ["DZEinTow", false])) then {
    s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true, "",""];
    } else {
    s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true, "",""];
    };
    };
    } else {
    player removeAction s_player_towing;
    s_player_towing = -1;
    };
    */
     
     
        //Sleep
    if(_isTent && _ownerID == dayz_characterID) then {
    if ((s_player_sleep < 0) && (player distance _cursorTarget < 3)) 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;
    };
     
    //Repairing Vehicles
    if ((dayz_myCursorTarget != _cursorTarget) && _isVehicle && !_isMan && _hasToolbox && (damage _cursorTarget < 1) && !_isDisallowRepair) then {
    if (s_player_repair_crtl < 0) then {
    dayz_myCursorTarget = _cursorTarget;
    _menu = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_REPAIRV", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false, "",""];
    _menu1 = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_SALVAGEV", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false, "",""];
    s_player_repairActions set [count s_player_repairActions,_menu];
    s_player_repairActions set [count s_player_repairActions,_menu1];
    s_player_repair_crtl = 1;
    } else {
    {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = [];
    s_player_repair_crtl = -1;
    };
    };
     
    // All Traders
    if (_isMan && !_isPZombie && _traderType in serverTraders) then {
     
    if (s_player_parts_crtl < 0) then {
     
    // get humanity
    _humanity = player getVariable ["humanity",0];
    _traderMenu = call compile format["menu_%1;",_traderType];
     
    // diag_log ("TRADER = " + str(_traderMenu));
     
    _low_high = "low";
    _humanity_logic = false;
    if((_traderMenu select 2) == "friendly") then {
    _humanity_logic = (_humanity < -5000);
    };
    if((_traderMenu select 2) == "hostile") then {
    _low_high = "high";
    _humanity_logic = (_humanity > -5000);
    };
    if((_traderMenu select 2) == "hero") then {
    _humanity_logic = (_humanity < 5000);
    };
    if(_humanity_logic) then {
    _cancel = player addAction [format[localize "STR_EPOCH_ACTIONS_HUMANITY",_low_high], "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false, "",""];
    s_player_parts set [count s_player_parts,_cancel];
    } else {
     
    // Static Menu
    {
    //diag_log format["DEBUG TRADER: %1", _x];
    _buy = player addAction [format["Trade %1 %2 for %3 %4",(_x select 3),(_x select 5),(_x select 2),(_x select 6)], "\z\addons\dayz_code\actions\trade_items_wo_db.sqf",[(_x select 0),(_x select 1),(_x select 2),(_x select 3),(_x select 4),(_x select 5),(_x select 6)], (_x select 7), true, true, "",""];
    s_player_parts set [count s_player_parts,_buy];
     
    } count (_traderMenu select 1);
     
    _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];
     
    // 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];
     
    };
    s_player_parts_crtl = 1;
     
    };
    } else {
    {player removeAction _x} count s_player_parts;s_player_parts = [];
    s_player_parts_crtl = -1;
    };
     
     
    if(dayz_tameDogs) then {
     
    //Dog
    if (_isDog && _isAlive && (_hasRawMeat) && _ownerID == "0" && player getVariable ["dogID", 0] == 0) then {
    if (s_player_tamedog < 0) then {
    s_player_tamedog = player addAction [localize "str_actions_tamedog", "\z\addons\dayz_code\actions\tame_dog.sqf", _cursorTarget, 1, false, true, "", ""];
    };
    } else {
    player removeAction s_player_tamedog;
    s_player_tamedog = -1;
    };
    if (_isDog && _ownerID == dayz_characterID && _isAlive) then {
    _dogHandle = player getVariable ["dogID", 0];
    if (s_player_feeddog < 0 && _hasRawMeat) then {
    s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0], 0, false, true,"",""];
    };
    if (s_player_waterdog < 0 && "ItemWaterbottle" in _magazinesPlayer) then {
    s_player_waterdog = player addAction [localize "str_actions_waterdog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,1], 0, false, true,"",""];
    };
    if (s_player_staydog < 0) then {
    _lieDown = _dogHandle getFSMVariable "_actionLieDown";
    if (_lieDown) then { _text = "str_actions_liedog"; } else { _text = "str_actions_sitdog"; };
    s_player_staydog = player addAction [localize _text,"\z\addons\dayz_code\actions\dog\stay.sqf", _dogHandle, 5, false, true,"",""];
    };
    if (s_player_trackdog < 0) then {
    s_player_trackdog = player addAction [localize "str_actions_trackdog","\z\addons\dayz_code\actions\dog\track.sqf", _dogHandle, 4, false, true,"",""];
    };
    if (s_player_barkdog < 0) then {
    s_player_barkdog = player addAction [localize "str_actions_barkdog","\z\addons\dayz_code\actions\dog\speak.sqf", _cursorTarget, 3, false, true,"",""];
    };
    if (s_player_warndog < 0) then {
    _warn = _dogHandle getFSMVariable "_watchDog";
    if (_warn) then { _text = (localize "str_epoch_player_247"); _warn = false; } else { _text = (localize "str_epoch_player_248"); _warn = true; };
    s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn], 2, false, true,"",""];
    };
    if (s_player_followdog < 0) then {
    s_player_followdog = player addAction [localize "str_actions_followdog","\z\addons\dayz_code\actions\dog\follow.sqf",[_dogHandle,true], 6, false, true,"",""];
    };
    } else {
    player removeAction s_player_feeddog;
    s_player_feeddog = -1;
    player removeAction s_player_waterdog;
    s_player_waterdog = -1;
    player removeAction s_player_staydog;
    s_player_staydog = -1;
    player removeAction s_player_trackdog;
    s_player_trackdog = -1;
    player removeAction s_player_barkdog;
    s_player_barkdog = -1;
    player removeAction s_player_warndog;
    s_player_warndog = -1;
    player removeAction s_player_followdog;
    s_player_followdog = -1;
    };
    };
     
    } else {
    //Engineering
    {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;
     
    //Others
    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;
    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_fillfuel;
    s_player_fillfuel = -1;
    player removeAction s_player_studybody;
    s_player_studybody = -1;
    //Dog
    player removeAction s_player_tamedog;
    s_player_tamedog = -1;
    player removeAction s_player_feeddog;
    s_player_feeddog = -1;
    player removeAction s_player_waterdog;
    s_player_waterdog = -1;
    player removeAction s_player_staydog;
    s_player_staydog = -1;
    player removeAction s_player_trackdog;
    s_player_trackdog = -1;
    player removeAction s_player_barkdog;
    s_player_barkdog = -1;
    player removeAction s_player_warndog;
    s_player_warndog = -1;
    player removeAction s_player_followdog;
    s_player_followdog = -1;
        
        // vault
    player removeAction s_player_unlockvault;
    s_player_unlockvault = -1;
    player removeAction s_player_packvault;
    s_player_packvault = -1;
    player removeAction s_player_lockvault;
    s_player_lockvault = -1;
     
    player removeAction s_player_information;
    s_player_information = -1;
    player removeAction s_player_fillgen;
    s_player_fillgen = -1;
    player removeAction s_player_upgrade_build;
    s_player_upgrade_build = -1;
    player removeAction s_player_maint_build;
    s_player_maint_build = -1;
    player removeAction s_player_downgrade_build;
    s_player_downgrade_build = -1;
    player removeAction s_player_towing;
    s_player_towing = -1;
    player removeAction s_player_fuelauto;
    s_player_fuelauto = -1;
    player removeAction s_player_fuelauto2;
    s_player_fuelauto2 = -1;
    };
     
     
     
    //Dog actions on player self
    _dogHandle = player getVariable ["dogID", 0];
    if (_dogHandle > 0) then {
    _dog = _dogHandle getFSMVariable "_dog";
    _ownerID = "0";
    if (!isNull cursorTarget) then { _ownerID = cursorTarget getVariable ["CharacterID","0"]; };
    if (_canDo && !_inVehicle && alive _dog && _ownerID != dayz_characterID) then {
    if (s_player_movedog < 0) then {
    s_player_movedog = player addAction [localize "str_actions_movedog", "\z\addons\dayz_code\actions\dog\move.sqf", player getVariable ["dogID", 0], 1, false, true, "", ""];
    };
    if (s_player_speeddog < 0) then {
    _text = (localize "str_epoch_player_249");
    _speed = 0;
    if (_dog getVariable ["currentSpeed",1] == 0) then { _speed = 1; _text = (localize "str_epoch_player_250"); };
    s_player_speeddog = player addAction [format[localize "str_actions_speeddog", _text], "\z\addons\dayz_code\actions\dog\speed.sqf",[player getVariable ["dogID", 0],_speed], 0, false, true, "", ""];
    };
    if (s_player_calldog < 0) then {
    s_player_calldog = player addAction [localize "str_actions_calldog", "\z\addons\dayz_code\actions\dog\follow.sqf", [player getVariable ["dogID", 0], true], 2, false, true, "", ""];
    };
    };
    } else {
    player removeAction s_player_movedog;
    s_player_movedog = -1;
    player removeAction s_player_speeddog;
    s_player_speeddog = -1;
    player removeAction s_player_calldog;
    s_player_calldog = -1;
    };
    
    

×
×
  • Create New...