Schalldampfer Posted February 19, 2018 Report Share Posted February 19, 2018 On 2018/2/13 at 9:56 AM, victorks said: how to put the bank in the safe?? I added this code to make the unlocked safe as bank ZSC_bankObjects = DZE_UnLockedStorage; salival 1 Link to comment Share on other sites More sharing options...
Thug Posted February 21, 2018 Report Share Posted February 21, 2018 For anyone looking to have ATMs instead of AI Bankers. This is what I did. Click here to watch youtube video on How to add ATM's in Epoch 1.0.6.2 salival 1 Link to comment Share on other sites More sharing options...
MayhemMercenary Posted March 13, 2018 Report Share Posted March 13, 2018 I am getting an error whenever trying to access the bank. It says "Resource BankDialog not found". Any suggestions? Edit: Answered my own question. Didn't merge description.ext properly. Link to comment Share on other sites More sharing options...
Wurmsous Posted March 23, 2018 Report Share Posted March 23, 2018 Hi guys. I'm having quite an odd problem vir my ZSC installation. Background: I've just installed a clean copy of Dayz Epoch Panthera 1.0.6.2 and only added admin tools. Everything is running as expected. Only notable change that I made is to move the server_traders.sqf from the root of the mission file to the scripts\traders (backing up the default Chernarus sqf), as the Panthera *.sqf isn't supplied with ZSC. This all works fine with the standard Gold currency. The Problem: As soon as I add ZSC to the server, the traders "lose" most their inventory. Only certain inventory items remain such as "Attacments" at the weapons dealer. No weapons are displayed. I've even recreated the Epoch database and verified the IDs in the database match those specified in the server_traders.sqf. Any ideas on where I might start searching for the cause of the problem? Link to comment Share on other sites More sharing options...
salival Posted March 23, 2018 Author Report Share Posted March 23, 2018 46 minutes ago, Wurmsous said: Hi guys. I'm having quite an odd problem vir my ZSC installation. Background: I've just installed a clean copy of Dayz Epoch Panthera 1.0.6.2 and only added admin tools. Everything is running as expected. Only notable change that I made is to move the server_traders.sqf from the root of the mission file to the scripts\traders (backing up the default Chernarus sqf), as the Panthera *.sqf isn't supplied with ZSC. This all works fine with the standard Gold currency. The Problem: As soon as I add ZSC to the server, the traders "lose" most their inventory. Only certain inventory items remain such as "Attacments" at the weapons dealer. No weapons are displayed. I've even recreated the Epoch database and verified the IDs in the database match those specified in the server_traders.sqf. Any ideas on where I might start searching for the cause of the problem? ZSC Needs to have its own configs for traders, the server_traders.sqf file you moved from the root to scripts will have overridden the zsc defaults. This is what loads your trader categories: https://github.com/oiad/ZSC/blob/master/init.sqf#L103 Those categories nthen need to match up to your cfgTraders files: https://github.com/oiad/ZSC/tree/master/dayz_code/configs Unfortunately there are no trader category files for panthera, there was never really any people wanting me to do them Link to comment Share on other sites More sharing options...
Wurmsous Posted March 23, 2018 Report Share Posted March 23, 2018 Thanks for the quick reply salival. Well that's quite unfortunate (for me)... I quite enjoyed Panthera. :) I'll just save myself some time and host a different / supported server. Link to comment Share on other sites More sharing options...
ItzWolfyYT Posted March 24, 2018 Report Share Posted March 24, 2018 For a odd reason, i can check ai wallets and player wallets fine but any player on my server can't possible a battleye or a infistar restriction? Apparently it shows up for a second then goes away. Link to comment Share on other sites More sharing options...
victorks Posted March 29, 2018 Report Share Posted March 29, 2018 erro how to fix ?? Link to comment Share on other sites More sharing options...
salival Posted March 29, 2018 Author Report Share Posted March 29, 2018 45 minutes ago, victorks said: erro how to fix ?? You missed this step: Download the stringTable.xml file linked below from the Community Localization GitHub and copy it to your mission folder, it is a community based localization file and contains translations for major community mods including this one. https://github.com/oiad/communityLocalizations/blob/master/stringtable.xml victorks 1 Link to comment Share on other sites More sharing options...
victorks Posted March 29, 2018 Report Share Posted March 29, 2018 thx Link to comment Share on other sites More sharing options...
Necromunger Posted March 31, 2018 Report Share Posted March 31, 2018 How difficult would it be to possibly have the buy and sell prices for classes stored in the database like the normal trader items have with bold and briefcases? Link to comment Share on other sites More sharing options...
salival Posted March 31, 2018 Author Report Share Posted March 31, 2018 12 minutes ago, Necromunger said: How difficult would it be to possibly have the buy and sell prices for classes stored in the database like the normal trader items have with bold and briefcases? Database traders are slow, I wouldn't recommend them at all Link to comment Share on other sites More sharing options...
Necromunger Posted March 31, 2018 Report Share Posted March 31, 2018 The purpose is how easily the database can be updated, and indexing their values at server start would be fine because a hashmap is O(1) lookup cost when someone wants to buy or sell. Link to comment Share on other sites More sharing options...
Necromunger Posted March 31, 2018 Report Share Posted March 31, 2018 For example, purchasing a VSS is in the assault rifles table and the ammo is in the snipers table on the server im dealing with. Also SP6 ammo is missing. I went to investigate how to change it and it just seems overly complicated. Link to comment Share on other sites More sharing options...
hyperrepair Posted April 1, 2018 Report Share Posted April 1, 2018 Hy Guys ! (First sorry for bad english :) ) I installed the mod working fine, in smd_sahrani_a2 but when i placed the new trader guys the bank menu dont showing up and the players cant add the coins to the bank account. Please help me. Thanks. Link to comment Share on other sites More sharing options...
Wurmsous Posted April 3, 2018 Report Share Posted April 3, 2018 On 3/23/2018 at 10:58 PM, salival said: ZSC Needs to have its own configs for traders, the server_traders.sqf file you moved from the root to scripts will have overridden the zsc defaults. This is what loads your trader categories: https://github.com/oiad/ZSC/blob/master/init.sqf#L103 Those categories nthen need to match up to your cfgTraders files: https://github.com/oiad/ZSC/tree/master/dayz_code/configs Unfortunately there are no trader category files for panthera, there was never really any people wanting me to do them @salival Ok, so my stubbornness got the better of me and I decided to persue my dream of a Panthera map with ZSC. (whilst my Napf server is entertaining a couple of people in the mean time) Would you be willing to guide me while I "Frankenstein" it together? I've done the following thus far: 1. Created a server_traders.sqf derived from \z\addons\dayz_code\system\mission\server_traders\panthera2.sqf and verified the "tid" in my database traders_data table 2. Backed up scripts\traders\server_traders.sqf and replaced it with my new server_traders.sqf 3. call compile preprocessFileLineNumbers "scripts\traders\server_traders.sqf"; in the mission init.sqf 4. execVM "\z\addons\dayz_server\traders\panthera2.sqf"; to add the trader agents I haven't bothered editing anything in the dayz_code\configs\cfgServerTrader.hpp and Category headers, as they seem to be common to all maps. Now I get a "Sctrip server_traders.sqf not found" warning before entering the game and the inventory of som traders are still empty... <-- This seems to be the big clue (side note: this is for me alone and I do not intend to distribute it at all without due permission from the original authors) Link to comment Share on other sites More sharing options...
salival Posted April 3, 2018 Author Report Share Posted April 3, 2018 1 minute ago, Wurmsous said: @salival Ok, so my stubbornness got the better of me and I decided to persue my dream of a Panthera map with ZSC. (whilst my Napf server is entertaining a couple of people in the mean time) Would you be willing to guide me while I "Frankenstein" it together? I've done the following thus far: 1. Created a server_traders.sqf derived from \z\addons\dayz_code\system\mission\server_traders\panthera2.sqf and verified the "tid" in my database traders_data table 2. Backed up scripts\traders\server_traders.sqf and replaced it with my new server_traders.sqf 3. call compile preprocessFileLineNumbers "scripts\traders\server_traders.sqf"; in the mission init.sqf 4. execVM "\z\addons\dayz_server\traders\panthera2.sqf"; to add the trader agents I haven't bothered editing anything in the dayz_code\configs\cfgServerTrader.hpp and Category headers, as they seem to be common to all maps. Now I get a "Sctrip server_traders.sqf not found" warning before entering the game and the inventory of som traders are still empty... <-- This seems to be the big clue (side note: this is for me alone and I do not intend to distribute it at all without due permission from the original authors) Hey, That's definitely the file that needs modifying, basically all you need to do is make sure the categoryIDS match the .hpp files that come with ZSC (some are different) and then some are different again for overpoch. Panthera hero vendor: https://github.com/EpochModTeam/DayZ-Epoch/blob/master/SQF/dayz_code/system/mission/server_traders/panthera2.sqf#L4-L8 ZSC Chernarus hero vendor: https://github.com/oiad/ZSC/blob/master/scripts/traders/server_traders.sqf#L8-L12 That's all i'm doing when I'm converting them to ZSC, as long as they read the same category number for each vendor, they will work The server_traders.sqf not found error is from this file: https://github.com/EpochModTeam/DayZ-Epoch/blob/master/SQF/dayz_server/init/mission_check.sqf#L8 Link to comment Share on other sites More sharing options...
Wurmsous Posted April 3, 2018 Report Share Posted April 3, 2018 Thanks again for the rapid reply. Still no joy... I'll double-check my server_traders.sqf against the Category header files and get back to you. Thanks for the help. Update: IT WORKS!! Still getting that script not found message though after removing it from my _files = [......] list in mission_check.sqf Thanks for the pointers salival. The guys are going to love this. Link to comment Share on other sites More sharing options...
michelzain Posted April 20, 2018 Report Share Posted April 20, 2018 On 30.03.2018 at 12:08 AM, salival said: You missed this step: Download the stringTable.xml file linked below from the Community Localization GitHub and copy it to your mission folder, it is a community based localization file and contains translations for major community mods including this one. https://github.com/oiad/communityLocalizations/blob/master/stringtable.xml didnt change anything to me/: Link to comment Share on other sites More sharing options...
michelzain Posted April 20, 2018 Report Share Posted April 20, 2018 traders are empty as well Link to comment Share on other sites More sharing options...
seelenapparat Posted May 9, 2018 Report Share Posted May 9, 2018 I must ask now. I'm usually not that stupid when it comes to arma scripting, but I ran out of ideas on my problem. I debugged it as far as I could and what I found out is, that when I open a safe to access the band dialog it does not transfer the coins from the locked safe to the unlocked one. my debug lines tell me this: 0 coins in safe: 14:13:01 "TLR_DEBUG: zsc_server_handeSafeGear: Z_singleCurrency = true, Z_MoneyVariable = cashMoney" 14:13:01 "TLR_DEBUG: zsc_server_handeSafeGear: unlock: VaultStorageLocked coins = 0" 14:13:01 "TLR_DEBUG: zsc_server_handeSafeGear: unlock: VaultStorage coins = any" tested with added 501 coins to safe via database: 14:27:18 "TLR_DEBUG: zsc_server_handeSafeGear: Z_singleCurrency = true, Z_MoneyVariable = cashMoney" 14:27:18 "TLR_DEBUG: zsc_server_handeSafeGear: unlock: VaultStorageLocked coins = 501" 14:27:18 "TLR_DEBUG: zsc_server_handeSafeGear: unlock: VaultStorage coins = any" locking the safe throws me this: 14:13:27 "TLR_DEBUG: zsc_server_handeSafeGear: Z_singleCurrency = true, Z_MoneyVariable = cashMoney" 14:13:27 "TLR_DEBUG: zsc_server_handeSafeGear: lock: VaultStorage coins = any" 14:13:27 "TLR_DEBUG: zsc_server_handeSafeGear: lock: VaultStorageLocked coins = any" this is the debug code: switch (_status) do { case 0: { //Unlocking _unlockedClass = getText (configFile >> "CfgVehicles" >> _type >> "unlockedClass"); _weapons = _obj getVariable ["WeaponCargo",[]]; _magazines = _obj getVariable ["MagazineCargo",[]]; _backpacks = _obj getVariable ["BackpackCargo",[]]; if (Z_singleCurrency) then {_coins = _obj getVariable [Z_MoneyVariable,0];}; diag_log format ["TLR_DEBUG: zsc_server_handeSafeGear: Z_singleCurrency = %1, Z_MoneyVariable = %2", Z_singleCurrency, Z_MoneyVariable]; diag_log format ["TLR_DEBUG: zsc_server_handeSafeGear: unlock: %1 coins = %2", typeof _obj, _obj getVariable [Z_MoneyVariable,0]]; // Create new unlocked safe, then delete old locked safe //_holder = createVehicle [_unlockedClass,_pos,[],0,"CAN_COLLIDE"]; _holder = _unlockedClass createVehicle [0,0,0]; _holder setDir _dir; _holder setVariable ["memDir",_dir,true]; _holder setVectorDirAndUp _vector; _holder setPosATL _pos; _holder setVariable ["CharacterID",_charID,true]; _holder setVariable ["ObjectID",_objectID,true]; _holder setVariable ["ObjectUID",_objectUID,true]; _holder setVariable ["OEMPos",_pos,true]; if (DZE_permanentPlot) then {_holder setVariable ["ownerPUID",_ownerID,true];}; if (Z_singleCurrency) then {_holder setVariable [Z_MoneyVariable,_coins,true];}; diag_log format ["TLR_DEBUG: zsc_server_handeSafeGear: unlock: %1 coins = %2", typeof _holder, _holder getVariable [Z_MoneyVariable,0]]; deleteVehicle _obj; [_weapons,_magazines,_backpacks,_holder] call fn_addCargo; }; does anyone have a clue what I could have missed? it seems like setvar throws an error when setting it on the unlocked safe. Im using the latest zsc version. server_handleSafeGear is 100% like the provided .sqf file. Link to comment Share on other sites More sharing options...
Airwaves Man Posted May 9, 2018 Report Share Posted May 9, 2018 @seelenapparat I remember a similar problem. Do you have the variables in the private array? Link to comment Share on other sites More sharing options...
seelenapparat Posted May 9, 2018 Report Share Posted May 9, 2018 as we speak I came to the same conclusion. and no, I did of course not add the 2 new variables to the private array... I guess, Im getting old. :D €: it worked! thx @A Man. hours of debugging, just for this lol. Airwaves Man 1 Link to comment Share on other sites More sharing options...
BufordTJustice Posted May 13, 2018 Report Share Posted May 13, 2018 So I followed the instructions to the letter. I used only the files provided, not really anything too extreme in terms of other mods running...I can get the coins on my character, spawn the bankers but the check wallet, banker dialog and safe storage dialog just never come up. I've considered just putting in the code to keep coins after death but I hate having things not working correctly. Spoiler "Sent to server PVDZ_plr_LoginRecord: [76561198007438095, 16, 0, Bufford T. Justice]" [] "player_forceSave called from fsm" "Admin Tools: Activate.sqf loaded" "Admin Tools: FunctionKeys.sqf Loaded" "Admin Tools: NumberKeys.sqf Loaded" "Admin Tools: safeZones.sqf loaded" String STR_CL_ZSC_TRADE_COINS not found String STR_CL_ZSC_CHECK_WALLET not found String STR_CL_ZSC_CHECK_WALLET not found Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. String STR_CL_ZSC_CHECK_WALLET not found String STR_CL_ZSC_CHECK_WALLET not found Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. String STR_CL_ZSC_CHECK_WALLET not found Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. "PRELOAD_ Functions\init [[L 1-1-A:1 REMOTE],any]" "MPframework inited" "Res3tting B!S effects..." "dayz_preloadFinished reset" "Loading custom client compiles" "Admin Tools: config.sqf loaded" "Admin Tools: variables.sqf loaded" "z\addons\dayz_code\system\REsec.sqf:Monitoring Remote Exe..." "Service Points: loading config..." String STR_CL_SP_MESSAGE not found "z\addons\dayz_code\system\antihack.sqf: Plants libs tests done!" No owner ["Sent to server: PVDZ_plr_Login1",["76561198007438095",B 1-1-A:1 (Bufford T. Justice)]] ["Sent to server: PVDZ_send",[B 1-1-A:1 (Bufford T. Justice),"dayzSetDate",[B 1-1-A:1 (Bufford T. Justice)]]] ["Sent to server: PVDZ_plr_Login1",["76561198007438095",B 1-1-A:1 (Bufford T. Justice)]] ["Sent to server: PVDZ_send",[B 1-1-A:1 (Bufford T. Justice),"dayzSetDate",[B 1-1-A:1 (Bufford T. Justice)]]] "PLAYER RESULT: true" [25665.7,"z\addons\dayz_code\system\scheduler\sched_init.sqf","Scheduler started"] ["Sent to server: PVDZ_plr_Login2",["16",B 1-1-B:1 (Bufford T. Justice),"76561198007438095",9,[["ItemToolbox","ItemRadio","ItemHatchet","ItemGPS","vil_USP45SD","ItemKeyRed984","Binocular_Vector","NVGoggles","ItemSledge","ItemKnife","ItemEtool","ItemCrowbar","vil_M110sd"],["ItemPainkiller","ItemMorphine","ItemBloodbag",["20Rnd_762x51_DMR",1],["20Rnd_762x51_DMR",19],"20Rnd_762x51_DMR",["100Rnd_762x54_PK",42],["100Rnd_762x54_PK",96],"100Rnd_762x54_PK","ItemMorphine","ItemAntibiotic6","ItemPainkiller","ItemBandage","ItemBandage","vil_usp45SD_mag","vil_usp45SD_mag","vil_usp45SD_mag","vil_usp45SD_mag","vil_usp45SD_mag","ItemBandage"],"Pecheneg_DZ"]]] ["Date & time received:",[2012,8,2,13,42]] ["Local date on this client:",[2012,8,2,13,41]] "Sent to server PVDZ_plr_LoginRecord: [76561198007438095, 16, 0, Bufford T. Justice]" [] "player_forceSave called from fsm" [25666.7,"onPreloadStarted"] "Admin Tools: Activate.sqf loaded" "Admin Tools: NumberKeys.sqf Loaded" "Admin Tools: FunctionKeys.sqf Loaded" "Admin Tools: safeZones.sqf loaded" [25667,"onPreloadFinished"] "keyboard_keys reset" 2nd UV set needed, but not defined in ReportStack not available String STR_CL_ZSC_TRADE_COINS not found "RE rtitleTextcode args:[any,any,"Bandits have established a Medical Outpost!\nGo Secure their Medical Supplies!","PLAIN",10]" String STR_CL_ZSC_TRADE_COINS not found String STR_CL_ZSC_BANK_TELLER not found Creation of object Agent 0x3b1e4380 failed, state NONE Creation of object Agent 0x4e4d2480 failed, state NONE Creation of object Agent 0x41370600 failed, state NONE Spoiler respawn = "BASE"; respawnDelay = 0; respawnDialog = 0; onLoadMission = "DayZ Epoch Chernarus"; OnLoadIntro = "Welcome to Chernarus"; OnLoadIntroTime = 0; OnLoadMissionTime = 0; disabledAI = 1; disableChannels[] = {0,2,6}; enableItemsDropping = 0; onPauseScript = ""; briefing = 0; debriefing = 0; titleParam1 = "AutoLogin:"; valuesParam1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 31}; defValueParam1 = 10; //auto login time limit in seconds, set value to 31 to disable auto login textsParam1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, "Disabled"}; loadScreen = "\z\addons\dayz_code\gui\loadingscreen.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 RscTitles { #include "scripts\zsc\playerHud.hpp" class wm_disp { idd = -1; onLoad = "uiNamespace setVariable ['wm_disp', _this select 0]"; fadein = 0; fadeout = 0; duration = 10e10; controlsBackground[] = {}; objects[] = {}; class controls { class wm_text2 { idc = 1; x = safeZoneX+0.027;//safeZoneW*0.01; y = safeZoneY+safeZoneH-0.16; w = 0.151*safeZoneH; h = 0.057*safeZoneH; shadow = 2; class Attributes { font = "EtelkaNarrowMediumPro"; color = "#24FFFFFF"; align = "left"; // put "center" here if you want some background valign = "middle"; shadow = 2; }; colorBackground[] = { 1, 0.3, 0, 0 }; // uncomment and increase 4th number to have a background font = "EtelkaNarrowMediumPro"; size = 0.06*safeZoneH; type = 13; style = 0; text = ""; }; }; }; }; class CfgSounds { sounds[] = { Radio_Message_Sound ,IWAC_Message_Sound }; class Radio_Message_Sound { name="Radio_Message_Sound"; sound[] = {scripts\radio\radio.ogg,0.4,1}; titles[] = {}; }; class IWAC_Message_Sound { name="IWAC_Message_Sound"; sound[] = {scripts\radio\IWACsound.ogg,0.4,1}; titles[] = {}; }; }; #include "dayz_code\gui\description.hpp" #include "\z\addons\dayz_code\Configs\CfgLoot\CfgLoot.hpp" #include "dayz_code\Configs\CfgServerTrader.hpp" #include "dayz_code\configs\RscDisplay\ZSCdefines.hpp" #include "scripts\zsc\zsc.hpp" #include "dayz_code\configs\RscDisplay\advancedTrading.hpp" #include "admintools\dialog.hpp" Spoiler /* For DayZ Epoch Addons Credits: Jetski Yanahui by Kol9yN, Zakat, Gerasimow9, YuraPetrov, zGuba, A.Karagod, IceBreakr, Sahbazz */ //Server settings dayZ_instance = 11; //Instance ID of this server dayZ_serverName = ""; //Shown to all players in the bottom left of the screen (country code + server number) //Game settings dayz_antihack = 1; // DayZ Antihack / 1 = enabled // 0 = disabled dayz_REsec = 1; // DayZ RE Security / 1 = enabled // 0 = disabled dayz_enableRules = true; //Enables a nice little news/rules feed on player login (make sure to keep the lists quick). dayz_quickSwitch = false; //Turns on forced animation for weapon switch. (hotkeys 1,2,3) False = enable animations, True = disable animations dayz_POIs = false; //Adds Point of Interest map additions (negatively impacts FPS) dayz_infectiousWaterholes = false; //Randomly adds some bodies, graves and wrecks by ponds (negatively impacts FPS) dayz_ForcefullmoonNights = true; // Forces night time to be full moon. dayz_randomMaxFuelAmount = 500; //Puts a random amount of fuel in all fuel stations. //DayZMod presets dayz_presets = "Custom"; //"Custom","Classic","Vanilla","Elite" //Only need to edit if you are running a custom server. if (dayz_presets == "Custom") then { dayz_enableGhosting = false; //Enable disable the ghosting system. dayz_ghostTimer = 60; //Sets how long in seconds a player must be disconnected before being able to login again. dayz_spawnselection = 0; //(Chernarus only) Turn on spawn selection 0 = random only spawns, 1 = spawn choice based on limits dayz_spawncarepkgs_clutterCutter = 0; //0 = loot hidden in grass, 1 = loot lifted, 2 = no grass dayz_spawnCrashSite_clutterCutter = 0; // heli crash options 0 = loot hidden in grass, 1 = loot lifted, 2 = no grass dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn 0 = loot hidden in grass, 1 = loot lifted, 2 = no grass dayz_bleedingeffect = 2; //1 = blood on the ground (negatively impacts FPS), 2 = partical effect, 3 = both dayz_OpenTarget_TimerTicks = 60 * 10; //how long can a player be freely attacked for after attacking someone unprovoked dayz_nutritionValuesSystem = true; //true, Enables nutrition system, false, disables nutrition system. dayz_classicBloodBagSystem = true; // disable blood types system and use the single classic ItemBloodbag dayz_enableFlies = false; // Enable flies on dead bodies (negatively impacts FPS). }; //Temp settings dayz_DamageMultiplier = 2; //1 - 0 = Disabled, anything over 1 will multiply damage. Damage Multiplier for Zombies. dayz_maxGlobalZeds = 500; //Limit the total zeds server wide. dayz_temperature_override = false; // Set to true to disable all temperature changes. enableRadio false; enableSentences false; // EPOCH CONFIG VARIABLES START // #include "\z\addons\dayz_code\configVariables.sqf" // Don't remove this line // See the above file for a full list including descriptions and default values // Uncomment the lines below to change the default loadout DefaultMagazines = ["ItemBandage","ItemBandage","ItemBandage","ItemBandage","ItemPainkiller","ItemMorphine","ItemBloodbag","15Rnd_9x19_M9","15Rnd_9x19_M9","15Rnd_9x19_M9","15Rnd_9x19_M9","10Rnd_762x54_SVD","10Rnd_762x54_SVD"]; DefaultWeapons = ["ItemMap","ItemFlashlight","ItemCompass","ItemWatch","ItemToolbox","ItemRadio","ItemHatchet","M9_DZ", "SVD_CAMO"]; DefaultBackpack = "DZ_ALICE_Pack_EP1"; DefaultBackpackItems = []; // Can include both weapons and magazines i.e. ["PDW_DZ","30Rnd_9x19_UZI"]; dayz_paraSpawn = false; // Halo spawn DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zones DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 0; // Require a plot pole to build 0 = Off, 1 = On DZE_PlotPole = [30,45]; // Radius owned by plot pole [Regular objects,Other plotpoles]. Difference between them is the minimum buffer between bases. DZE_BuildingLimit = 150; // Max number of built objects allowed in DZE_PlotPole radius DZE_SafeZonePosArray = [[[6325,7807,0],100],[[4063,11664,0],100],[[11447,11364,0],100],[[1606,7803,0],100],[[12944,12766,0],100],[[12060,12638,0],100]]; // Format is [[[3D POS],RADIUS],[[3D POS],RADIUS]]; Stops loot and zed spawn, salvage and players being killed if their vehicle is destroyed in these zones. DZE_SelfTransfuse = true; // Allow players to bloodbag themselves DZE_selfTransfuse_Values = [12000,15,120]; // [blood amount given, infection chance %, cooldown in seconds] MaxDynamicDebris = 500; // Max number of random road blocks to spawn around the map MaxVehicleLimit = 300; // Max number of random vehicles to spawn around the map spawnArea = 1400; // Distance around markers to find a safe spawn position spawnShoremode = 1; // Random spawn locations 1 = on shores, 0 = inland EpochUseEvents = false; //Enable event scheduler. Define custom scripts in dayz_server\modules to run on a schedule. EpochEvents = [["any","any","any","any",30,"crash_spawner"],["any","any","any","any",0,"crash_spawner"],["any","any","any","any",15,"supply_drop"]]; // EPOCH CONFIG VARIABLES END // diag_log 'dayz_preloadFinished reset'; dayz_preloadFinished=nil; onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinished = false;"; onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;"; with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon if (!isDedicated) then { enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"]; progressLoadingScreen 0; dayz_loadScreenMsg = localize 'str_login_missionFile'; progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf"; 0 cutText ['','BLACK',0]; 0 fadeSound 0; 0 fadeMusic 0; _nill = execvm "custom\debug_monitor\debug_monitor.sqf"; }; debugMonitor = true; initialized = false; call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; call compile preprocessFileLineNumbers "dayz_code\init\variables.sqf"; progressLoadingScreen 0.05; call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf"; progressLoadingScreen 0.1; call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf"; progressLoadingScreen 0.15; call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf"; call compile preprocessFileLineNumbers "dayz_code\init\compiles.sqf"; progressLoadingScreen 0.25; call compile preprocessFileLineNumbers "scripts\traders\server_traders.sqf"; call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\chernarus11.sqf"; //Add trader city objects locally on every machine early call compile preprocessFileLineNumbers "custom\debug_monitor\compiles.sqf"; call compile preprocessFileLineNumbers "logistic\init.sqf"; call compile preprocessFileLineNumbers "admintools\config.sqf"; // Epoch admin Tools config file call compile preprocessFileLineNumbers "admintools\variables.sqf"; // Epoch admin Tools variables initialized = true; setTerrainGrid 25; if (dayz_REsec == 1) then {call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\REsec.sqf";}; execVM "\z\addons\dayz_code\system\DynamicWeatherEffects.sqf"; if (isServer) then { if (dayz_POIs && (toLower worldName == "chernarus")) then {call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\chernarus\poi\init.sqf";}; call compile preprocessFileLineNumbers "\z\addons\dayz_server\system\dynamic_vehicle.sqf"; call compile preprocessFileLineNumbers "\z\addons\dayz_server\system\server_monitor.sqf"; execVM "\z\addons\dayz_server\traders\chernarus11.sqf"; //Add trader agents if (Z_singleCurrency && {Z_globalBanking && Z_globalBankingTraders}) then {execVM "\z\addons\dayz_server\bankTraders\init.sqf";}; // Add global banking agents //Get the server to setup what waterholes are going to be infected and then broadcast to everyone. if (dayz_infectiousWaterholes && (toLower worldName == "chernarus")) then {execVM "\z\addons\dayz_code\system\mission\chernarus\infectiousWaterholes\init.sqf";}; // Lootable objects from CfgTownGeneratorDefault.hpp if (dayz_townGenerator) then { execVM "\z\addons\dayz_code\system\mission\chernarus\MainLootableObjects.sqf"; }; }; if (!isDedicated) then { if (toLower worldName == "chernarus") then { execVM "\z\addons\dayz_code\system\mission\chernarus\hideGlitchObjects.sqf"; }; //Enables Plant lib fixes execVM "\z\addons\dayz_code\system\antihack.sqf"; if (dayz_townGenerator) then { execVM "\z\addons\dayz_code\compile\client_plantSpawner.sqf"; }; execFSM "\z\addons\dayz_code\system\player_monitor.fsm"; execVM "scripts\servicePoints\init.sqf"; //[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf"; if (DZE_R3F_WEIGHT) then {execVM "\z\addons\dayz_code\external\R3F_Realism\R3F_Realism_Init.sqf";}; call compile preprocessFileLineNumbers "scripts\zsc\zscInit.sqf"; execVM "scripts\zsc\playerHud.sqf"; [] execVM "dayz_code\compile\remote_message.sqf"; waitUntil {scriptDone progress_monitor}; cutText ["","BLACK IN", 3]; 3 fadeSound 1; 3 fadeMusic 1; endLoadingScreen; }; [] execVM "admintools\Activate.sqf"; // Epoch admin tools Spoiler scriptName "Functions\misc\fn_selfActions.sqf"; /*********************************************************** ADD ACTIONS FOR SELF - Function - [] call fnc_usec_selfActions; ************************************************************/ private ["_canPickLight","_text","_unlock","_lock","_totalKeys","_temp_keys","_temp_keys_names","_restrict", "_hasKey","_oldOwner","_hasAttached","_isZombie","_isHarvested","_isMan","_isFuel","_hasRawMeat","_hastinitem","_player_deleteBuild", "_player_lockUnlock_crtl","_displayName","_hasIgnitors","_menu","_menu1","_allowTow","_liftHeli","_found","_posL","_posC","_height","_attached", "_combi","_findNearestGen","_humanity_logic","_low_high","_cancel","_buy","_buyV","_humanity","_traderMenu","_warn","_typeOfCursorTarget", "_isVehicle","_isBicycle","_isDestructable","_isGenerator","_ownerID","_isVehicletype","_hasBarrel","_hasFuel20","_hasFuel5","_hasEmptyFuelCan", "_itemsPlayer","_hasToolbox","_hasbottleitem","_isAlive","_isPlant","_istypeTent","_upgradeItems","_isDisallowRefuel","_isDog", "_isModular","_isModularDoor","_isHouse","_isGateOperational","_isGateLockable","_isFence","_isLockableGate","_isUnlocked","_isOpen","_isClosed","_ownerArray","_ownerBuildLock", "_ownerPID","_speed","_dog","_vehicle","_inVehicle","_cursorTarget","_primaryWeapon","_currentWeapon","_magazinesPlayer","_onLadder","_canDo", "_nearLight","_vehicleOwnerID","_hasHotwireKit","_isPZombie","_dogHandle","_allowedDistance","_id","_upgrade","_weaponsPlayer","_hasCrowbar", "_allowed","_hasAccess","_uid","_myCharID","_isLocked","_isClose"]; _vehicle = vehicle player; _inVehicle = (_vehicle != player); _cursorTarget = cursorTarget; _primaryWeapon = primaryWeapon player; _currentWeapon = currentWeapon player; _magazinesPlayer = magazines player; _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder); _uid = getPlayerUID player; _nearLight = nearestObject [player,"LitObject"]; _canPickLight = false; _myCharID = player getVariable ["CharacterID","0"]; _vehicleOwnerID = _vehicle getVariable ["CharacterID","0"]; _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer; _isPZombie = player isKindOf "PZombie_VB"; _isClose = (player distance _cursorTarget < 3); _dogHandle = player getVariable ["dogID",0]; if (!isNull _nearLight) then { if (_nearLight distance player < 4) then { _canPickLight = isNull (_nearLight getVariable ["owner",objNull]); }; }; //Grab Flare if (_canPickLight && !dayz_hasLight && !_isPZombie) then { if (s_player_grabflare < 0) then { _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName"); s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true]; s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true]; }; } else { player removeAction s_player_grabflare; player removeAction s_player_removeflare; s_player_grabflare = -1; s_player_removeflare = -1; }; if (s_player_equip_carry < 0) then { if (dayz_onBack != "" && { !_inVehicle && { !_onLadder && { !r_player_unconscious } } }) then { dz_plr_carryActionItem = dayz_onBack; _text = getText (configFile >> "CfgWeapons" >> dz_plr_carryActionItem >> "displayName"); s_player_equip_carry = player addAction [ format [localize "STR_ACTIONS_WEAPON", _text], "\z\addons\dayz_code\actions\player_switchWeapon_action.sqf", nil, 0.5, false, true]; }; } else { if (dayz_onBack != dz_plr_carryActionItem || { _inVehicle || { _onLadder || { r_player_unconscious } } } ) then { player removeAction s_player_equip_carry; s_player_equip_carry = -1; }; }; if ((_currentWeapon in Dayz_fishingItems) && {!dayz_fishingInprogress} && {!_inVehicle} && {!dayz_isSwimming}) then { if (s_player_fishing < 0) then { s_player_fishing = player addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf",player, 0.5, false, true]; }; } else { player removeAction s_player_fishing; s_player_fishing = -1; }; if ((_primaryWeapon in Dayz_fishingItems) && {!dayz_fishingInprogress} && {_inVehicle && (driver _vehicle != player)}) then { if (s_player_fishing_veh < 0) then { s_player_fishing_veh = _vehicle addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf",_vehicle, 0.5, false, true]; }; } else { _vehicle removeAction s_player_fishing_veh; s_player_fishing_veh = -1; }; /* //Allows drinking from hands at ponds and ambient wells, but may negatively impact performance if (_canDo && !_inVehicle && !dayz_isSwimming && ((call fn_nearWaterHole) select 0)) then { if (s_player_Drinkfromhands < 0) then { s_player_Drinkfromhands = player addAction [localize "STR_ACTIONS_DRINK2", "\z\addons\dayz_code\actions\water_fill.sqf","hands", 0.5, false, true]; }; } else { if (s_player_Drinkfromhands >= 0) then { player removeAction s_player_Drinkfromhands; s_player_Drinkfromhands = -1; }; }; */ if (_inVehicle) then { DZE_myVehicle = _vehicle; if (_vehicleOwnerID != "0" && _canDo) then { if (s_player_lockUnlockInside_ctrl < 0) then { _totalKeys = call epoch_tempKeys; _temp_keys = _totalKeys select 0; _temp_keys_names = _totalKeys select 1; _hasKey = _vehicleOwnerID in _temp_keys; _oldOwner = (_vehicleOwnerID == _uid); _text = getText (configFile >> "CfgVehicles" >> (typeOf DZE_myVehicle) >> "displayName"); if (locked DZE_myVehicle) then { if (_hasKey || _oldOwner) then { _unlock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[DZE_myVehicle,(_temp_keys_names select (_temp_keys find _vehicleOwnerID))], 2, false, true]; s_player_lockUnlockInside set [count s_player_lockUnlockInside,_unlock]; s_player_lockUnlockInside_ctrl = 1; } else { if (_hasHotwireKit) then { _unlock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",DZE_myVehicle, 2, true, true]; } else { _unlock = DZE_myVehicle addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",DZE_myVehicle, 2, true, true]; }; s_player_lockUnlockInside set [count s_player_lockUnlockInside,_unlock]; s_player_lockUnlockInside_ctrl = 1; }; } else { if (_hasKey || _oldOwner) then { _lock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",DZE_myVehicle, 1, false, true]; s_player_lockUnlockInside set [count s_player_lockUnlockInside,_lock]; s_player_lockUnlockInside_ctrl = 1; }; }; }; } else { {DZE_myVehicle removeAction _x} count s_player_lockUnlockInside;s_player_lockUnlockInside = []; s_player_lockUnlockInside_ctrl = -1; }; } else { {DZE_myVehicle removeAction _x} count s_player_lockUnlockInside;s_player_lockUnlockInside = []; s_player_lockUnlockInside_ctrl = -1; }; if (DZE_HeliLift) then { _hasAttached = _vehicle getVariable["hasAttached",false]; if (_inVehicle && {_vehicle isKindOf "Air"} && {(([_vehicle] call FNC_getPos) select 2) < 30} && {speed _vehicle < 5} && {typeName _hasAttached == "OBJECT"}) then { if (s_player_heli_detach < 0) then { dayz_myLiftVehicle = _vehicle; s_player_heli_detach = dayz_myLiftVehicle addAction [localize "STR_EPOCH_ACTIONS_DETACHVEHICLE","\z\addons\dayz_code\actions\player_heliDetach.sqf",[dayz_myLiftVehicle,_hasAttached],2,false,true]; }; } else { dayz_myLiftVehicle removeAction s_player_heli_detach; s_player_heli_detach = -1; }; }; if (DZE_HaloJump) then { if (_inVehicle && {_vehicle isKindOf "Air"} && {(([_vehicle] call FNC_getPos) select 2) > 400}) then { if (s_halo_action < 0) then { DZE_myHaloVehicle = _vehicle; s_halo_action = DZE_myHaloVehicle addAction [localize "STR_EPOCH_ACTIONS_HALO","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true]; }; } else { DZE_myHaloVehicle removeAction s_halo_action; s_halo_action = -1; }; }; if (DZE_NameTags > 0) then { if (s_player_showname < 0 && !_isPZombie) then { if (DZE_NameTags < 2) 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_attack < 0) then { s_player_attack = player addAction [localize "STR_EPOCH_ACTIONS_ATTACK", "\z\addons\dayz_code\actions\pzombie\pz_attack.sqf", _cursorTarget, 6, false, true]; }; if (s_player_callzombies < 0) then { s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\pzombie\call_zombies.sqf",player, 5, true, 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 && _isClose) then { _isZombie = _cursorTarget isKindOf "zZombie_base"; _isHarvested = _cursorTarget getVariable["meatHarvested",false]; _isMan = _cursorTarget isKindOf "Man"; //includes animals and zombies if (!alive _cursorTarget && _isMan && !_isZombie && !_isHarvested) then { if (s_player_pzombiesfeed < 0) then { s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",_cursorTarget, 3, true, false]; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; }; // Increase distance only if AIR or SHIP _allowedDistance = if ((_cursorTarget isKindOf "Air") or (_cursorTarget isKindOf "Ship")) then {8} else {4}; if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cursorTarget < _allowedDistance) && _canDo) then { //Has some kind of target _typeOfCursorTarget = typeOf _cursorTarget; _isVehicle = _cursorTarget isKindOf "AllVehicles"; _isBicycle = _cursorTarget isKindOf "Bicycle"; _isMan = _cursorTarget isKindOf "Man"; //includes animals and zombies _isDestructable = _cursorTarget isKindOf "BuiltItems"; _isGenerator = _typeOfCursorTarget == "Generator_DZ"; _isLocked = locked _cursorTarget; //_isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"]; //Checked in player_flipvehicle _isFuel = false; _hasBarrel = "ItemFuelBarrel" in _magazinesPlayer; _hasFuel20 = "ItemJerrycan" in _magazinesPlayer; _hasFuel5 = "ItemFuelcan" in _magazinesPlayer; _hasEmptyFuelCan = (("ItemJerrycanEmpty" in _magazinesPlayer) || ("ItemFuelcanEmpty" in _magazinesPlayer) || ("ItemFuelBarrelEmpty" in _magazinesPlayer)); _itemsPlayer = items player; _weaponsPlayer = weapons player; _hasCrowbar = "ItemCrowbar" in _itemsPlayer or "MeleeCrowbar" in _weaponsPlayer or dayz_onBack == "MeleeCrowbar"; _hasToolbox = "ItemToolbox" in _itemsPlayer; _hasbottleitem = (("ItemWaterBottle" in _magazinesPlayer) || {"ItemWaterBottleInfected" in _magazinesPlayer} || {"ItemWaterBottleSafe" in _magazinesPlayer} || {"ItemWaterBottleBoiled" in _magazinesPlayer}); _isAlive = alive _cursorTarget; _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName"); _isPlant = _typeOfCursorTarget in Dayz_plants; _istypeTent = (_cursorTarget isKindOf "TentStorage_base") or (_cursorTarget isKindOf "IC_Tent"); _upgradeItems = ["TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DesertTentStorage","DesertTentStorage0","DesertTentStorage1","DesertTentStorage2","DesertTentStorage3"]; _characterID = _cursorTarget getVariable ["CharacterID","0"]; if (DZE_permanentPlot) then { _id = _uid; _ownerID = _cursorTarget getVariable ["ownerPUID","0"]; } else { _id = _myCharID; _ownerID = _characterID; }; _isDisallowRefuel = _typeOfCursorTarget in ["M240Nest_DZ","MMT_Civ","MMT_USMC","Old_bike_TK_CIV_EP1","Old_bike_TK_INS_EP1"]; _isDog = (_cursorTarget isKindOf "Pastor" || _cursorTarget isKindOf "Fin"); _isModular = _cursorTarget isKindOf "ModularItems"; _isModularDoor = _typeOfCursorTarget in ["Land_DZE_WoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_GarageWoodDoor","CinderWallDoor_DZ","CinderWallDoorSmall_DZ"]; _player_deleteBuild = false; _player_lockUnlock_crtl = false; //fuel tanks if (_hasEmptyFuelCan) then { { if (_cursorTarget isKindOf _x) exitWith {_isFuel = true;}; } count dayz_fuelsources; }; //remove gathered plant if empty if (_isPlant) then { _cursorTarget call player_gather; }; //flip vehicle if (_isVehicle && {!_isMan} && {!(canMove _cursorTarget)} && {_isAlive} && {player distance _cursorTarget >= 2} && {(count (crew _cursorTarget))== 0} && {((vectorUp _cursorTarget) select 2) < 0.5}) 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 Fuel can if (_hasEmptyFuelCan && _isFuel && _isAlive) 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",_cursorTarget, 1, false, true]; }; } else { player removeAction s_player_fillfuel; s_player_fillfuel = -1; }; if (damage _cursorTarget < 1) then { //Allow player to fill vehicle 210L if (_hasBarrel && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!_isDisallowRefuel}) then { if (s_player_fillfuel210 < 0) then { s_player_fillfuel210 = player addAction [format[localize "str_actions_medical_10",_text,"210"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemFuelBarrel",_cursorTarget], 0, true, true]; }; } else { player removeAction s_player_fillfuel210; s_player_fillfuel210 = -1; }; //Allow player to fill vehicle 20L if (_hasFuel20 && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!_isDisallowRefuel}) then { if (s_player_fillfuel20 < 0) then { s_player_fillfuel20 = player addAction [format[localize "str_actions_medical_10",_text,"20"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemJerrycan",_cursorTarget], 0, true, true]; }; } else { player removeAction s_player_fillfuel20; s_player_fillfuel20 = -1; }; //Allow player to fill vehicle 5L if (_hasFuel5 && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!_isDisallowRefuel}) then { if (s_player_fillfuel5 < 0) then { s_player_fillfuel5 = player addAction [format[localize "str_actions_medical_10",_text,"5"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemFuelcan",_cursorTarget], 0, true, true]; }; } else { player removeAction s_player_fillfuel5; s_player_fillfuel5 = -1; }; /* Vanilla generator is currently not functional. Vanilla generator refuel actions removed for now. Epoch generator fill action is below. */ //Allow player to siphon vehicles if (_hasEmptyFuelCan && {!_isMan} && {_isVehicle} && {!_isBicycle} && {fuel _cursorTarget > 0}) then { if (s_player_siphonfuel < 0) then { s_player_siphonfuel = player addAction [format[localize "str_siphon_start"], "\z\addons\dayz_code\actions\siphonFuel.sqf",_cursorTarget, 0, true, true]; }; } else { player removeAction s_player_siphonfuel; s_player_siphonfuel = -1; }; } else { player removeAction s_player_fillfuel210; s_player_fillfuel210 = -1; player removeAction s_player_fillfuel20; s_player_fillfuel20 = -1; player removeAction s_player_fillfuel5; s_player_fillfuel5 = -1; player removeAction s_player_siphonfuel; s_player_siphonfuel = -1; }; //Fireplace Actions check if ((_cursorTarget call isInflamed) or (inflamed _cursorTarget)) then { _hasRawMeat = {_x in Dayz_meatraw} count _magazinesPlayer > 0; //_hastinitem = {_x in boil_tin_cans} count _magazinesPlayer > 0; _hasunboiledwater = {_x in ["ItemWaterBottleInfected","ItemWaterBottle","ItemWaterBottleSafe","ItemWaterbottle1oz","ItemWaterbottle2oz","ItemWaterbottle3oz","ItemWaterbottle4oz","ItemWaterbottle5oz","ItemWaterbottle6oz","ItemWaterbottle7oz","ItemWaterbottle8oz","ItemWaterbottle9oz"]} count _magazinesPlayer > 0; //Cook Meat if (_hasRawMeat && !a_player_cooking) 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]; }; }; //Boil Water if (_hasunboiledwater && !a_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 { if (a_player_cooking) then { player removeAction s_player_cook; s_player_cook = -1; }; if (a_player_boil) then { player removeAction s_player_boil; s_player_boil = -1; }; }; if (_isAlive) then { _restrict = _typeOfCursorTarget in DZE_restrictRemoval; //Allow player to remove objects with no ownership or access required if (!_restrict && (_isDestructable || _typeOfCursorTarget in DZE_isWreck || _typeOfCursorTarget in DZE_isWreckBuilding || _typeOfCursorTarget in DZE_isRemovable)) then { if (_hasToolbox && _hasCrowbar) then { _player_deleteBuild = true; }; }; //Allow player to remove objects only if they have proper ownership or access if (_restrict || _isModular || _isModularDoor || _isGenerator || _typeOfCursorTarget in DZE_isDestroyableStorage) then { if (_hasToolbox && _hasCrowbar) then { _hasAccess = [player, _cursorTarget] call FNC_check_access; if ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3)) then { _player_deleteBuild = true; }; }; }; if (_isVehicle) then { if ((_characterID != "0") && {!_isMan}) then { _player_lockUnlock_crtl = true; }; }; }; if (_player_deleteBuild) then { if (s_player_deleteBuild < 0) then { s_player_deleteBuild = player addAction [format[localize "STR_EPOCH_REMOVE",_text], "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, false, true]; }; } else { player removeAction s_player_deleteBuild; s_player_deleteBuild = -1; }; //remove Own objects if (_ownerID == _id) then { //upgrade items if (_typeOfCursorTarget in _upgradeItems) then { if (s_player_upgradestorage < 0) then { _displayName = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName"); s_player_upgradestorage = player addAction [format[localize "STR_EPOCH_UPGRADE",_displayName], "\z\addons\dayz_code\actions\object_upgradeStorage.sqf",_cursorTarget, 0, false, true]; }; } else { player removeAction s_player_upgradestorage; s_player_upgradestorage = -1 }; if (_istypeTent) then { //Packing my tent 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 { player removeAction s_player_packtent; s_player_packtent = -1; }; } else { player removeAction s_player_upgradestorage; s_player_upgradestorage = -1; player removeAction s_player_packtent; s_player_packtent = -1; }; //other tents if (_istypeTent) then { _hasIgnitors = {_x in DayZ_Ignitors} count _itemsPlayer > 0; if ((_hasFuel20 or _hasFuel5 or _hasBarrel) && _hasIgnitors) then { if (s_player_destroytent < 0) then { s_player_destroytent = player addAction [localize "str_actions_self_destroytent", "\z\addons\dayz_code\actions\player_destroyTent.sqf",_cursorTarget, 0, false, true]; }; } else { player removeAction s_player_destroytent; s_player_destroytent = -1; }; if (_typeOfCursorTarget in ["IC_DomeTent","IC_Tent"]) then { if (s_player_packtentinfected < 0) then { s_player_packtentinfected = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true]; }; } else { player removeAction s_player_packtentinfected; s_player_packtentinfected = -1; }; //sleep if (s_player_sleep < 0) 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; }; //Study Body if (_cursorTarget getVariable["bodyName",""] != "") 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; }; //Repairing Vehicles if (_isVehicle && {!_isMan} && {dayz_myCursorTarget != _cursorTarget} && {_hasToolbox} && {damage _cursorTarget < 1} && {_typeOfCursorTarget != "M240Nest_DZ"}) then { if (s_player_repair_crtl < 0) then { dayz_myCursorTarget = _cursorTarget; _menu = dayz_myCursorTarget addAction [localize "str_actions_repairveh", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false]; if (!_isBicycle) then { //Bike wheels should not give full size tires. Also model does not update to show removed wheels. if (!DZE_salvageLocked) then { if (!_isLocked) then { _menu1 = dayz_myCursorTarget addAction [localize "str_actions_salvageveh", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false]; s_player_repairActions set [count s_player_repairActions,_menu1]; }; } else { _menu1 = dayz_myCursorTarget addAction [localize "str_actions_salvageveh", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false]; s_player_repairActions set [count s_player_repairActions,_menu1]; }; }; s_player_repairActions set [count s_player_repairActions,_menu]; s_player_repair_crtl = 1; } else { {dayz_myCursorTarget removeAction _x} forEach s_player_repairActions; s_player_repairActions = []; s_player_repair_crtl = -1; }; }; if (_typeOfCursorTarget == "Plastic_Pole_EP1_DZ" && {speed player <= 1}) then { _hasAccess = [player, _cursorTarget] call FNC_check_access; _allowed = ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3) or (_hasAccess select 4)); if (DZE_permanentPlot) then { if (s_player_plotManagement < 0 && _allowed) then { s_player_plotManagement = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_EPOCH_ACTIONS_MANAGEPLOT"], "\z\addons\dayz_code\actions\plotManagement\initPlotManagement.sqf", [], 5, false]; }; } else { if (s_player_maintain_area < 0) then { s_player_maintain_area = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; s_player_maintain_area_force = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_FORCE_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "force", 5, false]; s_player_maintain_area_preview = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTPREV"], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false]; }; }; if (s_player_plot_boundary < 0 && (_allowed or (_hasAccess select 1))) then { s_player_plot_boundary = player addAction [localize "STR_EPOCH_PLOTMANAGEMENT_SHOW_BOUNDARY", "\z\addons\dayz_code\actions\plotManagement\plotToggleMarkers.sqf", "", 1, false]; }; } else { player removeAction s_player_plotManagement; s_player_plotManagement = -1; player removeAction s_player_maintain_area; s_player_maintain_area = -1; player removeAction s_player_maintain_area_force; s_player_maintain_area_force = -1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = -1; player removeAction s_player_plot_boundary; s_player_plot_boundary = -1; }; if (DZE_HeliLift) then { _liftHeli = objNull; _found = false; _allowTow = false; if ((count (crew _cursorTarget)) == 0) then { { if (!_allowTow) then { _allowTow = _cursorTarget isKindOf _x; }; } count DZE_HeliAllowToTow; }; if (_allowTow) then { { if (!_found) then { _posL = [_x] call FNC_getPos; _posC = [_cursorTarget] call FNC_getPos; _height = (_posL select 2) - (_posC select 2); _hasAttached = _x getVariable["hasAttached",false]; if ((_height < 15) && {_height > 5} && {typeName _hasAttached != "OBJECT"}) then { if (((abs((_posL select 0) - (_posC select 0))) < 10) && {(abs((_posL select 1) - (_posC select 1))) < 10}) then { _liftHeli = _x; _found = true; }; }; }; } count (player nearEntities [DZE_HeliAllowTowFrom,15]); }; _attached = _cursorTarget getVariable["attached",false]; if (_found && {_allowTow} && {!_isLocked} && {!_isPZombie} && {typeName _attached != "OBJECT"}) then { if (s_player_heli_lift < 0) then { s_player_heli_lift = player addAction [localize "STR_EPOCH_ACTIONS_ATTACHTOHELI", "\z\addons\dayz_code\actions\player_heliLift.sqf",[_liftHeli,_cursorTarget], -10, false, true]; }; } else { player removeAction s_player_heli_lift; s_player_heli_lift = -1; }; }; // Allow Owner to lock and unlock vehicle if (_player_lockUnlock_crtl) then { if (s_player_lockUnlock_crtl < 0) then { _totalKeys = call epoch_tempKeys; _temp_keys = _totalKeys select 0; _temp_keys_names = _totalKeys select 1; _hasKey = _characterID in _temp_keys; _oldOwner = (_characterID == _uid); if (_isLocked) then { if (_hasKey || _oldOwner) then { _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (_temp_keys find _characterID))], 2, true, true]; s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; } else { if (_hasHotwireKit) then { _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true]; } else { _unlock = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",_cursorTarget, 2, false, true]; }; s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; }; } else { if (_hasKey || _oldOwner) then { _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true]; s_player_lockunlock set [count s_player_lockunlock,_lock]; s_player_lockUnlock_crtl = 1; }; }; }; } else { {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; }; // gear access on surrendered player if (isPlayer _cursorTarget && {_isAlive} && {_cursorTarget getVariable ["DZE_Surrendered",false]}) then { if (s_player_SurrenderedGear < 0) then { s_player_SurrenderedGear = player addAction [localize "STR_UI_GEAR", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true]; }; } else { player removeAction s_player_SurrenderedGear; s_player_SurrenderedGear = -1; }; // Allow manage door if (DZE_doorManagement && (_typeOfCursorTarget in DZE_DoorsLocked)) then { // Check player access _hasAccess = [player, _cursorTarget] call FNC_check_access; if (s_player_manageDoor < 0 && ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3) or (_hasAccess select 4) or (_hasAccess select 5) or (_hasAccess select 6))) then { s_player_manageDoor = player addAction [format["<t color='#0059FF'>%1</t>", localize "STR_EPOCH_ACTIONS_MANAGEDOOR"], "\z\addons\dayz_code\actions\doorManagement\initDoorManagement.sqf", _cursorTarget, 5, false]; }; } else { player removeAction s_player_manageDoor; s_player_manageDoor = -1; }; //Allow owner to unlock vault if ((_typeOfCursorTarget in DZE_LockableStorage) && {_characterID != "0"} && {_isClose} && {!keypadCancel}) then { if (s_player_unlockvault < 0) then { if (_typeOfCursorTarget in DZE_LockedStorage) then { if (_characterID == dayz_combination || _ownerID == _uid) then { _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true]; s_player_combi set [count s_player_combi,_combi]; } else { _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true]; s_player_combi set [count s_player_combi,_combi]; }; s_player_unlockvault = 1; } else { if (_characterID != dayz_combination && _ownerID != _uid) then { _combi = player addAction [localize "STR_EPOCH_ACTIONS_RECOMBO", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true]; s_player_combi set [count s_player_combi,_combi]; s_player_unlockvault = 1; }; }; }; } else { {player removeAction _x} count s_player_combi;s_player_combi = []; s_player_unlockvault = -1; }; //Allow owner to pack vault if ((_typeOfCursorTarget in DZE_UnLockedStorage) && {_characterID != "0"} && {_isClose} && {!keypadCancel}) then { if (s_player_lockvault < 0) then { if (_characterID == dayz_combination || _ownerID == _uid) then { s_player_lockvault = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true]; }; }; if (s_player_packvault < 0 && (_characterID == dayz_combination || _ownerID == _uid)) then { s_player_packvault = player addAction [format["<t color='#ff0000'>%1</t>",(format[localize "STR_EPOCH_ACTIONS_PACK",_text])], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true]; }; } else { player removeAction s_player_packvault; s_player_packvault = -1; player removeAction s_player_lockvault; s_player_lockvault = -1; }; //Player Deaths if (_typeOfCursorTarget == "Info_Board_EP1") then { if (s_player_information < 0) then { s_player_information = player addAction [localize "STR_EPOCH_ACTIONS_MURDERS", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true]; }; } else { player removeAction s_player_information; s_player_information = -1; }; //Fuel Pump if (_typeOfCursorTarget in dayz_fuelpumparray) then { if (s_player_fuelauto < 0) then { // check if Generator_DZ is running within 30 meters _findNearestGen = {((alive _x) && (_x getVariable ["GeneratorRunning",false]))} count (([player] call FNC_getPos) nearObjects ["Generator_DZ",30]); // show that pump needs power if no generator nearby. if (_findNearestGen > 0) then { s_player_fuelauto = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true]; } else { s_player_fuelauto = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true]; }; }; } else { player removeAction s_player_fuelauto; s_player_fuelauto = -1; }; //Fuel Pump on truck if (_typeOfCursorTarget in DZE_fueltruckarray && _isAlive) then { if (s_player_fuelauto2 < 0) then { // show that fuel truck pump needs power. if (isEngineOn _cursorTarget) then { s_player_fuelauto2 = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true]; } else { s_player_fuelauto2 = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true]; }; }; } else { player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; }; // inplace upgrade tool if ((_cursorTarget isKindOf "ModularItems") || (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") || (_cursorTarget isKindOf "CinderWallDoor_DZ_Base")) then { if ((s_player_lastTarget select 0) != _cursorTarget) then { if (s_player_upgrade_build > 0) then { player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; }; }; if (s_player_upgrade_build < 0) then { _hasAccess = [player, _cursorTarget] call FNC_check_access; _upgrade = getArray (configFile >> "CfgVehicles" >> (typeOf _cursorTarget) >> "upgradeBuilding"); if (((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3)) && (count _upgrade) > 0) then { s_player_lastTarget set [0,_cursorTarget]; s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true]; }; }; } else { player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; }; // downgrade system if (DZE_Lock_Door == _characterID && {!keypadCancel} && {_cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base"}) 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 { _hasAccess = [player, _cursorTarget] call FNC_check_access; if ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3)) then { s_player_lastTarget set [1,_cursorTarget]; s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "\z\addons\dayz_code\actions\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true]; }; }; } else { player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; }; // inplace maintenance tool if ((damage _cursorTarget >= DZE_DamageBeforeMaint) && {_cursorTarget isKindOf "ModularItems" || _cursorTarget isKindOf "DZE_Housebase" || _typeOfCursorTarget == "LightPole_DZ"}) 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 { _hasAccess = [player, _cursorTarget] call FNC_check_access; if ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3)) then { _text2 = _text + " (" + str(round ((damage _cursorTarget) * 100)) + "% damaged)"; s_player_lastTarget set [2,_cursorTarget]; s_player_maint_build = player addAction [format["%1 %2",localize "STR_EPOCH_ACTIONS_MAINTAIN",_text2], "\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 (_isGenerator) then { if (s_player_fillgen < 0) then { // check if not running if (_cursorTarget getVariable ["GeneratorRunning", false]) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR1", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true]; } else { // check if not filled and player has jerry. if (_cursorTarget getVariable ["GeneratorFilled", false]) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR2", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true]; } else { if (_hasFuel20 or _hasFuel5 or _hasBarrel) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR3", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true]; }; }; }; }; } else { player removeAction s_player_fillgen; s_player_fillgen = -1; }; // Custom stuff below if (Z_singleCurrency) then { if (_isMan && {!_isAlive} && {!(_cursorTarget isKindOf "Animal")}) then { if (s_player_checkWallet < 0) then { s_player_checkWallet = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_CHECK_WALLET"],"scripts\zsc\checkWallet.sqf",_cursorTarget,0,false,true]; }; } else { player removeAction s_player_checkWallet; s_player_checkWallet = -1; }; if (_typeOfCursorTarget in DZE_MoneyStorageClasses && {!_isLocked} && {!(_typeOfCursorTarget in DZE_LockedStorage)}) then { if (s_bank_dialog < 0) then { s_bank_dialog = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_ACCESS_BANK"],"scripts\zsc\bankDialog.sqf",_cursorTarget,1,true,true]; }; } else { player removeAction s_bank_dialog; s_bank_dialog = -1; }; if (_isAlive && {_typeOfCursorTarget in AllPlayers} && {isPlayer _cursorTarget}) then { if (s_givemoney_dialog < 0) then { s_givemoney_dialog = player addAction [format["<t color='#0059FF'>%1</t>",format [localize "STR_CL_ZSC_TRADE_COINS",CurrencyName,name _cursorTarget]],"scripts\zsc\givePlayer.sqf",_cursorTarget,3,true,true]; }; } else { player removeAction s_givemoney_dialog; s_givemoney_dialog = -1; }; if (Z_globalBanking) then { if (_isMan && {!(isPlayer _cursorTarget)} && {_typeOfCursorTarget in ZSC_bankTraders}) then { if (s_bank_dialog1 < 0) then { s_bank_dialog1 = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_BANK_TELLER"],"scripts\zsc\atmDialog.sqf",_cursorTarget,3,true,true]; }; } else { player removeAction s_bank_dialog1; s_bank_dialog1 = -1; }; if (_typeOfCursorTarget in ZSC_bankObjects) then { if (s_bank_dialog2 < 0) then { s_bank_dialog2 = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_BANK_ATM"],"scripts\zsc\atmDialog.sqf",_cursorTarget,3,true,true]; }; } else { player removeAction s_bank_dialog2; s_bank_dialog2 = -1; }; }; }; // All Traders if (_isMan && {!(isPlayer _cursorTarget)} && {_typeOfCursorTarget in serverTraders} && {!_isPZombie}) then { if (s_player_parts_crtl < 0) then { _humanity = player getVariable ["humanity",0]; _traderMenu = call compile format["menu_%1;",_typeOfCursorTarget]; _low_high = localize "STR_EPOCH_ACTIONS_HUMANITY_LOW"; _humanity_logic = false; if ((_traderMenu select 2) == "friendly") then { _humanity_logic = (_humanity < -5000); }; if ((_traderMenu select 2) == "hostile") then { _low_high = localize "STR_EPOCH_ACTIONS_HUMANITY_HIGH"; _humanity_logic = (_humanity > -5000); }; if ((_traderMenu select 2) == "hero") then { _humanity_logic = (_humanity < 5000); }; if (_humanity_logic) then { _cancel = player addAction [format[localize "STR_EPOCH_ACTIONS_HUMANITY",_low_high], "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false]; s_player_parts set [count s_player_parts,_cancel]; } else { // Static Menu { _buy = player addAction [format["Trade %1 %2 for %3 %4",(_x select 3),(_x select 5),(_x select 2),(_x select 6)], "\z\addons\dayz_code\actions\trade_items_wo_db.sqf",[(_x select 0),(_x select 1),(_x select 2),(_x select 3),(_x select 4),(_x select 5),(_x select 6)], (_x select 7), true, true]; s_player_parts set [count s_player_parts,_buy]; } count (_traderMenu select 1); if (DZE_ConfigTrader) then { _buyV = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\AdvancedTrading\init.sqf",(_traderMenu select 0), 999, true, false]; s_player_parts set [count s_player_parts,_buyV]; } else { // Database menu _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false]; s_player_parts set [count s_player_parts,_buy]; }; }; s_player_parts_crtl = 1; }; } else { {player removeAction _x} count s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; }; if (dayz_tameDogs) then { //Dog _hasRawMeat = {_x in Dayz_meatraw} count _magazinesPlayer > 0; if (_isDog && {_hasRawMeat} && {_isAlive} && {_ownerID == "0"} && {player getVariable ["dogID",0] == 0}) then { if (s_player_tamedog < 0) then { s_player_tamedog = player addAction [localize "str_actions_tamedog", "\z\addons\dayz_code\actions\dog\tame_dog.sqf", _cursorTarget, 1, false, true]; }; } else { player removeAction s_player_tamedog; s_player_tamedog = -1; }; if (_isDog && {_ownerID == _id} && {_isAlive}) then { if (s_player_feeddog < 0 && _hasRawMeat) then { s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0], 0, false, true]; }; if (s_player_waterdog < 0 && _hasbottleitem) 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 { if (_dogHandle getFSMVariable "_actionLieDown") 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 player removeAction s_player_plot_boundary; s_player_plot_boundary = -1; player removeAction s_player_plotManagement; s_player_plotManagement = -1; {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = []; player removeAction s_player_repair_crtl; s_player_repair_crtl = -1; dayz_myCursorTarget = objNull; 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_cook; s_player_cook = -1; player removeAction s_player_boil; s_player_boil = -1; player removeAction s_player_packtent; s_player_packtent = -1; player removeAction s_player_packtentinfected; s_player_packtentinfected = -1; player removeAction s_player_fillfuel; s_player_fillfuel = -1; player removeAction s_player_studybody; s_player_studybody = -1; //fuel player removeAction s_player_fillfuel210; s_player_fillfuel210 = -1; player removeAction s_player_fillfuel20; s_player_fillfuel20 = -1; player removeAction s_player_fillfuel5; s_player_fillfuel5 = -1; //Allow player to siphon vehicle fuel player removeAction s_player_siphonfuel; s_player_siphonfuel = -1; //Allow player to gather player removeAction s_player_gather; s_player_gather = -1; player removeAction s_player_destroytent; s_player_destroytent = -1; player removeAction s_player_upgradestorage; s_player_upgradestorage = -1; {player removeAction _x} count s_player_combi;s_player_combi = []; s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull]; {player removeAction _x} count s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; player removeAction s_player_SurrenderedGear; s_player_SurrenderedGear = -1; player removeAction s_player_maintain_area; s_player_maintain_area = -1; player removeAction s_player_maintain_area_force; s_player_maintain_area_force = -1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = -1; 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; player removeAction s_player_unlockvault; s_player_unlockvault = -1; player removeAction s_player_packvault; s_player_packvault = -1; player removeAction s_player_lockvault; s_player_lockvault = -1; player removeAction s_player_information; s_player_information = -1; player removeAction s_player_fillgen; s_player_fillgen = -1; player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; player removeAction s_player_maint_build; s_player_maint_build = -1; player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; player removeAction s_player_towing; s_player_towing = -1; player removeAction s_player_fuelauto; s_player_fuelauto = -1; player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; player removeAction s_player_manageDoor; s_player_manageDoor = -1; // Custom stuff below player removeAction s_givemoney_dialog; s_givemoney_dialog = -1; player removeAction s_bank_dialog; s_bank_dialog = -1; player removeAction s_bank_dialog1; s_bank_dialog1 = -1; player removeAction s_bank_dialog2; s_bank_dialog2 = -1; player removeAction s_player_checkWallet; s_player_checkWallet = -1; }; //Dog actions on player self if (_dogHandle > 0) then { _dog = _dogHandle getFSMVariable "_dog"; if (isNil "_dog") exitWith {}; if (isNil "_ownerID") then {_ownerID = "0"}; if (_canDo && !_inVehicle && alive _dog && !(_ownerID in [_myCharID,_uid])) 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; }; //Monitor player setVariable ["selfActions", diag_ticktime, false]; Any help is greatly appreciated.... Link to comment Share on other sites More sharing options...
salival Posted May 13, 2018 Author Report Share Posted May 13, 2018 3 hours ago, BufordTJustice said: So I followed the instructions to the letter. I used only the files provided, not really anything too extreme in terms of other mods running...I can get the coins on my character, spawn the bankers but the check wallet, banker dialog and safe storage dialog just never come up. I've considered just putting in the code to keep coins after death but I hate having things not working correctly. Hide contents "Sent to server PVDZ_plr_LoginRecord: [76561198007438095, 16, 0, Bufford T. Justice]" [] "player_forceSave called from fsm" "Admin Tools: Activate.sqf loaded" "Admin Tools: FunctionKeys.sqf Loaded" "Admin Tools: NumberKeys.sqf Loaded" "Admin Tools: safeZones.sqf loaded" String STR_CL_ZSC_TRADE_COINS not found String STR_CL_ZSC_CHECK_WALLET not found String STR_CL_ZSC_CHECK_WALLET not found Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. String STR_CL_ZSC_CHECK_WALLET not found String STR_CL_ZSC_CHECK_WALLET not found Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. String STR_CL_ZSC_CHECK_WALLET not found Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_124) not found. Client: Object 3:4 (type Type_99) not found. Client: Object 3:4 (type Type_98) not found. "PRELOAD_ Functions\init [[L 1-1-A:1 REMOTE],any]" "MPframework inited" "Res3tting B!S effects..." "dayz_preloadFinished reset" "Loading custom client compiles" "Admin Tools: config.sqf loaded" "Admin Tools: variables.sqf loaded" "z\addons\dayz_code\system\REsec.sqf:Monitoring Remote Exe..." "Service Points: loading config..." String STR_CL_SP_MESSAGE not found "z\addons\dayz_code\system\antihack.sqf: Plants libs tests done!" No owner ["Sent to server: PVDZ_plr_Login1",["76561198007438095",B 1-1-A:1 (Bufford T. Justice)]] ["Sent to server: PVDZ_send",[B 1-1-A:1 (Bufford T. Justice),"dayzSetDate",[B 1-1-A:1 (Bufford T. Justice)]]] ["Sent to server: PVDZ_plr_Login1",["76561198007438095",B 1-1-A:1 (Bufford T. Justice)]] ["Sent to server: PVDZ_send",[B 1-1-A:1 (Bufford T. Justice),"dayzSetDate",[B 1-1-A:1 (Bufford T. Justice)]]] "PLAYER RESULT: true" [25665.7,"z\addons\dayz_code\system\scheduler\sched_init.sqf","Scheduler started"] ["Sent to server: PVDZ_plr_Login2",["16",B 1-1-B:1 (Bufford T. Justice),"76561198007438095",9,[["ItemToolbox","ItemRadio","ItemHatchet","ItemGPS","vil_USP45SD","ItemKeyRed984","Binocular_Vector","NVGoggles","ItemSledge","ItemKnife","ItemEtool","ItemCrowbar","vil_M110sd"],["ItemPainkiller","ItemMorphine","ItemBloodbag",["20Rnd_762x51_DMR",1],["20Rnd_762x51_DMR",19],"20Rnd_762x51_DMR",["100Rnd_762x54_PK",42],["100Rnd_762x54_PK",96],"100Rnd_762x54_PK","ItemMorphine","ItemAntibiotic6","ItemPainkiller","ItemBandage","ItemBandage","vil_usp45SD_mag","vil_usp45SD_mag","vil_usp45SD_mag","vil_usp45SD_mag","vil_usp45SD_mag","ItemBandage"],"Pecheneg_DZ"]]] ["Date & time received:",[2012,8,2,13,42]] ["Local date on this client:",[2012,8,2,13,41]] "Sent to server PVDZ_plr_LoginRecord: [76561198007438095, 16, 0, Bufford T. Justice]" [] "player_forceSave called from fsm" [25666.7,"onPreloadStarted"] "Admin Tools: Activate.sqf loaded" "Admin Tools: NumberKeys.sqf Loaded" "Admin Tools: FunctionKeys.sqf Loaded" "Admin Tools: safeZones.sqf loaded" [25667,"onPreloadFinished"] "keyboard_keys reset" 2nd UV set needed, but not defined in ReportStack not available String STR_CL_ZSC_TRADE_COINS not found "RE rtitleTextcode args:[any,any,"Bandits have established a Medical Outpost!\nGo Secure their Medical Supplies!","PLAIN",10]" String STR_CL_ZSC_TRADE_COINS not found String STR_CL_ZSC_BANK_TELLER not found Creation of object Agent 0x3b1e4380 failed, state NONE Creation of object Agent 0x4e4d2480 failed, state NONE Creation of object Agent 0x41370600 failed, state NONE Reveal hidden contents respawn = "BASE"; respawnDelay = 0; respawnDialog = 0; onLoadMission = "DayZ Epoch Chernarus"; OnLoadIntro = "Welcome to Chernarus"; OnLoadIntroTime = 0; OnLoadMissionTime = 0; disabledAI = 1; disableChannels[] = {0,2,6}; enableItemsDropping = 0; onPauseScript = ""; briefing = 0; debriefing = 0; titleParam1 = "AutoLogin:"; valuesParam1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 31}; defValueParam1 = 10; //auto login time limit in seconds, set value to 31 to disable auto login textsParam1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, "Disabled"}; loadScreen = "\z\addons\dayz_code\gui\loadingscreen.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 RscTitles { #include "scripts\zsc\playerHud.hpp" class wm_disp { idd = -1; onLoad = "uiNamespace setVariable ['wm_disp', _this select 0]"; fadein = 0; fadeout = 0; duration = 10e10; controlsBackground[] = {}; objects[] = {}; class controls { class wm_text2 { idc = 1; x = safeZoneX+0.027;//safeZoneW*0.01; y = safeZoneY+safeZoneH-0.16; w = 0.151*safeZoneH; h = 0.057*safeZoneH; shadow = 2; class Attributes { font = "EtelkaNarrowMediumPro"; color = "#24FFFFFF"; align = "left"; // put "center" here if you want some background valign = "middle"; shadow = 2; }; colorBackground[] = { 1, 0.3, 0, 0 }; // uncomment and increase 4th number to have a background font = "EtelkaNarrowMediumPro"; size = 0.06*safeZoneH; type = 13; style = 0; text = ""; }; }; }; }; class CfgSounds { sounds[] = { Radio_Message_Sound ,IWAC_Message_Sound }; class Radio_Message_Sound { name="Radio_Message_Sound"; sound[] = {scripts\radio\radio.ogg,0.4,1}; titles[] = {}; }; class IWAC_Message_Sound { name="IWAC_Message_Sound"; sound[] = {scripts\radio\IWACsound.ogg,0.4,1}; titles[] = {}; }; }; #include "dayz_code\gui\description.hpp" #include "\z\addons\dayz_code\Configs\CfgLoot\CfgLoot.hpp" #include "dayz_code\Configs\CfgServerTrader.hpp" #include "dayz_code\configs\RscDisplay\ZSCdefines.hpp" #include "scripts\zsc\zsc.hpp" #include "dayz_code\configs\RscDisplay\advancedTrading.hpp" #include "admintools\dialog.hpp" Reveal hidden contents /* For DayZ Epoch Addons Credits: Jetski Yanahui by Kol9yN, Zakat, Gerasimow9, YuraPetrov, zGuba, A.Karagod, IceBreakr, Sahbazz */ //Server settings dayZ_instance = 11; //Instance ID of this server dayZ_serverName = ""; //Shown to all players in the bottom left of the screen (country code + server number) //Game settings dayz_antihack = 1; // DayZ Antihack / 1 = enabled // 0 = disabled dayz_REsec = 1; // DayZ RE Security / 1 = enabled // 0 = disabled dayz_enableRules = true; //Enables a nice little news/rules feed on player login (make sure to keep the lists quick). dayz_quickSwitch = false; //Turns on forced animation for weapon switch. (hotkeys 1,2,3) False = enable animations, True = disable animations dayz_POIs = false; //Adds Point of Interest map additions (negatively impacts FPS) dayz_infectiousWaterholes = false; //Randomly adds some bodies, graves and wrecks by ponds (negatively impacts FPS) dayz_ForcefullmoonNights = true; // Forces night time to be full moon. dayz_randomMaxFuelAmount = 500; //Puts a random amount of fuel in all fuel stations. //DayZMod presets dayz_presets = "Custom"; //"Custom","Classic","Vanilla","Elite" //Only need to edit if you are running a custom server. if (dayz_presets == "Custom") then { dayz_enableGhosting = false; //Enable disable the ghosting system. dayz_ghostTimer = 60; //Sets how long in seconds a player must be disconnected before being able to login again. dayz_spawnselection = 0; //(Chernarus only) Turn on spawn selection 0 = random only spawns, 1 = spawn choice based on limits dayz_spawncarepkgs_clutterCutter = 0; //0 = loot hidden in grass, 1 = loot lifted, 2 = no grass dayz_spawnCrashSite_clutterCutter = 0; // heli crash options 0 = loot hidden in grass, 1 = loot lifted, 2 = no grass dayz_spawnInfectedSite_clutterCutter = 0; // infected base spawn 0 = loot hidden in grass, 1 = loot lifted, 2 = no grass dayz_bleedingeffect = 2; //1 = blood on the ground (negatively impacts FPS), 2 = partical effect, 3 = both dayz_OpenTarget_TimerTicks = 60 * 10; //how long can a player be freely attacked for after attacking someone unprovoked dayz_nutritionValuesSystem = true; //true, Enables nutrition system, false, disables nutrition system. dayz_classicBloodBagSystem = true; // disable blood types system and use the single classic ItemBloodbag dayz_enableFlies = false; // Enable flies on dead bodies (negatively impacts FPS). }; //Temp settings dayz_DamageMultiplier = 2; //1 - 0 = Disabled, anything over 1 will multiply damage. Damage Multiplier for Zombies. dayz_maxGlobalZeds = 500; //Limit the total zeds server wide. dayz_temperature_override = false; // Set to true to disable all temperature changes. enableRadio false; enableSentences false; // EPOCH CONFIG VARIABLES START // #include "\z\addons\dayz_code\configVariables.sqf" // Don't remove this line // See the above file for a full list including descriptions and default values // Uncomment the lines below to change the default loadout DefaultMagazines = ["ItemBandage","ItemBandage","ItemBandage","ItemBandage","ItemPainkiller","ItemMorphine","ItemBloodbag","15Rnd_9x19_M9","15Rnd_9x19_M9","15Rnd_9x19_M9","15Rnd_9x19_M9","10Rnd_762x54_SVD","10Rnd_762x54_SVD"]; DefaultWeapons = ["ItemMap","ItemFlashlight","ItemCompass","ItemWatch","ItemToolbox","ItemRadio","ItemHatchet","M9_DZ", "SVD_CAMO"]; DefaultBackpack = "DZ_ALICE_Pack_EP1"; DefaultBackpackItems = []; // Can include both weapons and magazines i.e. ["PDW_DZ","30Rnd_9x19_UZI"]; dayz_paraSpawn = false; // Halo spawn DZE_BackpackAntiTheft = false; // Prevent stealing from backpacks in trader zones DZE_BuildOnRoads = false; // Allow building on roads DZE_PlayerZed = true; // Enable spawning as a player zombie when players die with infected status DZE_R3F_WEIGHT = true; // Enable R3F weight. Players carrying too much will be overburdened and forced to move slowly. DZE_StaticConstructionCount = 0; // Steps required to build. If greater than 0 this applies to all objects. DZE_GodModeBase = false; // Make player built base objects indestructible DZE_requireplot = 0; // Require a plot pole to build 0 = Off, 1 = On DZE_PlotPole = [30,45]; // Radius owned by plot pole [Regular objects,Other plotpoles]. Difference between them is the minimum buffer between bases. DZE_BuildingLimit = 150; // Max number of built objects allowed in DZE_PlotPole radius DZE_SafeZonePosArray = [[[6325,7807,0],100],[[4063,11664,0],100],[[11447,11364,0],100],[[1606,7803,0],100],[[12944,12766,0],100],[[12060,12638,0],100]]; // Format is [[[3D POS],RADIUS],[[3D POS],RADIUS]]; Stops loot and zed spawn, salvage and players being killed if their vehicle is destroyed in these zones. DZE_SelfTransfuse = true; // Allow players to bloodbag themselves DZE_selfTransfuse_Values = [12000,15,120]; // [blood amount given, infection chance %, cooldown in seconds] MaxDynamicDebris = 500; // Max number of random road blocks to spawn around the map MaxVehicleLimit = 300; // Max number of random vehicles to spawn around the map spawnArea = 1400; // Distance around markers to find a safe spawn position spawnShoremode = 1; // Random spawn locations 1 = on shores, 0 = inland EpochUseEvents = false; //Enable event scheduler. Define custom scripts in dayz_server\modules to run on a schedule. EpochEvents = [["any","any","any","any",30,"crash_spawner"],["any","any","any","any",0,"crash_spawner"],["any","any","any","any",15,"supply_drop"]]; // EPOCH CONFIG VARIABLES END // diag_log 'dayz_preloadFinished reset'; dayz_preloadFinished=nil; onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinished = false;"; onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;"; with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon if (!isDedicated) then { enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"]; progressLoadingScreen 0; dayz_loadScreenMsg = localize 'str_login_missionFile'; progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf"; 0 cutText ['','BLACK',0]; 0 fadeSound 0; 0 fadeMusic 0; _nill = execvm "custom\debug_monitor\debug_monitor.sqf"; }; debugMonitor = true; initialized = false; call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; call compile preprocessFileLineNumbers "dayz_code\init\variables.sqf"; progressLoadingScreen 0.05; call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf"; progressLoadingScreen 0.1; call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf"; progressLoadingScreen 0.15; call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf"; call compile preprocessFileLineNumbers "dayz_code\init\compiles.sqf"; progressLoadingScreen 0.25; call compile preprocessFileLineNumbers "scripts\traders\server_traders.sqf"; call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\chernarus11.sqf"; //Add trader city objects locally on every machine early call compile preprocessFileLineNumbers "custom\debug_monitor\compiles.sqf"; call compile preprocessFileLineNumbers "logistic\init.sqf"; call compile preprocessFileLineNumbers "admintools\config.sqf"; // Epoch admin Tools config file call compile preprocessFileLineNumbers "admintools\variables.sqf"; // Epoch admin Tools variables initialized = true; setTerrainGrid 25; if (dayz_REsec == 1) then {call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\REsec.sqf";}; execVM "\z\addons\dayz_code\system\DynamicWeatherEffects.sqf"; if (isServer) then { if (dayz_POIs && (toLower worldName == "chernarus")) then {call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\chernarus\poi\init.sqf";}; call compile preprocessFileLineNumbers "\z\addons\dayz_server\system\dynamic_vehicle.sqf"; call compile preprocessFileLineNumbers "\z\addons\dayz_server\system\server_monitor.sqf"; execVM "\z\addons\dayz_server\traders\chernarus11.sqf"; //Add trader agents if (Z_singleCurrency && {Z_globalBanking && Z_globalBankingTraders}) then {execVM "\z\addons\dayz_server\bankTraders\init.sqf";}; // Add global banking agents //Get the server to setup what waterholes are going to be infected and then broadcast to everyone. if (dayz_infectiousWaterholes && (toLower worldName == "chernarus")) then {execVM "\z\addons\dayz_code\system\mission\chernarus\infectiousWaterholes\init.sqf";}; // Lootable objects from CfgTownGeneratorDefault.hpp if (dayz_townGenerator) then { execVM "\z\addons\dayz_code\system\mission\chernarus\MainLootableObjects.sqf"; }; }; if (!isDedicated) then { if (toLower worldName == "chernarus") then { execVM "\z\addons\dayz_code\system\mission\chernarus\hideGlitchObjects.sqf"; }; //Enables Plant lib fixes execVM "\z\addons\dayz_code\system\antihack.sqf"; if (dayz_townGenerator) then { execVM "\z\addons\dayz_code\compile\client_plantSpawner.sqf"; }; execFSM "\z\addons\dayz_code\system\player_monitor.fsm"; execVM "scripts\servicePoints\init.sqf"; //[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf"; if (DZE_R3F_WEIGHT) then {execVM "\z\addons\dayz_code\external\R3F_Realism\R3F_Realism_Init.sqf";}; call compile preprocessFileLineNumbers "scripts\zsc\zscInit.sqf"; execVM "scripts\zsc\playerHud.sqf"; [] execVM "dayz_code\compile\remote_message.sqf"; waitUntil {scriptDone progress_monitor}; cutText ["","BLACK IN", 3]; 3 fadeSound 1; 3 fadeMusic 1; endLoadingScreen; }; [] execVM "admintools\Activate.sqf"; // Epoch admin tools Reveal hidden contents scriptName "Functions\misc\fn_selfActions.sqf"; /*********************************************************** ADD ACTIONS FOR SELF - Function - [] call fnc_usec_selfActions; ************************************************************/ private ["_canPickLight","_text","_unlock","_lock","_totalKeys","_temp_keys","_temp_keys_names","_restrict", "_hasKey","_oldOwner","_hasAttached","_isZombie","_isHarvested","_isMan","_isFuel","_hasRawMeat","_hastinitem","_player_deleteBuild", "_player_lockUnlock_crtl","_displayName","_hasIgnitors","_menu","_menu1","_allowTow","_liftHeli","_found","_posL","_posC","_height","_attached", "_combi","_findNearestGen","_humanity_logic","_low_high","_cancel","_buy","_buyV","_humanity","_traderMenu","_warn","_typeOfCursorTarget", "_isVehicle","_isBicycle","_isDestructable","_isGenerator","_ownerID","_isVehicletype","_hasBarrel","_hasFuel20","_hasFuel5","_hasEmptyFuelCan", "_itemsPlayer","_hasToolbox","_hasbottleitem","_isAlive","_isPlant","_istypeTent","_upgradeItems","_isDisallowRefuel","_isDog", "_isModular","_isModularDoor","_isHouse","_isGateOperational","_isGateLockable","_isFence","_isLockableGate","_isUnlocked","_isOpen","_isClosed","_ownerArray","_ownerBuildLock", "_ownerPID","_speed","_dog","_vehicle","_inVehicle","_cursorTarget","_primaryWeapon","_currentWeapon","_magazinesPlayer","_onLadder","_canDo", "_nearLight","_vehicleOwnerID","_hasHotwireKit","_isPZombie","_dogHandle","_allowedDistance","_id","_upgrade","_weaponsPlayer","_hasCrowbar", "_allowed","_hasAccess","_uid","_myCharID","_isLocked","_isClose"]; _vehicle = vehicle player; _inVehicle = (_vehicle != player); _cursorTarget = cursorTarget; _primaryWeapon = primaryWeapon player; _currentWeapon = currentWeapon player; _magazinesPlayer = magazines player; _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder); _uid = getPlayerUID player; _nearLight = nearestObject [player,"LitObject"]; _canPickLight = false; _myCharID = player getVariable ["CharacterID","0"]; _vehicleOwnerID = _vehicle getVariable ["CharacterID","0"]; _hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer; _isPZombie = player isKindOf "PZombie_VB"; _isClose = (player distance _cursorTarget < 3); _dogHandle = player getVariable ["dogID",0]; if (!isNull _nearLight) then { if (_nearLight distance player < 4) then { _canPickLight = isNull (_nearLight getVariable ["owner",objNull]); }; }; //Grab Flare if (_canPickLight && !dayz_hasLight && !_isPZombie) then { if (s_player_grabflare < 0) then { _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName"); s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true]; s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true]; }; } else { player removeAction s_player_grabflare; player removeAction s_player_removeflare; s_player_grabflare = -1; s_player_removeflare = -1; }; if (s_player_equip_carry < 0) then { if (dayz_onBack != "" && { !_inVehicle && { !_onLadder && { !r_player_unconscious } } }) then { dz_plr_carryActionItem = dayz_onBack; _text = getText (configFile >> "CfgWeapons" >> dz_plr_carryActionItem >> "displayName"); s_player_equip_carry = player addAction [ format [localize "STR_ACTIONS_WEAPON", _text], "\z\addons\dayz_code\actions\player_switchWeapon_action.sqf", nil, 0.5, false, true]; }; } else { if (dayz_onBack != dz_plr_carryActionItem || { _inVehicle || { _onLadder || { r_player_unconscious } } } ) then { player removeAction s_player_equip_carry; s_player_equip_carry = -1; }; }; if ((_currentWeapon in Dayz_fishingItems) && {!dayz_fishingInprogress} && {!_inVehicle} && {!dayz_isSwimming}) then { if (s_player_fishing < 0) then { s_player_fishing = player addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf",player, 0.5, false, true]; }; } else { player removeAction s_player_fishing; s_player_fishing = -1; }; if ((_primaryWeapon in Dayz_fishingItems) && {!dayz_fishingInprogress} && {_inVehicle && (driver _vehicle != player)}) then { if (s_player_fishing_veh < 0) then { s_player_fishing_veh = _vehicle addAction [localize "STR_ACTION_CAST", "\z\addons\dayz_code\actions\player_goFishing.sqf",_vehicle, 0.5, false, true]; }; } else { _vehicle removeAction s_player_fishing_veh; s_player_fishing_veh = -1; }; /* //Allows drinking from hands at ponds and ambient wells, but may negatively impact performance if (_canDo && !_inVehicle && !dayz_isSwimming && ((call fn_nearWaterHole) select 0)) then { if (s_player_Drinkfromhands < 0) then { s_player_Drinkfromhands = player addAction [localize "STR_ACTIONS_DRINK2", "\z\addons\dayz_code\actions\water_fill.sqf","hands", 0.5, false, true]; }; } else { if (s_player_Drinkfromhands >= 0) then { player removeAction s_player_Drinkfromhands; s_player_Drinkfromhands = -1; }; }; */ if (_inVehicle) then { DZE_myVehicle = _vehicle; if (_vehicleOwnerID != "0" && _canDo) then { if (s_player_lockUnlockInside_ctrl < 0) then { _totalKeys = call epoch_tempKeys; _temp_keys = _totalKeys select 0; _temp_keys_names = _totalKeys select 1; _hasKey = _vehicleOwnerID in _temp_keys; _oldOwner = (_vehicleOwnerID == _uid); _text = getText (configFile >> "CfgVehicles" >> (typeOf DZE_myVehicle) >> "displayName"); if (locked DZE_myVehicle) then { if (_hasKey || _oldOwner) then { _unlock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[DZE_myVehicle,(_temp_keys_names select (_temp_keys find _vehicleOwnerID))], 2, false, true]; s_player_lockUnlockInside set [count s_player_lockUnlockInside,_unlock]; s_player_lockUnlockInside_ctrl = 1; } else { if (_hasHotwireKit) then { _unlock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",DZE_myVehicle, 2, true, true]; } else { _unlock = DZE_myVehicle addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",DZE_myVehicle, 2, true, true]; }; s_player_lockUnlockInside set [count s_player_lockUnlockInside,_unlock]; s_player_lockUnlockInside_ctrl = 1; }; } else { if (_hasKey || _oldOwner) then { _lock = DZE_myVehicle addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",DZE_myVehicle, 1, false, true]; s_player_lockUnlockInside set [count s_player_lockUnlockInside,_lock]; s_player_lockUnlockInside_ctrl = 1; }; }; }; } else { {DZE_myVehicle removeAction _x} count s_player_lockUnlockInside;s_player_lockUnlockInside = []; s_player_lockUnlockInside_ctrl = -1; }; } else { {DZE_myVehicle removeAction _x} count s_player_lockUnlockInside;s_player_lockUnlockInside = []; s_player_lockUnlockInside_ctrl = -1; }; if (DZE_HeliLift) then { _hasAttached = _vehicle getVariable["hasAttached",false]; if (_inVehicle && {_vehicle isKindOf "Air"} && {(([_vehicle] call FNC_getPos) select 2) < 30} && {speed _vehicle < 5} && {typeName _hasAttached == "OBJECT"}) then { if (s_player_heli_detach < 0) then { dayz_myLiftVehicle = _vehicle; s_player_heli_detach = dayz_myLiftVehicle addAction [localize "STR_EPOCH_ACTIONS_DETACHVEHICLE","\z\addons\dayz_code\actions\player_heliDetach.sqf",[dayz_myLiftVehicle,_hasAttached],2,false,true]; }; } else { dayz_myLiftVehicle removeAction s_player_heli_detach; s_player_heli_detach = -1; }; }; if (DZE_HaloJump) then { if (_inVehicle && {_vehicle isKindOf "Air"} && {(([_vehicle] call FNC_getPos) select 2) > 400}) then { if (s_halo_action < 0) then { DZE_myHaloVehicle = _vehicle; s_halo_action = DZE_myHaloVehicle addAction [localize "STR_EPOCH_ACTIONS_HALO","\z\addons\dayz_code\actions\halo_jump.sqf",[],2,false,true]; }; } else { DZE_myHaloVehicle removeAction s_halo_action; s_halo_action = -1; }; }; if (DZE_NameTags > 0) then { if (s_player_showname < 0 && !_isPZombie) then { if (DZE_NameTags < 2) 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_attack < 0) then { s_player_attack = player addAction [localize "STR_EPOCH_ACTIONS_ATTACK", "\z\addons\dayz_code\actions\pzombie\pz_attack.sqf", _cursorTarget, 6, false, true]; }; if (s_player_callzombies < 0) then { s_player_callzombies = player addAction [localize "STR_EPOCH_ACTIONS_RAISEHORDE", "\z\addons\dayz_code\actions\pzombie\call_zombies.sqf",player, 5, true, 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 && _isClose) then { _isZombie = _cursorTarget isKindOf "zZombie_base"; _isHarvested = _cursorTarget getVariable["meatHarvested",false]; _isMan = _cursorTarget isKindOf "Man"; //includes animals and zombies if (!alive _cursorTarget && _isMan && !_isZombie && !_isHarvested) then { if (s_player_pzombiesfeed < 0) then { s_player_pzombiesfeed = player addAction [localize "STR_EPOCH_ACTIONS_FEED", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",_cursorTarget, 3, true, false]; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; } else { player removeAction s_player_pzombiesfeed; s_player_pzombiesfeed = -1; }; }; // Increase distance only if AIR or SHIP _allowedDistance = if ((_cursorTarget isKindOf "Air") or (_cursorTarget isKindOf "Ship")) then {8} else {4}; if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cursorTarget < _allowedDistance) && _canDo) then { //Has some kind of target _typeOfCursorTarget = typeOf _cursorTarget; _isVehicle = _cursorTarget isKindOf "AllVehicles"; _isBicycle = _cursorTarget isKindOf "Bicycle"; _isMan = _cursorTarget isKindOf "Man"; //includes animals and zombies _isDestructable = _cursorTarget isKindOf "BuiltItems"; _isGenerator = _typeOfCursorTarget == "Generator_DZ"; _isLocked = locked _cursorTarget; //_isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"]; //Checked in player_flipvehicle _isFuel = false; _hasBarrel = "ItemFuelBarrel" in _magazinesPlayer; _hasFuel20 = "ItemJerrycan" in _magazinesPlayer; _hasFuel5 = "ItemFuelcan" in _magazinesPlayer; _hasEmptyFuelCan = (("ItemJerrycanEmpty" in _magazinesPlayer) || ("ItemFuelcanEmpty" in _magazinesPlayer) || ("ItemFuelBarrelEmpty" in _magazinesPlayer)); _itemsPlayer = items player; _weaponsPlayer = weapons player; _hasCrowbar = "ItemCrowbar" in _itemsPlayer or "MeleeCrowbar" in _weaponsPlayer or dayz_onBack == "MeleeCrowbar"; _hasToolbox = "ItemToolbox" in _itemsPlayer; _hasbottleitem = (("ItemWaterBottle" in _magazinesPlayer) || {"ItemWaterBottleInfected" in _magazinesPlayer} || {"ItemWaterBottleSafe" in _magazinesPlayer} || {"ItemWaterBottleBoiled" in _magazinesPlayer}); _isAlive = alive _cursorTarget; _text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName"); _isPlant = _typeOfCursorTarget in Dayz_plants; _istypeTent = (_cursorTarget isKindOf "TentStorage_base") or (_cursorTarget isKindOf "IC_Tent"); _upgradeItems = ["TentStorage","TentStorage0","TentStorage1","TentStorage2","TentStorage3","StashSmall","StashSmall1","StashSmall2","StashSmall3","StashSmall4","StashMedium","StashMedium1","StashMedium2","StashMedium3","DomeTentStorage","DomeTentStorage0","DomeTentStorage1","DomeTentStorage2","DomeTentStorage3","DesertTentStorage","DesertTentStorage0","DesertTentStorage1","DesertTentStorage2","DesertTentStorage3"]; _characterID = _cursorTarget getVariable ["CharacterID","0"]; if (DZE_permanentPlot) then { _id = _uid; _ownerID = _cursorTarget getVariable ["ownerPUID","0"]; } else { _id = _myCharID; _ownerID = _characterID; }; _isDisallowRefuel = _typeOfCursorTarget in ["M240Nest_DZ","MMT_Civ","MMT_USMC","Old_bike_TK_CIV_EP1","Old_bike_TK_INS_EP1"]; _isDog = (_cursorTarget isKindOf "Pastor" || _cursorTarget isKindOf "Fin"); _isModular = _cursorTarget isKindOf "ModularItems"; _isModularDoor = _typeOfCursorTarget in ["Land_DZE_WoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_GarageWoodDoor","CinderWallDoor_DZ","CinderWallDoorSmall_DZ"]; _player_deleteBuild = false; _player_lockUnlock_crtl = false; //fuel tanks if (_hasEmptyFuelCan) then { { if (_cursorTarget isKindOf _x) exitWith {_isFuel = true;}; } count dayz_fuelsources; }; //remove gathered plant if empty if (_isPlant) then { _cursorTarget call player_gather; }; //flip vehicle if (_isVehicle && {!_isMan} && {!(canMove _cursorTarget)} && {_isAlive} && {player distance _cursorTarget >= 2} && {(count (crew _cursorTarget))== 0} && {((vectorUp _cursorTarget) select 2) < 0.5}) 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 Fuel can if (_hasEmptyFuelCan && _isFuel && _isAlive) 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",_cursorTarget, 1, false, true]; }; } else { player removeAction s_player_fillfuel; s_player_fillfuel = -1; }; if (damage _cursorTarget < 1) then { //Allow player to fill vehicle 210L if (_hasBarrel && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!_isDisallowRefuel}) then { if (s_player_fillfuel210 < 0) then { s_player_fillfuel210 = player addAction [format[localize "str_actions_medical_10",_text,"210"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemFuelBarrel",_cursorTarget], 0, true, true]; }; } else { player removeAction s_player_fillfuel210; s_player_fillfuel210 = -1; }; //Allow player to fill vehicle 20L if (_hasFuel20 && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!_isDisallowRefuel}) then { if (s_player_fillfuel20 < 0) then { s_player_fillfuel20 = player addAction [format[localize "str_actions_medical_10",_text,"20"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemJerrycan",_cursorTarget], 0, true, true]; }; } else { player removeAction s_player_fillfuel20; s_player_fillfuel20 = -1; }; //Allow player to fill vehicle 5L if (_hasFuel5 && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!_isDisallowRefuel}) then { if (s_player_fillfuel5 < 0) then { s_player_fillfuel5 = player addAction [format[localize "str_actions_medical_10",_text,"5"], "\z\addons\dayz_code\actions\refuel.sqf",["ItemFuelcan",_cursorTarget], 0, true, true]; }; } else { player removeAction s_player_fillfuel5; s_player_fillfuel5 = -1; }; /* Vanilla generator is currently not functional. Vanilla generator refuel actions removed for now. Epoch generator fill action is below. */ //Allow player to siphon vehicles if (_hasEmptyFuelCan && {!_isMan} && {_isVehicle} && {!_isBicycle} && {fuel _cursorTarget > 0}) then { if (s_player_siphonfuel < 0) then { s_player_siphonfuel = player addAction [format[localize "str_siphon_start"], "\z\addons\dayz_code\actions\siphonFuel.sqf",_cursorTarget, 0, true, true]; }; } else { player removeAction s_player_siphonfuel; s_player_siphonfuel = -1; }; } else { player removeAction s_player_fillfuel210; s_player_fillfuel210 = -1; player removeAction s_player_fillfuel20; s_player_fillfuel20 = -1; player removeAction s_player_fillfuel5; s_player_fillfuel5 = -1; player removeAction s_player_siphonfuel; s_player_siphonfuel = -1; }; //Fireplace Actions check if ((_cursorTarget call isInflamed) or (inflamed _cursorTarget)) then { _hasRawMeat = {_x in Dayz_meatraw} count _magazinesPlayer > 0; //_hastinitem = {_x in boil_tin_cans} count _magazinesPlayer > 0; _hasunboiledwater = {_x in ["ItemWaterBottleInfected","ItemWaterBottle","ItemWaterBottleSafe","ItemWaterbottle1oz","ItemWaterbottle2oz","ItemWaterbottle3oz","ItemWaterbottle4oz","ItemWaterbottle5oz","ItemWaterbottle6oz","ItemWaterbottle7oz","ItemWaterbottle8oz","ItemWaterbottle9oz"]} count _magazinesPlayer > 0; //Cook Meat if (_hasRawMeat && !a_player_cooking) 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]; }; }; //Boil Water if (_hasunboiledwater && !a_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 { if (a_player_cooking) then { player removeAction s_player_cook; s_player_cook = -1; }; if (a_player_boil) then { player removeAction s_player_boil; s_player_boil = -1; }; }; if (_isAlive) then { _restrict = _typeOfCursorTarget in DZE_restrictRemoval; //Allow player to remove objects with no ownership or access required if (!_restrict && (_isDestructable || _typeOfCursorTarget in DZE_isWreck || _typeOfCursorTarget in DZE_isWreckBuilding || _typeOfCursorTarget in DZE_isRemovable)) then { if (_hasToolbox && _hasCrowbar) then { _player_deleteBuild = true; }; }; //Allow player to remove objects only if they have proper ownership or access if (_restrict || _isModular || _isModularDoor || _isGenerator || _typeOfCursorTarget in DZE_isDestroyableStorage) then { if (_hasToolbox && _hasCrowbar) then { _hasAccess = [player, _cursorTarget] call FNC_check_access; if ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3)) then { _player_deleteBuild = true; }; }; }; if (_isVehicle) then { if ((_characterID != "0") && {!_isMan}) then { _player_lockUnlock_crtl = true; }; }; }; if (_player_deleteBuild) then { if (s_player_deleteBuild < 0) then { s_player_deleteBuild = player addAction [format[localize "STR_EPOCH_REMOVE",_text], "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, false, true]; }; } else { player removeAction s_player_deleteBuild; s_player_deleteBuild = -1; }; //remove Own objects if (_ownerID == _id) then { //upgrade items if (_typeOfCursorTarget in _upgradeItems) then { if (s_player_upgradestorage < 0) then { _displayName = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName"); s_player_upgradestorage = player addAction [format[localize "STR_EPOCH_UPGRADE",_displayName], "\z\addons\dayz_code\actions\object_upgradeStorage.sqf",_cursorTarget, 0, false, true]; }; } else { player removeAction s_player_upgradestorage; s_player_upgradestorage = -1 }; if (_istypeTent) then { //Packing my tent 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 { player removeAction s_player_packtent; s_player_packtent = -1; }; } else { player removeAction s_player_upgradestorage; s_player_upgradestorage = -1; player removeAction s_player_packtent; s_player_packtent = -1; }; //other tents if (_istypeTent) then { _hasIgnitors = {_x in DayZ_Ignitors} count _itemsPlayer > 0; if ((_hasFuel20 or _hasFuel5 or _hasBarrel) && _hasIgnitors) then { if (s_player_destroytent < 0) then { s_player_destroytent = player addAction [localize "str_actions_self_destroytent", "\z\addons\dayz_code\actions\player_destroyTent.sqf",_cursorTarget, 0, false, true]; }; } else { player removeAction s_player_destroytent; s_player_destroytent = -1; }; if (_typeOfCursorTarget in ["IC_DomeTent","IC_Tent"]) then { if (s_player_packtentinfected < 0) then { s_player_packtentinfected = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true]; }; } else { player removeAction s_player_packtentinfected; s_player_packtentinfected = -1; }; //sleep if (s_player_sleep < 0) 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; }; //Study Body if (_cursorTarget getVariable["bodyName",""] != "") 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; }; //Repairing Vehicles if (_isVehicle && {!_isMan} && {dayz_myCursorTarget != _cursorTarget} && {_hasToolbox} && {damage _cursorTarget < 1} && {_typeOfCursorTarget != "M240Nest_DZ"}) then { if (s_player_repair_crtl < 0) then { dayz_myCursorTarget = _cursorTarget; _menu = dayz_myCursorTarget addAction [localize "str_actions_repairveh", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false]; if (!_isBicycle) then { //Bike wheels should not give full size tires. Also model does not update to show removed wheels. if (!DZE_salvageLocked) then { if (!_isLocked) then { _menu1 = dayz_myCursorTarget addAction [localize "str_actions_salvageveh", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false]; s_player_repairActions set [count s_player_repairActions,_menu1]; }; } else { _menu1 = dayz_myCursorTarget addAction [localize "str_actions_salvageveh", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false]; s_player_repairActions set [count s_player_repairActions,_menu1]; }; }; s_player_repairActions set [count s_player_repairActions,_menu]; s_player_repair_crtl = 1; } else { {dayz_myCursorTarget removeAction _x} forEach s_player_repairActions; s_player_repairActions = []; s_player_repair_crtl = -1; }; }; if (_typeOfCursorTarget == "Plastic_Pole_EP1_DZ" && {speed player <= 1}) then { _hasAccess = [player, _cursorTarget] call FNC_check_access; _allowed = ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3) or (_hasAccess select 4)); if (DZE_permanentPlot) then { if (s_player_plotManagement < 0 && _allowed) then { s_player_plotManagement = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_EPOCH_ACTIONS_MANAGEPLOT"], "\z\addons\dayz_code\actions\plotManagement\initPlotManagement.sqf", [], 5, false]; }; } else { if (s_player_maintain_area < 0) then { s_player_maintain_area = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "maintain", 5, false]; s_player_maintain_area_force = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_FORCE_MAINTAREA"], "\z\addons\dayz_code\actions\maintain_area.sqf", "force", 5, false]; s_player_maintain_area_preview = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_MAINTPREV"], "\z\addons\dayz_code\actions\maintain_area.sqf", "preview", 5, false]; }; }; if (s_player_plot_boundary < 0 && (_allowed or (_hasAccess select 1))) then { s_player_plot_boundary = player addAction [localize "STR_EPOCH_PLOTMANAGEMENT_SHOW_BOUNDARY", "\z\addons\dayz_code\actions\plotManagement\plotToggleMarkers.sqf", "", 1, false]; }; } else { player removeAction s_player_plotManagement; s_player_plotManagement = -1; player removeAction s_player_maintain_area; s_player_maintain_area = -1; player removeAction s_player_maintain_area_force; s_player_maintain_area_force = -1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = -1; player removeAction s_player_plot_boundary; s_player_plot_boundary = -1; }; if (DZE_HeliLift) then { _liftHeli = objNull; _found = false; _allowTow = false; if ((count (crew _cursorTarget)) == 0) then { { if (!_allowTow) then { _allowTow = _cursorTarget isKindOf _x; }; } count DZE_HeliAllowToTow; }; if (_allowTow) then { { if (!_found) then { _posL = [_x] call FNC_getPos; _posC = [_cursorTarget] call FNC_getPos; _height = (_posL select 2) - (_posC select 2); _hasAttached = _x getVariable["hasAttached",false]; if ((_height < 15) && {_height > 5} && {typeName _hasAttached != "OBJECT"}) then { if (((abs((_posL select 0) - (_posC select 0))) < 10) && {(abs((_posL select 1) - (_posC select 1))) < 10}) then { _liftHeli = _x; _found = true; }; }; }; } count (player nearEntities [DZE_HeliAllowTowFrom,15]); }; _attached = _cursorTarget getVariable["attached",false]; if (_found && {_allowTow} && {!_isLocked} && {!_isPZombie} && {typeName _attached != "OBJECT"}) then { if (s_player_heli_lift < 0) then { s_player_heli_lift = player addAction [localize "STR_EPOCH_ACTIONS_ATTACHTOHELI", "\z\addons\dayz_code\actions\player_heliLift.sqf",[_liftHeli,_cursorTarget], -10, false, true]; }; } else { player removeAction s_player_heli_lift; s_player_heli_lift = -1; }; }; // Allow Owner to lock and unlock vehicle if (_player_lockUnlock_crtl) then { if (s_player_lockUnlock_crtl < 0) then { _totalKeys = call epoch_tempKeys; _temp_keys = _totalKeys select 0; _temp_keys_names = _totalKeys select 1; _hasKey = _characterID in _temp_keys; _oldOwner = (_characterID == _uid); if (_isLocked) then { if (_hasKey || _oldOwner) then { _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,(_temp_keys_names select (_temp_keys find _characterID))], 2, true, true]; s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; } else { if (_hasHotwireKit) then { _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_HOTWIRE",_text], "\z\addons\dayz_code\actions\hotwire_veh.sqf",_cursorTarget, 2, true, true]; } else { _unlock = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_VEHLOCKED"], "",_cursorTarget, 2, false, true]; }; s_player_lockunlock set [count s_player_lockunlock,_unlock]; s_player_lockUnlock_crtl = 1; }; } else { if (_hasKey || _oldOwner) then { _lock = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true]; s_player_lockunlock set [count s_player_lockunlock,_lock]; s_player_lockUnlock_crtl = 1; }; }; }; } else { {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; }; // gear access on surrendered player if (isPlayer _cursorTarget && {_isAlive} && {_cursorTarget getVariable ["DZE_Surrendered",false]}) then { if (s_player_SurrenderedGear < 0) then { s_player_SurrenderedGear = player addAction [localize "STR_UI_GEAR", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true]; }; } else { player removeAction s_player_SurrenderedGear; s_player_SurrenderedGear = -1; }; // Allow manage door if (DZE_doorManagement && (_typeOfCursorTarget in DZE_DoorsLocked)) then { // Check player access _hasAccess = [player, _cursorTarget] call FNC_check_access; if (s_player_manageDoor < 0 && ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3) or (_hasAccess select 4) or (_hasAccess select 5) or (_hasAccess select 6))) then { s_player_manageDoor = player addAction [format["<t color='#0059FF'>%1</t>", localize "STR_EPOCH_ACTIONS_MANAGEDOOR"], "\z\addons\dayz_code\actions\doorManagement\initDoorManagement.sqf", _cursorTarget, 5, false]; }; } else { player removeAction s_player_manageDoor; s_player_manageDoor = -1; }; //Allow owner to unlock vault if ((_typeOfCursorTarget in DZE_LockableStorage) && {_characterID != "0"} && {_isClose} && {!keypadCancel}) then { if (s_player_unlockvault < 0) then { if (_typeOfCursorTarget in DZE_LockedStorage) then { if (_characterID == dayz_combination || _ownerID == _uid) then { _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true]; s_player_combi set [count s_player_combi,_combi]; } else { _combi = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true]; s_player_combi set [count s_player_combi,_combi]; }; s_player_unlockvault = 1; } else { if (_characterID != dayz_combination && _ownerID != _uid) then { _combi = player addAction [localize "STR_EPOCH_ACTIONS_RECOMBO", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true]; s_player_combi set [count s_player_combi,_combi]; s_player_unlockvault = 1; }; }; }; } else { {player removeAction _x} count s_player_combi;s_player_combi = []; s_player_unlockvault = -1; }; //Allow owner to pack vault if ((_typeOfCursorTarget in DZE_UnLockedStorage) && {_characterID != "0"} && {_isClose} && {!keypadCancel}) then { if (s_player_lockvault < 0) then { if (_characterID == dayz_combination || _ownerID == _uid) then { s_player_lockvault = player addAction [format[localize "STR_EPOCH_ACTIONS_LOCK",_text], "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true]; }; }; if (s_player_packvault < 0 && (_characterID == dayz_combination || _ownerID == _uid)) then { s_player_packvault = player addAction [format["<t color='#ff0000'>%1</t>",(format[localize "STR_EPOCH_ACTIONS_PACK",_text])], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true]; }; } else { player removeAction s_player_packvault; s_player_packvault = -1; player removeAction s_player_lockvault; s_player_lockvault = -1; }; //Player Deaths if (_typeOfCursorTarget == "Info_Board_EP1") then { if (s_player_information < 0) then { s_player_information = player addAction [localize "STR_EPOCH_ACTIONS_MURDERS", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 7, false, true]; }; } else { player removeAction s_player_information; s_player_information = -1; }; //Fuel Pump if (_typeOfCursorTarget in dayz_fuelpumparray) then { if (s_player_fuelauto < 0) then { // check if Generator_DZ is running within 30 meters _findNearestGen = {((alive _x) && (_x getVariable ["GeneratorRunning",false]))} count (([player] call FNC_getPos) nearObjects ["Generator_DZ",30]); // show that pump needs power if no generator nearby. if (_findNearestGen > 0) then { s_player_fuelauto = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",objNull, 0, false, true]; } else { s_player_fuelauto = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true]; }; }; } else { player removeAction s_player_fuelauto; s_player_fuelauto = -1; }; //Fuel Pump on truck if (_typeOfCursorTarget in DZE_fueltruckarray && _isAlive) then { if (s_player_fuelauto2 < 0) then { // show that fuel truck pump needs power. if (isEngineOn _cursorTarget) then { s_player_fuelauto2 = player addAction [localize "STR_EPOCH_ACTIONS_FILLVEH", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",_cursorTarget, 0, false, true]; } else { s_player_fuelauto2 = player addAction [format["<t color='#ff0000'>%1</t>",localize "STR_EPOCH_ACTIONS_NEEDPOWER"], "",[], 0, false, true]; }; }; } else { player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; }; // inplace upgrade tool if ((_cursorTarget isKindOf "ModularItems") || (_cursorTarget isKindOf "Land_DZE_WoodDoor_Base") || (_cursorTarget isKindOf "CinderWallDoor_DZ_Base")) then { if ((s_player_lastTarget select 0) != _cursorTarget) then { if (s_player_upgrade_build > 0) then { player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; }; }; if (s_player_upgrade_build < 0) then { _hasAccess = [player, _cursorTarget] call FNC_check_access; _upgrade = getArray (configFile >> "CfgVehicles" >> (typeOf _cursorTarget) >> "upgradeBuilding"); if (((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3)) && (count _upgrade) > 0) then { s_player_lastTarget set [0,_cursorTarget]; s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_UPGRADE",_text], "\z\addons\dayz_code\actions\player_upgrade.sqf",_cursorTarget, -1, false, true]; }; }; } else { player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; }; // downgrade system if (DZE_Lock_Door == _characterID && {!keypadCancel} && {_cursorTarget isKindOf "Land_DZE_WoodDoorLocked_Base" || _cursorTarget isKindOf "CinderWallDoorLocked_DZ_Base"}) 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 { _hasAccess = [player, _cursorTarget] call FNC_check_access; if ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3)) then { s_player_lastTarget set [1,_cursorTarget]; s_player_downgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_REMLOCK",_text], "\z\addons\dayz_code\actions\player_buildingDowngrade.sqf",_cursorTarget, -2, false, true]; }; }; } else { player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; }; // inplace maintenance tool if ((damage _cursorTarget >= DZE_DamageBeforeMaint) && {_cursorTarget isKindOf "ModularItems" || _cursorTarget isKindOf "DZE_Housebase" || _typeOfCursorTarget == "LightPole_DZ"}) 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 { _hasAccess = [player, _cursorTarget] call FNC_check_access; if ((_hasAccess select 0) or (_hasAccess select 2) or (_hasAccess select 3)) then { _text2 = _text + " (" + str(round ((damage _cursorTarget) * 100)) + "% damaged)"; s_player_lastTarget set [2,_cursorTarget]; s_player_maint_build = player addAction [format["%1 %2",localize "STR_EPOCH_ACTIONS_MAINTAIN",_text2], "\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 (_isGenerator) then { if (s_player_fillgen < 0) then { // check if not running if (_cursorTarget getVariable ["GeneratorRunning", false]) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR1", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true]; } else { // check if not filled and player has jerry. if (_cursorTarget getVariable ["GeneratorFilled", false]) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR2", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true]; } else { if (_hasFuel20 or _hasFuel5 or _hasBarrel) then { s_player_fillgen = player addAction [localize "STR_EPOCH_ACTIONS_GENERATOR3", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true]; }; }; }; }; } else { player removeAction s_player_fillgen; s_player_fillgen = -1; }; // Custom stuff below if (Z_singleCurrency) then { if (_isMan && {!_isAlive} && {!(_cursorTarget isKindOf "Animal")}) then { if (s_player_checkWallet < 0) then { s_player_checkWallet = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_CHECK_WALLET"],"scripts\zsc\checkWallet.sqf",_cursorTarget,0,false,true]; }; } else { player removeAction s_player_checkWallet; s_player_checkWallet = -1; }; if (_typeOfCursorTarget in DZE_MoneyStorageClasses && {!_isLocked} && {!(_typeOfCursorTarget in DZE_LockedStorage)}) then { if (s_bank_dialog < 0) then { s_bank_dialog = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_ACCESS_BANK"],"scripts\zsc\bankDialog.sqf",_cursorTarget,1,true,true]; }; } else { player removeAction s_bank_dialog; s_bank_dialog = -1; }; if (_isAlive && {_typeOfCursorTarget in AllPlayers} && {isPlayer _cursorTarget}) then { if (s_givemoney_dialog < 0) then { s_givemoney_dialog = player addAction [format["<t color='#0059FF'>%1</t>",format [localize "STR_CL_ZSC_TRADE_COINS",CurrencyName,name _cursorTarget]],"scripts\zsc\givePlayer.sqf",_cursorTarget,3,true,true]; }; } else { player removeAction s_givemoney_dialog; s_givemoney_dialog = -1; }; if (Z_globalBanking) then { if (_isMan && {!(isPlayer _cursorTarget)} && {_typeOfCursorTarget in ZSC_bankTraders}) then { if (s_bank_dialog1 < 0) then { s_bank_dialog1 = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_BANK_TELLER"],"scripts\zsc\atmDialog.sqf",_cursorTarget,3,true,true]; }; } else { player removeAction s_bank_dialog1; s_bank_dialog1 = -1; }; if (_typeOfCursorTarget in ZSC_bankObjects) then { if (s_bank_dialog2 < 0) then { s_bank_dialog2 = player addAction [format["<t color='#0059FF'>%1</t>",localize "STR_CL_ZSC_BANK_ATM"],"scripts\zsc\atmDialog.sqf",_cursorTarget,3,true,true]; }; } else { player removeAction s_bank_dialog2; s_bank_dialog2 = -1; }; }; }; // All Traders if (_isMan && {!(isPlayer _cursorTarget)} && {_typeOfCursorTarget in serverTraders} && {!_isPZombie}) then { if (s_player_parts_crtl < 0) then { _humanity = player getVariable ["humanity",0]; _traderMenu = call compile format["menu_%1;",_typeOfCursorTarget]; _low_high = localize "STR_EPOCH_ACTIONS_HUMANITY_LOW"; _humanity_logic = false; if ((_traderMenu select 2) == "friendly") then { _humanity_logic = (_humanity < -5000); }; if ((_traderMenu select 2) == "hostile") then { _low_high = localize "STR_EPOCH_ACTIONS_HUMANITY_HIGH"; _humanity_logic = (_humanity > -5000); }; if ((_traderMenu select 2) == "hero") then { _humanity_logic = (_humanity < 5000); }; if (_humanity_logic) then { _cancel = player addAction [format[localize "STR_EPOCH_ACTIONS_HUMANITY",_low_high], "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false]; s_player_parts set [count s_player_parts,_cancel]; } else { // Static Menu { _buy = player addAction [format["Trade %1 %2 for %3 %4",(_x select 3),(_x select 5),(_x select 2),(_x select 6)], "\z\addons\dayz_code\actions\trade_items_wo_db.sqf",[(_x select 0),(_x select 1),(_x select 2),(_x select 3),(_x select 4),(_x select 5),(_x select 6)], (_x select 7), true, true]; s_player_parts set [count s_player_parts,_buy]; } count (_traderMenu select 1); if (DZE_ConfigTrader) then { _buyV = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\AdvancedTrading\init.sqf",(_traderMenu select 0), 999, true, false]; s_player_parts set [count s_player_parts,_buyV]; } else { // Database menu _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false]; s_player_parts set [count s_player_parts,_buy]; }; }; s_player_parts_crtl = 1; }; } else { {player removeAction _x} count s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; }; if (dayz_tameDogs) then { //Dog _hasRawMeat = {_x in Dayz_meatraw} count _magazinesPlayer > 0; if (_isDog && {_hasRawMeat} && {_isAlive} && {_ownerID == "0"} && {player getVariable ["dogID",0] == 0}) then { if (s_player_tamedog < 0) then { s_player_tamedog = player addAction [localize "str_actions_tamedog", "\z\addons\dayz_code\actions\dog\tame_dog.sqf", _cursorTarget, 1, false, true]; }; } else { player removeAction s_player_tamedog; s_player_tamedog = -1; }; if (_isDog && {_ownerID == _id} && {_isAlive}) then { if (s_player_feeddog < 0 && _hasRawMeat) then { s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0], 0, false, true]; }; if (s_player_waterdog < 0 && _hasbottleitem) 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 { if (_dogHandle getFSMVariable "_actionLieDown") 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 player removeAction s_player_plot_boundary; s_player_plot_boundary = -1; player removeAction s_player_plotManagement; s_player_plotManagement = -1; {dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = []; player removeAction s_player_repair_crtl; s_player_repair_crtl = -1; dayz_myCursorTarget = objNull; 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_cook; s_player_cook = -1; player removeAction s_player_boil; s_player_boil = -1; player removeAction s_player_packtent; s_player_packtent = -1; player removeAction s_player_packtentinfected; s_player_packtentinfected = -1; player removeAction s_player_fillfuel; s_player_fillfuel = -1; player removeAction s_player_studybody; s_player_studybody = -1; //fuel player removeAction s_player_fillfuel210; s_player_fillfuel210 = -1; player removeAction s_player_fillfuel20; s_player_fillfuel20 = -1; player removeAction s_player_fillfuel5; s_player_fillfuel5 = -1; //Allow player to siphon vehicle fuel player removeAction s_player_siphonfuel; s_player_siphonfuel = -1; //Allow player to gather player removeAction s_player_gather; s_player_gather = -1; player removeAction s_player_destroytent; s_player_destroytent = -1; player removeAction s_player_upgradestorage; s_player_upgradestorage = -1; {player removeAction _x} count s_player_combi;s_player_combi = []; s_player_lastTarget = [objNull,objNull,objNull,objNull,objNull]; {player removeAction _x} count s_player_parts;s_player_parts = []; s_player_parts_crtl = -1; {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = []; s_player_lockUnlock_crtl = -1; player removeAction s_player_SurrenderedGear; s_player_SurrenderedGear = -1; player removeAction s_player_maintain_area; s_player_maintain_area = -1; player removeAction s_player_maintain_area_force; s_player_maintain_area_force = -1; player removeAction s_player_maintain_area_preview; s_player_maintain_area_preview = -1; 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; player removeAction s_player_unlockvault; s_player_unlockvault = -1; player removeAction s_player_packvault; s_player_packvault = -1; player removeAction s_player_lockvault; s_player_lockvault = -1; player removeAction s_player_information; s_player_information = -1; player removeAction s_player_fillgen; s_player_fillgen = -1; player removeAction s_player_upgrade_build; s_player_upgrade_build = -1; player removeAction s_player_maint_build; s_player_maint_build = -1; player removeAction s_player_downgrade_build; s_player_downgrade_build = -1; player removeAction s_player_towing; s_player_towing = -1; player removeAction s_player_fuelauto; s_player_fuelauto = -1; player removeAction s_player_fuelauto2; s_player_fuelauto2 = -1; player removeAction s_player_manageDoor; s_player_manageDoor = -1; // Custom stuff below player removeAction s_givemoney_dialog; s_givemoney_dialog = -1; player removeAction s_bank_dialog; s_bank_dialog = -1; player removeAction s_bank_dialog1; s_bank_dialog1 = -1; player removeAction s_bank_dialog2; s_bank_dialog2 = -1; player removeAction s_player_checkWallet; s_player_checkWallet = -1; }; //Dog actions on player self if (_dogHandle > 0) then { _dog = _dogHandle getFSMVariable "_dog"; if (isNil "_dog") exitWith {}; if (isNil "_ownerID") then {_ownerID = "0"}; if (_canDo && !_inVehicle && alive _dog && !(_ownerID in [_myCharID,_uid])) 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; }; //Monitor player setVariable ["selfActions", diag_ticktime, false]; Any help is greatly appreciated.... Hello, You missed this step: Download the stringTable.xml file linked below from the Community Localization GitHub and copy it to your mission folder, it is a community based localization file and contains translations for major community mods including this one. >> Download stringTable.xml << Link to comment Share on other sites More sharing options...
Recommended Posts