Jump to content
salival

[RELEASE] Vehicle Key Changer (updated for Epoch 1.0.6+

Recommended Posts

Hi,

Here's my version of  @OtterNas3 vehicle key changer.  It was subsequently modified by @Grahame for epoch 1.0.6.

This adds support for briefcases, gems and coins as well as using the epoch vehicle upgrade system to do the key changing/claiming.

* original discussion url: https://epochmod.com/forum/topic/5972-release-vehicle-key-changer-for-making-masterkey-v-14-updated-06152014/

* updated discussion url: https://epochmod.com/forum/topic/43048-release-vehicle-key-changer-for-making-masterkey-v-141-updated-for-epoch-106/

Github link with install directions: https://github.com/oiad/vkc

 

**EDIT* Link to a working locate Vehicle script that is able to find multiple vehicles per key: 

 

Share this post


Link to post
Share on other sites

@salival here is my RPT Client Side

Spoiler

=====================================================================
== J:\Steam\steamapps\common\Arma 2 Operation Arrowhead\ArmA2OA.exe
== "J:\Steam\steamapps\common\Arma 2 Operation Arrowhead\ArmA2OA.exe" -skipintro [email protected];@DayzOverwatch;@DayZ_Epoch1061; -noSplash -noFilePatching -world=empty -password= -connect=107.145.27.39 -port=2325 "-mod=J:\Steam\steamapps\common\Arma 2;expansion;"
=====================================================================
Exe timestamp: 2016/09/18 13:03:50
Current time:  2017/04/28 13:14:50

Version 1.63.131129
Conflicting addon Monaro in 'holdenmonarocop\', previous definition in 'holdenmonaro\'
File nissan_350z\config.cpp, line 244: '/CfgVehicles/350zBase/Library.libTextDesc': Missing ';' prior '}'
Unsupported language English in stringtable
Item STR_DSS_10RND_VSS listed twice
Item STR_DN_20Rnd_9x39_SP5_VSS listed twice
Item STR_DSS_20RND_VSS listed twice
Item STR_DN_AK_107_KOBRA listed twice
Item STR_DN_AK_107_GL_PSO listed twice
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</German>
        <English>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</English>
        <Italian>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Italian>
        <Spanish>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Spanish>
        <French>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</French>
        <Czech>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Czech>
        <Russian>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Russian>
        <Polish>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Polish>
        <Hungarian>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Hungarian>
    </Key>
    <Key ID="STR_VIL_AKS74UB_BS1_SHORT">
      <German>Compact assault rifle with silenced grenade launcher&lt'
Item STR_VIL_DN_BS1 listed twice
Item STR_DN_RPK_74 listed twice
Item STR_AUTHOR_VILAS listed twice
Item STR_VIL_EASTERN listed twice
Item STR_VIL_WEAPONS listed twice
Item STR_DN_M40A3 listed twice
Item STR_EP1_DN_FN_FAL listed twice
Updating base class ->NonStrategic, by ca\config.bin/CfgVehicles/HouseBase/
Updating base class ->HouseBase, by ca\config.bin/CfgVehicles/Ruins/
Updating base class ->DestructionEffects, by ca\config.bin/CfgVehicles/House/DestructionEffects/
Updating base class ->FlagCarrierCore, by ca\ca_pmc\config.bin/CfgVehicles/FlagCarrier/
Updating base class ->Man, by nof_fsk\config.cpp/CfgVehicles/CAManBase/
Updating base class ->Default, by z\addons\anzio\config.bin/CfgWeapons/Rifle/
Updating base class ->BulletCore, by ca\weapons\config.bin/CfgAmmo/BulletBase/
Updating base class ->GrenadeCore, by ca\weapons\config.bin/CfgAmmo/GrenadeBase/
Updating base class ->VehicleMagazine, by ca\weapons\config.bin/CfgMagazines/14Rnd_FFAR/
Updating base class ->Default, by ca\weapons\config.bin/cfgWeapons/GrenadeLauncher/
Updating base class Default->RifleCore, by ca\weapons\config.bin/cfgWeapons/Rifle/
Updating base class ->LauncherCore, by ca\weapons\config.bin/cfgWeapons/RocketPods/
Updating base class ->RocketPods, by ca\weapons\config.bin/cfgWeapons/FFARLauncher/
Updating base class ->Bag_Base_EP1, by ca\weapons_e\ammoboxes\config.bin/cfgVehicles/US_Patrol_Pack_EP1/
Updating base class ->Bag_Base_EP1, by ca\weapons_e\ammoboxes\config.bin/cfgVehicles/US_Backpack_EP1/
Updating base class ->Bag_Base_EP1, by ca\weapons_e\ammoboxes\config.bin/cfgVehicles/CZ_Backpack_EP1/
Updating base class Man->CAManBase, by ca\characters\config.bin/CfgVehicles/Civilian/
Updating base class TalkTopics->TalkTopics, by bb_mercs_desert\config.bin/CfgVehicles/SoldierWB/TalkTopics/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_Light/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier2/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_GL/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_Officer/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_SL/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_TL/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_LAT/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_AT/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_HAT/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_AA/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_Medic/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_AR/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_MG/
Updating base class ->USMC_SoldierS_Sniper, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierS_SniperH/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierM_Marksman/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierS/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierS_Engineer/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_TL/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_R/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_Marksman/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_Corpsman/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_AR/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_GL/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_Sapper/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_AC/
Updating base class ->RU_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/RU_Soldier2/
Updating base class Soldier->MVD_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/MVD_Soldier/
Updating base class ->US_Soldier_Base_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_EP1/
Updating base class ->US_Soldier_Base_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_TL_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_Medic_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_AR_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_Marksman_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_Air_Controller_EP1/
Updating base class ->HMMWV_Base, by ca\wheeled\config.bin/CfgVehicles/HMMWV_M2/
Updating base class ->HMMWV_Base, by ca\wheeled\config.bin/CfgVehicles/HMMWV_TOW/
Updating base class ->HMMWV_Base, by ca\wheeled\config.bin/CfgVehicles/HMMWV_MK19/
Updating base class Car->SkodaBase, by ca\wheeled\config.bin/CfgVehicles/car_sedan/
Updating base class ->Pickup_PK_base, by ca\wheeled\datsun_armed\config.bin/CfgVehicles/Pickup_PK_GUE/
Updating base class ->Offroad_DSHKM_base, by ca\wheeled\hilux_armed\config.bin/CfgVehicles/Offroad_DSHKM_Gue/
Updating base class ->Offroad_DSHKM_base, by ca\wheeled\hilux_armed\config.bin/CfgVehicles/Offroad_SPG9_Gue/
Updating base class ->UH60_Base, by ca\air\config.bin/CfgVehicles/MH60S/
Updating base class ->Car, by ca\wheeled2\lada\config.bin/CfgVehicles/Lada_base/
Updating base class AKS_BASE->AK_BASE, by vilas_aks_cfg\config.cpp/cfgWeapons/AKS_74_UN_kobra/
Updating base class AK_BASE->AKS_BASE, by ca\communityconfigurationproject_e\ai_madeaks74unkobrafullysilenced\config.bin/CfgWeapons/AKS_74_UN_kobra/
Updating base class ->Mode_FullAuto, by corepatch\corepatch_ccp_68220\config.cpp/CfgWeapons/G36a/FullAuto/
Updating base class ->Mode_SemiAuto, by corepatch\corepatch_ccp_68220\config.cpp/CfgWeapons/G36a/Single/
Updating base class Small_items->ReammoBox, by dayz_equip\config.cpp/CfgVehicles/CardboardBox/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Small_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street1_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street2_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lampa_Ind_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_PowLines_Conc2L_EP1/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_2/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_3/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind_zebr/
Updating base class RscStandardDisplay->, by z\addons\dayz_code\config.bin/RscDisplayStart/
Updating base class RscShortcutButton->RscShortcutButtonMain, by z\addons\dayz_code\config.bin/RscDisplayMain/controls/CA_Exit/
Updating base class CA_IGUI_Title->RscText, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/Gear_Title/
Updating base class Available_items_Text->RscText, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/CA_ItemName/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item8/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item9/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item10/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item11/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item12/
Updating base class CA_Gear_slot_handgun_item5->CA_Gear_slot_handgun_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_handgun_item6/
Updating base class CA_Gear_slot_handgun_item5->CA_Gear_slot_handgun_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_handgun_item7/
Updating base class CA_Gear_slot_handgun_item5->CA_Gear_slot_handgun_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_handgun_item8/
Updating base class CA_Gear_slot_special1->CA_Gear_slot_handgun_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory1/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory8/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory9/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory10/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory11/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory12/
Updating base class CA_Gear_slot_item1->CA_Gear_slot_handgun, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_special1/
Updating base class RscIGUIShortcutButton->RscActiveText, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/ButtonClose/
Updating base class RscText->, by z\addons\dayz_code\config.bin/RscTitles/Default/
Updating base class ->ViewOptics, by z\addons\dayz_code\config.bin/CfgVehicles/Mi17_base/Turrets/MainTurret/ViewOptics/
Updating base class ->ViewOptics, by z\addons\dayz_code\config.bin/CfgVehicles/UH1H_base/Turrets/MainTurret/ViewOptics/
Updating base class ->ViewOptics, by z\addons\dayz_code\config.bin/CfgVehicles/UH1_Base/Turrets/MainTurret/ViewOptics/
Updating base class Strategic->, by z\addons\dayz_code\config.bin/CfgVehicles/Bomb/
Updating base class HighCommand->Logic, by z\addons\dayz_code\config.bin/CfgVehicles/HighCommandSubordinate/
Updating base class NonStrategic->BuiltItems, by z\addons\dayz_code\config.bin/CfgVehicles/Fort_RazorWire/
Updating base class ->DefaultEventhandlers, by z\addons\dayz_code\config.bin/CfgVehicles/CSJ_GyroP/EventHandlers/
Updating base class AnimationSources->AnimationSources, by z\addons\dayz_code\config.bin/CfgVehicles/CSJ_GyroC/AnimationSources/
Updating base class ->DefaultEventhandlers, by z\addons\dayz_code\config.bin/CfgVehicles/CSJ_GyroC/EventHandlers/
Updating base class BuiltItems->Generator_Base, by z\addons\dayz_code\config.bin/CfgVehicles/Generator_DZ/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/29Rnd_30mm_AGS30/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/48Rnd_40mm_MK19/
Updating base class 4000Rnd_762x51_M134->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/2000Rnd_762x51_M134/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/100Rnd_127x99_M2/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/50Rnd_127x107_DSHKM/
Updating base class 4000Rnd_762x51_M134->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/pook_1300Rnd_762x51_M60/
Updating base class 100Rnd_762x51_M240->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/pook_250Rnd_762x51/
Updating base class 6Rnd_Grenade_Camel->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/pook_12Rnd_Grenade_Camel/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/3Rnd_GyroGrenade/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face1/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face2/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face3/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face4/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face5/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face5_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face6/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face6_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face7/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face8/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face8_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face9/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face10/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face11/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face12/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face13/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face13_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face14/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face15/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face16/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face17/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face18/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face19/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face20/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face21/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face22/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face23/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face24/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face25/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face26/
Updating base class ->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face27/
Updating base class ->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face28/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face29/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face30/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face31/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face32/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face33/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Pro_Helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Pro_Helmet_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Pro_Helmet_2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Kevlar_Helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Kevlar_Helmet_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/wdl_helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Barett/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/US_green_beret/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/US_black_beret/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Barett_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Bdu_cap/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Bdu_cap_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/b_TacticalGlasses/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/headset/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/headset_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask_helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask_red/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask_helmet2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/pilot_mask/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/pilot_mask_v/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/pilot_v/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/skull_cap/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/skull_cap2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/taliban_hat_shadow/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/dive_mask/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/BlackSun_sof_w/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/RedSun_sof_w/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/None_sof_w/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/goggles_winter/
Updating base class DropWeapon->None, by z\addons\dayz_code\config.bin/CfgActions/PutWeapon/
Updating base class DropMagazine->None, by z\addons\dayz_code\config.bin/CfgActions/PutMagazine/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_1L2/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_3I3/
Updating base class House->DZE_OpenHouse, by warehouse\config.bin/CfgVehicles/Land_Ind_Pec_03/
Old style material 207 used in ReportStack not available
Strange convex component288 in warehouse\models\warehouse.p3d:geometry
Strange convex component289 in warehouse\models\warehouse.p3d:geometry
Strange convex component290 in warehouse\models\warehouse.p3d:geometry
Strange convex component291 in warehouse\models\warehouse.p3d:geometry
Strange convex component292 in warehouse\models\warehouse.p3d:geometry
Strange convex component293 in warehouse\models\warehouse.p3d:geometry
Strange convex component294 in warehouse\models\warehouse.p3d:geometry
Strange convex component295 in warehouse\models\warehouse.p3d:geometry
Strange convex component296 in warehouse\models\warehouse.p3d:geometry
Strange convex component297 in warehouse\models\warehouse.p3d:geometry
Strange convex component298 in warehouse\models\warehouse.p3d:geometry
Strange convex component299 in warehouse\models\warehouse.p3d:geometry
Strange convex component300 in warehouse\models\warehouse.p3d:geometry
Strange convex component301 in warehouse\models\warehouse.p3d:geometry
Strange convex component302 in warehouse\models\warehouse.p3d:geometry
Strange convex component303 in warehouse\models\warehouse.p3d:geometry
Strange convex component304 in warehouse\models\warehouse.p3d:geometry
Strange convex component305 in warehouse\models\warehouse.p3d:geometry
Strange convex component306 in warehouse\models\warehouse.p3d:geometry
Strange convex component307 in warehouse\models\warehouse.p3d:geometry
Strange convex component308 in warehouse\models\warehouse.p3d:geometry
Strange convex component309 in warehouse\models\warehouse.p3d:geometry
Strange convex component310 in warehouse\models\warehouse.p3d:geometry
Strange convex component311 in warehouse\models\warehouse.p3d:geometry
Strange convex component312 in warehouse\models\warehouse.p3d:geometry
Strange convex component313 in warehouse\models\warehouse.p3d:geometry
Strange convex component314 in warehouse\models\warehouse.p3d:geometry
Strange convex component315 in warehouse\models\warehouse.p3d:geometry
Strange convex component316 in warehouse\models\warehouse.p3d:geometry
Strange convex component317 in warehouse\models\warehouse.p3d:geometry
Strange convex component252 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component253 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component254 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component255 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component256 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component257 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component258 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component259 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component260 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component261 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component262 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component263 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component264 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component265 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component266 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component267 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component268 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component269 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component270 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component271 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component272 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component273 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component274 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component275 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component276 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component277 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component278 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component279 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component280 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component281 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component249 in warehouse\models\warehouse.p3d:geometryView
Strange convex component250 in warehouse\models\warehouse.p3d:geometryView
Strange convex component251 in warehouse\models\warehouse.p3d:geometryView
Strange convex component252 in warehouse\models\warehouse.p3d:geometryView
Strange convex component253 in warehouse\models\warehouse.p3d:geometryView
Strange convex component254 in warehouse\models\warehouse.p3d:geometryView
Strange convex component255 in warehouse\models\warehouse.p3d:geometryView
Strange convex component256 in warehouse\models\warehouse.p3d:geometryView
Strange convex component257 in warehouse\models\warehouse.p3d:geometryView
Strange convex component258 in warehouse\models\warehouse.p3d:geometryView
Strange convex component259 in warehouse\models\warehouse.p3d:geometryView
Strange convex component260 in warehouse\models\warehouse.p3d:geometryView
Strange convex component261 in warehouse\models\warehouse.p3d:geometryView
Strange convex component262 in warehouse\models\warehouse.p3d:geometryView
Strange convex component263 in warehouse\models\warehouse.p3d:geometryView
Strange convex component264 in warehouse\models\warehouse.p3d:geometryView
Strange convex component265 in warehouse\models\warehouse.p3d:geometryView
Strange convex component266 in warehouse\models\warehouse.p3d:geometryView
Strange convex component267 in warehouse\models\warehouse.p3d:geometryView
Strange convex component268 in warehouse\models\warehouse.p3d:geometryView
Strange convex component269 in warehouse\models\warehouse.p3d:geometryView
Strange convex component270 in warehouse\models\warehouse.p3d:geometryView
Strange convex component271 in warehouse\models\warehouse.p3d:geometryView
Strange convex component272 in warehouse\models\warehouse.p3d:geometryView
Strange convex component273 in warehouse\models\warehouse.p3d:geometryView
Strange convex component274 in warehouse\models\warehouse.p3d:geometryView
Strange convex component275 in warehouse\models\warehouse.p3d:geometryView
Strange convex component276 in warehouse\models\warehouse.p3d:geometryView
Strange convex component277 in warehouse\models\warehouse.p3d:geometryView
Strange convex component278 in warehouse\models\warehouse.p3d:geometryView
Old style material 204 used in ReportStack not available
Old style material 207 used in ReportStack not available
Old style material 207 used in ReportStack not available
Old style material 207 used in ReportStack not available
"PRELOAD_ Functions\init [[L 1-1-A:1 REMOTE],any]"
"MPframework inited"
"Res3tting B!S effects..."
Error: bin\config.bin/CfgVehicles/Ship/Turrets/MainTurret/: Turret body mainTurret not found while initializing the model gnt_c185\float2.p3d
Error: bin\config.bin/CfgVehicles/Ship/Turrets/MainTurret/: Turret gun mainGun not found while initializing the model gnt_c185\float2.p3d
"dayz_preloadFinished reset"
"Loading custom client compiles"
BIKE: loading version 2.8.2 ...
"DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched"
CLICK ACTIONS: loading...
BIKE: waiting for login...
Old style material 201 used in ReportStack not available
Old style material 201 used in ReportStack not available
Old style material 201 used in ReportStack not available
Old style material 201 used in ReportStack not available
Old style material 204 used in ReportStack not available
Old style material 205 used in ReportStack not available
Strange convex component01 in rh_m14\rh_m21.p3d:geometry
Strange convex component07 in rh_m14\rh_m21.p3d:geometry
Strange convex component08 in rh_m14\rh_m21.p3d:geometry
Strange convex component12 in rh_m14\rh_m21.p3d:geometry
Strange convex component01 in rh_m14\rh_m1stsp.p3d:geometry
Strange convex component07 in rh_m14\rh_m1stsp.p3d:geometry
Strange convex component08 in rh_m14\rh_m1stsp.p3d:geometry
Strange convex component12 in rh_m14\rh_m1stsp.p3d:geometry
["Sent to server: PVDZ_plr_Login1",["76561198015995482",B 1-1-A:1 (Thug)]]
["Sent to server: PVDZ_send",[B 1-1-A:1 (Thug),"dayzSetDate",[B 1-1-A:1 (Thug)]]]
"PLAYER RESULT: true"
[115.629,"z\addons\dayz_code\system\scheduler\sched_init.sqf","Scheduler started"]
No owner
No owner
No owner
["Sent to server: PVDZ_plr_Login2",["4",B 1-1-B:1 (Thug),"76561198015995482",9,[["AKM_DZ","Binocular_Vector","G17_DZ","ItemKeyGreen1991","ItemKeyYellow582","ItemToolbox","ItemRadio","ItemMap","ItemKeyKit","ItemKnife","ItemHatchet","ItemEtool","ItemCrowbar","ItemCompass","ItemMatchbox"],["20Rnd_762x51_DMR","20Rnd_762x51_DMR","20Rnd_762x51_DMR","30Rnd_762x39_AK47","30Rnd_762x39_AK47","30Rnd_762x39_AK47","ItemAntibiotic","ItemBloodbag","FoodCanFrankBeans","ItemMorphine","ItemPainkiller","ItemSodaPepsi","ItemBandage","ItemBandage","ItemBandage","ItemBandage","17Rnd_9x19_glock17SD","17Rnd_9x19_glock17SD"],"DMR_DZ"]]]
["Date & time received:",[2012,8,2,13,16]]
["Local date on this client:",[2012,8,2,13,15]]
"infiSTAR.de - randvar26 created (27.015)"
"Sent to server PVDZ_plr_LoginRecord: [76561198015995482, 4, 0, Thug]"
[]
"DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched"
B 1-1-B:1 (Thug): Getting out while IsMoveOutInProgress
"infiSTAR.de - randvar1 started (27.102)"
No owner
No owner
No owner
No owner
No owner
No owner
[119.066,"onPreloadStarted"]
Service Point: loading config...
"infiSTAR.de - randvar1 created randvar27a (27.502)"
"infiSTAR.de - 17-Mar-2017 20-25-30-v1438 - Successfully Loaded on Client ID3405 (27.502)"
"infiSTAR.de - randvar1 created randvar27 (27.502)"
"keyboard_keys reset"
Fresnel k must be >0, given n=0.8,k=0
No owner
Fresnel k must be >0, given n=0.8,k=0
No owner
[134.078,"onPreloadFinished"]
"player_forceSave called from fsm"
String STR_TGW_VIL_AK74_GP25 not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
Strange convex component93 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component94 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component95 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component96 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component99 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component100 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component101 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component102 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component103 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component104 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component105 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component106 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component107 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component108 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component109 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component110 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component111 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component112 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component113 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component114 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component115 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component116 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component117 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component118 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component119 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component120 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component121 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component122 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component123 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component124 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component125 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component126 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component127 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component128 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component129 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component130 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component131 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component132 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component133 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component134 in zero_buildings\models\mil_house_i.p3d:geometryView


=====================================================================
== J:\Steam\steamapps\common\Arma 2 Operation Arrowhead\ArmA2OA.exe
== "J:\Steam\steamapps\common\Arma 2 Operation Arrowhead\ArmA2OA.exe" -skipintro [email protected];@DayzOverwatch;@DayZ_Epoch1061; -noSplash -noFilePatching -world=empty -password= -connect=107.145.27.39 -port=2325 "-mod=J:\Steam\steamapps\common\Arma 2;expansion;"
=====================================================================
Exe timestamp: 2016/09/18 13:03:50
Current time:  2017/04/28 13:42:44

Version 1.63.131129
Conflicting addon Monaro in 'holdenmonarocop\', previous definition in 'holdenmonaro\'
File nissan_350z\config.cpp, line 244: '/CfgVehicles/350zBase/Library.libTextDesc': Missing ';' prior '}'
Unsupported language English in stringtable
Item STR_DSS_10RND_VSS listed twice
Item STR_DN_20Rnd_9x39_SP5_VSS listed twice
Item STR_DSS_20RND_VSS listed twice
Item STR_DN_AK_107_KOBRA listed twice
Item STR_DN_AK_107_GL_PSO listed twice
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</German>
        <English>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</English>
        <Italian>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Italian>
        <Spanish>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, they were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunition new mounting brackets better suited
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Spanish>
        <French>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</French>
        <Czech>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Czech>
        <Russian>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Russian>
        <Polish>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Polish>
        <Hungarian>From world.guns.ru: &lt'
Unknown entity: 'C inatallations and equipment, fuel and ammunition storage facilities and parked tactical aircraft. The original BS-1 system was designed for the 7.62mm Kalashnikov AKMS assault rifle with PBS-1 silencers. When the Soviet army switched over to 5.45x39mm ammunition, the AKMS assault rifles with PBS-1 silencer were replaced with AKS-74UB compact assault rifles with PBS-4 silencers. The original GSN-19 grenade launcher system was slightly reworked, primarily to use different launching ammunit
Unknown entity: 'C equipment, and then cause enough damage to render the target inoperative. The grenade has no propelling system in itself, instead being launched by special blank cartridges which are loaded into a detachable box magazine.</Hungarian>
    </Key>
    <Key ID="STR_VIL_AKS74UB_BS1_SHORT">
      <German>Compact assault rifle with silenced grenade launcher&lt'
Item STR_VIL_DN_BS1 listed twice
Item STR_DN_RPK_74 listed twice
Item STR_AUTHOR_VILAS listed twice
Item STR_VIL_EASTERN listed twice
Item STR_VIL_WEAPONS listed twice
Item STR_DN_M40A3 listed twice
Item STR_EP1_DN_FN_FAL listed twice
Updating base class ->NonStrategic, by ca\config.bin/CfgVehicles/HouseBase/
Updating base class ->HouseBase, by ca\config.bin/CfgVehicles/Ruins/
Updating base class ->DestructionEffects, by ca\config.bin/CfgVehicles/House/DestructionEffects/
Updating base class ->FlagCarrierCore, by ca\ca_pmc\config.bin/CfgVehicles/FlagCarrier/
Updating base class ->Man, by nof_fsk\config.cpp/CfgVehicles/CAManBase/
Updating base class ->Default, by z\addons\anzio\config.bin/CfgWeapons/Rifle/
Updating base class ->BulletCore, by ca\weapons\config.bin/CfgAmmo/BulletBase/
Updating base class ->GrenadeCore, by ca\weapons\config.bin/CfgAmmo/GrenadeBase/
Updating base class ->VehicleMagazine, by ca\weapons\config.bin/CfgMagazines/14Rnd_FFAR/
Updating base class ->Default, by ca\weapons\config.bin/cfgWeapons/GrenadeLauncher/
Updating base class Default->RifleCore, by ca\weapons\config.bin/cfgWeapons/Rifle/
Updating base class ->LauncherCore, by ca\weapons\config.bin/cfgWeapons/RocketPods/
Updating base class ->RocketPods, by ca\weapons\config.bin/cfgWeapons/FFARLauncher/
Updating base class ->Bag_Base_EP1, by ca\weapons_e\ammoboxes\config.bin/cfgVehicles/US_Patrol_Pack_EP1/
Updating base class ->Bag_Base_EP1, by ca\weapons_e\ammoboxes\config.bin/cfgVehicles/US_Backpack_EP1/
Updating base class ->Bag_Base_EP1, by ca\weapons_e\ammoboxes\config.bin/cfgVehicles/CZ_Backpack_EP1/
Updating base class Man->CAManBase, by ca\characters\config.bin/CfgVehicles/Civilian/
Updating base class TalkTopics->TalkTopics, by bb_mercs_desert\config.bin/CfgVehicles/SoldierWB/TalkTopics/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_Light/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier2/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_GL/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_Officer/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_SL/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_TL/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_LAT/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_AT/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_HAT/
Updating base class ->USMC_Soldier_AT_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_AA/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_Medic/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_AR/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_Soldier_MG/
Updating base class ->USMC_SoldierS_Sniper, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierS_SniperH/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierM_Marksman/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierS/
Updating base class ->USMC_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/USMC_SoldierS_Engineer/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_TL/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_R/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_Marksman/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_Corpsman/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_AR/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_GL/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_Sapper/
Updating base class ->FR_Base, by ca\characters2\config.bin/CfgVehicles/FR_AC/
Updating base class ->RU_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/RU_Soldier2/
Updating base class Soldier->MVD_Soldier_Base, by ca\characters2\config.bin/CfgVehicles/MVD_Soldier/
Updating base class ->US_Soldier_Base_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_EP1/
Updating base class ->US_Soldier_Base_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_TL_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_Medic_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_AR_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_Marksman_EP1/
Updating base class ->US_Delta_Force_EP1, by ca\characters_e\config.bin/CfgVehicles/US_Delta_Force_Air_Controller_EP1/
Updating base class ->HMMWV_Base, by ca\wheeled\config.bin/CfgVehicles/HMMWV_M2/
Updating base class ->HMMWV_Base, by ca\wheeled\config.bin/CfgVehicles/HMMWV_TOW/
Updating base class ->HMMWV_Base, by ca\wheeled\config.bin/CfgVehicles/HMMWV_MK19/
Updating base class Car->SkodaBase, by ca\wheeled\config.bin/CfgVehicles/car_sedan/
Updating base class ->Pickup_PK_base, by ca\wheeled\datsun_armed\config.bin/CfgVehicles/Pickup_PK_GUE/
Updating base class ->Offroad_DSHKM_base, by ca\wheeled\hilux_armed\config.bin/CfgVehicles/Offroad_DSHKM_Gue/
Updating base class ->Offroad_DSHKM_base, by ca\wheeled\hilux_armed\config.bin/CfgVehicles/Offroad_SPG9_Gue/
Updating base class ->UH60_Base, by ca\air\config.bin/CfgVehicles/MH60S/
Updating base class ->Car, by ca\wheeled2\lada\config.bin/CfgVehicles/Lada_base/
Updating base class AKS_BASE->AK_BASE, by vilas_aks_cfg\config.cpp/cfgWeapons/AKS_74_UN_kobra/
Updating base class AK_BASE->AKS_BASE, by ca\communityconfigurationproject_e\ai_madeaks74unkobrafullysilenced\config.bin/CfgWeapons/AKS_74_UN_kobra/
Updating base class ->Mode_FullAuto, by corepatch\corepatch_ccp_68220\config.cpp/CfgWeapons/G36a/FullAuto/
Updating base class ->Mode_SemiAuto, by corepatch\corepatch_ccp_68220\config.cpp/CfgWeapons/G36a/Single/
Updating base class Small_items->ReammoBox, by dayz_equip\config.cpp/CfgVehicles/CardboardBox/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Small_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street1_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street2_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lampa_Ind_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_PowLines_Conc2L_EP1/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_2/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_3/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind_zebr/
Updating base class RscStandardDisplay->, by z\addons\dayz_code\config.bin/RscDisplayStart/
Updating base class RscShortcutButton->RscShortcutButtonMain, by z\addons\dayz_code\config.bin/RscDisplayMain/controls/CA_Exit/
Updating base class CA_IGUI_Title->RscText, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/Gear_Title/
Updating base class Available_items_Text->RscText, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/CA_ItemName/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item8/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item9/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item10/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item11/
Updating base class CA_Gear_slot_item7->CA_Gear_slot_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_item12/
Updating base class CA_Gear_slot_handgun_item5->CA_Gear_slot_handgun_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_handgun_item6/
Updating base class CA_Gear_slot_handgun_item5->CA_Gear_slot_handgun_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_handgun_item7/
Updating base class CA_Gear_slot_handgun_item5->CA_Gear_slot_handgun_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_handgun_item8/
Updating base class CA_Gear_slot_special1->CA_Gear_slot_handgun_item1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory1/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory8/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory9/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory10/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory11/
Updating base class CA_Gear_slot_inventory7->CA_Gear_slot_inventory1, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_inventory12/
Updating base class CA_Gear_slot_item1->CA_Gear_slot_handgun, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/G_GearItems/Controls/CA_Gear_slot_special1/
Updating base class RscIGUIShortcutButton->RscActiveText, by z\addons\dayz_code\config.bin/RscDisplayGear/Controls/ButtonClose/
Updating base class RscText->, by z\addons\dayz_code\config.bin/RscTitles/Default/
Updating base class ->ViewOptics, by z\addons\dayz_code\config.bin/CfgVehicles/Mi17_base/Turrets/MainTurret/ViewOptics/
Updating base class ->ViewOptics, by z\addons\dayz_code\config.bin/CfgVehicles/UH1H_base/Turrets/MainTurret/ViewOptics/
Updating base class ->ViewOptics, by z\addons\dayz_code\config.bin/CfgVehicles/UH1_Base/Turrets/MainTurret/ViewOptics/
Updating base class Strategic->, by z\addons\dayz_code\config.bin/CfgVehicles/Bomb/
Updating base class HighCommand->Logic, by z\addons\dayz_code\config.bin/CfgVehicles/HighCommandSubordinate/
Updating base class NonStrategic->BuiltItems, by z\addons\dayz_code\config.bin/CfgVehicles/Fort_RazorWire/
Updating base class ->DefaultEventhandlers, by z\addons\dayz_code\config.bin/CfgVehicles/CSJ_GyroP/EventHandlers/
Updating base class AnimationSources->AnimationSources, by z\addons\dayz_code\config.bin/CfgVehicles/CSJ_GyroC/AnimationSources/
Updating base class ->DefaultEventhandlers, by z\addons\dayz_code\config.bin/CfgVehicles/CSJ_GyroC/EventHandlers/
Updating base class BuiltItems->Generator_Base, by z\addons\dayz_code\config.bin/CfgVehicles/Generator_DZ/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/29Rnd_30mm_AGS30/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/48Rnd_40mm_MK19/
Updating base class 4000Rnd_762x51_M134->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/2000Rnd_762x51_M134/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/100Rnd_127x99_M2/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/50Rnd_127x107_DSHKM/
Updating base class 4000Rnd_762x51_M134->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/pook_1300Rnd_762x51_M60/
Updating base class 100Rnd_762x51_M240->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/pook_250Rnd_762x51/
Updating base class 6Rnd_Grenade_Camel->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/pook_12Rnd_Grenade_Camel/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/3Rnd_GyroGrenade/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face1/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face2/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face3/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face4/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face5/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face5_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face6/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face6_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face7/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face8/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face8_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face9/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face10/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face11/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face12/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face13/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face13_camo/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face14/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face15/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face16/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face17/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face18/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face19/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face20/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face21/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face22/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face23/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face24/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face25/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face26/
Updating base class ->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face27/
Updating base class ->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face28/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face29/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face30/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face31/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face32/
Updating base class Default->OW_Nope, by z\addons\dayz_code\config.bin/CfgFaces/Man/Merc_Face33/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Pro_Helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Pro_Helmet_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Pro_Helmet_2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Kevlar_Helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Kevlar_Helmet_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/wdl_helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Barett/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/US_green_beret/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/US_black_beret/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Barett_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Bdu_cap/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/Bdu_cap_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/b_TacticalGlasses/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/headset/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/headset_g/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask_helmet/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask_red/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/gasmask_helmet2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/pilot_mask/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/pilot_mask_v/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/pilot_v/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/skull_cap/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/skull_cap2/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/taliban_hat_shadow/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/dive_mask/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/BlackSun_sof_w/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/RedSun_sof_w/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/None_sof_w/
Updating base class ->None, by z\addons\dayz_code\config.bin/CfgGlasses/goggles_winter/
Updating base class DropWeapon->None, by z\addons\dayz_code\config.bin/CfgActions/PutWeapon/
Updating base class DropMagazine->None, by z\addons\dayz_code\config.bin/CfgActions/PutMagazine/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_1L2/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_3I3/
Updating base class House->DZE_OpenHouse, by warehouse\config.bin/CfgVehicles/Land_Ind_Pec_03/
Old style material 207 used in ReportStack not available
Strange convex component288 in warehouse\models\warehouse.p3d:geometry
Strange convex component289 in warehouse\models\warehouse.p3d:geometry
Strange convex component290 in warehouse\models\warehouse.p3d:geometry
Strange convex component291 in warehouse\models\warehouse.p3d:geometry
Strange convex component292 in warehouse\models\warehouse.p3d:geometry
Strange convex component293 in warehouse\models\warehouse.p3d:geometry
Strange convex component294 in warehouse\models\warehouse.p3d:geometry
Strange convex component295 in warehouse\models\warehouse.p3d:geometry
Strange convex component296 in warehouse\models\warehouse.p3d:geometry
Strange convex component297 in warehouse\models\warehouse.p3d:geometry
Strange convex component298 in warehouse\models\warehouse.p3d:geometry
Strange convex component299 in warehouse\models\warehouse.p3d:geometry
Strange convex component300 in warehouse\models\warehouse.p3d:geometry
Strange convex component301 in warehouse\models\warehouse.p3d:geometry
Strange convex component302 in warehouse\models\warehouse.p3d:geometry
Strange convex component303 in warehouse\models\warehouse.p3d:geometry
Strange convex component304 in warehouse\models\warehouse.p3d:geometry
Strange convex component305 in warehouse\models\warehouse.p3d:geometry
Strange convex component306 in warehouse\models\warehouse.p3d:geometry
Strange convex component307 in warehouse\models\warehouse.p3d:geometry
Strange convex component308 in warehouse\models\warehouse.p3d:geometry
Strange convex component309 in warehouse\models\warehouse.p3d:geometry
Strange convex component310 in warehouse\models\warehouse.p3d:geometry
Strange convex component311 in warehouse\models\warehouse.p3d:geometry
Strange convex component312 in warehouse\models\warehouse.p3d:geometry
Strange convex component313 in warehouse\models\warehouse.p3d:geometry
Strange convex component314 in warehouse\models\warehouse.p3d:geometry
Strange convex component315 in warehouse\models\warehouse.p3d:geometry
Strange convex component316 in warehouse\models\warehouse.p3d:geometry
Strange convex component317 in warehouse\models\warehouse.p3d:geometry
Strange convex component252 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component253 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component254 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component255 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component256 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component257 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component258 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component259 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component260 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component261 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component262 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component263 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component264 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component265 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component266 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component267 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component268 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component269 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component270 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component271 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component272 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component273 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component274 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component275 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component276 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component277 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component278 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component279 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component280 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component281 in warehouse\models\warehouse.p3d:geometryFire
Strange convex component249 in warehouse\models\warehouse.p3d:geometryView
Strange convex component250 in warehouse\models\warehouse.p3d:geometryView
Strange convex component251 in warehouse\models\warehouse.p3d:geometryView
Strange convex component252 in warehouse\models\warehouse.p3d:geometryView
Strange convex component253 in warehouse\models\warehouse.p3d:geometryView
Strange convex component254 in warehouse\models\warehouse.p3d:geometryView
Strange convex component255 in warehouse\models\warehouse.p3d:geometryView
Strange convex component256 in warehouse\models\warehouse.p3d:geometryView
Strange convex component257 in warehouse\models\warehouse.p3d:geometryView
Strange convex component258 in warehouse\models\warehouse.p3d:geometryView
Strange convex component259 in warehouse\models\warehouse.p3d:geometryView
Strange convex component260 in warehouse\models\warehouse.p3d:geometryView
Strange convex component261 in warehouse\models\warehouse.p3d:geometryView
Strange convex component262 in warehouse\models\warehouse.p3d:geometryView
Strange convex component263 in warehouse\models\warehouse.p3d:geometryView
Strange convex component264 in warehouse\models\warehouse.p3d:geometryView
Strange convex component265 in warehouse\models\warehouse.p3d:geometryView
Strange convex component266 in warehouse\models\warehouse.p3d:geometryView
Strange convex component267 in warehouse\models\warehouse.p3d:geometryView
Strange convex component268 in warehouse\models\warehouse.p3d:geometryView
Strange convex component269 in warehouse\models\warehouse.p3d:geometryView
Strange convex component270 in warehouse\models\warehouse.p3d:geometryView
Strange convex component271 in warehouse\models\warehouse.p3d:geometryView
Strange convex component272 in warehouse\models\warehouse.p3d:geometryView
Strange convex component273 in warehouse\models\warehouse.p3d:geometryView
Strange convex component274 in warehouse\models\warehouse.p3d:geometryView
Strange convex component275 in warehouse\models\warehouse.p3d:geometryView
Strange convex component276 in warehouse\models\warehouse.p3d:geometryView
Strange convex component277 in warehouse\models\warehouse.p3d:geometryView
Strange convex component278 in warehouse\models\warehouse.p3d:geometryView
Old style material 204 used in ReportStack not available
Old style material 207 used in ReportStack not available
Old style material 207 used in ReportStack not available
Old style material 207 used in ReportStack not available
"PRELOAD_ Functions\init [[L 1-1-A:1 REMOTE],any]"
"MPframework inited"
"Res3tting B!S effects..."
Error: bin\config.bin/CfgVehicles/Ship/Turrets/MainTurret/: Turret body mainTurret not found while initializing the model gnt_c185\float2.p3d
Error: bin\config.bin/CfgVehicles/Ship/Turrets/MainTurret/: Turret gun mainGun not found while initializing the model gnt_c185\float2.p3d
"dayz_preloadFinished reset"
"Loading custom client compiles"
BIKE: loading version 2.8.2 ...
"DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched"
CLICK ACTIONS: loading...
BIKE: waiting for login...
Old style material 201 used in ReportStack not available
Old style material 201 used in ReportStack not available
Old style material 201 used in ReportStack not available
Old style material 201 used in ReportStack not available
Old style material 204 used in ReportStack not available
Old style material 205 used in ReportStack not available
No owner
No owner
["Sent to server: PVDZ_plr_Login1",["76561198015995482",B 1-1-A:1 (Thug)]]
["Sent to server: PVDZ_send",[B 1-1-A:1 (Thug),"dayzSetDate",[B 1-1-A:1 (Thug)]]]
"PLAYER RESULT: true"
[119.678,"z\addons\dayz_code\system\scheduler\sched_init.sqf","Scheduler started"]
No owner
No owner
No owner
["Sent to server: PVDZ_plr_Login2",["4",B 1-1-B:1 (Thug),"76561198015995482",9,[["AKM_DZ","Binocular_Vector","G17_DZ","ItemKeyGreen1991","ItemKeyYellow582","ItemToolbox","ItemRadio","ItemMap","ItemKeyKit","ItemKnife","ItemHatchet","ItemEtool","ItemCrowbar","ItemCompass","ItemMatchbox"],["20Rnd_762x51_DMR","20Rnd_762x51_DMR","20Rnd_762x51_DMR","30Rnd_762x39_AK47","30Rnd_762x39_AK47","30Rnd_762x39_AK47","ItemAntibiotic","ItemBloodbag","FoodCanFrankBeans","ItemMorphine","ItemPainkiller","ItemSodaPepsi","ItemBandage","ItemBandage","ItemBandage","ItemBandage","17Rnd_9x19_glock17SD","17Rnd_9x19_glock17SD"],"DMR_DZ"]]]
["Date & time received:",[2012,8,2,13,44]]
["Local date on this client:",[2012,8,2,13,44]]
"infiSTAR.de - randvar26 created (26.543)"
"Sent to server PVDZ_plr_LoginRecord: [76561198015995482, 4, 0, Thug]"
[]
"infiSTAR.de - randvar1 started (26.572)"
"infiSTAR.de - randvar1 created randvar27a (26.697)"
"infiSTAR.de - 17-Mar-2017 20-25-30-v1438 - Successfully Loaded on Client ID3405 (26.697)"
"infiSTAR.de - randvar1 created randvar27 (26.697)"
"player_forceSave called from fsm"
"DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched"
B 1-1-B:1 (Thug): Getting out while IsMoveOutInProgress
No owner
No owner
No owner
No owner
No owner
No owner
[123.473,"onPreloadStarted"]
Service Point: loading config...
Strange convex component01 in rh_m14\rh_m14acog.p3d:geometry
Strange convex component07 in rh_m14\rh_m14acog.p3d:geometry
Strange convex component12 in rh_m14\rh_m14acog.p3d:geometry
"keyboard_keys reset"
No owner
No owner
Fresnel k must be >0, given n=0.8,k=0
Fresnel k must be >0, given n=0.8,k=0
MuzzleFlashROT - unknown animation source ammoRandom
[138.486,"onPreloadFinished"]
String STR_TGW_VIL_AK74_GP25 not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
String STR_FAL_Street_Sign not found
Strange convex component93 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component94 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component95 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component96 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component99 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component100 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component101 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component102 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component103 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component104 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component105 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component106 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component107 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component108 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component109 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component110 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component111 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component112 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component113 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component114 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component115 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component116 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component117 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component118 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component119 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component120 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component121 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component122 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component123 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component124 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component125 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component126 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component127 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component128 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component129 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component130 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component131 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component132 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component133 in zero_buildings\models\mil_house_i.p3d:geometryView
Strange convex component134 in zero_buildings\models\mil_house_i.p3d:geometryView
No owner
Strange convex component01 in rh_m14\rh_m14aim.p3d:geometry
Strange convex component07 in rh_m14\rh_m14aim.p3d:geometry
Strange convex component12 in rh_m14\rh_m14aim.p3d:geometry

 

Share this post


Link to post
Share on other sites
13 hours ago, salival said:

@kingpapawawa:

VKC is weird, I can't reproduce the dupe problem but I know it's there,I changed it to use the epoch vehicle upgrade script to spawn (so you would expect that this would also dupe if it was a serverside problem) instead of the way the original script was doing it, dupe was present in the original, too.

the script uses an arma function called showCommandingMenu, I have a feeling that this is what's causing it, when I have been able to make it dupe, it seemed like it ran the client side script twice which tells me it's client side.

I have toyed with the idea of making a simple UI for it just to see if it was the problem and moving away from showCommandingMenu.

Personally.. I think you should have to point the 2 vehicles at each other like those learning remotes.. just right click the key and 'boom' lightning crackles, screen colors go crazy like some wacky weed script, your blood drops by half, maybe your legs break.. and both vehicles go on that key you right clicked.  No menu needed. 

Share this post


Link to post
Share on other sites

Hey Salival I'm having a little trouble - I think it's with the fn_selfActions - when I put cursor on a trader I don't get "trader menu" and none of the key change menu is working when I have keys and a keykit and cursor on vehicle - I Installed this and the multi-key vehicle locator at the same time, locator is working normally. I'm running your version of zsc and it really didn't look tricky to merge, but apparently I've messed it up somewhere. Would you mind taking a look? Oh and no errors in server or client rpt that I've seen yet, strangely.

 

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","_isGate","_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","_hasKeyKit","_isLocked"];

_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);
//_canDrink = count nearestObjects [getPosATL player, ["Land_pumpa","Land_water_tank"], 2] > 0;
_uid = getPlayerUID player;
_nearLight = nearestObject [player,"LitObject"];
_canPickLight = false;
_vehicleOwnerID = _vehicle getVariable ["CharacterID","0"];
_hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer;
_isPZombie = player isKindOf "PZombie_VB";
_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 (dayz_onBack != "" /*&& !dayz_onBackActive && !_inVehicle && !_onLadder && !r_player_unconscious) then {
 if (s_player_equip_carry < 0) then {
  _text = getText (configFile >> "CfgWeapons" >> dayz_onBack >> "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 {
 player removeAction s_player_equip_carry;
 s_player_equip_carry = -1;
};*/

//fishing
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 && (player distance _cursorTarget < 3)) 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;
 _hasKeyKit = "ItemKeyKit" in weapons player; 
 _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 = dayz_characterID;
  _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} && {!a_player_jerryfilling} && {_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} && {!a_player_jerryfilling} && {!_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, "", "'ItemFuelBarrel' in magazines player"];
   };
  } else {
   player removeAction s_player_fillfuel210;
   s_player_fillfuel210 = -1;
  };
  
  //Allow player to fill vehicle 20L
  if (_hasFuel20 && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!a_player_jerryfilling} && {!_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, "", "'ItemJerrycan' in magazines player"];
   };
  } else {
   player removeAction s_player_fillfuel20;
   s_player_fillfuel20 = -1;
  };

  //Allow player to fill vehicle 5L
  if (_hasFuel5 && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!a_player_jerryfilling} && {!_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, "", "'ItemFuelcan' in magazines player"];
   };
  } 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} && {!a_player_jerryfilling} && {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;
  };
 };
 
