Jump to content

[Release] ComboKeyChanger_cKc [Updated 1.2]


Recommended Posts

I don't know, I tried accommodating for both versions but I only had it working on my own server with P4L, I am no longer playing dayz and really have no interest in assisting those that can't debug a server properly.

 

All I can tell you is that it worked flawlessly on my server with P4L if you want to attempt installing it do so at your own risk

 

 

I don't know?

Thank you for the speedy reply man...  :)

Link to comment
Share on other sites

  • 4 weeks later...

I think so , i had this working with no plot 4 life.

 

As soon as i made the changes required for plot4life it stopped working as expected , tried to make the changes for plot4life but i get this error client side.

Error in expression <e,true,"", ""];
};
};
} else {
player removeAction s_player_combi;
s_player_co>
  Error position: <removeAction s_player_combi;
s_player_co>
  Error removeaction: Type Array, expected Number
File mpmissions\__CUR_MP.Lingor\Custom\A_Plot_for_Life\Compile\fn_selfActions.sqf, line 668
 

 
This is my SelfActions. Note: Also using Zupa SC.


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","_playerUID","_characterID","_plotDistance","_PlotsNear", "_classname","_isowner"];
 
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;
 
if (DZE_APlotforLife) then {
_playerUID = [player] call FNC_GetPlayerUID;
}else{
_playerUID = dayz_characterID;
};
 
_isMan = _cursorTarget isKindOf "Man";
_traderType = _typeOfCursorTarget;
_ownerID = _cursorTarget getVariable ["ownerPUID","0"];
_characterID = _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];
};
 
_plotDistance = (DZE_PlotPole select 0);
_PlotsmarkersNear = count (nearestObjects [_cursorTarget, ["Land_coneLight"], _PlotDistance]);
 
