Jump to content

ARC_Solo

Member
  • Posts

    118
  • Joined

  • Last visited

Posts posted by ARC_Solo

  1. My Hero/Bandit Armed Helies

    class CH_47F_EP1_DZE { type = "trade_any_vehicle"; buy[] = {40000,"Coins"}; sell[] = {10000,"Coins"};};
    		class UH60M_EP1_DZE { type = "trade_any_vehicle"; buy[] = {40000,"Coins"}; sell[] = {10000,"Coins"};};
    		class MH60S_DZE { type = "trade_any_vehicle"; buy[] = {40000,"Coins"}; sell[] = {10000,"Coins"};};
    		class Mi17_TK_EP1 { type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    		class Mi17_Ins { type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    		class Mi17_CDF { type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    		class Mi17_DZE { type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    		class Mi17_UN_CDF_EP1 { type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    		class UH1H_TK_GUE_EP1 {type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    		class UH1Y_DZE { type = "trade_any_vehicle"; buy[] = {30000,"Coins"}; sell[] = {10000,"Coins"};};
    		class UH1H_TK_EP1 { type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {2000,"Coins"};};
    		class UH1H_DZE { type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {2000,"Coins"};};
    		class AH6J_EP1_DZE { type = "trade_any_vehicle"; buy[] = {40000,"Coins"}; sell[] = {10000,"Coins"};};
    

    My unarmed Helies

    		class BAF_Merlin_DZE { type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    		class UH60M_MEV_EP1 { type = "trade_any_vehicle"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    		class Mi17_Civilian_DZ { type = "trade_any_vehicle"; buy[] = {40000,"Coins"}; sell[] = {10000,"Coins"};};
    		class MH6J_DZ { type = "trade_any_vehicle"; buy[] = {8000,"Coins"}; sell[] = {4000,"Coins"};};
    		class AH6X_DZ { type = "trade_any_vehicle"; buy[] = {3000,"Coins"}; sell[] = {1000,"Coins"};};
    

    I think there are some more Mi17 unarmed ones but never added them

     

    Also

    Pooks

    class pook_H13_gunship { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_gunship_CDF  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_gunship_GUE  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_gunship_INS  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_gunship_PMC  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_gunship_TAK  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_gunship_UNO  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_transport  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_transport_CDF  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_transport_GUE  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_transport_INS  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_transport_PMC  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_transport_TAK  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_transport_UNO  { type = "trade_weapons"; buy[] = {20000,"Coins"}; sell[] = {10000,"Coins"};};
    class pook_H13_civ { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_civ_black  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_civ_ru  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_civ_ru_black  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_civ_ru_slate  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_civ_ru_white  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_civ_ru_yellow  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_civ_slate  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_civ_white  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_civ_yellow  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_medevac  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_medevac_CDF  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_medevac_CIV  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_medevac_CIV_RU  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_medevac_GUE { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_medevac_INS  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_medevac_PMC  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_medevac_TAK  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    class pook_H13_medevac_UNO  { type = "trade_weapons"; buy[] = {10000,"Coins"}; sell[] = {5000,"Coins"};};
    
  2. With the ore. To Avoid a smelting conundrum Add them to your traders

    class Category_901 {
    class PartOreGold { type = "trade_items"; buy[] = {400,"Coins"}; sell[] = {200,"Coins"};};
    class PartOreSilver { type = "trade_items"; buy[] = {300,"Coins"}; sell[] = {150,"Coins"};};
    class PartOre { type = "trade_items"; buy[] = {200,"Coins"}; sell[] = {100,"Coins"};};
    };
    

    Then Add

    ,["Ore",901]

    to the traders of your choice.

     

    Also just like to thank you again for this script.

    I've tweaked it for my own server to run

     - Normal mines

     - Cinder Mines

     - Weed Farms

     - Metal farms.

    Really nifty little script

  3. I currently have a Taviana Server running nice and smooth. Bugs weeded out ect. 

    However the last issue I have is with a select few players getting kicked for high ping. 900+

    These players Are in my clan and I know have a ping of around 50

    They can join all other Taviana Australia Servers/All other servers but whenever they join mine, no downloading or anything, they get mid way through the load screen then kicked for 900+ ping.

     

    Any ideas as to whats causing this?

    I'm assuming its mission file related as he can join all other servers. 

     

  4. Thanks for the work that everyone has done on this, it is fantastic.

     

    I am having 1 small problem which I haven't been able to track down with my limited knowledge.  I have the script running and working but on the scroll menu the currency showing as "Any" instead of coins for rearm and repair.  I am running a version of Zupa Single Currency with some changes (not to the name of the currency) and using standard .dll's.  I followed the first post instruction and the updates in post 10.  If anyone is able to help me resolve this or point me in the right direction it would be most appreciated, it is the only thing I need to fix to go live with it.

    Did you add the Dev function to your Variables?

  5. Show us your fn_selfActons.sqf

     

    Also, anything on the RPT log? Doubt it, but worth a look.

    I got nothing in the RPT log. 

     

    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","_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 and !r_player_unconscious and !_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 and !dayz_hasLight and !_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 and (_vehicle isKindOf "Air") and ((getPos _vehicle select 2) < 30) and (speed _vehicle < 5) and (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 and (_vehicle isKindOf "Air") and ((getPos _vehicle 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 and !_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 and (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 or animal
    		if (!alive cursorTarget and (_isAnimal or _isMan) and !_isZombie and !_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 OR SHIP
    _allowedDistance = 4;
    _isAir = cursorTarget isKindOf "Air";
    _isShip = cursorTarget isKindOf "Ship";
    if(_isAir or _isShip) then {
    	_allowedDistance = 8;
    };
    
    if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance) and _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 and magazines only once
    	_magazinesPlayer = magazines player;
    
    	//boiled Water
    	_hasbottleitem = "ItemWaterbottle" in _magazinesPlayer;
    	_hastinitem = false;
    	{
    		if (_x in _magazinesPlayer) then {
    			_hastinitem = true;
    		};
    	} forEach 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)];
    		};
    	} forEach _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 or _hasFuelBarrelE) then {
    		{
    			if(_cursorTarget isKindOf _x) exitWith {_isFuel = true;};
    		} forEach 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 and 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} forEach 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 and 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 or 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 {
    		// --------ZUPA - Check Wallet --------
    			s_player_studybody = player addAction [("<t color=""#FF0000"">"+("Check Wallet") + "</t>"), "gold\check_wallet.sqf",_cursorTarget, 0, false, true, "",""];
    		// ---- ZUPA END ---
    		};
    	} else {
    		player removeAction s_player_studybody;
    		s_player_studybody = -1;
    	};
    	
    	// Remove Clothes Script
    /* 	if (_player_studybody) then {
    	if (s_player_clothes < 0) then {
    			s_player_clothes = player addAction [("<t color=""#FF0000"">" + ("Take Clothes") + "</t>"), "Mods\RemClothes\removeclothes.sqf",cursorTarget, 1, false, true, "",""];
    		};
    	} else {
    		player removeAction s_player_clothes;
    		s_player_clothes = -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) and ("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;
    	};
    	
    	//banking
    	
    	if(_typeOfCursorTarget in DZE_UnLockedStorage and (player distance _cursorTarget < 3)) then {
    		if (s_bank_dialog < 0) then {
    				s_bank_dialog = player addAction ["Access Bank", "gold\bank_dialog.sqf",_cursorTarget, 3, true, true, "", ""];	
    		};
    	} else {
         	player removeAction s_bank_dialog;
    		s_bank_dialog = -1;
    	};
    	
    	// banking atm
    	
    	if(_typeOfCursorTarget in DZE_ATM  and (player distance _cursorTarget < 3)) then {		
    		if (s_bank_dialog2 < 0) then {
    			s_bank_dialog2 = player addAction ["Bank ATM", "gold\bank_dialog.sqf",_cursorTarget, 3, true, true, "", ""];
    		};			
    	} else {		
    		player removeAction s_bank_dialog2;
    		s_bank_dialog2 = -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;
    	};
    	
    	//Give Money
    	if (_isMan and _isAlive and !_isPZombie and !_isAnimal and !(_traderType in serverTraders)) then {
    		if (s_givemoney_dialog < 0) then {
    			s_givemoney_dialog = player addAction [format["Give Money to %1", (name _cursorTarget)], "gold\give_player_dialog.sqf",_cursorTarget, 3, true, true, "", ""];
    		};
    	} else {
    		player removeAction s_givemoney_dialog;
    		s_givemoney_dialog = -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 and 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 < -5000000);
    			};
    			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);
    				// 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;
    //	player removeAction s_player_clothes;
    //	s_player_clothes = -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;
    	
    			// Zupa - SC - reset.
    	player removeAction s_givemoney_dialog;
    	s_givemoney_dialog = -1;
    	player removeAction s_bank_dialog;
    	s_bank_dialog = -1;
    	player removeAction s_bank_dialog2;
    	s_bank_dialog2 = -1;
    	player removeAction s_player_packOBJ;
    	s_player_packOBJ = -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;
    };
     

  6. Getting this error with the latest version

    13:36:49 Error in expression <kit","ItemComboLock",["CinderBlocks",25]"ItemComboLock","ItemLockbox",["ItemSand>
    13:36:49   Error position: <"ItemComboLock","ItemLockbox",["ItemSand>
    13:36:49   Error Missing ]
    13:36:49 File z\addons\dayz_server\WAI\config.sqf, line 157
    13:36:49 Error in expression <kit","ItemComboLock",["CinderBlocks",25]"ItemComboLock","ItemLockbox",["ItemSand>
    13:36:49   Error position: <"ItemComboLock","ItemLockbox",["ItemSand>
    13:36:49   Error Missing ]
    13:36:49 File z\addons\dayz_server\WAI\config.sqf, line 157
    
    

    My Config - Around the error

    // Vehicle arrays
    		armed_vehicle 				= ["Pickup_PK_TK_GUE_EP1","Pickup_PK_GUE_DZE","ArmoredSUV_PMC_DZE","BRDM2_HQ_TK_GUE_EP1","BTR40_MG_TK_gue_EP1","BTR40_MG_TK_INS_EP1","BAF_Jackal2_L2A1_w","Vodnik_DZ","LandRover_MG_TK_EP1_DZE","LandRover_Special_CZ_EP1_DZE","HMMWV_Armored","HMMWV_M1151_M2_CZ_DES_EP1_DZE","HMMWV_M998A2_SOV_DES_EP1_DZE"];
    		armed_chopper 				= ["UH1Y_DZE","UH1H_DZE","UH1H_TK_EP1","UH1H_TK_GUE_EP1","Mi17_UN_CDF_EP1","Mi17_DZE","Mi17_CDF","Mi17_Ins","Mi17_TK_EP1","MH60S_DZE","UH60M_EP1_DZE","CH_47F_EP1_DZE"];
    		civil_chopper 				= ["AH6X_DZ","BAF_Merlin_DZE","MH6J_DZ","Mi17_Civilian_DZ"];
    		military_unarmed 			= ["GAZ_Vodnik_MedEvac","HMMWV_Ambulance","HMMWV_Ambulance_CZ_DES_EP1","HMMWV_DES_EP1","HMMWV_DZ","HMMWV_M1035_DES_EP1","LandRover_CZ_EP1","LandRover_TK_CIV_EP1","UAZ_CDF","UAZ_INS","UAZ_RU","UAZ_Unarmed_TK_CIV_EP1","UAZ_Unarmed_TK_EP1","UAZ_Unarmed_UN_EP1"];
    		cargo_trucks 				= ["MTVR","MtvrRefuel","MtvrReammo","MtvrRepair","Uralopen_CDF","Ural_CDF","UralRepair_CDF","UralRefuel_CDF","UralSupply_TK_EP1","UralReammo_CDF","UralSalvage_TK_EP1","Kamaz","KamazOpen","KamazReammo","KamazRepair","KamazRefuel","V3S_Gue","V3S_Open_TK_EP1","V3S_Refuel_TK_GUE_EP1_DZ","Ikarus_TK_CIV_EP1","TowingTractor"];
    		refuel_trucks				= ["MTVR","MtvrRefuel","MtvrReammo","MtvrRepair","Uralopen_CDF","Ural_CDF","UralRepair_CDF","UralRefuel_CDF","UralSupply_TK_EP1","UralReammo_CDF","UralSalvage_TK_EP1","Kamaz","KamazOpen","KamazReammo","KamazRepair","KamazRefuel","V3S_Gue","V3S_Open_TK_EP1","V3S_Refuel_TK_GUE_EP1_DZ","Ikarus_TK_CIV_EP1","TowingTractor"];
    		civil_vehicles 				= ["hilux1_civil_1_open","hilux1_civil_2_covered","hilux1_civil_3_open_EP1","SUV_Blue","SUV_Camo","SUV_Charcoal","SUV_Green","SUV_Orange","SUV_Pink","SUV_Red","SUV_Silver","SUV_TK_CIV_EP1","SUV_White","SUV_Yellow"];
    
    		// Dynamic box array
    		crates_large				= ["USVehicleBox","RUVehicleBox","TKVehicleBox_EP1"];
    		crates_medium				= ["USBasicWeaponsBox","RUBasicWeaponsBox","USSpecialWeaponsBox","USSpecialWeapons_EP1","RUSpecialWeaponsBox","SpecialWeaponsBox","TKSpecialWeapons_EP1","CZBasicWeapons_EP1","UNBasicWeapons_EP1"];
    		crates_small				= ["GuerillaCacheBox","RULaunchersBox","RUBasicAmmunitionBox","RUOrdnanceBox","USBasicAmmunitionBox","USLaunchersBox","USOrdnanceBox","USOrdnanceBox_EP1","USLaunchers_EP1","USBasicWeapons_EP1","USBasicAmmunitionBox_EP1","UNBasicAmmunitionBox_EP1","TKOrdnanceBox_EP1","TKLaunchers_EP1","TKBasicAmmunitionBox_EP1"," GuerillaCacheBox_EP1","GERBasicWeapons_EP1"];
    
    		crate_weapons_buildables	= [["ChainSaw","ItemJerryMixed"],["ChainSawB","ItemJerryMixed"],["ChainSawG","ItemJerryMixed"],["ChainSawP","ItemJerryMixed"],["ChainSawR","ItemJerryMixed"]];
    		
    		crate_tools					= ["ItemKeyKit","Binocular","Binocular_Vector","ItemCompass","ItemCrowbar","ItemEtool","ItemFishingPole","ItemFlashlightRed","ItemGPS","ItemHatchet_DZE","ItemKnife","ItemMachete","ItemMatchbox_DZE","ItemToolbox","NVGoggles"];
    		crate_tools_buildable		= ["ItemToolbox","ItemEtool","ItemCrowbar","ItemKnife"];
    		crate_tools_sniper			= ["ItemCompass","Binocular","Binocular_Vector","NVGoggles","ItemGPS"];
    
    		crate_items					= ["FoodCanFrankBeans","FoodCanPasta","FoodCanSardines","FoodchickenCooked","FoodmuttonCooked","FoodrabbitCooked","ItemTroutCooked","ItemTunaCooked","ItemSeaBassCooked","ItemAntibiotic","ItemBloodbag","ItemEpinephrine","ItemHeatPack","ItemMorphine","CinderBlocks","ItemCanvas","ItemComboLock","ItemLightBulb","ItemLockbox","ItemSandbag"];
    		crate_items_high_value		= ["ItemVault","30m_plot_kit","ItemHotwireKit"];
    		crate_items_food			= ["ItemWaterbottle","FoodNutmix","FoodPistachio","FoodMRE","ItemSodaOrangeSherbet","ItemSodaRbull","ItemSodaR4z0r","ItemSodaMdew","ItemSodaPepsi","ItemSodaCoke","FoodbaconCooked","FoodCanBakedBeans","FoodCanFrankBeans","FoodCanPasta","FoodCanSardines","FoodchickenCooked","FoodmuttonCooked","FoodrabbitCooked","ItemTroutCooked","ItemTunaCooked","ItemSeaBassCooked"];
    		crate_items_buildables		= ["forest_large_net_kit","cinder_garage_kit","ItemSandbagExLarge5X","park_bench_kit","ItemComboLock",["CinderBlocks",25]"ItemComboLock","ItemLockbox",["ItemSandbag",10],["MortarBucket",10],"Cinder_wall_kit"];
    		
    		crate_items_vehicle_repair	= ["PartEngine","PartFueltank","PartGeneric","PartGlass","PartVRotor","PartWheel"];
    		crate_items_medical			= ["ItemWaterbottle","ItemAntibiotic","ItemBloodbag","ItemEpinephrine","ItemHeatPack","ItemMorphine","ItemBandage","FoodCanFrankBeans","FoodCanPasta"];
    		crate_items_chainbullets	= ["2000Rnd_762x51_M134","200Rnd_762x51_M240","100Rnd_127x99_M2","150Rnd_127x107_DSHKM"];
    		crate_items_sniper			= [["ItemPainkiller",5],"Skin_Sniper1_DZ","Skin_CZ_Soldier_Sniper_EP1_DZ","Skin_GUE_Soldier_Sniper_DZ"];
    		crate_items_president		= ["ItemDocument","ItemBriefcase100oz"];
    
    		crate_backpacks_all			= ["DZ_Patrol_Pack_EP1","DZ_Assault_Pack_EP1","DZ_Czech_Vest_Puch","DZ_TerminalPack_EP1","DZ_ALICE_Pack_EP1","DZ_TK_Assault_Pack_EP1","DZ_CompactPack_EP1","DZ_British_ACU","DZ_GunBag_EP1","DZ_CivilBackpack_EP1","DZ_Backpack_EP1","DZ_LargeGunBag_EP1"];
    		crate_backpacks_large		= ["DZ_GunBag_EP1","DZ_Backpack_EP1","DZ_LargeGunBag_EP1","DZ_CivilBackpack_EP1"];
    
    		crate_random				= [crate_items,crate_items_food,crate_items_buildables,crate_items_vehicle_repair,crate_items_medical,crate_items_chainbullets];
    
    };  

  7. Lil adjustment and the building loot is nice and random/balanced. Where they aren't too rewarding all the time, but you get random each time.

     

    I've actually gone through and swapped a bunch of things up, if i get anything working nice i'll let you all know

     

    *** One thing this Mission System needs is either a tutorial on editing and randomising loot, or making loot editing a lot more user friendly and simple.

×
×
  • Create New...