Shep Posted June 14, 2014 Report Share Posted June 14, 2014 yes. wrong. read guid through more carefully. where is it wrong? Please, help... Link to comment Share on other sites More sharing options...
psychosis Posted June 14, 2014 Report Share Posted June 14, 2014 Shep make something like this : if (isServer) then { call compile preprocessFileLineNumbers "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\dynamic_vehicle.sqf"; //Compile vehicle configs // Add trader citys _nil = [] execVM "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\mission.sqf"; _serverMonitor = [] execVM "\z\addons\dayz_code\system\server_monitor.sqf"; execVM "Nuke\server_Nuke.sqf"; }; if (!isDedicated) then { //Conduct map operations //[] execVM "scripts\Server_WelcomeCredits.sqf"; ...... _nil = [] execVM "fixes\remote_messages.sqf"; execVM "Nuke\Effects\effects.sqf"; }; and at the end //Nuke Settings 0 = off for first 4 options. Blood_LossPS = 125; // set blood loss per sec in radiation zone here for non antiRadSkins. destruction_zone = 400; //Set the destruction zone size here. Any vehicles, buildings and some (if not all) epoch buildables in this zone will be destroyed radiation_zone = 1500; //Set the radiation zone size here 1500 = 1500m. death_zone = 200; //Set the size of the zone people will die in as the nuke goes off. (200 = 200m) antiRadSkins = ["BanditW1_DZ","BanditW2_DZ","Bandit2_DZ","GUE_Soldier_MG_DZ","INS_Lopotev_DZ"]; //Set skins that will block blood loss in the radiation zone. laptop_Pos = [x.y.z]; //set laptop position Here x y z. laptop_Dir = -588.9624; //set the direction the laptop is facing here. laptop_Type = "Laptop_EP1"; //can edit to be anything if you like. // execVM "radiationZone\blowoutZone.sqf" Link to comment Share on other sites More sharing options...
Kixbike Posted June 16, 2014 Report Share Posted June 16, 2014 Hello, does not work for me, no menu on the laptop, I have misplaced my code in the fn_selfAction.sqf ? scriptName "Functions\misc\fn_selfActions.sqf"; /*********************************************************** ADD ACTIONS FOR SELF - Function - [] call fnc_usec_selfActions; ************************************************************/ private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered","_isModular","_ownerKeyName","_temp_keys_names","_hasAttached","_allowTow","_liftHeli","_found","_posL","_posC","_height","_liftHelis","_attached"]; if (DZE_ActionInProgress) exitWith {}; // Do not allow if any script is running. _vehicle = vehicle player; _isPZombie = player isKindOf "PZombie_VB"; _inVehicle = (_vehicle != player); _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder); //####----####----####---- Base Building 1.3 Start ----####----####----#### _currentSkin = typeOf(player); _hasToolbox = "ItemToolbox" in items player; _baseBuildAdmin = ((getPlayerUID player) in BBSuperAdminAccess); _baseBuildLAdmin = ((getPlayerUID player) in BBLowerAdminAccess); //Get objects that can't be targetted _flagBasePole = nearestObject [player, BBTypeOfFlag]; //All untargetable objects (except Base Flag), searches a 12 meter radius, you can add any new objects you put in the build list that can't be targetted _untargetableArray = nearestObjects [player, ["Land_CamoNetB_EAST","Land_CamoNetVar_EAST","Land_CamoNet_EAST","Land_CamoNetB_NATO","Land_CamoNetVar_NATO","Land_CamoNet_NATO","Land_Ind_IlluminantTower","Land_sara_hasic_zbroj","Land_A_Castle_Bergfrit","Land_A_Castle_Gate","Land_A_Castle_Bastion","Land_A_Castle_Wall1_20","Land_A_Castle_Wall1_20_Turn","Land_A_Castle_Wall2_30","HeliH","HeliHCivil","Land_Ind_Shed_01_main","RampConcrete","Land_Ind_Shed_01_end","Land_Ind_SawMillPen"],12];//The number at the end is the range to look for items, if you have issues with some items try increasing it by one or two at a time. _nearUntargetable = count _untargetableArray > 0; //Check if anything is in range _closestUntargetable = if (_nearUntargetable) then {_untargetableArray select 0};//Selects the closest returned item _nettingNames = ["Land_CamoNetB_EAST","Land_CamoNetVar_EAST","Land_CamoNet_EAST","Land_CamoNetB_NATO","Land_CamoNetVar_NATO","Land_CamoNet_NATO"]; //Used for menu options _castleNames = ["Land_A_Castle_Bergfrit","Land_A_Castle_Gate","Land_A_Castle_Bastion","Land_A_Castle_Wall1_20","Land_A_Castle_Wall1_20_Turn","Land_A_Castle_Wall2_30"]; _heliPadNames = ["HeliH","HeliHCivil"]; _roofNames = ["Land_Ind_Shed_01_main","Land_Ind_Shed_01_end","Land_Ind_SawMillPen"]; _buildingNames = [];//Can add generic building names here _displayName = "Base Build Object";//Default menu option name if none of the following match if (typeOf(_closestUntargetable) in _nettingNames) then {_displayName = "Netting";}; if (typeOf(_closestUntargetable) in _castleNames) then {_displayName = "Castle";}; if (typeOf(_closestUntargetable) in _heliPadNames) then {_displayName = "HeliPad";}; if (typeOf(_closestUntargetable) in _roofNames) then {_displayName = "Roof";}; if (typeOf(_closestUntargetable) in _buildingNames) then {_displayName = "Building";}; if (typeOf(_closestUntargetable) == "Land_Ind_IlluminantTower") then {_displayName = "Tower";}; // Check mags in player inventory to show build recipe menu _mags = magazines player; if ("ItemTankTrap" in _mags || "ItemSandbag" in _mags || "ItemWire" in _mags || "PartWoodPile" in _mags || "PartGeneric" in _mags || "equip_scrapelectronics" in _mags || "ItemCamoNet" in _mags || "equip_crate" in _mags || "equip_brick" in _mags || "equip_string" in _mags || "equip_duct_tape" in _mags) then { hasBuildItem = true; } else { hasBuildItem = false;}; //Build Recipe Menu Action if((speed player <= 1) && hasBuildItem && _canDo) then { if (s_player_recipeMenu < 0) then { s_player_recipeMenu = player addaction [("" + ("Build Recipes") +""),"buildRecipeBook\build_recipe_dialog.sqf","",5,false,true,"",""]; }; if (s_player_buildHelp < 0) then { s_player_buildHelp = player addaction [("" + ("Base Building Help") +""),"dayz_code\actions\build_help.sqf","",5,false,true,"",""]; }; if (s_player_showFlags < 0) then { s_player_showFlags = player addAction [("" + ("Show My Flags") +""),"dayz_code\actions\show_flag_markers.sqf","",5,false,true,"",""]; }; } else { player removeAction s_player_buildHelp; s_player_buildHelp = -1; player removeAction s_player_recipeMenu; s_player_recipeMenu = -1; player removeAction s_player_showFlags; s_player_showFlags = -1; }; //Add in custom eventhandlers or whatever on skin change if (_currentSkin != globalSkin) then { globalSkin = _currentSkin; player removeMPEventHandler ["MPHit", 0]; player removeEventHandler ["AnimChanged", 0]; ehWall = player addEventHandler ["AnimChanged", { player call antiWall; }]; empHit = player addMPEventHandler ["MPHit", {_this spawn fnc_plyrHit;}]; }; //General Untargetable Objects if((isNull cursorTarget) && _canDo && !remProc && !procBuild && _nearUntargetable) then { _ownerUnT = _closestUntargetable getVariable ["characterID", "0"]; //Checks owner IDs of untargetable objects, simply to avoid RPT spam with map objects _unTauthUID = _closestUntargetable getVariable ["AuthorizedUID", []]; //Gets master AuthUID from untargetable objects _unTauthGateCodes = if ((_ownerUnT != "0") && (count _unTauthUID > 0)) then {((getPlayerUID player) in (_unTauthUID select 1));}; //Checks for player access to untargetable objects _adminText = if (!_unTauthGateCodes && _baseBuildAdmin) then {"ADMIN:";}else{"";};//Let admins know they aren't registered if (_unTauthGateCodes || _baseBuildAdmin) then { if (s_player_camoBaseOwnerAccess < 0) then { s_player_camoBaseOwnerAccess = player addAction [format["%2%1: Give all base owners (from flagpole) access",_displayName,_adminText], "dayz_code\external\keypad\fnc_keyPad\functions\give_gateAccess.sqf",_closestUntargetable, 1, false, true, "", ""]; }; if (s_player_addCamoAuth < 0) then { s_player_addCamoAuth = player addAction [format["%2%1: Add Player UIDs",_displayName,_adminText], "dayz_code\external\keypad\fnc_keyPad\enterCodeAdd.sqf",_closestUntargetable, 1, false, true, "", ""]; }; if (s_player_removeCamoAuth < 0) then { s_player_removeCamoAuth = player addAction [format[("" + ("%2%1: Remove Player UIDs") +""),_displayName,_adminText], "dayz_code\external\keypad\fnc_keyPad\enterCodeRemove.sqf",_closestUntargetable, 1, false, true, "", ""]; }; }; if (_ownerUnT != "0" && (_hasToolbox || _baseBuildAdmin || _baseBuildLAdmin)) then { if (s_player_deleteCamoNet < 0) then { s_player_deleteCamoNet = player addaction [format[("" + ("Remove %1") +""),_displayName,_adminText],"dayz_code\actions\player_remove.sqf",_closestUntargetable,1,false,true,"",""]; }; }; } else { player removeAction s_player_camoBaseOwnerAccess; s_player_camoBaseOwnerAccess = -1; player removeAction s_player_addCamoAuth; s_player_addCamoAuth = -1; player removeAction s_player_removeCamoAuth; s_player_removeCamoAuth = -1; player removeAction s_player_deleteCamoNet; s_player_deleteCamoNet = -1; }; // FlagPole Access (more reliable than cursortarget) if ((isNull cursorTarget) && _canDo && !remProc && !procBuild && (_flagBasePole distance player < 10)) then { _ownerFlag = _flagBasePole getVariable ["characterID", "0"]; //Checks owner IDs of flags, simply to avoid RPT spam with map objects _flagAuthUID = _flagBasePole getVariable ["AuthorizedUID", []]; //Gets master AuthUID from _flagAuthGateCodes = if ((_ownerFlag != "0") && (count _flagAuthUID > 0)) then {((getPlayerUID player) in (_flagAuthUID select 1));}; //Checks if player has access to flag _adminText = if (!_flagAuthGateCodes && _baseBuildAdmin) then {"ADMIN:";}else{"";};//Let admins know they aren't registered if (_flagAuthGateCodes || _baseBuildAdmin) then { if (s_player_addFlagAuth < 0) then { s_player_addFlagAuth = player addAction [format["%1FlagPole: Add Player UIDs for Base Building Access",_adminText], "dayz_code\external\keypad\fnc_keyPad\enterCodeAdd.sqf", _flagBasePole, 1, false, true, "", ""]; }; if (s_player_removeFlagAuth < 0) then { s_player_removeFlagAuth = player addaction [format[("" + ("%1FlagPole: Remove Player UIDs") +""),_adminText],"dayz_code\external\keypad\fnc_keyPad\enterCodeRemove.sqf", _flagBasePole, 1, false, true, "", ""]; }; if (s_player_removeFlag < 0) then { s_player_removeFlag = player addaction [format[("" + ("%1Permanently Remove Flag (restrictions apply)") +""),_adminText],"dayz_code\actions\player_remove.sqf", _flagBasePole,1,false,true,"",""]; }; if (bbAIGuards == 1) then { if (s_player_guardToggle < 0) then { s_player_guardToggle = player addaction [format[("" + ("%1Toggle Guards to Kill all non-base owners (default on)") +""),_adminText],"dayz_code\actions\toggle_base_guards.sqf",_flagBasePole,1,false,true,"",""]; }; }; }; } else { player removeAction s_player_removeFlag; s_player_removeFlag = -1; player removeAction s_player_addFlagAuth; s_player_addFlagAuth = -1; player removeAction s_player_removeFlagAuth; s_player_removeFlagAuth = -1; player removeAction s_player_guardToggle; s_player_guardToggle = -1; }; //####----####----####---- Base Building 1.3 END ----####----####----#### _nearLight = nearestObject [player,"LitObject"]; _canPickLight = false; if (!isNull _nearLight) then { if (_nearLight distance player < 4) then { _canPickLight = isNull (_nearLight getVariable ["owner",objNull]); }; }; //Grab Flare if (_canPickLight and !dayz_hasLight and !_isPZombie) then { if (s_player_grabflare < 0) then { _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName"); s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true, "", ""]; s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true, "", ""]; }; } else { player removeAction s_player_grabflare; player removeAction s_player_removeflare; s_player_grabflare = -1; s_player_removeflare = -1; }; //====================MV22+SUV Animation==================== if (_inVehicle and (_vehicle isKindOf "MV22") and !(isEngineOn _vehicle)) then { if (mv22_fold < 0) then { themv22 = _vehicle; mv22_fold = themv22 addAction ["Fold","Scripts\animate\fold.sqf","",5,false,true]; mv22_unfold = themv22 addAction ["UnFold","Scripts\animate\unfold.sqf","",5,false,true]; }; } else { themv22 removeAction mv22_fold; mv22_fold = -1; themv22 removeAction mv22_unfold; mv22_unfold = -1; }; if (_inVehicle and (_vehicle isKindOf "ArmoredSUV_Base_PMC")) then { if (suv_close < 0) then { thesuv = _vehicle; suv_close = thesuv addAction ["Close Hatch","Scripts\animate\close.sqf","",5,false,true]; suv_open = thesuv addAction ["Open Hatch","Scripts\animate\open.sqf","",5,false,true]; }; } else { thesuv removeAction suv_close; suv_close = -1; thesuv removeAction suv_open; suv_open = -1; }; //====================MV22+SUV Animation==================== if (DZE_HeliLift) then { _hasAttached = _vehicle getVariable["hasAttached",false]; if(_inVehicle and (_vehicle isKindOf "Air") and ((getPos _vehicle select 2) < 30) and (speed _vehicle < 5) and (typeName _hasAttached == "OBJECT")) then { if (s_player_heli_detach < 0) then { dayz_myLiftVehicle = _vehicle; s_player_heli_detach = dayz_myLiftVehicle addAction ["Detach Vehicle","\z\addons\dayz_code\actions\player_heliDetach.sqf",[dayz_myLiftVehicle,_hasAttached],2,false,true,"",""]; }; } else { dayz_myLiftVehicle removeAction s_player_heli_detach; s_player_heli_detach = -1; }; }; // ---------------------------------------Krixes Self Bloodbag Start------------------------------------ _mags = magazines player; // Krixes Self Bloodbag if ("ItemBloodbag" in _mags) then { hasBagItem = true; } else { hasBagItem = false;}; if((speed player <= 1) && hasBagItem && _canDo) then { if (s_player_selfBloodbag < 0) then { s_player_selfBloodbag = player addaction[("" + ("Self Bloodbag") +""),"Scripts\player_selfbloodbag.sqf","",5,false,true,"", ""]; }; } else { player removeAction s_player_selfBloodbag; s_player_selfBloodbag = -1; }; // ---------------------------------------Krixes Self Bloodbag End------------------------------------ if(DZE_HaloJump) then { if(_inVehicle and (_vehicle isKindOf "Air") and ((getPos _vehicle select 2) > 400)) then { if (s_halo_action < 0) then { DZE_myHaloVehicle = _vehicle; s_halo_action = DZE_myHaloVehicle addAction [localize "STR_EPOCH_ACTIONS_HALO","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true,"",""]; }; } else { DZE_myHaloVehicle removeAction s_halo_action; s_halo_action = -1; }; }; if (!DZE_ForceNameTagsOff) then { if (s_player_showname < 0 and !_isPZombie) then { if (DZE_ForceNameTags) then { s_player_showname = 1; player setVariable["DZE_display_name",true,true]; } else { s_player_showname = player addAction [localize "STR_EPOCH_ACTIONS_NAMEYES", "\z\addons\dayz_code\actions\display_name.sqf",true, 0, true, false, "",""]; s_player_showname1 = player addAction [localize "STR_EPOCH_ACTIONS_NAMENO", "\z\addons\dayz_code\actions\display_name.sqf",false, 0, true, false, "",""]; }; }; }; if(_isPZombie) then { if (s_player_callzombies < 0) then { s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false, "",""]; }; if (DZE_PZATTACK) then { call pz_attack; DZE_PZATTACK = false; }; if (s_player_pzombiesvision < 0) then { s_player_pzombiesvision = player addAction [localize "STR_EPOCH_ACTIONS_NIGHTVIS", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"]; }; if (!isNull cursorTarget and (player distance cursorTarget < 3)) then { //Has some kind of target _isAnimal = cursorTarget isKindOf "Animal"; _isZombie = cursorTarget isKindOf "zZombie_base"; _isHarvested = cursorTarget getVariable["meatHarvested",false]; _isMan = cursorTarget isKindOf "Man"; // Pzombie Gut human corpse or animal if (!alive cursorTarget and (_isAnimal or _isMan) and !_isZombie and !_isHarvested) then { if (s_player_pzombiesfeed < 0) then { s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false, "",""]; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; }; // Increase distance only if AIR OR SHIP _allowedDistance = 4; _isAir = cursorTarget isKindOf "Air"; _isShip = cursorTarget isKindOf "Ship"; if(_isAir or _isShip) then { _allowedDistance = 8; }; if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance) and _canDo) then { //Has some kind of target // set cursortarget to variable _cursorTarget = cursorTarget; // get typeof cursortarget once _typeOfCursorTarget = typeOf _cursorTarget; // hintsilent _typeOfCursorTarget; _isVehicle = _cursorTarget isKindOf "AllVehicles"; _isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"]; _isnewstorage = _typeOfCursorTarget in DZE_isNewStorage; // get items and magazines only once _magazinesPlayer = magazines player; //boiled Water _hasbottleitem = "ItemWaterbottle" in _magazinesPlayer; _hastinitem = false; { if (_x in _magazinesPlayer) then { _hastinitem = true; }; } forEach boil_tin_cans; _hasFuelE = "ItemJerrycanEmpty" in _magazinesPlayer; _hasFuelBarrelE = "ItemFuelBarrelEmpty" in _magazinesPlayer; _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer; _itemsPlayer = items player; _temp_keys = []; _temp_keys_names = []; // find available keys _key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"]; { if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then { _ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid"); _ownerKeyName = getText(configFile >> "CfgWeapons" >> _x >> "displayName"); _temp_keys_names set [_ownerKeyId,_ownerKeyName]; _temp_keys set [count _temp_keys,str(_ownerKeyId)]; }; } forEach _itemsPlayer; _hasKnife = "ItemKnife" in _itemsPlayer; _hasToolbox = "ItemToolbox" in _itemsPlayer; _isMan = _cursorTarget isKindOf "Man"; _traderType = _typeOfCursorTarget; _ownerID = _cursorTarget getVariable ["CharacterID","0"]; _isAnimal = _cursorTarget isKindOf "Animal"; _isDog = (_cursorTarget isKindOf "DZ_Pastor" || _cursorTarget isKindOf "DZ_Fin"); _isZombie = _cursorTarget isKindOf "zZombie_base"; _isDestructable = _cursorTarget isKindOf "BuiltItems"; _isWreck = _typeOfCursorTarget in DZE_isWreck; _isWreckBuilding = _typeOfCursorTarget in DZE_isWreckBuilding; _isModular = _cursorTarget isKindOf "ModularItems"; _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; }; } forEach _rawmeat; _isFuel = false; if (_hasFuelE or _hasFuelBarrelE) then { { if(_cursorTarget isKindOf _x) exitWith {_isFuel = true;}; } forEach dayz_fuelsources; }; // diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID)); // logic vars _player_flipveh = false; _player_deleteBuild = false; _player_lockUnlock_crtl = false; if (_canDo && (speed player <= 1) && (_cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then { if (s_player_maintain_area < 0) then { s_player_maintain_area = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; s_player_maintain_area_preview = player addAction [format["%1",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 or _isWreck or _isRemovable or _isWreckBuilding) then { if(_hasToolbox and "ItemCrowbar" in _itemsPlayer) then { _player_deleteBuild = true; }; }; //Allow owners to delete modulars if(_isModular and (dayz_characterID == _ownerID)) then { if(_hasToolbox and "ItemCrowbar" in _itemsPlayer) then { if(_cursorTarget in DZE_DoorsLocked) exitwith {cutText ["You must remove the lock to delete this item!", "PLAIN DOWN"]; }; _player_deleteBuild = true; }; }; // CURSOR TARGET VEHICLE if(_isVehicle) then { //flip vehicle small vehicles by your self and all other vehicles with help nearby if (!(canmove _cursorTarget) and (player distance _cursorTarget >= 2) and (count (crew _cursorTarget))== 0 and ((vectorUp _cursorTarget) select 2) < 0.5) then { _playersNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]); if(_isVehicletype or (_playersNear >= 2)) then { _player_flipveh = true; }; }; if(!_isMan and _ownerID != "0" and !(_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; }; } forEach 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 = getPos _x; _posC = getPos _cursorTarget; _height = (_posL select 2) - (_posC select 2); _hasAttached = _x getVariable["hasAttached",false]; if(_height < 15 and _height > 5 and (typeName _hasAttached != "OBJECT")) then { if(((abs((_posL select 0) - (_posC select 0))) < 10) and ((abs((_posL select 1) - (_posC select 1))) < 10)) then { _liftHeli = _x; _found = true; }; }; }; } forEach _liftHelis; }; //diag_log format["HELI: %1 TARGET: %2",_found,_cursorTarget]; _attached = _cursorTarget getVariable["attached",false]; if(_found and _allowTow and _canDo and !locked _cursorTarget and !_isPZombie and (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; }; }; //####----####----####---- Base Building 1.3 Start ----####----####----#### _lever = cursorTarget; _codePanels = ["Infostand_2_EP1", "Fence_corrugated_plate"]; _baseBuildAdmin = ((getPlayerUID player) in BBSuperAdminAccess); _baseBuildLAdmin = ((getPlayerUID player) in BBLowerAdminAccess); _authorizedUID = cursorTarget getVariable ["AuthorizedUID", []]; _authorizedGateCodes = if ((_ownerID != "0") && (count _authorizedUID > 0)) then {((getPlayerUID player) in (_authorizedUID select 1));}; //Check it's not a map object/unbuilt object to avoid RPT spam _adminText = if (!_authorizedGateCodes && _baseBuildAdmin) then {"ADMIN:";}else{"";};//Let admins know they aren't registered //Let players check the UID of other players when near their flags if (_isMan && (_flagBasePole distance player < 10)) then { _ownerFlag = _flagBasePole getVariable ["characterID", "0"]; //Checks owner IDs of flags, simply to avoid RPT spam with map objects _flagAuthUID = _flagBasePole getVariable ["AuthorizedUID", []]; //Gets master AuthUID from _flagAuthGateCodes = if (_ownerFlag != "0") then {((getPlayerUID player) in (_flagAuthUID select 1));}; //Checks if player has access to flag _adminText = if (!_flagAuthGateCodes && _baseBuildAdmin) then {"ADMIN:";}else{"";};//Let admins know they aren't registered if (_flagAuthGateCodes || _baseBuildAdmin) then { if (s_player_getTargetUID < 0) then { s_player_getTargetUID = player addAction [format["%1Get UID of Targeted Player",_adminText], "dayz_code\actions\get_player_UID.sqf", cursorTarget, 4, false, true, "", ""]; }; }; } else { player removeAction s_player_getTargetUID; s_player_getTargetUID = -1; }; // Operate Gates AND Add Authorization to Gate if (((typeOf(cursortarget) in _codePanels) && (_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild) || ((typeOf(cursortarget) in allbuildables_class) && (_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild)) then { _gates = nearestObjects [_lever, ["Concrete_Wall_EP1"], 15]; if (s_player_gateActions < 0) then { if (typeOf(cursortarget) == "Fence_corrugated_plate") then { s_player_gateActions = player addAction [format[("" + ("%1Operate Single Metal Gate") +""),_adminText], "dayz_code\external\keypad\fnc_keyPad\operate_gates.sqf", _lever, 6, true, true, "", ""]; } else { if (typeOf(cursortarget) == "Infostand_2_EP1") then { if (count _gates > 0) then { s_player_gateActions = player addAction [format[("" + ("%1Operate Nearest Concrete Gates Within 15 meters") +""),_adminText], "dayz_code\external\keypad\fnc_keyPad\operate_gates.sqf", _lever, 6, true, true, "", ""]; } else {s_player_gateActions = player addAction [format[("" + ("%1No gates around to operate") +""),_adminText], "", _lever, 6, false, true, "", ""];}; }; }; }; if (s_player_giveBaseOwnerAccess < 0) then { s_player_giveBaseOwnerAccess = player addAction [format["%1Give all base owners (from flagpole) access to object/gate",_adminText], "dayz_code\external\keypad\fnc_keyPad\functions\give_gateAccess.sqf", _lever, 1, false, true, "", ""]; }; if (s_player_addGateAuthorization < 0) then { s_player_addGateAuthorization = player addAction [format["%1Add Player UIDs to Grant Gate/Object Access",_adminText], "dayz_code\external\keypad\fnc_keyPad\enterCodeAdd.sqf", _lever, 1, false, true, "", ""]; }; if (s_player_removeGateAuthorization < 0) then { s_player_removeGateAuthorization = player addaction [format[("" + ("%1Remove Player UIDs from Gate/Object Access") +""),_adminText],"dayz_code\external\keypad\fnc_keyPad\enterCodeRemove.sqf", _lever, 1, false, true, "", ""]; }; } else { player removeAction s_player_giveBaseOwnerAccess; s_player_giveBaseOwnerAccess = -1; player removeAction s_player_gateActions; s_player_gateActions = -1; player removeAction s_player_addGateAuthorization; s_player_addGateAuthorization = -1; player removeAction s_player_removeGateAuthorization; s_player_removeGateAuthorization = -1; }; // Operate ROOFS if ((typeOf(cursortarget) in _codePanels) && (_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild) then { _gates = nearestObjects [_lever, ["Land_Ind_Shed_01_main","Land_Ind_Shed_01_end","Land_Ind_SawMillPen"], BBFlagRadius]; if (s_player_roofToggle < 0) then { if (typeOf(cursortarget) == "Infostand_2_EP1") then { if (count _gates > 0) then { s_player_roofToggle = player addAction [format[("" + ("%1Operate Roof Covers") +""),_adminText], "dayz_code\external\keypad\fnc_keyPad\operate_roofs.sqf", _lever, 6, false, true, "", ""]; } else {s_player_roofToggle = player addAction [format[("" + ("%1No roof covers around to operate") +""),_adminText], "", _lever, 6, false, true, "", ""];}; }; }; } else { player removeAction s_player_roofToggle; s_player_roofToggle = -1; }; // Remove Object if((typeOf(cursortarget) in allremovables)&& (_ownerID != "0") && (_hasToolbox || _baseBuildAdmin || _baseBuildLAdmin) && _canDo && !remProc && !procBuild && !removeObject) then { if (s_player_deleteBuild < 0) then { s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text], "dayz_code\actions\player_remove.sqf",cursorTarget, 1, false, true, "", ""]; }; } else { player removeAction s_player_deleteBuild; s_player_deleteBuild = -1; }; // Disarm Booby Trap Action if((cursortarget iskindof "Grave" && cursortarget distance player < 2.5) && (_ownerID != "0") && (_hasToolbox || _baseBuildAdmin || _baseBuildLAdmin) && _canDo && !remProc && !procBuild) then { if (s_player_disarmBomb < 0) then { s_player_disarmBomb = player addaction [format[("" + ("%1Disarm Bomb") +""),_adminText],"dayz_code\actions\player_disarmBomb.sqf","",1,true,true,"", ""]; }; } else { player removeAction s_player_disarmBomb; s_player_disarmBomb = -1; }; //Light Menu if((typeOf(cursortarget) == "Infostand_2_EP1") && (_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild) then { _nearestFlags = nearestObjects [_lever, [bBTypeOfFlag], BBFlagRadius]; _baseFlag = _nearestFlags select 0; _barrels = nearestObjects [_baseFlag, ["Land_Fire_Barrel"], BBFlagRadius];//Makes sure there are barrels in range of the flag _towers = nearestObjects [_baseFlag, ["Land_Ind_IlluminantTower"], BBFlagRadius];//Makes sure there are towers in range of the flag if (count _barrels > 0 || count _towers >0) then { if (s_player_bbLightMenu < 0) then { s_player_bbLightMenu = player addAction [format[("" + ("%1Light Options") +""),_adminText], "dayz_code\actions\lights\lightMenu.sqf", _lever, 5, false, false, "", ""]; }; } else { if (s_player_bbLightMenu < 0) then { s_player_bbLightMenu = player addAction [format[("" + ("%1No Barrel/Tower Lights in Range of Flag") +""),_adminText], "", _lever, 5, false, true, "", ""]; }; }; } else { player removeAction s_player_bbLightMenu; s_player_bbLightMenu = -1; }; //Zombie Shield if ((typeOf(cursorTarget) == BBTypeOfZShield) &&(_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild) then { if (s_player_giveBaseOwnerAccess > 0) then { //Temp fix to prevent players having more than the max allowed number of shield gens player removeAction s_player_giveBaseOwnerAccess; s_player_giveBaseOwnerAccess = -1; }; if (BBEnableZShield == 1) then { if (s_player_bbZombieShield_on < 0) then { s_player_bbZombieShield_on = player addAction [format[("" + ("%1Zombie Shield On") +""),_adminText], "dayz_code\actions\shield\bbZombieShield.sqf", [_lever, true], 6, true, true, "", ""]; }; if (s_player_bbZombieShield_off < 0) then { s_player_bbZombieShield_off = player addAction [format[("" + ("%1Zombie Shield Off") +""),_adminText], "dayz_code\actions\shield\bbZombieShield.sqf", [_lever, false], 6, false, true, "", ""]; }; } else { if (s_player_bbZombieShield_on < 0) then { s_player_bbZombieShield_on = player addAction [format[("" + ("%1Zombie Shields are disabled on this server") +""),_adminText], "", [], 6, false, true, "", ""]; }; player removeAction s_player_bbZombieShield_off; s_player_bbZombieShield_off = -1; }; } else { player removeAction s_player_bbZombieShield_on; s_player_bbZombieShield_on = -1; player removeAction s_player_bbZombieShield_off; s_player_bbZombieShield_off = -1; }; //####----####----####---- Base Building 1.3 End ----####----####----#### // Allow Owner to lock and unlock vehicle if(_player_lockUnlock_crtl) then { if (s_player_lockUnlock_crtl < 0) then { _hasKey = _ownerID in _temp_keys; _oldOwner = (_ownerID == dayz_playerUID); if(locked _cursorTarget) then { if(_hasKey or _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["%1",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 or _oldOwner) then { _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true, "", ""]; s_player_lockunlock set [count s_player_lockunlock,_lock]; s_player_lockUnlock_crtl = 1; }; }; }; } else { {player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; }; if(DZE_AllowForceSave) then { //Allow player to force save if((_isVehicle or _isTent) and !_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 or _isTent or _isnewstorage) and _isAlive and !_isMan and !locked _cursorTarget) then { if (s_player_checkGear < 0) then { s_player_checkGear = player addAction [localize "STR_EPOCH_PLAYER_CARGO", "\z\addons\dayz_code\actions\cargocheck.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_checkGear; s_player_checkGear = -1; }; }; //flip vehicle small vehicles by your self and all other vehicles with help nearby if(_player_flipveh) then { if (s_player_flipveh < 0) then { s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_flipveh; s_player_flipveh = -1; }; //Allow player to fill jerrycan if((_hasFuelE or _hasFuelBarrelE) and _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 or _isZombie) and _hasKnife) then { _isHarvested = _cursorTarget getVariable["meatHarvested",false]; if (!_isHarvested) then { _player_butcher = true; }; }; // Study body if (_isMan and !_isZombie and !_isAnimal) then { _player_studybody = true; } } else { // unit alive // gear access on surrendered player if(_isMan and !_isZombie and !_isAnimal) then { _isSurrendered = _cursorTarget getVariable ["DZE_Surrendered",false]; if (_isSurrendered) then { _player_SurrenderedGear = true; }; }; }; // Human Gut animal or zombie if (_player_butcher) then { if (s_player_butcher < 0) then { if(_isZombie) then { s_player_butcher = player addAction [localize "STR_EPOCH_ACTIONS_GUTZOM", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true, "", ""]; } else { s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true, "", ""]; }; }; } else { player removeAction s_player_butcher; s_player_butcher = -1; }; // Study Body if (_player_studybody) then { if (s_player_studybody < 0) then { s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_studybody; s_player_studybody = -1; }; //====================Nuke Bombe==================== if (cursorTarget == LAPTOP) then { _lap = cursorTarget; if (s_player_nuke < 0) then { s_player_nuke = player addAction [("" + ("Set Off Nuke") +""),"Nuke\nuke_On.sqf",_lap, 5, false, true, "",""]; }; } else { player removeAction s_player_nuke; s_player_nuke = -1; }; //====================Nuke Bombe==================== // 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 and _hastinitem) then { _player_boil = true; }; }; if (_player_SurrenderedGear) then { if (s_player_SurrenderedGear < 0) then { s_player_SurrenderedGear = player addAction [localize "STR_EPOCH_ACTION_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) and !(inflamed _cursorTarget) and (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 and (player distance _cursorTarget < 3)) then { if (_ownerID == dayz_characterID) then { if (s_player_packtent < 0) then { s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { if(("ItemJerrycan" in _magazinesPlayer) and ("ItemMatchbox_DZE" in weapons player)) then { if (s_player_packtent < 0) then { s_player_packtent = player addAction [localize "STR_EPOCH_ACTIONS_DESTROYTENT", "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""]; }; }; }; } else { player removeAction s_player_packtent; s_player_packtent = -1; }; //Allow owner to unlock vault if((_typeOfCursorTarget in DZE_LockableStorage) and _ownerID != "0" and (player distance _cursorTarget < 3)) then { if (s_player_unlockvault < 0) then { if(_typeOfCursorTarget in DZE_LockedStorage) then { if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then { _combi = player addAction [format["Open %1",_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["Unlock %1",_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 and _ownerID != dayz_playerUID) then { _combi = player addAction ["Re-Enter Combination", "\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} forEach s_player_combi;s_player_combi = []; s_player_unlockvault = -1; }; //Allow owner to pack vault if(_typeOfCursorTarget in DZE_UnLockedStorage and _ownerID != "0" and (player distance _cursorTarget < 3)) then { if (s_player_lockvault < 0) then { if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then { s_player_lockvault = player addAction [format["Lock %1",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""]; }; }; if (s_player_packvault < 0 and (_ownerID == dayz_combination or _ownerID == dayz_playerUID)) then { s_player_packvault = player addAction [format["Pack %1",_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 ["Recent Murders", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true, "",""]; }; } else { player removeAction s_player_information; s_player_information = -1; }; //Fuel Pump if(_typeOfCursorTarget in dayz_fuelpumparray) then { if (s_player_fuelauto < 0) then { // check if Generator_DZ is running within 30 meters _findNearestGens = nearestObjects [player, ["Generator_DZ"], 30]; _findNearestGen = []; { if (alive _x and (_x getVariable ["GeneratorRunning", false])) then { _findNearestGen set [(count _findNearestGen),_x]; }; } foreach _findNearestGens; _IsNearRunningGen = count (_findNearestGen); // show that pump needs power if no generator nearby. if(_IsNearRunningGen > 0) then { s_player_fuelauto = player addAction ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true, "",""]; } else { s_player_fuelauto = player addAction ["Needs Power", "",[], 0, false, true, "",""]; }; }; } else { player removeAction s_player_fuelauto; s_player_fuelauto = -1; }; //Fuel Pump on truck if(_typeOfCursorTarget in DZE_fueltruckarray and 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 ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true, "",""]; } else { s_player_fuelauto2 = player addAction ["Needs Power", "",[], 0, false, true, "",""]; }; }; } else { player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; }; // inplace upgrade tool if ((_cursorTarget isKindOf "ModularItems") or (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") or (_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["Upgrade %1",_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 or _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" or _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") and (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["Remove Lock from %1",_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" or _cursorTarget isKindOf "DZE_Housebase" or _typeOfCursorTarget in DZE_ExtraMaintain) and (damage _cursorTarget >= 0.1)) 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["Maintain %1",_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 ["Stop Generator", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""]; } else { // check if not filled and player has jerry. if((_cursorTarget getVariable ["GeneratorFilled", false])) then { s_player_fillgen = player addAction ["Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""]; } else { if("ItemJerrycan" in _magazinesPlayer) then { s_player_fillgen = player addAction ["Fill and Start Generator", "\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 ["Attach Straps", "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true, "",""]; } else { s_player_towing = player addAction ["Detach Straps", "\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 and _ownerID == dayz_characterID) then { if ((s_player_sleep < 0) and (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; }; //------------Take clothes------------ _clothesTaken = cursorTarget getVariable["clothesTaken",false]; if (_isMan and !_isAlive and !_isAnimal and !_clothesTaken) then { if (s_player_clothes < 0) then { s_player_clothes = player addAction [("")+("Take Clothes")+(""), "Scripts\takeclothes.sqf",cursorTarget, -10, false, true]; }; } else { player removeAction s_player_clothes; s_player_clothes = -1; }; //------------Take clothes------------ //Repairing Vehicles if ((dayz_myCursorTarget != _cursorTarget) and _isVehicle and !_isMan and _hasToolbox and (damage _cursorTarget < 1) and !_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} forEach s_player_repairActions;s_player_repairActions = []; s_player_repair_crtl = -1; }; }; // All Traders if (_isMan and !_isPZombie and _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["Your humanity is too %1 this trader refuses to talk to you.",_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]; } forEach (_traderMenu select 1); // Database menu _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 99, true, false, "",""]; s_player_parts set [count s_player_parts,_buy]; // Add static metals trader options under sub menu _metals_trader = player addAction [localize "STR_EPOCH_PLAYER_301", "\z\addons\dayz_code\actions\trade_metals.sqf",["na"], 0, true, false, "",""]; s_player_parts set [count s_player_parts,_metals_trader]; }; s_player_parts_crtl = 1; }; } else { {player removeAction _x} forEach s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; }; if(dayz_tameDogs) then { //Dog if (_isDog and _isAlive and (_hasRawMeat) and _ownerID == "0" and 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 and _ownerID == dayz_characterID and _isAlive) then { _dogHandle = player getVariable ["dogID", 0]; if (s_player_feeddog < 0 and _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 and "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} forEach s_player_repairActions;s_player_repairActions = []; s_player_repair_crtl = -1; {player removeAction _x} forEach s_player_combi;s_player_combi = []; dayz_myCursorTarget = objNull; s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull]; {player removeAction _x} forEach s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; {player removeAction _x} forEach 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; //####----####----####---- Base Building 1.3 Start ----####----####----#### player removeAction s_player_getTargetUID; s_player_getTargetUID = -1; player removeAction s_player_giveBaseOwnerAccess; s_player_giveBaseOwnerAccess = -1; player removeAction s_player_gateActions; s_player_gateActions = -1; player removeAction s_player_roofToggle; s_player_roofToggle = -1; player removeAction s_player_addGateAuthorization; s_player_addGateAuthorization = -1; player removeAction s_player_removeGateAuthorization; s_player_removeGateAuthorization = -1; player removeAction s_player_disarmBomb; s_player_disarmBomb = -1; player removeAction s_player_bbZombieShield_on; s_player_bbZombieShield_on = -1; player removeAction s_player_bbZombieShield_off; s_player_bbZombieShield_off = -1; player removeAction s_player_inflameBarrels; s_player_inflameBarrels = -1; player removeAction s_player_deflameBarrels; s_player_deflameBarrels = -1; player removeAction s_player_towerLightsOn; s_player_towerLightsOn = -1; player removeAction s_player_towerLightsOff; s_player_towerLightsOff = -1; player removeAction s_player_bbLightMenu; s_player_bbLightMenu = -1; //####----####----####---- Base Building 1.3 End ----####----####----#### //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; //------------Take Clothes------------ player removeAction s_player_clothes; s_player_clothes = -1; //------------Take Clothes------------ }; //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 and !_inVehicle and alive _dog and _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; }; Link to comment Share on other sites More sharing options...
TayTayTheKiller Posted June 16, 2014 Author Report Share Posted June 16, 2014 If using infiSTAR and you have _CSA = true try adding s_player_nuke to _dayzActions in AHconfig.sqf. Also I will be working on this again tomorrow. Link to comment Share on other sites More sharing options...
psychosis Posted June 18, 2014 Report Share Posted June 18, 2014 where are you ?)) Link to comment Share on other sites More sharing options...
kisho Posted June 19, 2014 Report Share Posted June 19, 2014 Hi. Thanks for the cool script :D But I did not get to run the script with siren and explosion :( . Running with the laptop all is well. Messages with "%" are all well. Then silence for about 3-4 minutes and then run a script with radiation. Here are my files. Maybe I missed something or made a mistake? init.sqf startLoadingScreen ["","RscDisplayLoadCustom"]; cutText ["","BLACK OUT"]; enableSaving [false, false]; //REALLY IMPORTANT VALUES dayZ_instance = 24; //The instance dayzHiveRequest = []; initialized = false; dayz_previousID = 0; //disable greeting menu player setVariable ["BIS_noCoreConversations", true]; //disable radio messages to be heard and shown in the left lower corner of the screen enableRadio false; // May prevent "how are you civillian?" messages from NPC enableSentences false; // DayZ Epochconfig spawnShoremode = 1; // Default = 1 (on shore) spawnArea= 1500; // Default = 1500 // MaxVehicleLimit = 300; // Default = 50 MaxDynamicDebris = 500; // Default = 100 dayz_MapArea = 18000; // Default = 10000 dayz_minpos = -1000; dayz_maxpos = 26000; dayz_paraSpawn = false; // Старт на парашюте dayz_sellDistance_vehicle = 20; dayz_sellDistance_boat = 30; dayz_sellDistance_air = 40; dayz_maxAnimals = 8; // Default: 8 dayz_tameDogs = true; DynamicVehicleDamageLow = 10; // Default: 0 DynamicVehicleDamageHigh = 90; // Default: 100 DZE_BuildOnRoads = true; // Default: False EpochEvents = [["any","any","any","any",30,"crash_spawner"],["any","any","any","any",0,"crash_spawner"],["any","any","any","any",15,"supply_drop"]]; dayz_fullMoonNights = true; //Nuke Settings //Nuke Settings 0 = off for first 4 options. Blood_LossPS = 55; // set blood loss per sec in radiation zone here for non antiRadSkins. destruction_zone = 150; //Set the destruction zone size here. Any vehicles, buildings and some (if not all) epoch buildables in this zone will be destroyed radiation_zone = 500; //Set the radiation zone size here 1500 = 1500m. death_zone = 300; //Set the size of the zone people will die in as the nuke goes off. (200 = 200m) antiRadSkins = ["BanditW1_DZ","BanditW2_DZ","Bandit2_DZ","GUE_Soldier_MG_DZ","INS_Lopotev_DZ"]; //Set skins that will block blood loss in the radiation zone. laptop_Pos = [8094.72, 15617.8, 0]; //set laptop position Here x y z. laptop_Dir = -588.9624; //set the direction the laptop is facing here. laptop_Type = "Laptop_EP1"; //can edit to be anything if you like. // execVM "radiationZone\blowoutZone.sqf" // Radiation //Load in compiled functions call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; //Initilize the Variables (IMPORTANT: Must happen very early) progressLoadingScreen 0.1; call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf"; //Initilize the publicVariable event handlers progressLoadingScreen 0.2; call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf"; //Functions used by CLIENT for medical progressLoadingScreen 0.4; // call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf"; //Compile regular functions call compile preprocessFileLineNumbers "custom\compiles.sqf"; // ДебагМонитор progressLoadingScreen 0.5; fnc_usec_selfActions = compile preprocessFileLineNumbers "scripts\fn_selfActions.sqf"; call compile preprocessFileLineNumbers "server_traders.sqf"; //Compile trader configs progressLoadingScreen 1.0; "filmic" setToneMappingParams [0.153, 0.357, 0.231, 0.1573, 0.011, 3.750, 6, 4]; setToneMapping "Filmic"; playerstats = compile preprocessFileLineNumbers "custom\playerstats.sqf"; // ДебагМонитор if (isServer) then { //Compile vehicle configs call compile preprocessFileLineNumbers "\z\addons\dayz_server\missions\DayZ_Epoch_24.Napf\dynamic_vehicle.sqf"; // Add trader citys _nil = [] execVM "\z\addons\dayz_server\missions\DayZ_Epoch_24.Napf\mission.sqf"; _serverMonitor = [] execVM "\z\addons\dayz_code\system\server_monitor.sqf"; execVM "Nuke\server_Nuke.sqf"; //Nuke }; if (!isDedicated) then { //Conduct map operations 0 fadeSound 0; waitUntil {!isNil "dayz_loadScreenMsg"}; dayz_loadScreenMsg = (localize "STR_AUTHENTICATING"); //Custom Loadouts [] ExecVM "Scripts\loadout.sqf"; //Run the player monitor _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}]; _playerMonitor = [] execVM "\z\addons\dayz_code\system\player_monitor.sqf"; //anti Hack [] execVM "admintools\AdminList.sqf"; if ( !((getPlayerUID player) in AdminList) && !((getPlayerUID player) in ModList) && !((getPlayerUID player) in tempList)) then { [] execVM "\z\addons\dayz_code\system\antihack.sqf"; }; //Lights //[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf"; execVM "Nuke\Effects\effects.sqf"; //Nuke }; #include "\z\addons\dayz_code\system\BIS_Effects\init.sqf" #include "\z\addons\dayz_code\system\REsec.sqf" execVM "\z\addons\dayz_code\external\DynamicWeatherEffects.sqf"; //Start Dynamic Weather execVM "R3F_ARTY_AND_LOG\init.sqf"; // Буксировка и подъем [] execVM "admintools\Activate.sqf"; // Epoch Admin Tools [] execVM "service_point\service_point.sqf"; // АЗС [] execVM "Scripts\weedfarms.sqf"; // Фермы description.ext respawn = "BASE"; respawndelay = 5; onLoadMission="DayZ_Epoch Napf"; OnLoadIntro = "Welcome to Napf"; OnLoadIntroTime = False; OnLoadMissionTime = False; disabledAI = true; disableChannels[]={0,2,6}; enableItemsDropping=0; briefing = 0; debriefing = 0; onPauseScript = ""; loadScreen = "custom\logo.paa"; class Header { gameType = COOP; //DM, Team, Coop, ... minPlayers = 1; //min # of players the mission supports maxPlayers = 100; //Max # of players the mission supports }; aiKills = 1; diagRadio = 1; diagHit = 1; class RscText { type = 0; idc = -1; x = 0; y = 0; h = 0.037; w = 0.3; style = 0x100; font = Zeppelin32; SizeEx = 0.03921; colorText[] = {1,1,1,1}; colorBackground[] = {0, 0, 0, 0}; linespacing = 1; }; class RscPicture { access=0; type=0; idc=-1; style=48; colorBackground[]={0,0,0,0}; colorText[]={1,1,1,1}; font="TahomaB"; sizeEx=0; lineSpacing=0; text=""; }; class CfgSounds { sounds[] = {siren,nam,eve,puk}; class nam { name = "Siren1"; sound[] = {Nuke\sound\SirenLoopMono.ogg, db+20, 1.0}; titles[] = {""}; }; class eve { name = "Siren2"; sound[] = {Nuke\sound\Sirens.ogg, db+20, 1.0}; titles[] = {""}; }; class puk { name = "Siren3"; sound[] = {Nuke\sound\Sirens2.ogg, db+20, 1.0}; titles[] = {""}; }; class siren { name = "siren"; sound[] = {scripts\sirens\siren.ogg,0.5,1}; titles[] = {}; }; }; class RscLoadingText : RscText { style = 2; x = 0.323532; y = 0.666672; w = 0.352944; h = 0.039216; sizeEx = 0.03921; colorText[] = {0.543,0.5742,0.4102,1.0}; }; class RscProgress { x = 0.344; y = 0.619; w = 0.313726; h = 0.0261438; texture = "\ca\ui\data\loadscreen_progressbar_ca.paa"; colorFrame[] = {0,0,0,0}; colorBar[] = {1,1,1,1}; }; class RscProgressNotFreeze { idc = -1; type = 45; style = 0; x = 0.022059; y = 0.911772; w = 0.029412; h = 0.039216; texture = "#(argb,8,8,3)color(0,0,0,0)"; }; // // the loading screen itself // class DayZ_loadingScreen { idd = -1; duration = 10e10; fadein = 0; fadeout = 0; name = "loading screen"; class controlsBackground { class blackBG : RscText { x = safezoneX; y = safezoneY; w = safezoneW; h = safezoneH; text = ""; colorText[] = {0,0,0,0}; colorBackground[] = {0,0,0,1}; }; /* class nicePic : RscPicture { style = 48 + 0x800; // ST_PICTURE + ST_KEEP_ASPECT_RATIO x = safezoneX + safezoneW/2 - 0.25; y = safezoneY + safezoneH/2 - 0.2; w = 0.5; h = 0.4; text = "img\nicePic.paa"; }; */ }; class controls { class Title1 : RscLoadingText { text = "$STR_LOADING"; // "Loading" text in the middle of the screen }; class CA_Progress : RscProgress // progress bar, has to have idc 104 { idc = 104; type = 8; // CT_PROGRESS style = 0; // ST_SINGLE texture = "\ca\ui\data\loadscreen_progressbar_ca.paa"; }; class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse { idc = 103; }; class Name2: RscText // the text on the top-left { idc = 101; x = 0.05; y = 0.029412; w = 0.9; h = 0.04902; text = ""; sizeEx = 0.05; colorText[] = {0.543,0.5742,0.4102,1.0}; }; }; }; #include "admintools\dialog.hpp" #include "custom\extra_rc.hpp" fn_selfAction.sqf scriptName "Functions\misc\fn_selfActions.sqf"; /*********************************************************** ADD ACTIONS FOR SELF - Function - [] call fnc_usec_selfActions; ************************************************************/ private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered","_isModular","_ownerKeyName","_temp_keys_names"]; if (DZE_ActionInProgress) exitWith {}; // Do not allow if any script is running. _vehicle = vehicle player; _isPZombie = player isKindOf "PZombie_VB"; _inVehicle = (_vehicle != player); _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder); _mags = magazines player; // Krixes Self Bloodbag if ("ItemBloodbag" in _mags) then { hasBagItem = true; } else { hasBagItem = false;}; if((speed player <= 1) && hasBagItem && _canDo) then { if (s_player_selfBloodbag < 0) then { s_player_selfBloodbag = player addaction[("<t color="#c70000"">" + ("Залить себе кровь") +"</t>"),"Scripts\selfbloodbag\player_selfbloodbag.sqf","",5,false,true,"", "]; }; } else { player removeAction s_player_selfBloodbag; s_player_selfBloodbag = -1; }; _nearLight = nearestObject [player,"LitObject"]; _canPickLight = false; if (!isNull _nearLight) then { if (_nearLight distance player < 4) then { _canPickLight = isNull (_nearLight getVariable ["owner",objNull]); }; }; //Sirens _isCopcar = typeOf _vehicle in ["ArmoredSUV_PMC_DZE","SUV_Camo","SUV_Yellow","SUV_White","SUV_Silver","SUV_Red","SUV_Pink","SUV_Orange","SUV_Green","SUV_Charcoal","SUV_Blue","SUV_TK_CIV_EP1","SUV_TK_CIV_EP1_DZE1","SUV_TK_CIV_EP1_DZE2","SUV_TK_CIV_EP1_DZE3","SUV_TK_CIV_EP1_DZE4","LadaLM","LadaLM_DZE1","LadaLM_DZE2","LadaLM_DZE3","LadaLM_DZE4","policecar"]; if (_inVehicle and _isCopcar and (driver _vehicle == player)) then { dayz_addsirens = _vehicle; if (s_player_sirens_on < 0) then { s_player_sirens_on = dayz_addsirens addAction ["Вкл Сирену","scripts\sirens\sirens_on.sqf",dayz_addsirens,2,false,true,"",""]; s_player_sirens_off = dayz_addsirens addAction ["Выкл Сирену","scripts\sirens\sirens_off.sqf",dayz_addsirens,2,false,true,"",""]; }; } else { dayz_addsirens removeAction s_player_sirens_on; dayz_addsirens removeAction s_player_sirens_off; s_player_sirens_on = -1; s_player_sirens_off = -1; }; //Grab Flare if (_canPickLight and !dayz_hasLight and !_isPZombie) then { if (s_player_grabflare < 0) then { _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName"); s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true, "", ""]; s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true, "", ""]; }; } else { player removeAction s_player_grabflare; player removeAction s_player_removeflare; s_player_grabflare = -1; s_player_removeflare = -1; }; if(DZE_HaloJump) then { if(_inVehicle and (_vehicle isKindOf "Air") and ((getPos _vehicle select 2) > 400)) then { if (s_halo_action < 0) then { DZE_myHaloVehicle = _vehicle; s_halo_action = DZE_myHaloVehicle addAction ["HALO Jump","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true,"",""]; }; } else { DZE_myHaloVehicle removeAction s_halo_action; s_halo_action = -1; }; }; if (!DZE_ForceNameTagsOff) then { if (s_player_showname < 0 and !_isPZombie) then { if (DZE_ForceNameTags) then { s_player_showname = 1; player setVariable["DZE_display_name",true,true]; } else { s_player_showname = player addAction ["Display Name (Yes)", "\z\addons\dayz_code\actions\display_name.sqf",true, 0, true, false, "",""]; s_player_showname1 = player addAction ["Display Name (No)", "\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 ["Raise Horde", "\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 ["Night Vision", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"]; }; if (!isNull cursorTarget and (player distance cursorTarget < 3)) then { //Has some kind of target _isAnimal = cursorTarget isKindOf "Animal"; _isZombie = cursorTarget isKindOf "zZombie_base"; _isHarvested = cursorTarget getVariable["meatHarvested",false]; _isMan = cursorTarget isKindOf "Man"; // Pzombie Gut human corpse or animal if (!alive cursorTarget and (_isAnimal or _isMan) and !_isZombie and !_isHarvested) then { if (s_player_pzombiesfeed < 0) then { s_player_pzombiesfeed = player addAction ["Feed", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false, "",""]; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; }; // Increase distance only if AIR OR SHIP _allowedDistance = 4; _isAir = cursorTarget isKindOf "Air"; _isShip = cursorTarget isKindOf "Ship"; if(_isAir or _isShip) then { _allowedDistance = 6; }; if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance) and _canDo) then { //Has some kind of target // set cursortarget to variable _cursorTarget = cursorTarget; // get typeof cursortarget once _typeOfCursorTarget = typeOf _cursorTarget; // hintsilent _typeOfCursorTarget; _isVehicle = _cursorTarget isKindOf "AllVehicles"; _isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"]; _isnewstorage = _typeOfCursorTarget in DZE_isNewStorage; // get items and magazines only once _magazinesPlayer = magazines player; //boiled Water _hasbottleitem = "ItemWaterbottle" in _magazinesPlayer; _hastinitem = false; { if (_x in _magazinesPlayer) then { _hastinitem = true; }; } forEach boil_tin_cans; _hasFuelE = "ItemJerrycanEmpty" in _magazinesPlayer; _hasFuelBarrelE = "ItemFuelBarrelEmpty" in _magazinesPlayer; _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer; _itemsPlayer = items player; _temp_keys = []; _temp_keys_names = []; // find available keys _key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"]; { if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then { _ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid"); _ownerKeyName = getText(configFile >> "CfgWeapons" >> _x >> "displayName"); _temp_keys_names set [_ownerKeyId,_ownerKeyName]; _temp_keys set [count _temp_keys,str(_ownerKeyId)]; }; } forEach _itemsPlayer; _hasKnife = "ItemKnife" in _itemsPlayer; _hasToolbox = "ItemToolbox" in _itemsPlayer; _isMan = _cursorTarget isKindOf "Man"; _traderType = _typeOfCursorTarget; _ownerID = _cursorTarget getVariable ["CharacterID","0"]; _isAnimal = _cursorTarget isKindOf "Animal"; _isDog = (_cursorTarget isKindOf "DZ_Pastor" || _cursorTarget isKindOf "DZ_Fin"); _isZombie = _cursorTarget isKindOf "zZombie_base"; _isDestructable = _cursorTarget isKindOf "BuiltItems"; _isWreck = _typeOfCursorTarget in DZE_isWreck; _isWreckBuilding = _typeOfCursorTarget in DZE_isWreckBuilding; _isModular = _cursorTarget isKindOf "ModularItems"; _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; }; } forEach _rawmeat; _isFuel = false; if (_hasFuelE or _hasFuelBarrelE) then { { if(_cursorTarget isKindOf _x) exitWith {_isFuel = true;}; } forEach dayz_fuelsources; }; // diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID)); // logic vars _player_flipveh = false; _player_deleteBuild = false; _player_lockUnlock_crtl = false; if (_canDo && (speed player <= 1) && (_cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then { if (s_player_maintain_area < 0) then { s_player_maintain_area = player addAction ["<t color=""#ffffff"">Maintain Area</t>", "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; s_player_maintain_area_preview = player addAction ["<t color=""#ccffffff"">Maintain Area Preview</t>", "\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 or _isWreck or _isRemovable or _isWreckBuilding) then { if(_hasToolbox and "ItemCrowbar" in _itemsPlayer) then { _player_deleteBuild = true; }; }; //Allow owners to delete modulars if(_isModular and (dayz_characterID == _ownerID)) then { if(_hasToolbox and "ItemCrowbar" in _itemsPlayer) then { if(_cursorTarget in DZE_DoorsLocked) exitwith {cutText ["You must remove the lock to delete this item!", "PLAIN DOWN"]; }; _player_deleteBuild = true; }; }; // CURSOR TARGET VEHICLE if(_isVehicle) then { //flip vehicle small vehicles by your self and all other vehicles with help nearby if (!(canmove _cursorTarget) and (player distance _cursorTarget >= 2) and (count (crew _cursorTarget))== 0 and ((vectorUp _cursorTarget) select 2) < 0.5) then { _playersNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]); if(_isVehicletype or (_playersNear >= 2)) then { _player_flipveh = true; }; }; if(!_isMan and _ownerID != "0" and !(_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; }; // Allow Owner to lock and unlock vehicle if(_player_lockUnlock_crtl) then { if (s_player_lockUnlock_crtl < 0) then { _hasKey = _ownerID in _temp_keys; _oldOwner = (_ownerID == dayz_playerUID); if(locked _cursorTarget) then { if(_hasKey or _oldOwner) then { _Unlock = player addAction [format["Unlock %1",_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["Hotwire %1",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true, "", ""]; } else { _Unlock = player addAction ["<t color=#ff0000'>Vehicle Locked</t>", "",_cursorTarget, 2, true, true, "", "]; }; s_player_lockunlock set [count s_player_lockunlock,_Unlock]; s_player_lockUnlock_crtl = 1; }; } else { if(_hasKey or _oldOwner) then { _lock = player addAction [format["Lock %1",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true, "", ""]; s_player_lockunlock set [count s_player_lockunlock,_lock]; s_player_lockUnlock_crtl = 1; }; }; }; } else { {player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; }; if(DZE_AllowForceSave) then { //Allow player to force save if((_isVehicle or _isTent) and !_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 or _isTent or _isnewstorage) and _isAlive and !_isMan and !locked _cursorTarget) then { if (s_player_checkGear < 0) then { s_player_checkGear = player addAction [localize "STR_EPOCH_PLAYER_CARGO", "\z\addons\dayz_code\actions\cargocheck.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_checkGear; s_player_checkGear = -1; }; }; //flip vehicle small vehicles by your self and all other vehicles with help nearby if(_player_flipveh) then { if (s_player_flipveh < 0) then { s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_flipveh; s_player_flipveh = -1; }; //Allow player to fill jerrycan if((_hasFuelE or _hasFuelBarrelE) and _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 or _isZombie) and _hasKnife) then { _isHarvested = _cursorTarget getVariable["meatHarvested",false]; if (!_isHarvested) then { _player_butcher = true; }; }; // Study body if (_isMan and !_isZombie and !_isAnimal) then { _player_studybody = true; } } else { // unit alive // gear access on surrendered player if(_isMan and !_isZombie and !_isAnimal) then { _isSurrendered = _cursorTarget getVariable ["DZE_Surrendered",false]; if (_isSurrendered) then { _player_SurrenderedGear = true; }; }; }; // Human Gut animal or zombie if (_player_butcher) then { if (s_player_butcher < 0) then { if(_isZombie) then { s_player_butcher = player addAction ["Gut Zombie", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true, "", ""]; } else { s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true, "", ""]; }; }; } else { player removeAction s_player_butcher; s_player_butcher = -1; }; // Study Body if (_player_studybody) then { if (s_player_studybody < 0) then { s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_studybody; s_player_studybody = -1; }; //Put This Under //Study Body Section. if (cursorTarget == LAPTOP) then { _lap = cursorTarget; if (s_player_nuke < 0) then { s_player_nuke = player addAction [("<t color="#FF0000"">" + ("Set Off Nuke") +"</t>"),"Nuke\nuke_On.sqf",_lap, 5, false, true, "","]; }; } else { player removeAction s_player_nuke; s_player_nuke = -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 and _hastinitem) then { _player_boil = true; }; }; if (_player_SurrenderedGear) then { if (s_player_SurrenderedGear < 0) then { s_player_SurrenderedGear = player addAction ["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) and !(inflamed _cursorTarget) and (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 and (player distance _cursorTarget < 3)) then { if (_ownerID == dayz_characterID) then { if (s_player_packtent < 0) then { s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { if(("ItemJerrycan" in _magazinesPlayer) and ("ItemMatchbox_DZE" in weapons player)) then { if (s_player_packtent < 0) then { s_player_packtent = player addAction ["Destroy Tent", "\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) and _ownerID != "0" and (player distance _cursorTarget < 3)) then { if (s_player_unlockvault < 0) then { if(_typeOfCursorTarget in DZE_LockedStorage) then { if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then { _combi = player addAction [format["Open %1",_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["Unlock %1",_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 and _ownerID != dayz_playerUID) then { _combi = player addAction ["Re-Enter Combination", "\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} forEach s_player_combi;s_player_combi = []; s_player_unlockvault = -1; }; //Allow owner to pack vault if(_typeOfCursorTarget in DZE_UnLockedStorage and _ownerID != "0" and (player distance _cursorTarget < 3)) then { if (s_player_lockvault < 0) then { if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then { s_player_lockvault = player addAction [format["Lock %1",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""]; }; }; if (s_player_packvault < 0 and (_ownerID == dayz_combination or _ownerID == dayz_playerUID)) then { s_player_packvault = player addAction [format["<t color=#ff0000'>Pack %1</t>",_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 ["Recent Murders", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true, "",""]; }; } else { player removeAction s_player_information; s_player_information = -1; }; //Fuel Pump if(_typeOfCursorTarget in dayz_fuelpumparray) then { if (s_player_fuelauto < 0) then { // check if Generator_DZ is running within 30 meters _findNearestGens = nearestObjects [player, ["Generator_DZ"], 30]; _findNearestGen = []; { if (alive _x and (_x getVariable ["GeneratorRunning", false])) then { _findNearestGen set [(count _findNearestGen),_x]; }; } foreach _findNearestGens; _IsNearRunningGen = count (_findNearestGen); // show that pump needs power if no generator nearby. if(_IsNearRunningGen > 0) then { s_player_fuelauto = player addAction ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true, "",""]; } else { s_player_fuelauto = player addAction ["<t color=#ff0000'>Needs Power</t>", "",[], 0, false, true, "","]; }; }; } else { player removeAction s_player_fuelauto; s_player_fuelauto = -1; }; //Fuel Pump on truck if(_typeOfCursorTarget in DZE_fueltruckarray and 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 ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true, "",""]; } else { s_player_fuelauto2 = player addAction ["<t color=#ff0000'>Needs Power</t>", "",[], 0, false, true, "","]; }; }; } else { player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; }; // inplace upgrade tool if ((_cursorTarget isKindOf "ModularItems") or (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") or (_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["Upgrade %1",_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 or _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" or _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") and (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["Remove Lock from %1",_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" or _cursorTarget isKindOf "DZE_Housebase" or _typeOfCursorTarget in DZE_ExtraMaintain) and (damage _cursorTarget >= 0.1)) 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["Maintain %1",_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 ["Stop Generator", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""]; } else { // check if not filled and player has jerry. if((_cursorTarget getVariable ["GeneratorFilled", false])) then { s_player_fillgen = player addAction ["Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""]; } else { if("ItemJerrycan" in _magazinesPlayer) then { s_player_fillgen = player addAction ["Fill and Start Generator", "\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 ["Attach Straps", "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true, "",""]; } else { s_player_towing = player addAction ["Detach Straps", "\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 and _ownerID == dayz_characterID) then { if ((s_player_sleep < 0) and (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; }; _clothesTaken = cursorTarget getVariable["clothesTaken",false]; // Take clothes by Zabn @ BalotaBuddies.net if (_isMan and !_isAlive and !_isZombie and !_clothesTaken and !_isAnimal) then { if (s_player_clothes < 0) then { s_player_clothes = player addAction [("<t color='#0096ff'>")+("Take Clothes")+("</t>"), "scripts\player_takeClothes.sqf",cursorTarget, -10, false, true, "",""]; }; } else { player removeAction s_player_clothes; s_player_clothes = -1; }; //Repairing Vehicles if ((dayz_myCursorTarget != _cursorTarget) and _isVehicle and !_isMan and _hasToolbox and (damage _cursorTarget < 1) and !_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} forEach s_player_repairActions;s_player_repairActions = []; s_player_repair_crtl = -1; }; }; // All Traders if (_isMan and !_isPZombie and _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["Your humanity is too %1 this trader refuses to talk to you.",_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]; } forEach (_traderMenu select 1); // Database menu _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 99, true, false, "",""]; s_player_parts set [count s_player_parts,_buy]; // Add static metals trader options under sub menu _metals_trader = player addAction [localize "STR_EPOCH_PLAYER_301", "\z\addons\dayz_code\actions\trade_metals.sqf",["na"], 0, true, false, "",""]; s_player_parts set [count s_player_parts,_metals_trader]; }; s_player_parts_crtl = 1; }; } else { {player removeAction _x} forEach s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; }; if(dayz_tameDogs) then { //Dog if (_isDog and _isAlive and (_hasRawMeat) and _ownerID == "0" and 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 and _ownerID == dayz_characterID and _isAlive) then { _dogHandle = player getVariable ["dogID", 0]; if (s_player_feeddog < 0 and _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 and "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} forEach s_player_repairActions;s_player_repairActions = []; s_player_repair_crtl = -1; {player removeAction _x} forEach s_player_combi;s_player_combi = []; dayz_myCursorTarget = objNull; s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull]; {player removeAction _x} forEach s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; {player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; player removeAction s_player_checkGear; s_player_checkGear = -1; player removeAction s_player_SurrenderedGear; s_player_SurrenderedGear = -1; //Others player removeAction s_player_forceSave; s_player_forceSave = -1; player removeAction s_player_flipveh; s_player_flipveh = -1; player removeAction s_player_sleep; s_player_sleep = -1; player removeAction s_player_deleteBuild; s_player_deleteBuild = -1; player removeAction s_player_butcher; s_player_butcher = -1; player removeAction s_player_cook; s_player_cook = -1; player removeAction s_player_boil; s_player_boil = -1; player removeAction s_player_fireout; s_player_fireout = -1; player removeAction s_player_packtent; s_player_packtent = -1; player removeAction s_player_fillfuel; s_player_fillfuel = -1; player removeAction s_player_studybody; s_player_studybody = -1; //Dog player removeAction s_player_tamedog; s_player_tamedog = -1; player removeAction s_player_feeddog; s_player_feeddog = -1; player removeAction s_player_waterdog; s_player_waterdog = -1; player removeAction s_player_staydog; s_player_staydog = -1; player removeAction s_player_trackdog; s_player_trackdog = -1; player removeAction s_player_barkdog; s_player_barkdog = -1; player removeAction s_player_warndog; s_player_warndog = -1; player removeAction s_player_followdog; s_player_followdog = -1; // vault player removeAction s_player_unlockvault; s_player_unlockvault = -1; player removeAction s_player_packvault; s_player_packvault = -1; player removeAction s_player_lockvault; s_player_lockvault = -1; player removeAction s_player_information; s_player_information = -1; player removeAction s_player_fillgen; s_player_fillgen = -1; player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; player removeAction s_player_maint_build; s_player_maint_build = -1; player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; player removeAction s_player_towing; s_player_towing = -1; player removeAction s_player_fuelauto; s_player_fuelauto = -1; player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; }; //Dog actions on player self _dogHandle = player getVariable ["dogID", 0]; if (_dogHandle > 0) then { _dog = _dogHandle getFSMVariable "_dog"; _ownerID = "0"; if (!isNull cursorTarget) then { _ownerID = cursorTarget getVariable ["CharacterID","0"]; }; if (_canDo and !_inVehicle and alive _dog and _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; }; // ---------------------------------------SUICIDE START------------------------------------ private ["_handGun"]; _handGun = currentWeapon player; if ((_handGun in ["glock17_EP1","M9","M9SD","Makarov","MakarovSD","revolver_EP1","UZI_EP1","Sa61_EP1","Colt1911"]) && (player ammo _handGun > 0)) then { hasSecondary = true; } else { hasSecondary = false; }; if((speed player <= 1) && hasSecondary && _canDo) then { if (s_player_suicide < 0) then { s_player_suicide = player addaction[("<t color="#ff0000"">" + ("Покинуть этот мир") +"</t>"),"suicide.sqf",_handGun,0,false,true,"", "]; }; } else { player removeAction s_player_suicide; s_player_suicide = -1; }; // ---------------------------------------SUICIDE END------------------------------------ //Thanks for the help... Link to comment Share on other sites More sharing options...
psychosis Posted June 19, 2014 Report Share Posted June 19, 2014 seems to be all right .. try to put on a clean server .. and then add your own scripts .. Link to comment Share on other sites More sharing options...
HellWalker Posted June 20, 2014 Report Share Posted June 20, 2014 Hello, does not work for me, no menu on the laptop, I have misplaced my code in the fn_selfAction.sqf ? scriptName "Functions\misc\fn_selfActions.sqf"; /*********************************************************** ADD ACTIONS FOR SELF - Function - [] call fnc_usec_selfActions; ************************************************************/ private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered","_isModular","_ownerKeyName","_temp_keys_names","_hasAttached","_allowTow","_liftHeli","_found","_posL","_posC","_height","_liftHelis","_attached"]; if (DZE_ActionInProgress) exitWith {}; // Do not allow if any script is running. _vehicle = vehicle player; _isPZombie = player isKindOf "PZombie_VB"; _inVehicle = (_vehicle != player); _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder); //####----####----####---- Base Building 1.3 Start ----####----####----#### _currentSkin = typeOf(player); _hasToolbox = "ItemToolbox" in items player; _baseBuildAdmin = ((getPlayerUID player) in BBSuperAdminAccess); _baseBuildLAdmin = ((getPlayerUID player) in BBLowerAdminAccess); //Get objects that can't be targetted _flagBasePole = nearestObject [player, BBTypeOfFlag]; //All untargetable objects (except Base Flag), searches a 12 meter radius, you can add any new objects you put in the build list that can't be targetted _untargetableArray = nearestObjects [player, ["Land_CamoNetB_EAST","Land_CamoNetVar_EAST","Land_CamoNet_EAST","Land_CamoNetB_NATO","Land_CamoNetVar_NATO","Land_CamoNet_NATO","Land_Ind_IlluminantTower","Land_sara_hasic_zbroj","Land_A_Castle_Bergfrit","Land_A_Castle_Gate","Land_A_Castle_Bastion","Land_A_Castle_Wall1_20","Land_A_Castle_Wall1_20_Turn","Land_A_Castle_Wall2_30","HeliH","HeliHCivil","Land_Ind_Shed_01_main","RampConcrete","Land_Ind_Shed_01_end","Land_Ind_SawMillPen"],12];//The number at the end is the range to look for items, if you have issues with some items try increasing it by one or two at a time. _nearUntargetable = count _untargetableArray > 0; //Check if anything is in range _closestUntargetable = if (_nearUntargetable) then {_untargetableArray select 0};//Selects the closest returned item _nettingNames = ["Land_CamoNetB_EAST","Land_CamoNetVar_EAST","Land_CamoNet_EAST","Land_CamoNetB_NATO","Land_CamoNetVar_NATO","Land_CamoNet_NATO"]; //Used for menu options _castleNames = ["Land_A_Castle_Bergfrit","Land_A_Castle_Gate","Land_A_Castle_Bastion","Land_A_Castle_Wall1_20","Land_A_Castle_Wall1_20_Turn","Land_A_Castle_Wall2_30"]; _heliPadNames = ["HeliH","HeliHCivil"]; _roofNames = ["Land_Ind_Shed_01_main","Land_Ind_Shed_01_end","Land_Ind_SawMillPen"]; _buildingNames = [];//Can add generic building names here _displayName = "Base Build Object";//Default menu option name if none of the following match if (typeOf(_closestUntargetable) in _nettingNames) then {_displayName = "Netting";}; if (typeOf(_closestUntargetable) in _castleNames) then {_displayName = "Castle";}; if (typeOf(_closestUntargetable) in _heliPadNames) then {_displayName = "HeliPad";}; if (typeOf(_closestUntargetable) in _roofNames) then {_displayName = "Roof";}; if (typeOf(_closestUntargetable) in _buildingNames) then {_displayName = "Building";}; if (typeOf(_closestUntargetable) == "Land_Ind_IlluminantTower") then {_displayName = "Tower";}; // Check mags in player inventory to show build recipe menu _mags = magazines player; if ("ItemTankTrap" in _mags || "ItemSandbag" in _mags || "ItemWire" in _mags || "PartWoodPile" in _mags || "PartGeneric" in _mags || "equip_scrapelectronics" in _mags || "ItemCamoNet" in _mags || "equip_crate" in _mags || "equip_brick" in _mags || "equip_string" in _mags || "equip_duct_tape" in _mags) then { hasBuildItem = true; } else { hasBuildItem = false;}; //Build Recipe Menu Action if((speed player <= 1) && hasBuildItem && _canDo) then { if (s_player_recipeMenu < 0) then { s_player_recipeMenu = player addaction [("" + ("Build Recipes") +""),"buildRecipeBook\build_recipe_dialog.sqf","",5,false,true,"",""]; }; if (s_player_buildHelp < 0) then { s_player_buildHelp = player addaction [("" + ("Base Building Help") +""),"dayz_code\actions\build_help.sqf","",5,false,true,"",""]; }; if (s_player_showFlags < 0) then { s_player_showFlags = player addAction [("" + ("Show My Flags") +""),"dayz_code\actions\show_flag_markers.sqf","",5,false,true,"",""]; }; } else { player removeAction s_player_buildHelp; s_player_buildHelp = -1; player removeAction s_player_recipeMenu; s_player_recipeMenu = -1; player removeAction s_player_showFlags; s_player_showFlags = -1; }; //Add in custom eventhandlers or whatever on skin change if (_currentSkin != globalSkin) then { globalSkin = _currentSkin; player removeMPEventHandler ["MPHit", 0]; player removeEventHandler ["AnimChanged", 0]; ehWall = player addEventHandler ["AnimChanged", { player call antiWall; }]; empHit = player addMPEventHandler ["MPHit", {_this spawn fnc_plyrHit;}]; }; //General Untargetable Objects if((isNull cursorTarget) && _canDo && !remProc && !procBuild && _nearUntargetable) then { _ownerUnT = _closestUntargetable getVariable ["characterID", "0"]; //Checks owner IDs of untargetable objects, simply to avoid RPT spam with map objects _unTauthUID = _closestUntargetable getVariable ["AuthorizedUID", []]; //Gets master AuthUID from untargetable objects _unTauthGateCodes = if ((_ownerUnT != "0") && (count _unTauthUID > 0)) then {((getPlayerUID player) in (_unTauthUID select 1));}; //Checks for player access to untargetable objects _adminText = if (!_unTauthGateCodes && _baseBuildAdmin) then {"ADMIN:";}else{"";};//Let admins know they aren't registered if (_unTauthGateCodes || _baseBuildAdmin) then { if (s_player_camoBaseOwnerAccess < 0) then { s_player_camoBaseOwnerAccess = player addAction [format["%2%1: Give all base owners (from flagpole) access",_displayName,_adminText], "dayz_code\external\keypad\fnc_keyPad\functions\give_gateAccess.sqf",_closestUntargetable, 1, false, true, "", ""]; }; if (s_player_addCamoAuth < 0) then { s_player_addCamoAuth = player addAction [format["%2%1: Add Player UIDs",_displayName,_adminText], "dayz_code\external\keypad\fnc_keyPad\enterCodeAdd.sqf",_closestUntargetable, 1, false, true, "", ""]; }; if (s_player_removeCamoAuth < 0) then { s_player_removeCamoAuth = player addAction [format[("" + ("%2%1: Remove Player UIDs") +""),_displayName,_adminText], "dayz_code\external\keypad\fnc_keyPad\enterCodeRemove.sqf",_closestUntargetable, 1, false, true, "", ""]; }; }; if (_ownerUnT != "0" && (_hasToolbox || _baseBuildAdmin || _baseBuildLAdmin)) then { if (s_player_deleteCamoNet < 0) then { s_player_deleteCamoNet = player addaction [format[("" + ("Remove %1") +""),_displayName,_adminText],"dayz_code\actions\player_remove.sqf",_closestUntargetable,1,false,true,"",""]; }; }; } else { player removeAction s_player_camoBaseOwnerAccess; s_player_camoBaseOwnerAccess = -1; player removeAction s_player_addCamoAuth; s_player_addCamoAuth = -1; player removeAction s_player_removeCamoAuth; s_player_removeCamoAuth = -1; player removeAction s_player_deleteCamoNet; s_player_deleteCamoNet = -1; }; // FlagPole Access (more reliable than cursortarget) if ((isNull cursorTarget) && _canDo && !remProc && !procBuild && (_flagBasePole distance player < 10)) then { _ownerFlag = _flagBasePole getVariable ["characterID", "0"]; //Checks owner IDs of flags, simply to avoid RPT spam with map objects _flagAuthUID = _flagBasePole getVariable ["AuthorizedUID", []]; //Gets master AuthUID from _flagAuthGateCodes = if ((_ownerFlag != "0") && (count _flagAuthUID > 0)) then {((getPlayerUID player) in (_flagAuthUID select 1));}; //Checks if player has access to flag _adminText = if (!_flagAuthGateCodes && _baseBuildAdmin) then {"ADMIN:";}else{"";};//Let admins know they aren't registered if (_flagAuthGateCodes || _baseBuildAdmin) then { if (s_player_addFlagAuth < 0) then { s_player_addFlagAuth = player addAction [format["%1FlagPole: Add Player UIDs for Base Building Access",_adminText], "dayz_code\external\keypad\fnc_keyPad\enterCodeAdd.sqf", _flagBasePole, 1, false, true, "", ""]; }; if (s_player_removeFlagAuth < 0) then { s_player_removeFlagAuth = player addaction [format[("" + ("%1FlagPole: Remove Player UIDs") +""),_adminText],"dayz_code\external\keypad\fnc_keyPad\enterCodeRemove.sqf", _flagBasePole, 1, false, true, "", ""]; }; if (s_player_removeFlag < 0) then { s_player_removeFlag = player addaction [format[("" + ("%1Permanently Remove Flag (restrictions apply)") +""),_adminText],"dayz_code\actions\player_remove.sqf", _flagBasePole,1,false,true,"",""]; }; if (bbAIGuards == 1) then { if (s_player_guardToggle < 0) then { s_player_guardToggle = player addaction [format[("" + ("%1Toggle Guards to Kill all non-base owners (default on)") +""),_adminText],"dayz_code\actions\toggle_base_guards.sqf",_flagBasePole,1,false,true,"",""]; }; }; }; } else { player removeAction s_player_removeFlag; s_player_removeFlag = -1; player removeAction s_player_addFlagAuth; s_player_addFlagAuth = -1; player removeAction s_player_removeFlagAuth; s_player_removeFlagAuth = -1; player removeAction s_player_guardToggle; s_player_guardToggle = -1; }; //####----####----####---- Base Building 1.3 END ----####----####----#### _nearLight = nearestObject [player,"LitObject"]; _canPickLight = false; if (!isNull _nearLight) then { if (_nearLight distance player < 4) then { _canPickLight = isNull (_nearLight getVariable ["owner",objNull]); }; }; //Grab Flare if (_canPickLight and !dayz_hasLight and !_isPZombie) then { if (s_player_grabflare < 0) then { _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName"); s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true, "", ""]; s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true, "", ""]; }; } else { player removeAction s_player_grabflare; player removeAction s_player_removeflare; s_player_grabflare = -1; s_player_removeflare = -1; }; //====================MV22+SUV Animation==================== if (_inVehicle and (_vehicle isKindOf "MV22") and !(isEngineOn _vehicle)) then { if (mv22_fold < 0) then { themv22 = _vehicle; mv22_fold = themv22 addAction ["Fold","Scripts\animate\fold.sqf","",5,false,true]; mv22_unfold = themv22 addAction ["UnFold","Scripts\animate\unfold.sqf","",5,false,true]; }; } else { themv22 removeAction mv22_fold; mv22_fold = -1; themv22 removeAction mv22_unfold; mv22_unfold = -1; }; if (_inVehicle and (_vehicle isKindOf "ArmoredSUV_Base_PMC")) then { if (suv_close < 0) then { thesuv = _vehicle; suv_close = thesuv addAction ["Close Hatch","Scripts\animate\close.sqf","",5,false,true]; suv_open = thesuv addAction ["Open Hatch","Scripts\animate\open.sqf","",5,false,true]; }; } else { thesuv removeAction suv_close; suv_close = -1; thesuv removeAction suv_open; suv_open = -1; }; //====================MV22+SUV Animation==================== if (DZE_HeliLift) then { _hasAttached = _vehicle getVariable["hasAttached",false]; if(_inVehicle and (_vehicle isKindOf "Air") and ((getPos _vehicle select 2) < 30) and (speed _vehicle < 5) and (typeName _hasAttached == "OBJECT")) then { if (s_player_heli_detach < 0) then { dayz_myLiftVehicle = _vehicle; s_player_heli_detach = dayz_myLiftVehicle addAction ["Detach Vehicle","\z\addons\dayz_code\actions\player_heliDetach.sqf",[dayz_myLiftVehicle,_hasAttached],2,false,true,"",""]; }; } else { dayz_myLiftVehicle removeAction s_player_heli_detach; s_player_heli_detach = -1; }; }; // ---------------------------------------Krixes Self Bloodbag Start------------------------------------ _mags = magazines player; // Krixes Self Bloodbag if ("ItemBloodbag" in _mags) then { hasBagItem = true; } else { hasBagItem = false;}; if((speed player <= 1) && hasBagItem && _canDo) then { if (s_player_selfBloodbag < 0) then { s_player_selfBloodbag = player addaction[("" + ("Self Bloodbag") +""),"Scripts\player_selfbloodbag.sqf","",5,false,true,"", ""]; }; } else { player removeAction s_player_selfBloodbag; s_player_selfBloodbag = -1; }; // ---------------------------------------Krixes Self Bloodbag End------------------------------------ if(DZE_HaloJump) then { if(_inVehicle and (_vehicle isKindOf "Air") and ((getPos _vehicle select 2) > 400)) then { if (s_halo_action < 0) then { DZE_myHaloVehicle = _vehicle; s_halo_action = DZE_myHaloVehicle addAction [localize "STR_EPOCH_ACTIONS_HALO","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true,"",""]; }; } else { DZE_myHaloVehicle removeAction s_halo_action; s_halo_action = -1; }; }; if (!DZE_ForceNameTagsOff) then { if (s_player_showname < 0 and !_isPZombie) then { if (DZE_ForceNameTags) then { s_player_showname = 1; player setVariable["DZE_display_name",true,true]; } else { s_player_showname = player addAction [localize "STR_EPOCH_ACTIONS_NAMEYES", "\z\addons\dayz_code\actions\display_name.sqf",true, 0, true, false, "",""]; s_player_showname1 = player addAction [localize "STR_EPOCH_ACTIONS_NAMENO", "\z\addons\dayz_code\actions\display_name.sqf",false, 0, true, false, "",""]; }; }; }; if(_isPZombie) then { if (s_player_callzombies < 0) then { s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false, "",""]; }; if (DZE_PZATTACK) then { call pz_attack; DZE_PZATTACK = false; }; if (s_player_pzombiesvision < 0) then { s_player_pzombiesvision = player addAction [localize "STR_EPOCH_ACTIONS_NIGHTVIS", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"]; }; if (!isNull cursorTarget and (player distance cursorTarget < 3)) then { //Has some kind of target _isAnimal = cursorTarget isKindOf "Animal"; _isZombie = cursorTarget isKindOf "zZombie_base"; _isHarvested = cursorTarget getVariable["meatHarvested",false]; _isMan = cursorTarget isKindOf "Man"; // Pzombie Gut human corpse or animal if (!alive cursorTarget and (_isAnimal or _isMan) and !_isZombie and !_isHarvested) then { if (s_player_pzombiesfeed < 0) then { s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false, "",""]; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; }; // Increase distance only if AIR OR SHIP _allowedDistance = 4; _isAir = cursorTarget isKindOf "Air"; _isShip = cursorTarget isKindOf "Ship"; if(_isAir or _isShip) then { _allowedDistance = 8; }; if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance) and _canDo) then { //Has some kind of target // set cursortarget to variable _cursorTarget = cursorTarget; // get typeof cursortarget once _typeOfCursorTarget = typeOf _cursorTarget; // hintsilent _typeOfCursorTarget; _isVehicle = _cursorTarget isKindOf "AllVehicles"; _isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"]; _isnewstorage = _typeOfCursorTarget in DZE_isNewStorage; // get items and magazines only once _magazinesPlayer = magazines player; //boiled Water _hasbottleitem = "ItemWaterbottle" in _magazinesPlayer; _hastinitem = false; { if (_x in _magazinesPlayer) then { _hastinitem = true; }; } forEach boil_tin_cans; _hasFuelE = "ItemJerrycanEmpty" in _magazinesPlayer; _hasFuelBarrelE = "ItemFuelBarrelEmpty" in _magazinesPlayer; _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer; _itemsPlayer = items player; _temp_keys = []; _temp_keys_names = []; // find available keys _key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"]; { if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then { _ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid"); _ownerKeyName = getText(configFile >> "CfgWeapons" >> _x >> "displayName"); _temp_keys_names set [_ownerKeyId,_ownerKeyName]; _temp_keys set [count _temp_keys,str(_ownerKeyId)]; }; } forEach _itemsPlayer; _hasKnife = "ItemKnife" in _itemsPlayer; _hasToolbox = "ItemToolbox" in _itemsPlayer; _isMan = _cursorTarget isKindOf "Man"; _traderType = _typeOfCursorTarget; _ownerID = _cursorTarget getVariable ["CharacterID","0"]; _isAnimal = _cursorTarget isKindOf "Animal"; _isDog = (_cursorTarget isKindOf "DZ_Pastor" || _cursorTarget isKindOf "DZ_Fin"); _isZombie = _cursorTarget isKindOf "zZombie_base"; _isDestructable = _cursorTarget isKindOf "BuiltItems"; _isWreck = _typeOfCursorTarget in DZE_isWreck; _isWreckBuilding = _typeOfCursorTarget in DZE_isWreckBuilding; _isModular = _cursorTarget isKindOf "ModularItems"; _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; }; } forEach _rawmeat; _isFuel = false; if (_hasFuelE or _hasFuelBarrelE) then { { if(_cursorTarget isKindOf _x) exitWith {_isFuel = true;}; } forEach dayz_fuelsources; }; // diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID)); // logic vars _player_flipveh = false; _player_deleteBuild = false; _player_lockUnlock_crtl = false; if (_canDo && (speed player <= 1) && (_cursorTarget isKindOf "Plastic_Pole_EP1_DZ")) then { if (s_player_maintain_area < 0) then { s_player_maintain_area = player addAction [format["%1",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; s_player_maintain_area_preview = player addAction [format["%1",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 or _isWreck or _isRemovable or _isWreckBuilding) then { if(_hasToolbox and "ItemCrowbar" in _itemsPlayer) then { _player_deleteBuild = true; }; }; //Allow owners to delete modulars if(_isModular and (dayz_characterID == _ownerID)) then { if(_hasToolbox and "ItemCrowbar" in _itemsPlayer) then { if(_cursorTarget in DZE_DoorsLocked) exitwith {cutText ["You must remove the lock to delete this item!", "PLAIN DOWN"]; }; _player_deleteBuild = true; }; }; // CURSOR TARGET VEHICLE if(_isVehicle) then { //flip vehicle small vehicles by your self and all other vehicles with help nearby if (!(canmove _cursorTarget) and (player distance _cursorTarget >= 2) and (count (crew _cursorTarget))== 0 and ((vectorUp _cursorTarget) select 2) < 0.5) then { _playersNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]); if(_isVehicletype or (_playersNear >= 2)) then { _player_flipveh = true; }; }; if(!_isMan and _ownerID != "0" and !(_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; }; } forEach 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 = getPos _x; _posC = getPos _cursorTarget; _height = (_posL select 2) - (_posC select 2); _hasAttached = _x getVariable["hasAttached",false]; if(_height < 15 and _height > 5 and (typeName _hasAttached != "OBJECT")) then { if(((abs((_posL select 0) - (_posC select 0))) < 10) and ((abs((_posL select 1) - (_posC select 1))) < 10)) then { _liftHeli = _x; _found = true; }; }; }; } forEach _liftHelis; }; //diag_log format["HELI: %1 TARGET: %2",_found,_cursorTarget]; _attached = _cursorTarget getVariable["attached",false]; if(_found and _allowTow and _canDo and !locked _cursorTarget and !_isPZombie and (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; }; }; //####----####----####---- Base Building 1.3 Start ----####----####----#### _lever = cursorTarget; _codePanels = ["Infostand_2_EP1", "Fence_corrugated_plate"]; _baseBuildAdmin = ((getPlayerUID player) in BBSuperAdminAccess); _baseBuildLAdmin = ((getPlayerUID player) in BBLowerAdminAccess); _authorizedUID = cursorTarget getVariable ["AuthorizedUID", []]; _authorizedGateCodes = if ((_ownerID != "0") && (count _authorizedUID > 0)) then {((getPlayerUID player) in (_authorizedUID select 1));}; //Check it's not a map object/unbuilt object to avoid RPT spam _adminText = if (!_authorizedGateCodes && _baseBuildAdmin) then {"ADMIN:";}else{"";};//Let admins know they aren't registered //Let players check the UID of other players when near their flags if (_isMan && (_flagBasePole distance player < 10)) then { _ownerFlag = _flagBasePole getVariable ["characterID", "0"]; //Checks owner IDs of flags, simply to avoid RPT spam with map objects _flagAuthUID = _flagBasePole getVariable ["AuthorizedUID", []]; //Gets master AuthUID from _flagAuthGateCodes = if (_ownerFlag != "0") then {((getPlayerUID player) in (_flagAuthUID select 1));}; //Checks if player has access to flag _adminText = if (!_flagAuthGateCodes && _baseBuildAdmin) then {"ADMIN:";}else{"";};//Let admins know they aren't registered if (_flagAuthGateCodes || _baseBuildAdmin) then { if (s_player_getTargetUID < 0) then { s_player_getTargetUID = player addAction [format["%1Get UID of Targeted Player",_adminText], "dayz_code\actions\get_player_UID.sqf", cursorTarget, 4, false, true, "", ""]; }; }; } else { player removeAction s_player_getTargetUID; s_player_getTargetUID = -1; }; // Operate Gates AND Add Authorization to Gate if (((typeOf(cursortarget) in _codePanels) && (_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild) || ((typeOf(cursortarget) in allbuildables_class) && (_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild)) then { _gates = nearestObjects [_lever, ["Concrete_Wall_EP1"], 15]; if (s_player_gateActions < 0) then { if (typeOf(cursortarget) == "Fence_corrugated_plate") then { s_player_gateActions = player addAction [format[("" + ("%1Operate Single Metal Gate") +""),_adminText], "dayz_code\external\keypad\fnc_keyPad\operate_gates.sqf", _lever, 6, true, true, "", ""]; } else { if (typeOf(cursortarget) == "Infostand_2_EP1") then { if (count _gates > 0) then { s_player_gateActions = player addAction [format[("" + ("%1Operate Nearest Concrete Gates Within 15 meters") +""),_adminText], "dayz_code\external\keypad\fnc_keyPad\operate_gates.sqf", _lever, 6, true, true, "", ""]; } else {s_player_gateActions = player addAction [format[("" + ("%1No gates around to operate") +""),_adminText], "", _lever, 6, false, true, "", ""];}; }; }; }; if (s_player_giveBaseOwnerAccess < 0) then { s_player_giveBaseOwnerAccess = player addAction [format["%1Give all base owners (from flagpole) access to object/gate",_adminText], "dayz_code\external\keypad\fnc_keyPad\functions\give_gateAccess.sqf", _lever, 1, false, true, "", ""]; }; if (s_player_addGateAuthorization < 0) then { s_player_addGateAuthorization = player addAction [format["%1Add Player UIDs to Grant Gate/Object Access",_adminText], "dayz_code\external\keypad\fnc_keyPad\enterCodeAdd.sqf", _lever, 1, false, true, "", ""]; }; if (s_player_removeGateAuthorization < 0) then { s_player_removeGateAuthorization = player addaction [format[("" + ("%1Remove Player UIDs from Gate/Object Access") +""),_adminText],"dayz_code\external\keypad\fnc_keyPad\enterCodeRemove.sqf", _lever, 1, false, true, "", ""]; }; } else { player removeAction s_player_giveBaseOwnerAccess; s_player_giveBaseOwnerAccess = -1; player removeAction s_player_gateActions; s_player_gateActions = -1; player removeAction s_player_addGateAuthorization; s_player_addGateAuthorization = -1; player removeAction s_player_removeGateAuthorization; s_player_removeGateAuthorization = -1; }; // Operate ROOFS if ((typeOf(cursortarget) in _codePanels) && (_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild) then { _gates = nearestObjects [_lever, ["Land_Ind_Shed_01_main","Land_Ind_Shed_01_end","Land_Ind_SawMillPen"], BBFlagRadius]; if (s_player_roofToggle < 0) then { if (typeOf(cursortarget) == "Infostand_2_EP1") then { if (count _gates > 0) then { s_player_roofToggle = player addAction [format[("" + ("%1Operate Roof Covers") +""),_adminText], "dayz_code\external\keypad\fnc_keyPad\operate_roofs.sqf", _lever, 6, false, true, "", ""]; } else {s_player_roofToggle = player addAction [format[("" + ("%1No roof covers around to operate") +""),_adminText], "", _lever, 6, false, true, "", ""];}; }; }; } else { player removeAction s_player_roofToggle; s_player_roofToggle = -1; }; // Remove Object if((typeOf(cursortarget) in allremovables)&& (_ownerID != "0") && (_hasToolbox || _baseBuildAdmin || _baseBuildLAdmin) && _canDo && !remProc && !procBuild && !removeObject) then { if (s_player_deleteBuild < 0) then { s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text], "dayz_code\actions\player_remove.sqf",cursorTarget, 1, false, true, "", ""]; }; } else { player removeAction s_player_deleteBuild; s_player_deleteBuild = -1; }; // Disarm Booby Trap Action if((cursortarget iskindof "Grave" && cursortarget distance player < 2.5) && (_ownerID != "0") && (_hasToolbox || _baseBuildAdmin || _baseBuildLAdmin) && _canDo && !remProc && !procBuild) then { if (s_player_disarmBomb < 0) then { s_player_disarmBomb = player addaction [format[("" + ("%1Disarm Bomb") +""),_adminText],"dayz_code\actions\player_disarmBomb.sqf","",1,true,true,"", ""]; }; } else { player removeAction s_player_disarmBomb; s_player_disarmBomb = -1; }; //Light Menu if((typeOf(cursortarget) == "Infostand_2_EP1") && (_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild) then { _nearestFlags = nearestObjects [_lever, [bBTypeOfFlag], BBFlagRadius]; _baseFlag = _nearestFlags select 0; _barrels = nearestObjects [_baseFlag, ["Land_Fire_Barrel"], BBFlagRadius];//Makes sure there are barrels in range of the flag _towers = nearestObjects [_baseFlag, ["Land_Ind_IlluminantTower"], BBFlagRadius];//Makes sure there are towers in range of the flag if (count _barrels > 0 || count _towers >0) then { if (s_player_bbLightMenu < 0) then { s_player_bbLightMenu = player addAction [format[("" + ("%1Light Options") +""),_adminText], "dayz_code\actions\lights\lightMenu.sqf", _lever, 5, false, false, "", ""]; }; } else { if (s_player_bbLightMenu < 0) then { s_player_bbLightMenu = player addAction [format[("" + ("%1No Barrel/Tower Lights in Range of Flag") +""),_adminText], "", _lever, 5, false, true, "", ""]; }; }; } else { player removeAction s_player_bbLightMenu; s_player_bbLightMenu = -1; }; //Zombie Shield if ((typeOf(cursorTarget) == BBTypeOfZShield) &&(_authorizedGateCodes || _baseBuildAdmin) && !remProc && !procBuild) then { if (s_player_giveBaseOwnerAccess > 0) then { //Temp fix to prevent players having more than the max allowed number of shield gens player removeAction s_player_giveBaseOwnerAccess; s_player_giveBaseOwnerAccess = -1; }; if (BBEnableZShield == 1) then { if (s_player_bbZombieShield_on < 0) then { s_player_bbZombieShield_on = player addAction [format[("" + ("%1Zombie Shield On") +""),_adminText], "dayz_code\actions\shield\bbZombieShield.sqf", [_lever, true], 6, true, true, "", ""]; }; if (s_player_bbZombieShield_off < 0) then { s_player_bbZombieShield_off = player addAction [format[("" + ("%1Zombie Shield Off") +""),_adminText], "dayz_code\actions\shield\bbZombieShield.sqf", [_lever, false], 6, false, true, "", ""]; }; } else { if (s_player_bbZombieShield_on < 0) then { s_player_bbZombieShield_on = player addAction [format[("" + ("%1Zombie Shields are disabled on this server") +""),_adminText], "", [], 6, false, true, "", ""]; }; player removeAction s_player_bbZombieShield_off; s_player_bbZombieShield_off = -1; }; } else { player removeAction s_player_bbZombieShield_on; s_player_bbZombieShield_on = -1; player removeAction s_player_bbZombieShield_off; s_player_bbZombieShield_off = -1; }; //####----####----####---- Base Building 1.3 End ----####----####----#### // Allow Owner to lock and unlock vehicle if(_player_lockUnlock_crtl) then { if (s_player_lockUnlock_crtl < 0) then { _hasKey = _ownerID in _temp_keys; _oldOwner = (_ownerID == dayz_playerUID); if(locked _cursorTarget) then { if(_hasKey or _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["%1",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 or _oldOwner) then { _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true, "", ""]; s_player_lockunlock set [count s_player_lockunlock,_lock]; s_player_lockUnlock_crtl = 1; }; }; }; } else { {player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; }; if(DZE_AllowForceSave) then { //Allow player to force save if((_isVehicle or _isTent) and !_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 or _isTent or _isnewstorage) and _isAlive and !_isMan and !locked _cursorTarget) then { if (s_player_checkGear < 0) then { s_player_checkGear = player addAction [localize "STR_EPOCH_PLAYER_CARGO", "\z\addons\dayz_code\actions\cargocheck.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_checkGear; s_player_checkGear = -1; }; }; //flip vehicle small vehicles by your self and all other vehicles with help nearby if(_player_flipveh) then { if (s_player_flipveh < 0) then { s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget, 1, true, true, "", ""]; }; } else { player removeAction s_player_flipveh; s_player_flipveh = -1; }; //Allow player to fill jerrycan if((_hasFuelE or _hasFuelBarrelE) and _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 or _isZombie) and _hasKnife) then { _isHarvested = _cursorTarget getVariable["meatHarvested",false]; if (!_isHarvested) then { _player_butcher = true; }; }; // Study body if (_isMan and !_isZombie and !_isAnimal) then { _player_studybody = true; } } else { // unit alive // gear access on surrendered player if(_isMan and !_isZombie and !_isAnimal) then { _isSurrendered = _cursorTarget getVariable ["DZE_Surrendered",false]; if (_isSurrendered) then { _player_SurrenderedGear = true; }; }; }; // Human Gut animal or zombie if (_player_butcher) then { if (s_player_butcher < 0) then { if(_isZombie) then { s_player_butcher = player addAction [localize "STR_EPOCH_ACTIONS_GUTZOM", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 0, true, true, "", ""]; } else { s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true, "", ""]; }; }; } else { player removeAction s_player_butcher; s_player_butcher = -1; }; // Study Body if (_player_studybody) then { if (s_player_studybody < 0) then { s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_studybody; s_player_studybody = -1; }; //====================Nuke Bombe==================== if (cursorTarget == LAPTOP) then { _lap = cursorTarget; if (s_player_nuke < 0) then { s_player_nuke = player addAction [("" + ("Set Off Nuke") +""),"Nuke\nuke_On.sqf",_lap, 5, false, true, "",""]; }; } else { player removeAction s_player_nuke; s_player_nuke = -1; }; //====================Nuke Bombe==================== // 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 and _hastinitem) then { _player_boil = true; }; }; if (_player_SurrenderedGear) then { if (s_player_SurrenderedGear < 0) then { s_player_SurrenderedGear = player addAction [localize "STR_EPOCH_ACTION_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) and !(inflamed _cursorTarget) and (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 and (player distance _cursorTarget < 3)) then { if (_ownerID == dayz_characterID) then { if (s_player_packtent < 0) then { s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { if(("ItemJerrycan" in _magazinesPlayer) and ("ItemMatchbox_DZE" in weapons player)) then { if (s_player_packtent < 0) then { s_player_packtent = player addAction [localize "STR_EPOCH_ACTIONS_DESTROYTENT", "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""]; }; }; }; } else { player removeAction s_player_packtent; s_player_packtent = -1; }; //Allow owner to unlock vault if((_typeOfCursorTarget in DZE_LockableStorage) and _ownerID != "0" and (player distance _cursorTarget < 3)) then { if (s_player_unlockvault < 0) then { if(_typeOfCursorTarget in DZE_LockedStorage) then { if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then { _combi = player addAction [format["Open %1",_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["Unlock %1",_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 and _ownerID != dayz_playerUID) then { _combi = player addAction ["Re-Enter Combination", "\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} forEach s_player_combi;s_player_combi = []; s_player_unlockvault = -1; }; //Allow owner to pack vault if(_typeOfCursorTarget in DZE_UnLockedStorage and _ownerID != "0" and (player distance _cursorTarget < 3)) then { if (s_player_lockvault < 0) then { if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then { s_player_lockvault = player addAction [format["Lock %1",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""]; }; }; if (s_player_packvault < 0 and (_ownerID == dayz_combination or _ownerID == dayz_playerUID)) then { s_player_packvault = player addAction [format["Pack %1",_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 ["Recent Murders", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true, "",""]; }; } else { player removeAction s_player_information; s_player_information = -1; }; //Fuel Pump if(_typeOfCursorTarget in dayz_fuelpumparray) then { if (s_player_fuelauto < 0) then { // check if Generator_DZ is running within 30 meters _findNearestGens = nearestObjects [player, ["Generator_DZ"], 30]; _findNearestGen = []; { if (alive _x and (_x getVariable ["GeneratorRunning", false])) then { _findNearestGen set [(count _findNearestGen),_x]; }; } foreach _findNearestGens; _IsNearRunningGen = count (_findNearestGen); // show that pump needs power if no generator nearby. if(_IsNearRunningGen > 0) then { s_player_fuelauto = player addAction ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true, "",""]; } else { s_player_fuelauto = player addAction ["Needs Power", "",[], 0, false, true, "",""]; }; }; } else { player removeAction s_player_fuelauto; s_player_fuelauto = -1; }; //Fuel Pump on truck if(_typeOfCursorTarget in DZE_fueltruckarray and 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 ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true, "",""]; } else { s_player_fuelauto2 = player addAction ["Needs Power", "",[], 0, false, true, "",""]; }; }; } else { player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; }; // inplace upgrade tool if ((_cursorTarget isKindOf "ModularItems") or (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") or (_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["Upgrade %1",_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 or _cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" or _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base") and (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["Remove Lock from %1",_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" or _cursorTarget isKindOf "DZE_Housebase" or _typeOfCursorTarget in DZE_ExtraMaintain) and (damage _cursorTarget >= 0.1)) 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["Maintain %1",_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 ["Stop Generator", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""]; } else { // check if not filled and player has jerry. if((_cursorTarget getVariable ["GeneratorFilled", false])) then { s_player_fillgen = player addAction ["Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""]; } else { if("ItemJerrycan" in _magazinesPlayer) then { s_player_fillgen = player addAction ["Fill and Start Generator", "\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 ["Attach Straps", "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true, "",""]; } else { s_player_towing = player addAction ["Detach Straps", "\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 and _ownerID == dayz_characterID) then { if ((s_player_sleep < 0) and (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; }; //------------Take clothes------------ _clothesTaken = cursorTarget getVariable["clothesTaken",false]; if (_isMan and !_isAlive and !_isAnimal and !_clothesTaken) then { if (s_player_clothes < 0) then { s_player_clothes = player addAction [("")+("Take Clothes")+(""), "Scripts\takeclothes.sqf",cursorTarget, -10, false, true]; }; } else { player removeAction s_player_clothes; s_player_clothes = -1; }; //------------Take clothes------------ //Repairing Vehicles if ((dayz_myCursorTarget != _cursorTarget) and _isVehicle and !_isMan and _hasToolbox and (damage _cursorTarget < 1) and !_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} forEach s_player_repairActions;s_player_repairActions = []; s_player_repair_crtl = -1; }; }; // All Traders if (_isMan and !_isPZombie and _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["Your humanity is too %1 this trader refuses to talk to you.",_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]; } forEach (_traderMenu select 1); // Database menu _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 99, true, false, "",""]; s_player_parts set [count s_player_parts,_buy]; // Add static metals trader options under sub menu _metals_trader = player addAction [localize "STR_EPOCH_PLAYER_301", "\z\addons\dayz_code\actions\trade_metals.sqf",["na"], 0, true, false, "",""]; s_player_parts set [count s_player_parts,_metals_trader]; }; s_player_parts_crtl = 1; }; } else { {player removeAction _x} forEach s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; }; if(dayz_tameDogs) then { //Dog if (_isDog and _isAlive and (_hasRawMeat) and _ownerID == "0" and 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 and _ownerID == dayz_characterID and _isAlive) then { _dogHandle = player getVariable ["dogID", 0]; if (s_player_feeddog < 0 and _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 and "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} forEach s_player_repairActions;s_player_repairActions = []; s_player_repair_crtl = -1; {player removeAction _x} forEach s_player_combi;s_player_combi = []; dayz_myCursorTarget = objNull; s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull]; {player removeAction _x} forEach s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; {player removeAction _x} forEach 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; //####----####----####---- Base Building 1.3 Start ----####----####----#### player removeAction s_player_getTargetUID; s_player_getTargetUID = -1; player removeAction s_player_giveBaseOwnerAccess; s_player_giveBaseOwnerAccess = -1; player removeAction s_player_gateActions; s_player_gateActions = -1; player removeAction s_player_roofToggle; s_player_roofToggle = -1; player removeAction s_player_addGateAuthorization; s_player_addGateAuthorization = -1; player removeAction s_player_removeGateAuthorization; s_player_removeGateAuthorization = -1; player removeAction s_player_disarmBomb; s_player_disarmBomb = -1; player removeAction s_player_bbZombieShield_on; s_player_bbZombieShield_on = -1; player removeAction s_player_bbZombieShield_off; s_player_bbZombieShield_off = -1; player removeAction s_player_inflameBarrels; s_player_inflameBarrels = -1; player removeAction s_player_deflameBarrels; s_player_deflameBarrels = -1; player removeAction s_player_towerLightsOn; s_player_towerLightsOn = -1; player removeAction s_player_towerLightsOff; s_player_towerLightsOff = -1; player removeAction s_player_bbLightMenu; s_player_bbLightMenu = -1; //####----####----####---- Base Building 1.3 End ----####----####----#### //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; //------------Take Clothes------------ player removeAction s_player_clothes; s_player_clothes = -1; //------------Take Clothes------------ }; //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 and !_inVehicle and alive _dog and _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; }; Still with same problem.. Did everything like the tutorial, but i have no options on the laptop.. Any idea? Link to comment Share on other sites More sharing options...
kisho Posted June 20, 2014 Report Share Posted June 20, 2014 HellWalker Do you like this? if (cursorTarget == LAPTOP) then { _lap = cursorTarget; if (s_player_nuke < 0) then { s_player_nuke = player addAction [("<t color=""#FF0000"">" + ("Set Off Nuke") +"</t>"),"Nuke\nuke_On.sqf",_lap, 5, false, true, "","]; }; } else { player removeAction s_player_nuke; s_player_nuke = -1; }; Link to comment Share on other sites More sharing options...
HellWalker Posted June 20, 2014 Report Share Posted June 20, 2014 HellWalker Do you like this? if (cursorTarget == LAPTOP) then { _lap = cursorTarget; if (s_player_nuke < 0) then { s_player_nuke = player addAction [("<t color=""#FF0000"">" + ("Set Off Nuke") +"</t>"),"Nuke\nuke_On.sqf",_lap, 5, false, true, "","]; }; } else { player removeAction s_player_nuke; s_player_nuke = -1; }; Yes, with some changes, because i'm using other scripts in my server. I don't think they are interfering in this nuke scripts, except for the fn_selfactions.sqf Because i'm using a custom selfactions, and not from the dayz_code.pbo this is the only difference. I'm uploading it in dropbox so you can also see my directories, the file i'm sending to you is inside the MPMission > DayZ_Epoch_24.Napf > 'link i gave to you' These are my files: https://www.dropbox.com/sh/8jl0xil02umgb3b/AACiSIXJO7wyNp2S3tNX81XNa I don't know what may be wrong.. The laptop is spawning, i just don't get the option to activate the script... Hope you can help me. Thanks! Link to comment Share on other sites More sharing options...
Sp4rkY Posted June 20, 2014 Report Share Posted June 20, 2014 Hey TayTayTheKiller First i have to say: Nice work ! :) Iam testing this atm... But i have a question. The nuke appears, the explosion is there BUT, i dont can see the atomic cloud (this one like a mushroom you know ) I only see dark smoke at the explosion position. Could the reason be any video setting in my game or do i anything wrong ? cheers TayTayTheKiller 1 Link to comment Share on other sites More sharing options...
psychosis Posted June 20, 2014 Report Share Posted June 20, 2014 and some issue with infi..for normal player in rpt 1:47:33 "infiSTAR.de Log: $triker53rus (id) | BadVar: firstrun = "firstrun" (BANNED) |DayZ Instance: 11|" in publicvariable: 21.06.2014 01:47:26: $triker53rus (ip) uid- #10 "PVAHR_0_imscphjjkirp" = ["$triker53rus","id",[66,97,100,86,97,114,58,32,102,105,114,115,116,114,117,110,32,61,32,34,102,105,114,115,116,114,117,110,34],[66,65,78,78,69,68]] for admins all god// Link to comment Share on other sites More sharing options...
TayTayTheKiller Posted June 21, 2014 Author Report Share Posted June 21, 2014 Hey I haven't had much time to work on this. I made a quick update that should fix the kick for normal players with infiSTAR AH @Sp4rkY How far away where you from the detonation one of the issues with it is the effects depend on your view distance if you are to far away you wont see it. Also if your not getting the action off the laptop you need to white list s_player_nuke in your antihack. Link to comment Share on other sites More sharing options...
Sp4rkY Posted June 21, 2014 Report Share Posted June 21, 2014 Hi TayTay ;) So i figured out what you have wrote... Now i can see the mushroom, but not so good like in your video. But that isn´t really the problem now, it is working and I can use this script now to figure out some new things ;) ----------------------------------------------------------------------------- Other thing for your ToDo List (perhaps its useful for you ?!): You want to setup an option for running this as an epoch event. I figured out an other way: Just comment out the "laptop" parts in init.sqf and comment out everything from the first line in server_nuke.sqf so this file starts with if (isNil "firstRun") then { Then go to your dayz_server.pbo. Create a new file "nuke.sqf" and move it to the modules folder. In this file only type this: execVM "Nuke\server_Nuke.sqf"; Now you can run this like an epoch event. There are many ways to play around with this script ;) TayTayTheKiller 1 Link to comment Share on other sites More sharing options...
HellWalker Posted June 21, 2014 Report Share Posted June 21, 2014 Hi TayTay ;) So i figured out what you have wrote... Now i can see the mushroom, but not so good like in your video. But that isn´t really the problem now, it is working and I can use this script now to figure out some new things ;) ----------------------------------------------------------------------------- Other thing for your ToDo List (perhaps its useful for you ?!): You want to setup an option for running this as an epoch event. I figured out an other way: Just comment out the "laptop" parts in init.sqf and comment out everything from the first line in server_nuke.sqf so this file starts with if (isNil "firstRun") then { Then go to your dayz_server.pbo. Create a new file "nuke.sqf" and move it to the modules folder. In this file only type this: execVM "Nuke\server_Nuke.sqf"; Now you can run this like an epoch event. There are many ways to play around with this script ;) Do you have any idea why this script is not working for me?? please. I just sayd my problem here Hope you can help me! Link to comment Share on other sites More sharing options...
Sp4rkY Posted June 21, 2014 Report Share Posted June 21, 2014 Also if your not getting the action off the laptop you need to white list s_player_nuke in your antihack. Perhaps this could clear your problem ? I dont know, but i dont can get the option at the laptop too. Thats the reason, why i use other methods for testing. Look at my second last post, there i was explaining, how to run this with epoch events. Just the same way you can get this running at scroll menu with an "addAction" or with AdminTools or something else other. You only have to comment out the laptop lines. Try it this way: Create a new file and put this in it: sleep 5; waituntil { alive player }; if ((getPlayerUID player) in ["xxxxxx"]) then { sleep 10; player addaction [("<t color=""#CAC9C8"">" + ("Nuke") +"</t>"),"Nuke\server_Nuke.sqf","",5,false,true,"",""]; }; Link to comment Share on other sites More sharing options...
TayTayTheKiller Posted June 21, 2014 Author Report Share Posted June 21, 2014 Hi TayTay ;) So i figured out what you have wrote... Now i can see the mushroom, but not so good like in your video. But that isn´t really the problem now, it is working and I can use this script now to figure out some new things ;) ----------------------------------------------------------------------------- Other thing for your ToDo List (perhaps its useful for you ?!): You want to setup an option for running this as an epoch event. I figured out an other way: Just comment out the "laptop" parts in init.sqf and comment out everything from the first line in server_nuke.sqf so this file starts with if (isNil "firstRun") then { Then go to your dayz_server.pbo. Create a new file "nuke.sqf" and move it to the modules folder. In this file only type this: execVM "Nuke\server_Nuke.sqf"; Now you can run this like an epoch event. There are many ways to play around with this script ;) Yeah my test version I just execVM the script form my admin tool. When I get some time I'm going to look into adding some more stuff and when done ill knock up an event version and trigger version. I Want to get a jet flying over just before it goes off next. Small thing I know lol but will be cool. Link to comment Share on other sites More sharing options...
Sp4rkY Posted June 21, 2014 Report Share Posted June 21, 2014 Easy... no stress :) but hey, perhaps we can help us each other... Actually i setup a function which create a marker at the map for the radiation area... :) Can you tell me, how much time will the radiation area stay activ (the whole server running time or will it disappear after a bunch of minutes). And another question: Is it possible to deactivate the geiger-counter sound ? When i go to the radiation zone, the geiger is starting clicking sounds (thats ok, but for me this sounds doesnt stop playing when i leave this area) I dont know why, but i have these clicking sounds forever since it starts. :) Would be great if there is a way to stop them from playing. (bad english, i know) TayTayTheKiller 1 Link to comment Share on other sites More sharing options...
TayTayTheKiller Posted June 21, 2014 Author Report Share Posted June 21, 2014 Easy... no stress :) but hey, perhaps we can help us each other... Actually i setup a function which create a marker at the map for the radiation area... :) Can you tell me, how much time will the radiation area stay activ (the whole server running time or will it disappear after a bunch of minutes). And another question: Is it possible to deactivate the geiger-counter sound ? When i go to the radiation zone, the geiger is starting clicking sounds (thats ok, but for me this sounds doesnt stop playing when i leave this area) I dont know why, but i have these clicking sounds forever since it starts. :) Would be great if there is a way to stop them from playing. (bad english, i know) Odd they should stop when you leave. The trigger sets the effects to false when you leave the trigger area. Maybe I messed up in the version I posted I will check this out in a bit. (You can see this working in my vid) I was thinking about a marker but in the end I thought that would be no fun because 90% of people would just avoid it and never see it. Also the zone stays till restart. You could always get the server to delete the trigger after a set time if you don't want it to last till next restart. Link to comment Share on other sites More sharing options...
Sp4rkY Posted June 21, 2014 Report Share Posted June 21, 2014 ok, thats what i want to know ;) So i dont have to delete the marker then... Link to comment Share on other sites More sharing options...
TayTayTheKiller Posted June 21, 2014 Author Report Share Posted June 21, 2014 ok, thats what i want to know ;) So i dont have to delete the marker then... Thinking about it I will add a option to enable/disable a marker showing the zone. :D Also a option to put a timer on the zone. Thanks for the idea :D Link to comment Share on other sites More sharing options...
psychosis Posted June 21, 2014 Report Share Posted June 21, 2014 any ideas how to bind it to the ZEV bots?) I have a mission where you need to stop the scenario is going to launch bots poplar. in the case of a bad outcome, they logically should run it) Link to comment Share on other sites More sharing options...
TayTayTheKiller Posted June 23, 2014 Author Report Share Posted June 23, 2014 Ok little update. 1. Added an option to enable a marker showing the radiation zone to all players on the map (including people who join after) 2. Added an option to enable a timer on the radiation zone so when the timer is up it will delete the zone/marker and reset all effects on players in the zone (damage will stay to buildings even for people who join after) 3. moved all settings & location options to one file. 4. renamed most variables to save hassle with BE filters. Tested so far with infistar AH as admin and working, but I haven't tried as a normal player yet. If you have used an old version you will need to look at the install guide again as the install is slightly different. V0.4 is up for testing :) Link to comment Share on other sites More sharing options...
HellWalker Posted June 24, 2014 Report Share Posted June 24, 2014 Hey guys, I just can't make it work.. i don't know why... I've tried to make the step by step over and over again, but i can't get access to the notebook. I'm still with no options to select. I think it's something with the selfactions, but since i'm very noob to programming, i don't know what may be wrong. Can anyone help me please? Link to comment Share on other sites More sharing options...
Pro_Speedy Posted June 25, 2014 Report Share Posted June 25, 2014 Having trouble with coords ect. Could you make some defaults already for towns and what do i put here case 0: {[4675.2314, 10175.737, 0 "NWAF"<----]}; Thanks Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now