if (s_player_plot_boundary_on < 0) then {
If (_PlotsmarkersNear == 0 ) then{
s_player_plot_boundary_on = player addAction ["Show plot boundary", "Custom\A_Plot_for_Life\Action\object_showPlotRadius.sqf", "", 1, false];
};
}; 
if (s_player_plot_boundary_off < 0) then {
If (_PlotsmarkersNear > 0 ) then{
s_player_plot_boundary_off = player addAction ["Remove plot boundary", "Custom\A_Plot_for_Life\Action\object_removePlotRadius.sqf", "", 1, false];
};
};
if (s_player_plot_take_ownership < 0) then {
if (DZE_APlotforLife) then {
_isowner = [player, _cursorTarget] call FNC_check_owner;
If (( _isowner select 0 )) then{
s_player_plot_take_ownership = player addAction ["Take plot items ownership", "Custom\A_Plot_for_Life\Action\plot_take_ownership.sqf", "", 1, 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;
player removeAction s_player_plot_boundary_on;
s_player_plot_boundary_on = -1;
player removeAction s_player_plot_boundary_off;
s_player_plot_boundary_off = -1;
player removeAction s_player_plot_take_ownership;
s_player_plot_take_ownership = -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;
};
};
 
//diag_log format["fn_selfactions remove: [PlayerUID = %1]  [OwnerID = %2] [Is Modular: %3] [Object: %4]", _playerUID, _ownerID,_isModular, cursortarget];
 
//Allow owners to delete modulars
 
   diag_log format["fn_actons: [PlayerUID: %1] [_ownerID: %2] [_isModular: %3] [typeOfCursorTarget: %4]",_playerUID, _ownerID, _isModular, _typeOfCursorTarget];
 
if(_isModular && (_playerUID == _ownerID)) then {
            if(_hasToolbox && "ItemCrowbar" in _itemsPlayer) then {
// diag_log text "fn_selfactions remove: [can remove modular item]";
                _player_deleteBuild = true;
            };
         };
//Allow owners to delete modular doors without locks
 
diag_log format["fn_actons: [PlayerUID: %1] [_ownerID: %2] [_isModularDoor: %3] [typeOfCursorTarget: %4]",_playerUID, _ownerID, _isModularDoor, _typeOfCursorTarget];
 
if(_isModularDoor && (_playerUID == _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 && _characterID != "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], "Custom\A_Plot_for_Life\Action\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 = _characterID in _temp_keys;
_oldOwner = (_characterID == 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 _characterID))], 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 {
// --------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;
};
 
// 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 == _playerUID) 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", "Custom\A_Plot_for_Life\Action\remove.sqf",_cursorTarget, 1, true, true, "", ""];
};
};
};
} else {
player removeAction s_player_packtent;
s_player_packtent = -1;
};
 
 
//banking
if(_typeOfCursorTarget in DZE_UnLockedStorage and (player distance _cursorTarget < 3)) then {
if (s_bank_dialog < 0) then {
s_bank_dialog = player addAction ["Online Banking", "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, "", ""];
}; 
if (s_bank_dialog3 < 0) then {
s_bank_dialog3 = player addAction ["Transfer Money", "gold\transfer\transfer_dialog.sqf",_cursorTarget, 3, true, true, "", ""];
}; 
} else { 
player removeAction s_bank_dialog2;
s_bank_dialog2 = -1;
player removeAction s_bank_dialog3;
s_bank_dialog3 = -1;
};
 
//Allow owner to unlock/lock/pack vault
if((_typeOfCursorTarget in DZE_LockableStorage) && _characterID != "0" && (player distance _cursorTarget < 3)) then {
if ((s_player_lastTarget select 1) != _cursorTarget) then {
player removeAction s_player_lockvault;
s_player_lockvault = -1; 
player removeAction s_player_combi;
s_player_combi = -1;
player removeAction s_player_unlockvault;
s_player_unlockvault = -1; 
player removeAction s_player_packvault;
s_player_packvault = -1;
player removeAction s_player_vault_ckc;
s_player_vault_ckc = -1; 
};
s_player_lastTarget set [1,_cursorTarget];
if(_typeOfCursorTarget in DZE_LockedStorage) then {  // locked storage
if (s_player_unlockvault < 0) then {
// Stranger with code or Owner can unlock
if(_characterID == dayz_combination || _ownerID == _playerUID) then {
s_player_unlockvault = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""];
} else { // Stranger without code
if (s_player_combi < 0) then {
s_player_combi = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
};
};
};
};
if (_typeOfCursorTarget in DZE_UnLockedStorage) then { // unlocked storage
// Stranger with code and owner can lock
if (s_player_lockvault < 0) then {
if (_characterID == 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_combi < 0) then {
if (_characterID != dayz_combination && _ownerID != dayz_playerUID) then {
s_player_combi = player addAction [format[localize "STR_EPOCH_ACTIONS_RECOMBO",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
};
 
};
// Owner can pack
if (s_player_packvault < 0 && (_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, "",""];
};
// Owner can change code
if (s_player_vault_ckc < 0 && (_ownerID == dayz_playerUID)) then {
s_player_vault_ckc = player addAction[("<t color=""#ffff00"">" + ("Set New Code") +"</t>"), "ckc\ckc_startSafeUI.sqf",_cursorTarget,1,false,true,"", ""];
}; 
};
} else {
player removeAction s_player_combi;
s_player_combi = -1;
player removeAction s_player_unlockvault;
s_player_unlockvault = -1; 
player removeAction s_player_lockvault;
s_player_lockvault = -1;
player removeAction s_player_packvault;
s_player_packvault = -1;
player removeAction s_player_vault_ckc;
s_player_vault_ckc = -1;
};
 
 
//Allow owner to change Door code
if((typeOf _cursorTarget in DZE_DoorsLocked) && (DZE_Lock_Door == _characterID) && (_playerUID == _ownerID)) then {
    if (s_player_door_ckc < 0) then {
        s_player_door_ckc = player addaction[("<t color=""#ffff00"">" + ("Set New Code") +"</t>"), "ckc\ckc_startUI.sqf","",0,false,true,"", ""];
    };
} else {
    player removeAction s_player_door_ckc;
    s_player_door_ckc = -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;
};
 
// Zupa- SC - Give Money
if (_isMan and _isAlive and !_isZombie 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;
};
if (isNil "SmeltingInProgress") then {
SmeltingInProgress = false;
};
 
_player_money = player getVariable["cashMoney",0];
// Smelt gold coins
if (inflamed _cursorTarget and (_player_money > SmeltingGoldBarsToCoinsRate) and !SmeltingInProgress) then {
if (s_smelt_coins < 0) then {
if (_player_money > 10000) then {
s_smelt_coins = player addAction [format["Smelt %1 %2 into a 10oz Gold Bar", (SmeltingGoldBarsToCoinsRate * 10), CurrencyName], "gold\player_smeltcoins.sqf","ItemGoldBar10oz", 3, true, true, "", ""];
} else {
s_smelt_coins = player addAction [format["Smelt %1 %2 into a Gold Bar", SmeltingGoldBarsToCoinsRate, CurrencyName], "gold\player_smeltcoins.sqf","ItemGoldBar", 3, true, true, "", ""];
};
};
} else {
player removeAction s_smelt_coins;
s_smelt_coins = -1;
};
 
_hasGoldBars = "ItemGoldBar" in _magazinesPlayer;
// Smelt bars into coins
if (inflamed _cursorTarget and (_hasGoldBars) and !SmeltingInProgress) then {
if (s_smelt_bars < 0) then {
s_smelt_bars = player addAction [format["Smelt a Gold Bar into %1 %2", SmeltingGoldBarsToCoinsRate, CurrencyName], "gold\player_smeltbars.sqf","ItemGoldBar", 3, true, true, "", ""];
};
} else {
player removeAction s_smelt_bars;
s_smelt_bars = -1;
};
 
_has10ozGoldBars = "ItemGoldBar10oz" in _magazinesPlayer;
// Smelt bars into coins
if (inflamed _cursorTarget and (_has10ozGoldBars) and !SmeltingInProgress) then {
if (s_smelt_10bars < 0) then {
s_smelt_10bars = player addAction [format["Smelt a 10oz Gold Bar into %1 %2", (SmeltingGoldBarsToCoinsRate * 10), CurrencyName], "gold\player_smeltbars.sqf","ItemGoldBar10oz", 3, true, true, "", ""];
};
} else {
player removeAction s_smelt_10bars;
s_smelt_10bars = -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], "Custom\A_Plot_for_Life\Action\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 == _characterID)) 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], "Custom\A_Plot_for_Life\Action\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;
};
 
    _clothesTaken = _cursorTarget getVariable["clothesTaken",false];
 
    // Take clothes by Zabn
    if (_isMan and !_isAlive and !_isZombie and !_clothesTaken) then {
        if (s_player_clothes < 0) then {
            s_player_clothes = player addAction [("<t color='#0096ff'>")+("Take Clothes")+("</t>"), "custom\player_takeClothes_v2.sqf",[_cursorTarget], -10, false, true, "",""];
        };
    } else {
        player removeAction s_player_clothes;
        s_player_clothes = -1;
        };
 
    //Sleep
if(_isTent && _ownerID == _playerUID) 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);
// 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) && _characterID == "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 && _characterID == 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_maintain_area;
    s_player_maintain_area = -1;
    player removeAction s_player_maintain_area_preview;
    s_player_maintain_area_preview = -1;
player removeAction s_player_plot_boundary_on;
s_player_plot_boundary_on = -1;
player removeAction s_player_plot_boundary_off;
s_player_plot_boundary_off = -1;
player removeAction s_player_plot_take_ownership;
s_player_plot_take_ownership = -1;
player removeAction s_player_forceSave;
s_player_forceSave = -1;
player removeAction s_player_flipveh;
s_player_flipveh = -1;
player removeAction s_player_sleep;
s_player_sleep = -1;
player removeAction s_player_deleteBuild;
s_player_deleteBuild = -1;
player removeAction s_player_butcher;
s_player_butcher = -1;
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;
// Take Clothes by Zabn
    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;
player removeAction s_player_ckc;
s_player_ckc = -1;
    player removeAction s_player_Safe_ckc;
    s_player_Safe_ckc = -1;
// Zupa - SC - reset.
player removeAction s_smelt_coins;
s_smelt_coins = -1;
player removeAction s_smelt_bars;
s_smelt_bars = -1;
player removeAction s_smelt_10bars;
s_smelt_10bars = -1;
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_bank_dialog3;
s_bank_dialog3 = -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";
_characterID = "0";
if (!isNull cursorTarget) then { _characterID = cursorTarget getVariable ["CharacterID","0"]; };
if (_canDo && !_inVehicle && alive _dog && _characterID != 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;
};

 

 
Dont have a clue of whats going wrong here.
Link to comment
Share on other sites

  • 4 weeks later...

OK from one of the original posts you must lock and open the safe again with the new code to maintain the inventory, I just installed it and noticed in the database the code changed but inventory went to [] but once I opened it again everything was there and the database updated to the correct inventory.

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

So my players are saying that safes with changed codes do not save coins, (Yes I am using ), however ones that they do not change save their coins.

 

NVM, I fixed the problem... if you use this mod and want it to work with the coins mod edit ckc_updSafe in the CKC folder of you mission file and past this in:

 

DZE_ActionInProgress = true;
 
_object = cursorTarget;
 
_weapon = getWeaponCargo _object;
_magazine =   getMagazineCargo _object ;
_backpack =  getBackpackCargo _object;
_coins = _object getVariable["bankMoney",0];
 
 
_newCombo = dayz_combination;
_object setVariable ["CharacterID",_newCombo,true];
 
_actual = _object getVariable ["CharacterID", "0"];
cutText [format["Your new Key: %1", _actual], "PLAIN DOWN"];
 
 
 
 
            _classname = "VaultStorageLocked";
       _location = _object getVariable["OEMPos",(getposATL _object)];
_dir = getDir _object;
 
 
 
// Create new object 
_newobject = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"];
 
// Set direction
_newobject setDir _dir;
 
// Set location
_newobject setPosATL _location;
 
   _newobject setVariable ["WeaponCargo", _weapon ,true];
_newobject setVariable ["MagazineCargo", _magazine ,true];
_newobject setVariable ["BackpackCargo", _backpack,true];
_newobject setVariable ["bankMoney", _coins,true];
_newobject setVariable["packing",0];
player reveal _newobject;
 
 
PVDZE_obj_Swap = [_actual,_newobject,[_dir,_location],_classname,_object,player];
publicVariableServer "PVDZE_obj_Swap";
   sleep 1;
           _newobject spawn player_unlockVault;
 
 
 
DZE_ActionInProgress = false;
Link to comment
Share on other sites

  • 1 month later...

Hey guys, if you're using the latest v2.0.2 and DoorManagement follow the instructions below, else when changing codes all players will be removed from the management.

 

Replace ckc_upddoor.sqf's contents with:

private ["_vector","_object","_newCombo","_actual","_ownerPUID","_location","_classname","_newobject"];
_object = dayz_selectedDoor;
_newCombo = DZE_Lock_Door;
_object setVariable ["CharacterID",_newCombo,true];
_actual = _object getVariable ["CharacterID", "0"];
_ownerPUID = _object getVariable["OwnerPUID",""];
_friends = _object getVariable["doorfriends",[]];
cutText [format["Your new ComboKey:  %1", _actual], "PLAIN DOWN"];
_classname = typeOf _object;
_location	= _object getVariable["OEMPos",(getposATL _object)];
_vector = [(vectorDir _object), (vectorUp _object)];
_dir = getDir _object;

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

// Set location
_newobject setPosATL _location;

// Set orientation
_newobject setVectorDirAndUp _vector;

if (_ownerPUID != "") then {
	_newobject setVariable["OwnerPUID",_ownerPUID,true];
	if ((_vector select 1) select 0 == 0 && (_vector select 1) select 1 == 0 && (_vector select 1) select 2 == 1) then {
		PVDZE_obj_Swap = [_actual,_newobject,[_dir,_location,_ownerPUID],_classname,_object,player];
	} else {
		PVDZE_obj_Swap = [_actual,_newobject,[_dir,_location,_ownerPUID,_vector],_classname,_object,player];
	};
} else {
	_newobject setVariable ["doorfriends", _friends, true];
	if ((_vector select 1) select 0 == 0 && (_vector select 1) select 1 == 0 && (_vector select 1) select 2 == 1) then {
		PVDZE_obj_Swap = [_actual,_newobject,[_dir,_location],_classname,_object,player];
	} else {
		PVDZE_obj_Swap = [_actual,_newobject,[_dir,_location,_vector],_classname,_object,player];
	};
};
publicVariableServer "PVDZE_obj_Swap";

PVDZE_veh_Update = [_newobject,"gear"];
publicVariableServer "PVDZE_veh_Update";
PVDZE_veh_Update call server_updateObject;

player reveal _newobject;
dayz_selectedDoor = _newobject;

if (count (dayz_selectedDoor getVariable["doorfriends",[]]) > 0) exitWith {} else {
	_friends = dayz_selectedDoor setVariable ["doorfriends",_friends,true];
};

This gets the current doorfriends, and assigns it to the new object.

 

I'm sure this can be easily changes for the earlier version.

Link to comment
Share on other sites

after installing this mod on my server when i change the combo to a safe and unlock it then try to lock it i get a message that says that i cant lock the safe because I dont know the combination.
 
Im running a plot for life and zsc 3.0, is there a solution?

 

http://steamcommunity.com/profiles/76561198090457249/screenshots/

Link to comment
Share on other sites

  • 1 month later...

1. Is there any chance to change combo for lockbox?

2. How can I fix a problem with using "0" numbers in new combos? (e.g. when I am changing combo to "000/0000", object will be deleted from the DB; if I am changing combo to "100" and last combo was "356" new combo will be "156")

Link to comment
Share on other sites

  • 2 weeks later...

I just installed this, the set new combo shows up.  However on locks the numbers will not move, and on safes it types in new codes but will not take them.  I made the compiles changes in the dayz_code.pbo not the customs pbo.  For some reason (I cant remember) if I put the entire compiles in the custom folder it caused the walking zombies and something else not to work.  I have zupa's coin system and advanced trading installed.  I just installed them tonight, only issue is coins not saving in safes (but that's in process of getting worked out). 

 