// Not needed.
/*
 if(_cursorTarget == dayz_hasFire) then {
  if ((s_player_fireout < 0) && !(_cursorTarget call isInflamed) && (player distance _cursorTarget < 3)) then {
   s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget, 0, false, true];
  };
 } else {
  player removeAction s_player_fireout;
  s_player_fireout = -1;
 };
*/
 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;
 };
/* 
 //Carbomb
 _hasCarBomb = "ItemCarBomb" in _magazinesPlayer;
 if (((_cursorTarget isKindOf "Car") || (_cursorTarget isKindOf "Air") || (_cursorTarget isKindOf "Motorcycle")) && _hasCarBomb) then {
  if (s_player_attach_bomb < 0) then {
   s_player_attach_bomb = player addAction [localize "str_bombAttach", "\z\addons\dayz_code\actions\player_attach_bomb.sqf",_cursorTarget, 3, true, true];
  };
 } else {
   player removeAction s_player_attach_bomb;
   s_player_attach_bomb = -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 (!locked _cursorTarget) 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;
  };
 };
 /* //Vanilla base building currently not used in Epoch
 // House locking and unlocking
 _isHouse = _typeOfCursorTarget in ["SurvivorWorkshopAStage5", "SurvivorWorkshopBStage5", "SurvivorWorkshopCStage5"];
 _isGate = _typeOfCursorTarget in ["WoodenGate_1","WoodenGate_2","WoodenGate_3","WoodenGate_4","MetalGate_1","MetalGate_2","MetalGate_3","MetalGate_4"];
 _isFence = _typeOfCursorTarget in ["WoodenFence_1","WoodenFence_2","WoodenFence_3","WoodenFence_4","WoodenFence_5","WoodenFence_6","MetalFence_1","MetalFence_2","MetalFence_3","MetalFence_4","MetalFence_5","MetalFence_6","MetalFence_7"];

 //Only the owners can lock the gates
 _isLockableGate = _typeOfCursorTarget in ["WoodenGate_2","WoodenGate_3","WoodenGate_4","MetalGate_2","MetalGate_3","MetalGate_4"];
 _isUnlocked = _cursorTarget getVariable ["isOpen","0"] == "1";

 //Allow the gates to be opened when not locked by anyone
 _isOpen = ((_cursorTarget animationPhase "DoorL") == 1) || ((_cursorTarget animationPhase "DoorR") == 1);
 _isClosed = ((_cursorTarget animationPhase "DoorL") == 0) || ((_cursorTarget animationPhase "DoorR") == 0);
 
 //[["ownerArray",["PID"]]]
 _ownerArray = _cursorTarget getVariable ["ownerArray",["0"]];
 _ownerBuildLock = _cursorTarget getVariable ["BuildLock",false]; 
 _ownerPID = (_ownerArray select 0);
 
 // open Gate
 if (_isGate && _isClosed && _isUnlocked) then {
  if (s_player_openGate < 0) then {
   s_player_openGate = player addAction [localize "STR_DN_OUT_O_GATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Open"], 1, true, true];
  };
 } else {
  player removeAction s_player_openGate;
  s_player_openGate = -1;
 };
 // Close Gate
 if (_isGate && _isOpen && _isUnlocked) then {
  if (s_player_CloseGate < 0) then {
   s_player_CloseGate = player addAction [localize "STR_DN_OUT_C_GATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Close"], 1, true, true];
  };
 } else {
  player removeAction s_player_CloseGate;
  s_player_CloseGate = -1;
 };
 // Set
 if ((_isHouse or _isLockableGate) && (_ownerPID == _uid) && !_isUnlocked && _isClosed) then {
  if (s_player_setCode < 0) then {
   s_player_setCode = player addAction [localize "STR_BLD_ACTIONS_SETLOCKCODE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Set"], 1, true, true];
  };
 } else {
  player removeAction s_player_setCode;
  s_player_setCode = -1;
 };
 //Lock Build point
 if ((_isFence or _isGate) && (_ownerPID == _uid) && !_ownerBuildLock) then {
  if (s_player_BuildLock < 0) then {
   s_player_BuildLock = player addAction [localize "STR_BLD_ACTIONS_LOCKBUILD", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"BuildLock"], 1, true, true];
  };
 } else {
  player removeAction s_player_BuildLock;
  s_player_BuildLock = -1;
 };
 //UnLock Build point
 if ((_isFence or _isGate) && (_ownerPID == _uid) && _ownerBuildLock) then {
  if (s_player_BuildUnLock < 0) then {
   s_player_BuildUnLock = player addAction [localize "STR_BLD_ACTIONS_UNLOCKBUILD", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"BuildUnLock"], 1, true, true];
  };
 } else {
  player removeAction s_player_BuildUnLock;
  s_player_BuildUnLock = -1;
 };
 // Unlock Gate/House
 if ((_isHouse or _isLockableGate) && !_isUnlocked && _isClosed) then {
  if (s_player_unlockhouse < 0) then {
   s_player_unlockhouse = player addAction [localize "STR_BLD_ACTIONS_UNLOCKGATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Unlock"], 1, true, true];
  };
 } else {
  player removeAction s_player_unlockhouse;
  s_player_unlockhouse = -1;
 };
 // Lock Gate/House
 if ((_isHouse or _isLockableGate) && _isUnlocked && _isClosed) then {
  if (s_player_lockhouse < 0) then {
   s_player_lockhouse = player addAction [localize "STR_BLD_ACTIONS_LOCKGATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Lock"], 1, true, true];
  };
 } else {
  player removeAction s_player_lockhouse;
  s_player_lockhouse = -1;
 };
 //Break In
 if ((_isHouse or _isLockableGate) && (_ownerPID != _uid) && !_isUnlocked) then {
  if (s_player_breakinhouse < 0) then {
   s_player_breakinhouse = player addAction [localize "STR_BLD_ACTIONS_BREAKIN", "\z\addons\dayz_code\actions\player_breakin.sqf",_cursorTarget, 1, true, true];
  };
 } else {
  player removeAction s_player_breakinhouse;
  s_player_breakinhouse = -1;
 };*/
 if ((_cursorTarget isKindOf "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} && {!locked _cursorTarget} && {!_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 {
  _totalKeys = call epoch_tempKeys;
  _temp_keys = _totalKeys select 0;
  _temp_keys_names = _totalKeys select 1;
  _hasKey = _characterID in _temp_keys;
   
  if (s_player_lockUnlock_crtl < 0) then {   
   _oldOwner = (_characterID == _uid);
   if (_isLocked) then {
    if (_hasKey || {_oldOwner}) then {
     _temp_key_name = (_temp_keys_names select (_temp_keys find _characterID));
     _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,_temp_key_name], 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;
    };
   };
  };
  if (s_player_copyToKey < 0) then {
   if (_hasKey && {_hasKeyKit} && {(count _temp_keys) > 1} && {!_isLocked}) then {
    _temp_key_name = (_temp_keys_names select (_temp_keys find _characterID));
    _vkc_carKeyName = getText (configFile >> "CfgWeapons" >> _temp_key_name >> "displayName");
    _temp_keys = _temp_keys - [_characterID];
    _vkc_temp_keys_names = _temp_keys_names - [_temp_key_name];
    s_player_copyToKey = player addAction ["<t color=""#0096FF"">Change vehicle key</t>","scripts\vkc\vehicleKeyChanger.sqf",[_cursorTarget,_characterID,"change",_temp_keys,_vkc_temp_keys_names],5,true,true];
   };
  };  
 } else {
  {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = [];
  s_player_lockUnlock_crtl = -1;
  player removeAction s_player_copyToKey;
  s_player_copyToKey = -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"} && {player distance _cursorTarget < 3} && {!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"} && {player distance _cursorTarget < 3}  && {!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} && {_isDestructable || _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;
 };

 //Towing with tow truck
 /*
 if(_typeOfCursorTarget == "TOW_DZE") then {
  if (s_player_towing < 0) then {
   if(!(_cursorTarget getVariable ["DZEinTow", false])) then {
    s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true];    
   } else {
    s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true];    
   };
  };
 } else {
  player removeAction s_player_towing;
  s_player_towing = -1;
 };
 */
 
 // Custom below

 if (_isVehicle && {_characterID == "0"} && {_hasKeyKit} && {!_isMan} && {_isAlive}) then {
  if (s_player_claimVehicle < 0) then {
   _totalKeys = call epoch_tempKeys;
   _temp_keys = _totalKeys select 0;
   _temp_keys_names = _totalKeys select 1;
   if (count _temp_keys > 0) then {
    s_player_claimVehicle = player addAction [format ["<t color=""#0096FF"">Claim %1</t>",_text],"scripts\vkc\vehicleKeyChanger.sqf",[_cursorTarget,_characterID,"claim",_temp_keys,_temp_keys_names],5,true,true];
   };
  };
 } else {
  player removeAction s_player_claimVehicle;
  s_player_claimVehicle = -1;
 }; 
 
 if (_isMan && {!_isAlive} && {!(_cursorTarget isKindOf "Animal")} && {player distance _cursorTarget < 5}) then {
  if (s_player_checkWallet < 0) then {
   s_player_checkWallet = player addAction ["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 && {!locked _cursorTarget} && {!(_typeOfCursorTarget in DZE_LockedStorage)} && {player distance _cursorTarget < 5}) then {
  if (s_bank_dialog < 0) then {
   s_bank_dialog = player addAction ["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 ["Trade %1 with %2",CurrencyName,name _cursorTarget],"scripts\zsc\givePlayer.sqf",_cursorTarget,3,true,true];
  };
 } else {
  player removeAction s_givemoney_dialog;
  s_givemoney_dialog = -1;
 };

 if (_isMan && {!(isPlayer _cursorTarget)} && {_typeOfCursorTarget in ZSC_bankTraders} && {!_isPZombie}) then {
  if (s_bank_dialog1 < 0) then {
   s_bank_dialog1 = player addAction ["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 && {player distance _cursorTarget < 5}) then {
  if (s_bank_dialog2 < 0) then {
   s_bank_dialog2 = player addAction ["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_fireout;
 s_player_fireout = -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_attach_bomb;
 //  s_player_attach_bomb = -1;
 //debug
 //player removeAction s_player_debugCheck;
 //s_player_debugCheck = -1; 
 player removeAction s_player_upgradestorage;
 s_player_upgradestorage = -1;
 /* //Unlock,Lock // Vanilla base building currently not used in Epoch
 player removeAction s_player_setCode;
 s_player_setCode = -1;
 player removeAction s_player_lockhouse;
 s_player_lockhouse = -1;
 player removeAction s_player_unlockhouse;
 s_player_unlockhouse = -1;
 player removeAction s_player_openGate;
 s_player_openGate = -1;
 player removeAction s_player_CloseGate;
 s_player_CloseGate = -1;
 player removeAction s_player_breakinhouse;
 s_player_breakinhouse = -1;
 player removeAction s_player_BuildUnLock;
 s_player_BuildUnLock = -1;
 player removeAction s_player_BuildLock;
 s_player_BuildLock = -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 below
 player removeAction s_player_copyToKey;
 s_player_copyToKey = -1;
 player removeAction s_player_claimVehicle;
 s_player_claimVehicle = -1; 
 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 [dayz_characterID,_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];

 

Share this post


Link to post
Share on other sites
6 hours ago, _Lance_ said:

Hey Salival I'm having a little trouble - I think it's with the fn_selfActions - when I put cursor on a trader I don't get "trader menu" and none of the key change menu is working when I have keys and a keykit and cursor on vehicle - I Installed this and the multi-key vehicle locator at the same time, locator is working normally. I'm running your version of zsc and it really didn't look tricky to merge, but apparently I've messed it up somewhere. Would you mind taking a look? Oh and no errors in server or client rpt that I've seen yet, strangely.

 

  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","_isGate","_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","_hasKeyKit","_isLocked"];

_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);
//_canDrink = count nearestObjects [getPosATL player, ["Land_pumpa","Land_water_tank"], 2] > 0;
_uid = getPlayerUID player;
_nearLight = nearestObject [player,"LitObject"];
_canPickLight = false;
_vehicleOwnerID = _vehicle getVariable ["CharacterID","0"];
_hasHotwireKit = "ItemHotwireKit" in _magazinesPlayer;
_isPZombie = player isKindOf "PZombie_VB";
_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 (dayz_onBack != "" /*&& !dayz_onBackActive && !_inVehicle && !_onLadder && !r_player_unconscious) then {
 if (s_player_equip_carry < 0) then {
  _text = getText (configFile >> "CfgWeapons" >> dayz_onBack >> "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 {
 player removeAction s_player_equip_carry;
 s_player_equip_carry = -1;
};*/

//fishing
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 && (player distance _cursorTarget < 3)) 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;
 _hasKeyKit = "ItemKeyKit" in weapons player; 
 _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 = dayz_characterID;
  _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} && {!a_player_jerryfilling} && {_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} && {!a_player_jerryfilling} && {!_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, "", "'ItemFuelBarrel' in magazines player"];
   };
  } else {
   player removeAction s_player_fillfuel210;
   s_player_fillfuel210 = -1;
  };
  
  //Allow player to fill vehicle 20L
  if (_hasFuel20 && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!a_player_jerryfilling} && {!_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, "", "'ItemJerrycan' in magazines player"];
   };
  } else {
   player removeAction s_player_fillfuel20;
   s_player_fillfuel20 = -1;
  };

  //Allow player to fill vehicle 5L
  if (_hasFuel5 && {!_isMan} && {_isVehicle} && {fuel _cursorTarget < 1} && {!a_player_jerryfilling} && {!_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, "", "'ItemFuelcan' in magazines player"];
   };
  } 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} && {!a_player_jerryfilling} && {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;
  };
 };
 
