WarHammer(DayZ) Posted September 15, 2014 Report Share Posted September 15, 2014 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 More sharing options...
Externized Posted October 9, 2014 Report Share Posted October 9, 2014 Still any glitches or bugs? Link to comment Share on other sites More sharing options...
JayOnSpeed Posted October 13, 2014 Report Share Posted October 13, 2014 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 More sharing options...
JayOnSpeed Posted October 14, 2014 Report Share Posted October 14, 2014 I think i figured it out , had to redo the selfactions part though. Its working fine with p4l like it did without it. Great job Jossy with the whole thing and thanks for all the hard work. :) You are a rock star ! Link to comment Share on other sites More sharing options...
DutchDevil Posted November 11, 2014 Report Share Posted November 11, 2014 Thanks works like a charm. Link to comment Share on other sites More sharing options...
1Man Posted November 11, 2014 Report Share Posted November 11, 2014 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 More sharing options...
DamianL Posted November 23, 2014 Report Share Posted November 23, 2014 Really cool and very useful mod. Thank you for sharing! Link to comment Share on other sites More sharing options...
zipper Posted November 28, 2014 Report Share Posted November 28, 2014 Ignore post :( Link to comment Share on other sites More sharing options...
Wootenstien Posted January 9, 2015 Report Share Posted January 9, 2015 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 More sharing options...
joelash Posted February 10, 2015 Report Share Posted February 10, 2015 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 More sharing options...
Longshot03XX Posted February 14, 2015 Report Share Posted February 14, 2015 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 More sharing options...
Dess Posted March 25, 2015 Report Share Posted March 25, 2015 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 More sharing options...
Dess Posted March 27, 2015 Report Share Posted March 27, 2015 Bump Link to comment Share on other sites More sharing options...
Dess Posted March 28, 2015 Report Share Posted March 28, 2015 Another bump Link to comment Share on other sites More sharing options...
sampson42002 Posted April 9, 2015 Report Share Posted April 9, 2015 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 More sharing options...
sampson42002 Posted April 9, 2015 Report Share Posted April 9, 2015 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 More sharing options...
ElDubya Posted April 9, 2015 Report Share Posted April 9, 2015 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 More sharing options...
sampson42002 Posted April 9, 2015 Report Share Posted April 9, 2015 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 More sharing options...
Halloweenpsycho Posted April 19, 2015 Report Share Posted April 19, 2015 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 More sharing options...
Guest Posted April 19, 2015 Report Share Posted April 19, 2015 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 More sharing options...
Halloweenpsycho Posted April 20, 2015 Report Share Posted April 20, 2015 Worked excellent..Thanks so much :) Excellent mod..saves a lot of code changing in the DB..Thanks again Link to comment Share on other sites More sharing options...
KostiCZ Posted May 13, 2015 Report Share Posted May 13, 2015 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 More sharing options...
BetterDeadThanZed Posted June 10, 2015 Report Share Posted June 10, 2015 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 More sharing options...
chi Posted June 14, 2015 Report Share Posted June 14, 2015 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 More sharing options...
Th3-Hunter333 Posted July 6, 2015 Report Share Posted July 6, 2015 Is there anyway to get this to work with zupa single currency, if you have coins in your safe and you set a new key the coins completely reset every time. Any help is very appreciated Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now