Here is my custom/compile.sqf

if (!isDedicated) then {


    zombie_generate = compile preprocessFileLineNumbers "walkingdead\zombie_generate.sqf";
    player_zombieAttack = compile preprocessFileLineNumbers "walkingdead\player_zombieAttack.sqf";
    wild_spawnZombies = compile preprocessFileLineNumbers "walkingdead\wild_spawnZombies.sqf";
    fnc_usec_damageHandler = compile preprocessFileLineNumbers "walkingdead\fn_damageHandler.sqf";
};

// custom script: locked vehicles w/in 50m of plot pole are invulnerable
if (isNil "fnc_vehicle_handleDamage") then {
    fnc_vehicle_handleDamage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleDamage.sqf";
};
vehicle_handleDamage = {
    private["_obj","_result"];
    _obj = _this select 0;
    if ((count(nearestObjects [_obj, ["Plastic_Pole_EP1_DZ"], 50]) > 0) && (locked _obj && (count (crew _obj)) == 0)) exitWith {};
    _result = _this call fnc_vehicle_handleDamage;
    _result
};

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

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

 

 

Here is the compiles.sqf from the dayz_code.pbo

 

/*


    FUNCTION COMPILES
*/
//Player only
if (!isDedicated) then {

    "filmic" setToneMappingParams [0.07, 0.31, 0.23, 0.37, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";

    BIS_Effects_Burn =                 compile preprocessFile "\ca\Data\ParticleEffects\SCRIPTS\destruction\burn.sqf";
    player_zombieCheck =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieCheck.sqf";    //Run on a players computer, checks if the player is near a zombie
    player_zombieAttack =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieAttack.sqf";    //Run on a players computer, causes a nearby zombie to attack them
    fnc_usec_damageActions =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageActions.sqf";        //Checks which actions for nearby casualty
    fnc_inAngleSector =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inAngleSector.sqf";        //Checks which actions for nearby casualty
    fnc_usec_selfActions =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf";        //Checks which actions for self
    fnc_usec_unconscious =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_unconscious.sqf";
    player_temp_calculation    =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_temperatur.sqf";        //Temperatur System    //TeeChange
    player_weaponFiredNear =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponFiredNear.sqf";
    player_animalCheck =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_animalCheck.sqf";
    player_spawnCheck =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnCheck.sqf";
    player_dumpBackpack =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_dumpBackpack.sqf";
    building_spawnLoot =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnLoot.sqf";
    building_spawnZombies =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnZombies.sqf";
    dayz_spaceInterrupt =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\dayz_spaceInterrupt.sqf";
    player_fired =                    compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_fired.sqf";            //Runs when player fires. Alerts nearby Zeds depending on calibre && audial rating
    player_harvest =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_harvest.sqf";
    player_packTent =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_packTent.sqf";
    player_packVault =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_packVault.sqf";
    player_unlockVault =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockVault.sqf";

    player_removeObject =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\remove.sqf";
    player_removeNearby =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_removeNearby.sqf";

    player_removeTankTrap = {
        //Object Array, Range, Error Message (@Skaronator)
        [["Hedgehog_DZ"], 1,"STR_EPOCH_ACTIONS_14"] call player_removeNearby;
    };
    player_removeNet = {
        [["DesertLargeCamoNet","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ"], 5,"str_epoch_player_8"] call player_removeNearby;
    };

    player_login = {
        private ["_unit","_detail"];
        _unit = _this select 0;
        _detail = _this select 1;
        if(_unit == getPlayerUID player) then {
            player setVariable["publish",_detail];
        };
    };

    player_unlockDoor =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockDoor.sqf";
    ckc_button     =    compile preprocessFileLineNumbers "ckc\ckc_button.sqf";
    ckc_upddoor    =        compile preprocessFileLineNumbers "ckc\ckc_upddoor.sqf";
    ckc_updSafe    =        compile preprocessFileLineNumbers "ckc\ckc_updSafe.sqf";
    player_changeCombo =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_changeCombo.sqf";

    player_lockVault =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_lockVault.sqf";
    player_updateGui =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_updateGui.sqf";
    player_crossbowBolt =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_crossbowBolt.sqf";
    player_music =                 compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_music.sqf";            //Used to generate ambient music
    player_death =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_death.sqf";
    player_switchModel =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_switchModel.sqf";
    player_checkStealth =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_checkStealth.sqf";
    world_sunRise =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_sunRise.sqf";
    world_surfaceNoise =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_surfaceNoise.sqf";
    player_humanityMorph =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityMorph.sqf";
    player_throwObject =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_throwObject.sqf";
    player_alertZombies =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_alertZombies.sqf";
    player_fireMonitor =         compile preprocessFileLineNumbers "\z\addons\dayz_code\system\fire_monitor.sqf";
    fn_gearMenuChecks =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_gearMenuChecks.sqf";

    //Objects
    object_roadFlare =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_roadFlare.sqf";
    object_setpitchbank    =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_setpitchbank.sqf";
    object_monitorGear =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_monitorGear.sqf";

    local_roadDebris =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_roadDebris.sqf";

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

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

    dog_findTargetAgent =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\dog_findTargetAgent.sqf";

    //actions
    player_countmagazines =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_countmagazines.sqf";
    player_addToolbelt =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_addToolbelt.sqf";
    player_copyKey =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_copyKey.sqf";
    player_reloadMag =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_reloadMags.sqf";
    player_loadCrate =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_loadCrate.sqf";
    player_craftItem =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_craftItem.sqf";
    player_tentPitch =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\tent_pitch.sqf";
    player_vaultPitch =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\vault_pitch.sqf";
    player_drink =                compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_drink.sqf";
    player_eat =                compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_eat.sqf";
    player_useMeds =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_useMeds.sqf";
    player_fillWater =             compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\water_fill.sqf";
    player_makeFire =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_makefire.sqf";
    player_harvestPlant =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_harvestPlant.sqf";
    player_goFishing =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_goFishing.sqf";
    player_build =                compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";
    player_wearClothes =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_wearClothes.sqf";
    object_pickup =             compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_pickup.sqf";
    player_flipvehicle =         compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_flipvehicle.sqf";
    player_sleep =                 compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sleep.sqf";
    player_antiWall =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_antiWall.sqf";
    player_deathBoard =            compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\list_playerDeathsAlt.sqf";

    player_plotPreview =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_showPlotRadius.sqf";
    player_upgradeVehicle =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_upgradeVehicle.sqf";

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

    //System
    player_monitor =            compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_monitor.sqf";
    player_spawn_1 =            compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_1.sqf";
    player_spawn_2 =            compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_2.sqf";
    onPreloadStarted             "dayz_preloadFinished = false;";
    onPreloadFinished             "dayz_preloadFinished = true;";

    // helper functions
    player_hasTools =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_hasTools.sqf";
    player_checkItems =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_checkItems.sqf";
    player_removeItems =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_removeItems.sqf";
    //Trader ["Trader City Name",false,"enter"] - Trader City Name | Show Message | "enter" || "leave"
    player_traderCity =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderCity.sqf";

    // combination of check && remove items
    player_checkAndRemoveItems = {
        private ["_items","_b"];
        _items = _this;
        _b = _items call player_checkItems;
        if (_ B) then {
            _b = _items call player_removeItems;
        };
        _b
    };

    dayz_HungerThirst = {
        dayz_hunger = dayz_hunger + (_this select 0);
        dayz_thirst = dayz_thirst + (_this select 1);
    };

    epoch_totalCurrency = {
        // total currency
        _total_currency = 0;
        {
            _part =  (configFile >> "CfgMagazines" >> _x);
            _worth =  (_part >> "worth");
            if isNumber (_worth) then {
                _total_currency = _total_currency + getNumber(_worth);
            };
        } count (magazines player);
        _total_currency
    };

    epoch_itemCost = {
        _trade_total = 0;
        {
            _part_in_configClass =  configFile >> "CfgMagazines" >> (_x select 0);
            if (isClass (_part_in_configClass)) then {
                _part_inWorth = (_part_in_configClass >> "worth");
                if isNumber (_part_inWorth) then {
                    _trade_total = _trade_total + (getNumber(_part_inWorth) * (_x select 1));
                };
            };
        } count _this;

        //diag_log format["DEBUG TRADER ITEMCOST: %1", _this];
        _trade_total
    };

    epoch_returnChange =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\epoch_returnChange.sqf";
    // usage [["partinclassname",4]] call epoch_returnChange;

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

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

        _ctrlDogWaterBorder = _display displayCtrl 1502;
        _ctrlDogWaterBorder ctrlShow false;
        _ctrlDogWater = _display displayCtrl 1702;
        _ctrlDogWater ctrlShow false
    };

    dayz_losCheck = {
        private["_target","_agent","_cantSee"];
        _target = _this select 0; // PUT THE PLAYER IN FIRST ARGUMENT!!!!
        _agent = _this select 1;
        _cantSee = true;
        if (!isNull _target) then {

            _tPos = visiblePositionASL _target;
            _zPos = visiblePositionASL _agent;

            _tPos set [2,(_tPos select 2)+1];
            _zPos set [2,(_zPos select 2)+1];

            if ((count _tPos > 0) && (count _zPos > 0)) then {
                _cantSee = terrainIntersectASL [_tPos, _zPos];
                if (!_cantSee) then {
                    _cantSee = lineIntersects [_tPos, _zPos, _agent, vehicle _target];
                };
            };
        };
        _cantSee
    };

    dayz_equipCheck = {
        private ["_empty", "_needed","_diff","_success"];
        _config = _this;
        _empty = [player] call BIS_fnc_invSlotsEmpty;
        _needed = [_config] call BIS_fnc_invSlotType;
        _diff = [_empty,_needed] call BIS_fnc_vectorDiff;

        _success = true;
        {
            if (_x > 0) then {_success = false};
        } count _diff;
        hint format["Config: %5\nEmpty: %1\nNeeded: %2\nDiff: %3\nSuccess: %4",_empty,_needed,_diff,_success,_config];
        _success
    };

    vehicle_gear_count = {
        private["_counter"];
        _counter = 0;
        {
            _counter = _counter + _x;
        } count _this;
        _counter
    };

    player_tagFriendlyMsg = {
        if(player == (_this select 0)) then {
            cutText[(localize "str_epoch_player_2"),"PLAIN DOWN"];
        };
    };

    player_serverModelChange = {
        private["_object","_model"];
        _object = _this select 0;
        _model = _this select 1;
        if (_object == player) then {
            _model call player_switchModel;
        };
    };

    player_guiControlFlash =     {
        private["_control"];
        _control = _this;
        if (ctrlShown _control) then {
            _control ctrlShow false;
        } else {
            _control ctrlShow true;
        };
    };
    
    gearDialog_create = {
        private ["_i","_dialog"];
        if (!isNull (findDisplay 106)) then {
            (findDisplay 106) closeDisplay 0;
        };
        openMap false;
        closeDialog 0;
        if (gear_done) then {sleep 0.001;};
        player action ["Gear", player];
        if (gear_done) then {sleep 0.001;};
        _dialog = findDisplay 106;
        _i = 0;
        while {isNull _dialog} do {//DO NOT CHANGE TO A FOR LOOP!
            _i = _i + 1;
            _dialog = findDisplay 106;
            if (gear_done) then {sleep 0.001;};
            if (_i in [100,200,299]) then {
                closeDialog 0;
                player action ["Gear", player];
            };
            if (_i > 300) exitWith {};
        };
        if (gear_done) then {sleep 0.001;};
        _dialog = findDisplay 106;
        if ((parseNumber(_this select 0)) != 0) then {
            ctrlActivate (_dialog displayCtrl 157);
            if (gear_done) then {
                waitUntil {ctrlShown (_dialog displayCtrl 159)};
                sleep 0.001;
            };
        };
        _dialog
    };

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

    dze_surrender_off = {
        player setVariable ["DZE_Surrendered", false, true];
        DZE_Surrender = false;
    };

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

    dayz_eyeDir = {
        private["_vval","_vdir"];
        _vval = (eyeDirection _this);
        _vdir = (_vval select 0) atan2 (_vval select 1);
        if (_vdir < 0) then {_vdir = 360 + _vdir};
        _vdir
    };

    DZE_getModelName = {
        _objInfo = toArray(str(_this));
        _lenInfo = count _objInfo - 1;
        _objName = [];
        _i = 0;
        // determine where the object name starts
        {
            if (58 == _objInfo select _i) exitWith {};
            _i = _i + 1;
        } count _objInfo;
        _i = _i + 2; // skip the ": " part
        for "_k" from _i to _lenInfo do {
            _objName set [(count _objName), (_objInfo select _k)];
        };
        _objName = toLower(toString(_objName));
        _objName
    };

    dze_isnearest_player = {
        private ["_notClosest","_playerDistance","_nearPlayers","_obj","_playerNear"];
        if(!isNull _this) then {
            _nearPlayers = _this nearEntities ["CAManBase", 12];
            _playerNear = ({isPlayer _x} count _nearPlayers) > 1;
            _notClosest = false;
            if (_playerNear) then {
                // check if another player is closer
                _playerDistance = player distance _this;
                {
                    if (_playerDistance > (_x distance _this)) exitWith { _notClosest = true; };
                } count _nearPlayers;
            };
        } else {
            _notClosest = false;
        };
        _notClosest
    };

    // trader menu code
    if (DZE_ConfigTrader) then {
        call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuConfig.sqf";
    }else{
        call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuHive.sqf";
    };
    // recent murders menu code
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_murderMenu.sqf";

    //This is still needed but the fsm should terminate if any errors pop up.
    [] spawn {
        private["_timeOut","_display","_control1","_control2"];
        disableSerialization;
        _timeOut = 0;
        dayz_loadScreenMsg = "";
        diag_log "DEBUG: loadscreen guard started.";
        _display = uiNameSpace getVariable "BIS_loadingScreen";
        if (!isNil "_display") then {
                _control1 = _display displayctrl 8400;
                _control2 = _display displayctrl 102;
        };
        if (!isNil "dayz_DisplayGenderSelect") then {
            waitUntil {!dayz_DisplayGenderSelect};
        };

        // 120 sec timeout (12000 * 0.01)
        while { _timeOut < 12000 } do {
            if (dayz_clientPreload && dayz_authed) exitWith { diag_log "PLOGIN: Login loop completed!"; };
            if (!isNil "_display") then {
                if ( isNull _display ) then {
                        waitUntil { !dialog; };
                        startLoadingScreen ["","RscDisplayLoadCustom"];
                        _display = uiNameSpace getVariable "BIS_loadingScreen";
                        _control1 = _display displayctrl 8400;
                        _control2 = _display displayctrl 102;
                };

                if ( dayz_loadScreenMsg != "" ) then {
                        _control1 ctrlSetText dayz_loadScreenMsg;
                        dayz_loadScreenMsg = "";
                };

                _control2 ctrlSetText format["%1",round(_timeOut*0.01)];
            };

            _timeOut = _timeOut + 1;

            if (_timeOut >= 12000) then {
                1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
                sleep 10;
                endLoadingScreen;
                endMission "END1";
            };

            sleep 0.01;
        };
    };

    dayz_meleeMagazineCheck = {
                private["_meleeNum","_magType"];
                _magType =         ([] + getArray (configFile >> "CfgWeapons" >> _wpnType >> "magazines")) select 0;
                _meleeNum = ({_x == _magType} count magazines player);
                if (_meleeNum < 1) then {
                        player addMagazine _magType;
                };
        };

    dayz_originalPlayer = player;

    progressLoadingScreen 0.8;
};

    //Both
    BIS_fnc_selectRandom =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_selectRandom.sqf";
    BIS_fnc_vectorAdd =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_vectorAdd.sqf";
    BIS_fnc_halo =              compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_halo.sqf";
    BIS_fnc_findNestedElement =    compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_findNestedElement.sqf";
    BIS_fnc_param =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_param.sqf";

    fnc_buildWeightedArray =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_buildWeightedArray.sqf";        //Checks which actions for nearby casualty
    fnc_usec_damageVehicle =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerVehicle.sqf";        //Event handler run on damage

    // object_vehicleKilled =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_vehicleKilled.sqf";        //Event handler run on damage
    object_setHitServer =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHitServer.sqf";    //process the hit as a NORMAL damage (useful for persistent vehicles)
    object_setFixServer =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setFixServer.sqf";    //process the hit as a NORMAL damage (useful for persistent vehicles)
    object_getHit =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_getHit.sqf";            //gets the hit value for a HitPoint (i.e. HitLegs) against the selection (i.e. "legs"), returns the value
    object_setHit =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHit.sqf";            //process the hit as a NORMAL damage (useful for persistent vehicles)
    object_processHit =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_processHit.sqf";        //process the hit in the REVO damage system (records && sets hit)
    object_delLocal =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_delLocal.sqf";
    // object_cargoCheck =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_cargoCheck.sqf";        //Run by the player || server to monitor changes in cargo contents
    fnc_usec_damageHandler =        compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf";        //Event handler run on damage
    fnc_veh_ResetEH =             compile preprocessFileLineNumbers "\z\addons\dayz_code\init\veh_ResetEH.sqf";            //Initialize vehicle
    // Vehicle damage fix
    vehicle_handleDamage    =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleDamage.sqf";
    vehicle_handleKilled    =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleKilled.sqf";
    //fnc_vehicleEventHandler =         compile preprocessFileLineNumbers "\z\addons\dayz_code\init\vehicle_init.sqf";            //Initialize vehicle
    fnc_inString =                 compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inString.sqf";
    fnc_isInsideBuilding =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding.sqf";    //_isInside = [_unit,_building] call fnc_isInsideBuilding;
    fnc_isInsideBuilding2 =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding2.sqf";    //_isInside = [_unit,_building] call fnc_isInsideBuilding2;
    fnc_isInsideBuilding3 =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding3.sqf";    //_isInside = [_unit,_building] call fnc_isInsideBuilding3;
    dayz_zombieSpeak =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_speak.sqf";            //Used to generate random speech for a unit
    vehicle_getHitpoints =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_getHitpoints.sqf";
    local_gutObject =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObject.sqf";        //Generated on the server (|| local to unit) when gutting an object
    local_lockUnlock =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_lockUnlock.sqf";        //When vehicle is local to unit perform locking vehicle
    local_gutObjectZ =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObjectZ.sqf";        //Generated on the server (|| local to unit) when gutting an object
    local_zombieDamage =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerZ.sqf";        //Generated by the client who created a zombie to track damage
    local_eventKill =             compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_eventKill.sqf";        //Generated when something is killed
    //player_weaponCheck =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponCheck.sqf";    //Run by the player || server to monitor whether they have picked up a new weapon
    curTimeStr =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_curTimeStr.sqf";
    player_medBandage =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf";
    player_medInject =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medInject.sqf";
    player_medEpi =                compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medEpi.sqf";
    player_medTransfuse =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medTransfuse.sqf";
    player_medMorphine =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medMorphine.sqf";
    player_breaklegs =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medBreakLegs.sqf";
    player_medPainkiller =            compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medPainkiller.sqf";
    world_isDay =                 {if ((daytime < (24 - dayz_sunRise)) && (daytime > dayz_sunRise)) then {true} else {false}};
    player_humanityChange =            compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityChange.sqf";
    spawn_loot =                compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\spawn_loot.sqf";
    spawn_loot_small = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\spawn_loot_small.sqf";
    // player_projectileNear =         compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_projectileNear.sqf";
    FNC_GetSetPos = { //DO NOT USE IF YOU NEED ANGLE COMPENSATION!!!!
        private "_pos";
        _thingy = _this select 0;
        _pos = getPosASL _thingy;
        if (surfaceIsWater _pos) then {
            _thingy setPosASL _pos;
        } else {
            _thingy setPosATL (ASLToATL _pos);
        };
    };
    FNC_GetPos = {
        private "_pos";
        if (isNil {_this select 0}) exitWith {[0,0,0]};
        _thingy = _this select 0;
        _pos = getPosASL _thingy;
        if !(surfaceIsWater _pos) then {
            _pos =  ASLToATL _pos;
        };
        _pos
    };
    local_setFuel =    {
        private["_qty","_vehicle"];
        _vehicle = _this select 0;
        _qty = _this select 1;
        _vehicle setFuel _qty;
    };
    zombie_initialize = {
        private ["_unit","_position"];
        _unit = _this select 0;
        if (isServer) then {
            _unit addEventHandler ["local", {_this call zombie_findOwner}];
        };
        _id = _unit addeventhandler["HandleDamage", { _this call local_zombieDamage }];
        _id = _unit addeventhandler["Killed", { [_this, "zombieKills"] call local_eventKill }];
    };

    dayz_EjectPlayer = {
        // check if player in vehicle
        private ["_noDriver","_vehicle","_inVehicle"];
        _vehicle = vehicle player;
        _inVehicle = (_vehicle != player);
        if(_inVehicle) then {
            _noDriver = ((_vehicle emptyPositions "driver") > 0);
            if (_noDriver && (speed _vehicle) != 0) then {
                player action [ "eject", _vehicle];
            };
        };
    };

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

    //Server Only
    if (isServer) then {
        call compile preprocessFileLineNumbers "\z\addons\dayz_server\init\server_functions.sqf";
    } else {
        eh_localCleanup = {};
    };