// Not needed.
/*
 if(_cursorTarget == dayz_hasFire) then {
  if ((s_player_fireout < 0) && !(_cursorTarget call isInflamed) && (player distance _cursorTarget < 3)) then {
   s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget, 0, false, true];
  };
 } else {
  player removeAction s_player_fireout;
  s_player_fireout = -1;
 };
*/
 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;
 };
/* 
 //Carbomb
 _hasCarBomb = "ItemCarBomb" in _magazinesPlayer;
 if (((_cursorTarget isKindOf "Car") || (_cursorTarget isKindOf "Air") || (_cursorTarget isKindOf "Motorcycle")) && _hasCarBomb) then {
  if (s_player_attach_bomb < 0) then {
   s_player_attach_bomb = player addAction [localize "str_bombAttach", "\z\addons\dayz_code\actions\player_attach_bomb.sqf",_cursorTarget, 3, true, true];
  };
 } else {
   player removeAction s_player_attach_bomb;
   s_player_attach_bomb = -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 (!locked _cursorTarget) 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;
  };
 };
 /* //Vanilla base building currently not used in Epoch
 // House locking and unlocking
 _isHouse = _typeOfCursorTarget in ["SurvivorWorkshopAStage5", "SurvivorWorkshopBStage5", "SurvivorWorkshopCStage5"];
 _isGate = _typeOfCursorTarget in ["WoodenGate_1","WoodenGate_2","WoodenGate_3","WoodenGate_4","MetalGate_1","MetalGate_2","MetalGate_3","MetalGate_4"];
 _isFence = _typeOfCursorTarget in ["WoodenFence_1","WoodenFence_2","WoodenFence_3","WoodenFence_4","WoodenFence_5","WoodenFence_6","MetalFence_1","MetalFence_2","MetalFence_3","MetalFence_4","MetalFence_5","MetalFence_6","MetalFence_7"];

 //Only the owners can lock the gates
 _isLockableGate = _typeOfCursorTarget in ["WoodenGate_2","WoodenGate_3","WoodenGate_4","MetalGate_2","MetalGate_3","MetalGate_4"];
 _isUnlocked = _cursorTarget getVariable ["isOpen","0"] == "1";

 //Allow the gates to be opened when not locked by anyone
 _isOpen = ((_cursorTarget animationPhase "DoorL") == 1) || ((_cursorTarget animationPhase "DoorR") == 1);
 _isClosed = ((_cursorTarget animationPhase "DoorL") == 0) || ((_cursorTarget animationPhase "DoorR") == 0);
 
 //[["ownerArray",["PID"]]]
 _ownerArray = _cursorTarget getVariable ["ownerArray",["0"]];
 _ownerBuildLock = _cursorTarget getVariable ["BuildLock",false]; 
 _ownerPID = (_ownerArray select 0);
 
 // open Gate
 if (_isGate && _isClosed && _isUnlocked) then {
  if (s_player_openGate < 0) then {
   s_player_openGate = player addAction [localize "STR_DN_OUT_O_GATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Open"], 1, true, true];
  };
 } else {
  player removeAction s_player_openGate;
  s_player_openGate = -1;
 };
 // Close Gate
 if (_isGate && _isOpen && _isUnlocked) then {
  if (s_player_CloseGate < 0) then {
   s_player_CloseGate = player addAction [localize "STR_DN_OUT_C_GATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Close"], 1, true, true];
  };
 } else {
  player removeAction s_player_CloseGate;
  s_player_CloseGate = -1;
 };
 // Set
 if ((_isHouse or _isLockableGate) && (_ownerPID == _uid) && !_isUnlocked && _isClosed) then {
  if (s_player_setCode < 0) then {
   s_player_setCode = player addAction [localize "STR_BLD_ACTIONS_SETLOCKCODE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Set"], 1, true, true];
  };
 } else {
  player removeAction s_player_setCode;
  s_player_setCode = -1;
 };
 //Lock Build point
 if ((_isFence or _isGate) && (_ownerPID == _uid) && !_ownerBuildLock) then {
  if (s_player_BuildLock < 0) then {
   s_player_BuildLock = player addAction [localize "STR_BLD_ACTIONS_LOCKBUILD", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"BuildLock"], 1, true, true];
  };
 } else {
  player removeAction s_player_BuildLock;
  s_player_BuildLock = -1;
 };
 //UnLock Build point
 if ((_isFence or _isGate) && (_ownerPID == _uid) && _ownerBuildLock) then {
  if (s_player_BuildUnLock < 0) then {
   s_player_BuildUnLock = player addAction [localize "STR_BLD_ACTIONS_UNLOCKBUILD", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"BuildUnLock"], 1, true, true];
  };
 } else {
  player removeAction s_player_BuildUnLock;
  s_player_BuildUnLock = -1;
 };
 // Unlock Gate/House
 if ((_isHouse or _isLockableGate) && !_isUnlocked && _isClosed) then {
  if (s_player_unlockhouse < 0) then {
   s_player_unlockhouse = player addAction [localize "STR_BLD_ACTIONS_UNLOCKGATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Unlock"], 1, true, true];
  };
 } else {
  player removeAction s_player_unlockhouse;
  s_player_unlockhouse = -1;
 };
 // Lock Gate/House
 if ((_isHouse or _isLockableGate) && _isUnlocked && _isClosed) then {
  if (s_player_lockhouse < 0) then {
   s_player_lockhouse = player addAction [localize "STR_BLD_ACTIONS_LOCKGATE", "\z\addons\dayz_code\actions\player_operate.sqf",[_cursorTarget,"Lock"], 1, true, true];
  };
 } else {
  player removeAction s_player_lockhouse;
  s_player_lockhouse = -1;
 };
 //Break In
 if ((_isHouse or _isLockableGate) && (_ownerPID != _uid) && !_isUnlocked) then {
  if (s_player_breakinhouse < 0) then {
   s_player_breakinhouse = player addAction [localize "STR_BLD_ACTIONS_BREAKIN", "\z\addons\dayz_code\actions\player_breakin.sqf",_cursorTarget, 1, true, true];
  };
 } else {
  player removeAction s_player_breakinhouse;
  s_player_breakinhouse = -1;
 };*/
 if ((_cursorTarget isKindOf "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} && {!locked _cursorTarget} && {!_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 {
  _totalKeys = call epoch_tempKeys;
  _temp_keys = _totalKeys select 0;
  _temp_keys_names = _totalKeys select 1;
  _hasKey = _characterID in _temp_keys;
   
  if (s_player_lockUnlock_crtl < 0) then {   
   _oldOwner = (_characterID == _uid);
   if (_isLocked) then {
    if (_hasKey || {_oldOwner}) then {
     _temp_key_name = (_temp_keys_names select (_temp_keys find _characterID));
     _unlock = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",[_cursorTarget,_temp_key_name], 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;
    };
   };
  };
  if (s_player_copyToKey < 0) then {
   if (_hasKey && {_hasKeyKit} && {(count _temp_keys) > 1} && {!_isLocked}) then {
    _temp_key_name = (_temp_keys_names select (_temp_keys find _characterID));
    _vkc_carKeyName = getText (configFile >> "CfgWeapons" >> _temp_key_name >> "displayName");
    _temp_keys = _temp_keys - [_characterID];
    _vkc_temp_keys_names = _temp_keys_names - [_temp_key_name];
    s_player_copyToKey = player addAction ["<t color=""#0096FF"">Change vehicle key</t>","scripts\vkc\vehicleKeyChanger.sqf",[_cursorTarget,_characterID,"change",_temp_keys,_vkc_temp_keys_names],5,true,true];
   };
  };  
 } else {
  {player removeAction _x} count s_player_lockunlock;s_player_lockunlock = [];
  s_player_lockUnlock_crtl = -1;
  player removeAction s_player_copyToKey;
  s_player_copyToKey = -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"} && {player distance _cursorTarget < 3} && {!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"} && {player distance _cursorTarget < 3}  && {!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} && {_isDestructable || _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;
 };

 //Towing with tow truck
 /*
 if(_typeOfCursorTarget == "TOW_DZE") then {
  if (s_player_towing < 0) then {
   if(!(_cursorTarget getVariable ["DZEinTow", false])) then {
    s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_ATTACH" "\z\addons\dayz_code\actions\tow_AttachStraps.sqf",_cursorTarget, 0, false, true];    
   } else {
    s_player_towing = player addAction [localize "STR_EPOCH_ACTIONS_DETACH", "\z\addons\dayz_code\actions\tow_DetachStraps.sqf",_cursorTarget, 0, false, true];    
   };
  };
 } else {
  player removeAction s_player_towing;
  s_player_towing = -1;
 };
 */
 
 // Custom below

 if (_isVehicle && {_characterID == "0"} && {_hasKeyKit} && {!_isMan} && {_isAlive}) then {
  if (s_player_claimVehicle < 0) then {
   _totalKeys = call epoch_tempKeys;
   _temp_keys = _totalKeys select 0;
   _temp_keys_names = _totalKeys select 1;
   if (count _temp_keys > 0) then {
    s_player_claimVehicle = player addAction [format ["<t color=""#0096FF"">Claim %1</t>",_text],"scripts\vkc\vehicleKeyChanger.sqf",[_cursorTarget,_characterID,"claim",_temp_keys,_temp_keys_names],5,true,true];
   };
  };
 } else {
  player removeAction s_player_claimVehicle;
  s_player_claimVehicle = -1;
 }; 
 
 if (_isMan && {!_isAlive} && {!(_cursorTarget isKindOf "Animal")} && {player distance _cursorTarget < 5}) then {
  if (s_player_checkWallet < 0) then {
   s_player_checkWallet = player addAction ["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 && {!locked _cursorTarget} && {!(_typeOfCursorTarget in DZE_LockedStorage)} && {player distance _cursorTarget < 5}) then {
  if (s_bank_dialog < 0) then {
   s_bank_dialog = player addAction ["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 ["Trade %1 with %2",CurrencyName,name _cursorTarget],"scripts\zsc\givePlayer.sqf",_cursorTarget,3,true,true];
  };
 } else {
  player removeAction s_givemoney_dialog;
  s_givemoney_dialog = -1;
 };

 if (_isMan && {!(isPlayer _cursorTarget)} && {_typeOfCursorTarget in ZSC_bankTraders} && {!_isPZombie}) then {
  if (s_bank_dialog1 < 0) then {
   s_bank_dialog1 = player addAction ["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 && {player distance _cursorTarget < 5}) then {
  if (s_bank_dialog2 < 0) then {
   s_bank_dialog2 = player addAction ["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_fireout;
 s_player_fireout = -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_attach_bomb;
 //  s_player_attach_bomb = -1;
 //debug
 //player removeAction s_player_debugCheck;
 //s_player_debugCheck = -1; 
 player removeAction s_player_upgradestorage;
 s_player_upgradestorage = -1;
 /* //Unlock,Lock // Vanilla base building currently not used in Epoch
 player removeAction s_player_setCode;
 s_player_setCode = -1;
 player removeAction s_player_lockhouse;
 s_player_lockhouse = -1;
 player removeAction s_player_unlockhouse;
 s_player_unlockhouse = -1;
 player removeAction s_player_openGate;
 s_player_openGate = -1;
 player removeAction s_player_CloseGate;
 s_player_CloseGate = -1;
 player removeAction s_player_breakinhouse;
 s_player_breakinhouse = -1;
 player removeAction s_player_BuildUnLock;
 s_player_BuildUnLock = -1;
 player removeAction s_player_BuildLock;
 s_player_BuildLock = -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 below
 player removeAction s_player_copyToKey;
 s_player_copyToKey = -1;
 player removeAction s_player_claimVehicle;
 s_player_claimVehicle = -1; 
 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 [dayz_characterID,_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];

 

Hey,

I have fixed your problem (hopefully) and emailed your listed email address here on the forum.

It looks like when you merged the fn_selfActions you made some merging errors, let me know if this solves your problem.

Share this post


Link to post
Share on other sites

Hi guys,

In the next few days (work and wife depending) I'll push a major update to this script to github.

I've basically rewritten it to have a UI (like the one I made for my virtual garage remake) so it's ditched the mouse scroll wheel menu that I thought was causing the dupe.

It's now a lot prettier and on the upside I have no gotten it to dupe a vehicle again!

I am also sure I have fixed the bouncing problem that we were seeing. I can no longer get it to bounce a vehicle when it changes it.

Below is a screen shot of the new UI.

7B7DE2B26CDA34CFA011457BA3FE69CD702C4984

Share this post


Link to post
Share on other sites
5 hours ago, Runewulv said:

hey I use static weapons at my missions, I would like to make it so static weapons can't be claimed?

in your fn_selfActions.sqf, find this line:

if (_isVehicle && {_characterID == "0"} && {_hasKeyKit} && {!_isMan} && {_isAlive}) then {

replace it with this line:

if (_isVehicle && {_characterID == "0"} && {_hasKeyKit} && {!_isMan} && {_isAlive} && {!(_cursorTarget isKindOf "StaticWeapon")}) then {

 

Share this post


Link to post
Share on other sites

Hey guys,

I've finally written up the documentation and released the latest version of VKC.

This one now uses a dialog interface and i believe (fucking hope so!) that the dupe is no longer there. I have not experienced it at all since updating.

I need definite feedback on this release, how it's working and if you notice any weirdness. I have tested this significantly but there could be things I have missed.

I have included information on how to update from the older version including uninstall information.

https://github.com/oiad/vkc#fresh-install for a fresh install or https://github.com/oiad/vkc#upgrading-with-previous-version-installed if you are updating

Share this post


Link to post
Share on other sites

Ill be happy to install this in the morning (its 138AM here now) and give you feedback. I've not experienced duping with the last version, the only thing that sucked was the bouncing of vehicles. Had a mh60s shoot 60 feet into the air and kill me when I tried to key it. So if that's fixed, i'm golden haha.

Share this post


Link to post
Share on other sites

We've had cases of duping and bouncing on our server so I'll gladly get it updated. But here's a question:

In my server's publish vehicle 3 sqf on 49 it looks like:    _location = getPosATL _object;

but on the uploaded one on the same line its like :          _location = [_object] call fnc_getPos;

Is there a functioning difference and should i be using my original or whats in the uploaded file?

Share this post


Link to post
Share on other sites
55 minutes ago, ADG Commander said:

We've had cases of duping and bouncing on our server so I'll gladly get it updated. But here's a question:

In my server's publish vehicle 3 sqf on 49 it looks like:    _location = getPosATL _object;

but on the uploaded one on the same line its like :          _location = [_object] call fnc_getPos;

Is there a functioning difference and should i be using my original or whats in the uploaded file?

Run the uploaded one as per the instructions for updating, its hopefully the fix for bouncing vehicles.

I've tested it everywhere I can think of with different vehicle types, can't get it to do it any more

Share this post


Link to post
Share on other sites
1 hour ago, salival said:

Run the uploaded one as per the instructions for updating, its hopefully the fix for bouncing vehicles.

I've tested it everywhere I can think of with different vehicle types, can't get it to do it any more

well its in and working, ill do some testing on our side as well and hopefully gets the same results. thanks for the work!

Share this post


Link to post
Share on other sites

had it installed for about an hour now. Tested several vehicles with claiming. I can confirm it does not bounce a vehicle any more. Even tested it on the helis that killed me before, and no bounce. Well done mate. That interface is great too, would love to see it added to the vehicle unlock/lock script for choosing a vehicle to use the script with.

Share this post


Link to post
Share on other sites
On 11/08/2017 at 3:07 AM, Runewulv said:

had it installed for about an hour now. Tested several vehicles with claiming. I can confirm it does not bounce a vehicle any more. Even tested it on the helis that killed me before, and no bounce. Well done mate. That interface is great too, would love to see it added to the vehicle unlock/lock script for choosing a vehicle to use the script with.

I like that idea. very possible.

Share this post


Link to post
Share on other sites

Might also want to try this commit I pushed: https://github.com/oiad/vkc/commit/ab4ca86623466b2dd935f98d2eb9ca3886e1136d

Will help a lot on hills and so forth, I do all my testing on Chernarus so I don't see a lot of the issues that you guys with Taviana and napf/panthera servers will see.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Ghostrider-GRG
      For a while now I have wanted to put together an addon that makes available additional storage containers and, in the future, other craftable items like heli pads, additional lights and so forth. To that end, and with quite a lot of help from Grahame, I offer V 0.1 of Extended Base Objects for Epoch. It offers a variety of additional storage containers and an easy method for installation.
      Installation: download from my github here:  https://github.com/Ghostrider-DbD-/EB4E
      Subscribe on Steam here: https://steamcommunity.com/sharedfiles/filedetails/?id=1475332817
      Unpack your mission.pbo using PBO manager or its equivalent.
      Copy all files from the mapname.epoch folder to the folder created by unpacking your mission.
      Repack your mission.
      Copy @EB4E to the same folder containing @Epoch and @epochhive on your server. 
       Copy the key found in @EB4E\Key to the \keys folder on your server.
      Add "EB4E" to the -mods="@Epoch;blahblah;" parameter for server startup.
      Players can subscribe to the mod here: https://github.com/Ghostrider-DbD-/EB4E
    • By Brian Soanes
      To unlock vehicles left in your traders over a server restart, open your epoch_server.pbo

      In epoch_server\compile\epoch_vehicle\EPOCH_load_vehicles.sqf
      Find
      if (_allowDamage) then { Just above that, add this
      A3E_SafeZonePosArray = [ [[18451.9,14278.1,0]], //Altis East trader [[13333.5,14494.3,0]], //Altis Central trader [[6192.46,16834,0]] //Altis West trader ]; { if (_vehicle distance (_x select 0) < 200) then { _vehicle lock false; diag_log format["Vehicle %1 left in trader unlocked @ %2", _class, mapGridPosition _vehicle]; }; } forEach A3E_SafeZonePosArray; Pack pbo and you're good to go
    • By Yoda
      Hello, I am apart of the Global Chaos Gaming community. We currently are hosting a modified Arma 3 Epoch server, we have very active staff aswell as active community members, I urge you to stop by and check us out! TeamSpeak: ts.globalchaos.net Website : http://www.GlobalChaos.net
    • By WinterLuka
      Winter Gaming is a gaming community, that was created in early 2018. We're currently running DayZ Epoch 1.0.6.2 server.
      Winter Gaming is a project created with passion – for players from players.
      On our server, the rules are equal for all players – no Pay2Win, no benefits for donating.
       
      Server IP: 164.132.201.34:2302
      Discord: discord.me/wintereu
      Website: http://www.wintergaming.eu
      Forum: http://www.wintergaming.eu/forums
       
      Server Configuration:
      Building Maintain - 10 Days Abandoned Vehicle Unlock - 7 Days Abandoned Safes/Lockboxes Unlock - 10 Days Building Limit – 350 Objects Max Base Height - 50m  
      Features:
      Plot Management Door Management Snap and Vector Building Coin System Running Zombies Ai Missions Ai Convoys High FPS Custom Loot Custom Locations Custom Traders Hidden Trader Selling Rare Items Toggle Grass/Environmental Sounds Deploy Bike/Motorcycle/Mozzie Walk Amongst The Dead Harvestable Hemp Tow/Lift Repair/Rearm – Service Points Bury Bodies Take Clothes Locate Vehicle Paychecks every 30 minutes Spawn Selection Abandoned Safe Mission Indestructible Metal/Cinder Bases Blow up door and more!  
      I hope to see You on the server!
    • By Tricks
      We are back! Ranked 7th overall in 2014! Classic DayZ Epoch PvP Server!! No stupid start bonus, no heavy military. Just classic Epoch gameplay with new updates!

       
      - Top of the Line Hardware - Overclocked 8700k servers with SSDs. Super high FPS!!

      - XP System & XP Trader - Acquire handy Perks, Skills, and Permits with our XP system!

      - Custom Traders - Totally custom traders unique to this server!

      - Military Bases - High Loot areas perfect for gearing up.

      - Custom Map Content - Aircraft Carriers, Secret Military Bases, New Towns, and more!

      - All The Major Mods - All the major mods like Coin System, Heli Evac, Hide from Zeds, and many more.

      - Lots of AI Missions - Challenging AI missions color-coded by difficulty.

      - Custom AI Missions for Groups - Static missions with super high difficulty and major loot rewards!

      - Realistic Loot Spawns - You wont find high-powered weapons while hunting for loot, realistic loot spawns.

      - No Heavy Weapons, Tanks, Attack Choppers, Jets - Just the classic Epoch vehicles with a few new additions!

      - Lots of Vehicles - Lots of vehicles scattered around the map. Some are ready to go, others need to be fixed first!

      - Base Building - Fully modular base building system with unique build items and crafting recipes.

      - Full Day/Night Cycle - Realistic day and night cycle, no stupid 24 hours daylight!!

      - Full Weather System - Rain, thunderstorms and snow in the winter!!

      - Destructible Base/Garage Doors - Base raiding without losing your whole base! Just the doors are destructible.

      - Abandoned Safes/Lockboxes - Abandoned bases will have their safes unlocked for you to raid!!

      - Fresh Server, All The Best Base Locations Still Available! - No more wipes, server is done and all progress will be saved.

      - Regular Updates/Suggestions Considered - Pass along ideas to the admin staff. We consider all changes.

      - Admin Events - Events with High Loot and great times! See pic below.

      - Active Admin Staff - Find us on Discord anytime or by email!





      Connect to us on DayZ Launcher or directly:

      [SHG]ClassicEpoch|XPSystem|CustomTraders|CustomAImissions|Coins|FPS++

      144.217.62.76:2302

      Discord: http://xn--discrd-zxa.com/join.php?v=OXHD95

      Email: [email protected]

      Website: Under construction


  • Advertisement
  • Advertisement
  • Supporters
  • Advertisement
  • Discord

×