initialized = true;

 

 

Then the fn_selfaction from the custom folder.

 


 

Link to comment
Share on other sites

Could not put the selfaction in that post.  Said it was to long lol

 

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(_typeOfCursorTarget in ZSC_MoneyStorage && (player distance _cursorTarget < 5)) then {
        if (s_bank_dialog < 0) then {
                s_bank_dialog = player addAction ["Money Storage", "ZSC\actions\bank_dialog.sqf",_cursorTarget, 3, true, true, "", ""];    
        };
    } else {
         player removeAction s_bank_dialog;
        s_bank_dialog = -1;
    };

    // cars
    if( _isVehicle && !_isMan &&_isAlive && !_isMan && !locked _cursorTarget && !(_cursorTarget isKindOf "Bicycle") && (player distance _cursorTarget < 5)) then {        
        if (s_bank_dialog2 < 0) then {
            s_bank_dialog2 = player addAction ["Money Storage", "ZSC\actions\bank_dialog.sqf",_cursorTarget, 3, true, true, "", ""];
        };            
    } else {        
        player removeAction s_bank_dialog2;
        s_bank_dialog2 = -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 [("<t color="#FF0000"">"+("Check Wallet") + "</t>"), "ZSC\actions\check_wallet.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 change Door code

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_ckc > 0) then {    
                player removeAction s_player_ckc;
                s_player_ckc = -1;
            };
        };

        if (s_player_ckc < 0) then {
            s_player_lastTarget set [1,_cursorTarget];    
                s_player_ckc = player addaction["Set new Code", "ckc\ckc_startUI.sqf","",0,false,true,"", ""];
        };
    } else {
        player removeAction s_player_ckc;
        s_player_ckc = -1;
    };



//Allow owner to change vault code

_unlockedVault = ["VaultStorage"];

    if(typeOf(cursortarget) in _unlockedVault && _ownerID != "0" && (player distance _cursorTarget < 2)) then {
    
    if (s_player_Safe_ckc < 0) then {
    if ((typeOf(cursortarget) == "VaultStorage") &&(_ownerID == dayz_combination || _ownerID == dayz_playerUID)  ) then {
     
                
            s_player_Safe_ckc = player addaction["Set new Code", "ckc\ckc_startSafeUI.sqf","",1,false,true,"", ""];
        };
        };
    } else {
        player removeAction s_player_Safe_ckc;
        s_player_Safe_ckc = -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 (_isMan and _isAlive and !_isZombie 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)], "ZSC\actions\give_player_dialog.sqf",_cursorTarget, 3, true, true, "", ""];
    };
} else {
    player removeAction s_givemoney_dialog;
    s_givemoney_dialog = -1;
};
    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;
    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_ckc;
    s_player_ckc = -1;
    player removeAction s_player_Safe_ckc;
    s_player_Safe_ckc = -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;
};

 

If anyone could point me in the right direction that would be great.  Side note I maybe should not have posted the whole compiles and selfaction file.  I guess it's better to see the whole picture lol.

Link to comment
Share on other sites

I made the compiles changes in the dayz_code.pbo not the customs pbo.  

 

 

Any time you make changes to ANY file that is located in the dayz_server.pbo or the dayz_code.pbo, you MUST copy the relevant files to your mission folder (IE : DayZ_Epoch_11.Chernarus) and make the appropriate changes to your compiles, fn_selfactions, variables, etc, etc.

 

These changes can NOT be done server side as they will not be passed to players joining your server. They will still be operating off the stock UNCHANGED files unless you put them in the mission as this is what is downloaded to every client every time they join. 

Link to comment
Share on other sites

EIDubya I copied the line from the compiles in the  dayz_code.pbo, into the custom/compiles along with the other line's that had to be added.  It seems to work, gotta make sure after restart tho.  Once again it looks like you saved my butt from my noob self lol.  Thanks again.

Link to comment
Share on other sites

  • 2 weeks later...

Excellent script super easy install :) Just having a slight problem.. i have vector and snap pro, all works fine except when i slant a garage door on its side to install two garage doors together so i can have a good sized garge entrance to fit all vehicles through. When i choose to set new code it sets the code but then turns the door back over to normal potion it basically puts it at a default install. No rpt erros, just seems to be something in script, but unsure of the nature of this issue, anyone help out with this? Thanks in advance

Link to comment
Share on other sites

Excellent script super easy install :) Just having a slight problem.. i have vector and snap pro, all works fine except when i slant a garage door on its side to install two garage doors together so i can have a good sized garge entrance to fit all vehicles through. When i choose to set new code it sets the code but then turns the door back over to normal potion it basically puts it at a default install. No rpt erros, just seems to be something in script, but unsure of the nature of this issue, anyone help out with this? Thanks in advance

 

 

Try to replace ckc_uppdoor.sqf with this:


_object = dayz_selectedDoor;
_newCombo = DZE_Lock_Door;
_object setVariable ["CharacterID",_newCombo,true];
_actual = _object getVariable ["CharacterID", "0"];
cutText [format["Your new ComboKey:  %1", _actual], "PLAIN DOWN"];
_classname = typeOf _object;

  
	        _location	= _object getVariable["OEMPos",(getposATL _object)];
			_dir = getDir _object;

			// Get vector
			_vector = [(vectorDir _object),(vectorUp _object)];	
				
			// Create new object 
			_newobject = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"];

			// Set direction
			_newobject setDir _dir;
			_newobject setVariable["memDir",_dir,true];
			
			// Set vector
			_newobject setVectorDirAndUp _vector;

			// Set location
			_newobject setPosATL _location;

			PVDZE_obj_Swap = [_actual,_newobject,[_dir,_location,_vector],_classname,_object,player];
			publicVariableServer "PVDZE_obj_Swap";

			player reveal _newobject;
			
			dayz_selectedDoor = _newobject;
	
Link to comment
Share on other sites

  • 4 weeks later...

Anybody else has problems with Resource xxx not found? When I click Set new code, new window ingame appear with text Resource ckc_ui not found or Resource ckc_SafeUI not found (depends if i tried to set doors or safe). I have properly set my description.ext file (3 lines added) and ofcourse I have all files uploaded to the right folder. Nothing in server RPT, in client RPT I see only:

 

Warning Message: Resource ckc_SafeUI not found

Link to comment
Share on other sites

  • 4 weeks later...

 

Try to replace ckc_uppdoor.sqf with this:


_object = dayz_selectedDoor;
_newCombo = DZE_Lock_Door;
_object setVariable ["CharacterID",_newCombo,true];
_actual = _object getVariable ["CharacterID", "0"];
cutText [format["Your new ComboKey:  %1", _actual], "PLAIN DOWN"];
_classname = typeOf _object;

  
	        _location	= _object getVariable["OEMPos",(getposATL _object)];
			_dir = getDir _object;

			// Get vector
			_vector = [(vectorDir _object),(vectorUp _object)];	
				
			// Create new object 
			_newobject = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"];

			// Set direction
			_newobject setDir _dir;
			_newobject setVariable["memDir",_dir,true];
			
			// Set vector
			_newobject setVectorDirAndUp _vector;

			// Set location
			_newobject setPosATL _location;

			PVDZE_obj_Swap = [_actual,_newobject,[_dir,_location,_vector],_classname,_object,player];
			publicVariableServer "PVDZE_obj_Swap";

			player reveal _newobject;
			
			dayz_selectedDoor = _newobject;
	

 

The OP hasn't been active on the forum for a month and a half, but it would be nice if he could add this information to the original post.

Link to comment
Share on other sites

I'm getting stuck at waiting for server to start authentication every time a change a sfe code. Anyone know how to fix this? I can't even just delete the safe when it happens. I have to completely reinstall MySQL Database.

Link to comment
Share on other sites

  • 4 weeks later...

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×
×
  • Create New...