Jump to content

Deploy bike from Dyna menu


Schalldampfer

Recommended Posts

As I could not find a maintained "deploy bike" script for A3 Epoch, I have created one myself. 
Thanks for G-Dog for assisting my scripting

*Deploy vehicle from dyna menu (Space key menu)
*Pack vehicle from dyna menu while looking at it
*You can define any vehicle to spawn 
*The vehicle is spawned server side (not saved in the hive, but theoretically possible)
*No animation like DayZ Epoch's "deploy anything" for now (but theoretically possible with client side modification)

https://github.com/Schalldampfer/DeployBike4A3E

first version hidden below

Spoiler

Server side

create these two files
epoch_server\compile\deploy_vehicle\Epoch_Deploy_server_PackVehicle.sqf

Spoiler

/*
    Author: Schalldampfer

    [_player,_vehObj]
*/
private ["_player","_puid","_owner","_vehObj","_vehClass"];
_player = _this select 0;
_puid = getPlayerUID _player;
_owner = owner _player;
_vehObj = _this select 1;
_vehClass = typeOf _vehObj;

if ((_vehObj getVariable ["EPOCH_DeployOwner","-1"]) == _puid) then {//check owner
    Deploy_DeployedVehicles = Deploy_DeployedVehicles - [_vehObj];//remove from array
    deleteVehicle _vehObj;//remove vehicle
    format["You've packed a %1!", _vehClass] remoteExec ["Epoch_message",_player];
};

epoch_server\compile\deploy_vehicle\Epoch_Deploy_server_SpawnVehicle.sqf

Spoiler

/*
    Author: Schalldampfer
    [_player,_vehClass]
*/
private ["_player","_puid","_owner","_position","_vehClass","_vehObj","_isOk"];
_player = _this select 0;
_puid = getPlayerUID _player;
_owner = owner _player;
_position = getPos _player;
_vehClass = _this select 1;

diag_log format["[DeployBike] Try spawning %1 by %2",_vehClass,_player];

_isOk = true;
if(isNil "Deploy_DeployedVehicles") then {Deploy_DeployedVehicles = [];};

//check player haven't spawned one
{
    if ((_x getVariable ["EPOCH_DeployOwner","-1"]) == _puid) then { _isOk = false;"You've already deployed a vehicle!" remoteExec ["Epoch_message",_player]; };
} foreach Deploy_DeployedVehicles;

//spawn
if (_isOk) then {
    _vehObj = _vehClass createVehicle _position; //create
    _vehObj allowDamage false;
    
    //init
    _vehObj setVectorUp (surfaceNormal (getPos _vehObj));
    _vehObj setVelocity [0,0,.1];
   // _vehObj call EPOCH_server_setVToken;
   // _vehObj call EPOCH_server_vehicleInit;
    Deploy_DeployedVehicles set [count Deploy_DeployedVehicles, _vehObj];//add to array
    _vehObj setvariable ["EPOCH_DeployOwner",_puid];//set puid as owner
    _vehObj addEventHandler ["GetIn", {"WARNING: This vehicle will be deleted at restart!" remoteExec ["Epoch_message",_this select 2];}];//warn when get in
    
    // Normalize vehicle inventory
    clearWeaponCargoGlobal    _vehObj;
    clearMagazineCargoGlobal  _vehObj;
    clearBackpackCargoGlobal  _vehObj;
    clearItemCargoGlobal      _vehObj;
    
    _vehObj setFuel ((random 1 max 0.1) min 0.9);//fuel
    
    //complete spaning
    _vehObj allowDamage true;
    format["You've deployed a %1!", _vehClass] remoteExec ["Epoch_message",_player];
};

_vehObj
 

Modify those files
epoch_server\config.cpp Line146~(in class CfgServerFunctions -> class A3E):

Spoiler


        class deploy_vehicle {
            class Deploy_server_SpawnVehicle {};
            class Deploy_server_PackVehicle {};
        };

epoch_server\init\server_init.sqf : at bottom (outside any curly brackets)

Spoiler

"Deploy_SpawnVehicle" addPublicVariableEventHandler{(_this select 1) call Epoch_Deploy_server_SpawnVehicle};
"Deploy_PackVehicle"  addPublicVariableEventHandler{(_this select 1) call Epoch_Deploy_server_PackVehicle};

 

Client side

Modify two files
epoch_config\Configs\CfgActionMenu\CfgActionMenu_self.hpp (at bottom)

Spoiler

class Deploy_deploy
{
    condition = "!dyna_inVehicle";
    action = "Deploy_SpawnVehicle = [player,'MBK_01_EPOCH']; publicVariableServer 'Deploy_SpawnVehicle';";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\repair.paa";
    tooltip = "Deploy Bike";
};

You can change the MBK_01_EPOCH to any vehicle classname to deploy

epoch_config\Configs\CfgActionMenu\CfgActionMenu_target.hpp (at bottom)

Spoiler

class Deploy_pack
{
    condition = "dyna_isVehicle && ((crew dyna_cursorTarget) isEqualTo [])";
    action = "Deploy_PackVehicle = [player,dyna_cursorTarget]; publicVariableServer 'Deploy_PackVehicle';";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\repair.paa";
    tooltip = "Pack Vehicle";
};

 


--
Edit 

BE filter:
in the end of the 1st line of publicvariable.txt :
 !="Deploy_SpawnVehicle" !="Deploy_PackVehicle"

Edited by Schalldampfer
Github
Link to comment
Share on other sites

Couple of questions:

(1) Why not put the server side code in an addon PBO so that you or others do not have to make changes to epoch_server.pbo every time an update is released?

(2) Why make the deployed vehicles persist through a restart? People will just leave bikes all over the map decreasing server performance over time.

(3) Why not check that the target class is the deployed vehicle for the pack option in the dynamenu... otherwise the option to pack will be given for all vehicles.

(4) You should probably add the BE filters for the pubvars for completeness

Hope this is helpful.

Link to comment
Share on other sites

Personally I use the server side UD addon and call a script clientside that checks whether certain requirements are met to be able to deploy a bike or mozzie, for example:

if ("epochz_ToolKit" in (items player)) then {
	if ("VehicleRepair" in (magazines player)) then {
		player removeMagazine "VehicleRepair";
		titleText ["", "PLAIN DOWN"];
		player playActionNow "Medic";
		_spawnPos = player modelToWorld [0,2,0];
		_spawnDir = (getDir player) -90;
		UD_BIKE = [player, _spawnPos, _spawnDir];
		sleep 3;
		publicVariableServer "UD_BIKE";
		sleep 1;
		['You have spawned a bike. It will be gone at restart!',0,0.7,2,0] spawn bis_fnc_dynamictext;
		player removeAction deploybike;
	}
	else {
		['You need Vehicle Repair Parts to craft a bike!',0,0.7,2,0] spawn bis_fnc_dynamictext;
	};
} else {
	['You need a Toolkit to craft a bike!',0,0.7,2,0] spawn bis_fnc_dynamictext;
};	

And then for packing:

obj1 = _this select 0;
_unit = _this select 1;
_action = _this select 2;
_unit removeAction _action;

_deletetime = 8;

_unit playMove "AinvPknlMstpSlayWnonDnon_medic";

//DO NOT CHANGE
sleep _deleteTime;
deleteVehicle obj1;
_unit addMagazine "VehicleRepair";
deploybike = _unit addAction ["<t color=""#00CF11"">" +"Deploy Bike","custom\deploy_bike.sqf","",1,false,false,"",""];

 

Link to comment
Share on other sites

Thank you for your advice, I'll try it if I update it.(Currently I'm busy at making AI cities)


(1)server side update
I thought I'll include checks for deploying vehicle in server side (not implemented for now)
(such as community stat (?), donor and admin)


(2)vehicle to be persistent through restart
I haven't made it saved for now.
It can be also used for deploying garage (though it's also not implemented in Virtual Garage in A3 Epoch, and may be done by modifing building settings),
that must be static and persistent.
And I don't know it's really necessary, but can be an option.


(3)pack vehicles not deployed
No problem, the vehicle has an variable about its owner, (which will be "-1" for non-deployed vehicles).  
I'm cheking it in the server script.

Quote

 _vehObj setvariable ["EPOCH_DeployOwner",_puid];//set puid as owner

Quote

if ((_vehObj getVariable ["EPOCH_DeployOwner","-1"]) == _puid) then {//check owner

 

(4)BE filter
oops, I forgot it.I'll add it later. there's at least 2 public variables 

Quote

!="Deploy_SpawnVehicle" !="Deploy_PackVehicle"

 

A reason why I dont use addAction is, the scroll-menu action tend to mulfunction dyna menu.
when I push space key, both the dyna menu and scroll menu opens and dyna menu die with leaving fog effects. (I was using an scroll menu action that spawn silent hint of server rule)

Link to comment
Share on other sites

(1) I'm just suggesting putting the scripts in a separate PBO rather than in epoch_server. If you need a hand on that then let me know. Will be happy to help.

(2) The line 

    _vehObj call EPOCH_server_vehicleInit;

will, iirc, make the vehicle persistent.

(3) My point was more changing the condition line to something like:

    condition = "dyna_isVehicle && ((crew dyna_cursorTarget) isEqualTo []) && (dyna_cursorTarget iskindof 'MBK_01_EPOCH')";

So that that option only shows in the dynamenu for deployed vehicles.

Also, deployed vehicles should be removed from the trader price lists or players will spam them for cash

Link to comment
Share on other sites

To clarify: The line

    _vehObj call EPOCH_server_setVToken;

ensures that the vehicle will not be deleted when a player gets near to it and is required to be run for all vehicles spawned by script.

The line 

        _vehObj call EPOCH_server_vehicleInit;

sets event handlers on the vehicle that will add it into the save vehicle queue for saving into the database (assuming slots are available)

Link to comment
Share on other sites

9 minutes ago, Grahame said:

(1) I'm just suggesting putting the scripts in a separate PBO rather than in epoch_server. If you need a hand on that then let me know. Will be happy to help.

(2) The line 


    _vehObj call EPOCH_server_vehicleInit;

will, iirc, make the vehicle persistent.

(3) My point was more changing the condition line to something like:


    condition = "dyna_isVehicle && ((crew dyna_cursorTarget) isEqualTo []) && (dyna_cursorTarget iskindof 'MBK_01_EPOCH')";

So that that option only shows in the dynamenu for deployed vehicles.

Also, deployed vehicles should be removed from the trader price lists or players will spam them for cash

thanks for replying,
(1) I'll try it, I found some scripts doing that, so I'll imitate them.
(2) thanks for noticing, I'll check the init function and copy some codes in it.
(3) thanks, I'll try it.
      I have removed the vehicle from spawning and trader list
     (I think it's good to change Deploy_vehicle array to include playerUID instead of vehicles and check puid to prevent duplicates)
 

 

--P.S.--
I'll use GitHub for further updates, to log what was changed

Link to comment
Share on other sites

If you like I can send my server side addon and scripts for you to look at for ideas. I like the direction you are going and you've made a fine start on this. 

You can really just remove the EPOCH_server_vehicleInit line without issues all it does is ensure that a persistent vic writes its death into the Vehicle Killed table in the database and is added to the save queue

Yeah, more important in your case, using the dynaMenu to avoid people just spawning things over and over again. In my case I use an addAction for the scroll wheel and remove it when they spawn one and add it back when they repack it

Link to comment
Share on other sites

I Added that see below:

CfgActionMenu_self

Spoiler

/*
    Author: Raimonds Virtoss - EpochMod.com

    Contributors: Aaron Clark

    Description:
    Action Menu Self Config

    Licence:
    Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike

    Github:
    https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp
*/

class veh_lock
{
    condition = "if (vehicle player iskindof 'Bicycle') exitwith {false};dyna_inVehicle && !dyna_lockedInVehicle";
    action = "[vehicle player, true, player, Epoch_personalToken] remoteExec ['EPOCH_server_lockVehicle',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_cannot_lock.paa";
    tooltip = "Lock";
};
class veh_unLock
{
    condition = "dyna_inVehicle && dyna_lockedInVehicle";
    action = "[vehicle player, false, player, Epoch_personalToken] remoteExec ['EPOCH_server_lockVehicle',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_can_unlock.paa";
    tooltip = "Unlock";
};
class player_inspect
{
    condition = "!dyna_inVehicle";
    action = "if !(underwater player) then {call EPOCH_lootTrash}else {if !(((nearestobjects [player,['container_epoch','weaponholdersimulated','GroundWeaponHolder'],5]) select {(_x getvariable ['EPOCH_Loot',false]) || (_x iskindof 'container_epoch' && _x animationPhase 'open_lid' > 0.5)}) isequalto []) then {call EPOCH_QuickTakeLoad} else {call EPOCH_lootTrash}};";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
    tooltip = "Examine";
};
class Groups
{
    condition = "true";
    action = "";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_menu_ca.paa";
    tooltip = "Groups Menu";
    class Group
    {
        condition = "true";
        action = "call EPOCH_Inventory_Group;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\perm_group_menu_ca.paa";
        tooltip = "Perm Group Menu";
    };
    class TempGroup
    {
        condition = "true";
        action = "call EPOCH_Inventory_TempGroup;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\temp_group_menu_ca.paa";
        tooltip = "Temp Group Menu";
    };
};
class player_group_requests
{
    condition = "!(Epoch_invited_GroupUIDs isEqualTo[])";
    action = "call EPOCH_Inventory_iGroup;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
    tooltip = "Group Requests";
};
class player_tempGroup_requests
{
    condition = "!(Epoch_invited_tempGroupUIDs isEqualTo[])";
    action = "call EPOCH_Inventory_itempGroup;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
    tooltip = "Temp Group Requests";
};

class base_mode_enable
{
    condition = "EPOCH_buildMode in [0,2] && !dyna_inVehicle";
    action = "if (EPOCH_playerEnergy > 0) then {EPOCH_stabilityTarget = objNull;EPOCH_buildMode = 1;['Build Mode: Enabled Snap alignment', 5] call Epoch_message;EPOCH_buildDirection = 0} else {['Need Energy!', 5] call Epoch_message};";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_maintain.paa";
    tooltip = "Build Mode: Snap alignment";
};
class base_mode_enable_free
{
    condition = "EPOCH_buildMode == 1 && EPOCH_playerEnergy > 0";
    action = "EPOCH_stabilityTarget = objNull;EPOCH_buildMode = 2;['Build Mode: Enabled Free alignment', 5] call Epoch_message;EPOCH_buildDirection = 0;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_maintain.paa";
    tooltip = "Build Mode: Free alignment";
};
class base_mode_disable
{
    condition = "EPOCH_buildMode > 0";
    action = "EPOCH_buildMode = 0;EPOCH_snapDirection = 0;['Build Mode: Disabled', 5] call Epoch_message;EPOCH_Target = objNull;EPOCH_Z_OFFSET = 0;EPOCH_X_OFFSET = 0;EPOCH_Y_OFFSET = 5;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_remove.paa";
    tooltip = "Build Mode: Disable";
};
class base_mode_snap_direction
{
    condition = "EPOCH_buildMode == 1";
    action = "EPOCH_snapDirection = EPOCH_snapDirection + 1; if (EPOCH_snapDirection > 3) then {EPOCH_snapDirection = 0};[format['SNAP DIRECTION: %1°', EPOCH_snapDirection*90], 5] call Epoch_message;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_rotate.paa";
    tooltip = "Build Mode: Rotate 90°";
    tooltipcode = "format ['Build Mode: Switch Snap Direction to %1° (current %2°)',if (EPOCH_snapDirection < 3) then {(EPOCH_snapDirection+1)*90} else {0},EPOCH_snapDirection*90]";
};
class base_mode_detach
{
    condition = "EPOCH_buildMode > 0 && !isnull EPOCH_target && EPOCH_target_attachedTo isequalto player && Epoch_target iskindof 'Const_Ghost_EPOCH'";
    action = "EPOCH_target_attachedTo = objnull; ['Object Detached', 5] call Epoch_message;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_detach.paa";
    tooltip = "Build Mode: Detach Object";
};
class base_mode_attach
{
    condition = "EPOCH_buildMode > 0 && !isnull EPOCH_target && !(EPOCH_target_attachedTo isequalto player) && Epoch_target iskindof 'Const_Ghost_EPOCH'";
    action = "EPOCH_target_attachedTo = player; ['Object Attached', 5] call Epoch_message;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_attach.paa";
    tooltip = "Build Mode: Attach Object";
};
class Drink
{
    condition = "dyna_Watersource";
    action = "if (currentweapon player == '') then {player playmove 'AinvPknlMstpSnonWnonDnon_Putdown_AmovPknlMstpSnonWnonDnon';}else {if (currentweapon player == handgunweapon player) then {player playmove 'AinvPknlMstpSrasWpstDnon_Putdown_AmovPknlMstpSrasWpstDnon';}else {    player playmove 'AinvPknlMstpSrasWrflDnon_Putdown_AmovPknlMstpSrasWrflDnon';};};{_output = _x call EPOCH_giveAttributes;if (_output != '') then {[_output, 5] call Epoch_message_stack;};} foreach [['Thirst',100],['Toxicity',1,1],['Stamina',10]];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Drink.paa";
    tooltip = "Drink";
};
class Wash
{
    condition = "dyna_Watersource";
    action = "if !('Soap_Epoch' in magazines player) exitwith {['You need a Soap to wash yourself',5] call Epoch_Message;};[] spawn {player playMove 'AinvPknlMstpSnonWrflDnon_medic0';player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';['Washing ...',5] call Epoch_Message;player removeitem 'Soap_Epoch';uisleep 6;{_output = _x call EPOCH_giveAttributes;    if (_output != '') then {[_output, 5] call Epoch_message_stack;};} foreach [['Soiled',-25]];};";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Washing.paa";
    tooltip = "Wash yourself";
};
class ServicePoint
{
    condition = "call EPOCH_SP_Check";
    action = "[dyna_Turret] call EPOCH_SP_Start;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_man.paa";
    tooltip = "Service Point";

    class Refuel
    {
        condition = "!isnil 'Ignatz_Refuel'";
        action = "(Ignatz_Refuel select 1) spawn EPOCH_SP_Refuel";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\vehicle_refuel.paa";
        tooltipcode = "Ignatz_Refuel select 0";
    };
    class Repair
    {
        condition = "!isnil 'Ignatz_Repair'";
        action = "(Ignatz_Repair select 1) spawn EPOCH_SP_Repair";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\repair.paa";
        tooltipcode = "Ignatz_Repair select 0";
    };
    class Rearm0
    {
        condition = "!isnil 'Ignatz_Rearm0'";
        action = "(Ignatz_Rearm0 select 1) call EPOCH_SP_Rearm";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
        tooltipcode = "Ignatz_Rearm0 select 0";
    };
    class Rearm1
    {
        condition = "!isnil 'Ignatz_Rearm1'";
        action = "(Ignatz_Rearm1 select 1) call EPOCH_SP_Rearm";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
        tooltipcode = "Ignatz_Rearm1 select 0";
    };
    class Rearm2
    {
        condition = "!isnil 'Ignatz_Rearm2'";
        action = "(Ignatz_Rearm2 select 1) call EPOCH_SP_Rearm";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
        tooltipcode = "Ignatz_Rearm2 select 0";
    };
};
class veh_Rearm1
{
    condition = "if (count dyna_weaponsTurret > 0) then {!((dyna_weaponsTurret select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player, dyna_weaponsTurret select 0, dyna_Turret] call EPOCH_vehicle_checkTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
    tooltipcode = "format['Add Mag to %1',getText(configFile >> 'CfgWeapons' >> dyna_weaponsTurret select 0 >> 'displayName')]";
};
class veh_Rearm2
{
    condition = "if (count dyna_weaponsTurret > 1) then {!((dyna_weaponsTurret select 1) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_weaponsTurret select 1, dyna_Turret] call EPOCH_vehicle_checkTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
    tooltipcode = "format['Add Mag to %1',getText(configFile >> 'CfgWeapons' >> dyna_weaponsTurret select 1 >> 'displayName')]";
};
class veh_Rearm3
{
    condition = "if (count dyna_weaponsTurret > 2) then {!((dyna_weaponsTurret select 2) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_weaponsTurret select 2, dyna_Turret] call EPOCH_vehicle_checkTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
    tooltipcode = "format['Add Mag to %1',getText(configFile >> 'CfgWeapons' >> dyna_weaponsTurret select 2 >> 'displayName')]";
};
class veh_Rearm4
{
    condition = "if (count dyna_weaponsTurret > 3) then {!((dyna_weaponsTurret select 3) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_weaponsTurret select 3, dyna_Turret] call EPOCH_vehicle_checkTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
    tooltipcode = "format['Add Mag to %1',getText(configFile >> 'CfgWeapons' >> dyna_weaponsTurret select 3 >> 'displayName')]";
};
class veh_RemoveAmmo1
{
    condition = "if (count dyna_WeapsMagsTurret > 0) then {!((dyna_WeapsMagsTurret select 0 select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_WeapsMagsTurret select 0 select 0,dyna_WeapsMagsTurret select 0 select 1, dyna_Turret] call EPOCH_vehicle_removeTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\RemoveMag.paa";
    tooltipcode = "format['Remove %1 from %2',getText(configFile >> 'CfgMagazines' >> (dyna_WeapsMagsTurret select 0 select 1) >> 'displayName'),getText(configFile >> 'CfgWeapons' >> (dyna_WeapsMagsTurret select 0 select 0) >> 'displayName')]";
};
class veh_RemoveAmmo2
{
    condition = "if (count dyna_WeapsMagsTurret > 1) then {!((dyna_WeapsMagsTurret select 1 select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_WeapsMagsTurret select 1 select 0,dyna_WeapsMagsTurret select 1 select 1, dyna_Turret] call EPOCH_vehicle_removeTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\RemoveMag.paa";
    tooltipcode = "format['Remove %1 from %2',getText(configFile >> 'CfgMagazines' >> (dyna_WeapsMagsTurret select 1 select 1) >> 'displayName'),getText(configFile >> 'CfgWeapons' >> (dyna_WeapsMagsTurret select 1 select 0) >> 'displayName')]";
};
class veh_RemoveAmmo3
{
    condition = "if (count dyna_WeapsMagsTurret > 2) then {!((dyna_WeapsMagsTurret select 2 select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_WeapsMagsTurret select 2 select 0,dyna_WeapsMagsTurret select 2 select 1, dyna_Turret] call EPOCH_vehicle_removeTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\RemoveMag.paa";
    tooltipcode = "format['Remove %1 from %2',getText(configFile >> 'CfgMagazines' >> (dyna_WeapsMagsTurret select 2 select 1) >> 'displayName'),getText(configFile >> 'CfgWeapons' >> (dyna_WeapsMagsTurret select 2 select 0) >> 'displayName')]";
};
class veh_RemoveAmmo4
{
    condition = "if (count dyna_WeapsMagsTurret > 3) then {!((dyna_WeapsMagsTurret select 3 select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_WeapsMagsTurret select 3 select 0,dyna_WeapsMagsTurret select 3 select 1, dyna_Turret] call EPOCH_vehicle_removeTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\RemoveMag.paa";
    tooltipcode = "format['Remove %1 from %2',getText(configFile >> 'CfgMagazines' >> (dyna_WeapsMagsTurret select 3 select 1) >> 'displayName'),getText(configFile >> 'CfgWeapons' >> (dyna_WeapsMagsTurret select 3 select 0) >> 'displayName')]";
};

class geiger_menu
{
    condition = "'ItemGeigerCounter_EPOCH' in dyna_assigneditems";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_radiation.paa";
    tooltip = "Geiger counter settings";

    class geiger_toggle
    {
        condition = "true";
        action = "call epoch_geiger_show_hide";
             icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_toggle.paa";
        tooltip = "Toggle HUD";
    };
    class geiger_counter_mute
    {
        condition = "!EPOCH_geiger_mute_counter";
        action = "EPOCH_geiger_mute_counter = !EPOCH_geiger_mute_counter";
          icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_volumeoff.paa";
        tooltip = "Mute counter";
    };
    class geiger_counter_unmute
    {
        condition = "EPOCH_geiger_mute_counter";
        action = "EPOCH_geiger_mute_counter = !EPOCH_geiger_mute_counter";
             icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_volumeon.paa";
        tooltip = "Unmute counter";
    };
    class geiger_warning_mute
    {
        condition = "!EPOCH_geiger_mute_warning";
        action = "EPOCH_geiger_mute_warning = !EPOCH_geiger_mute_warning";
             icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_alarmoff.paa";
        tooltip = "Mute warnings";
    };
    class geiger_warning_unmute
    {
        condition = "EPOCH_geiger_mute_warning";
        action = "EPOCH_geiger_mute_warning = !EPOCH_geiger_mute_warning";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_alarmon.paa";
        tooltip = "Unmute warnings";
    };
    class Deploy_deploy
    {
        condition = "!dyna_inVehicle";
        action = "Deploy_SpawnVehicle = [player,'MBK_01_EPOCH']; publicVariableServer 'Deploy_SpawnVehicle';";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\repair.paa";
        tooltip = "Deploy Bike";
    };
};
 

and CfgActionMenu_target

Spoiler

/*
    Author: Raimonds Virtoss - EpochMod.com

    Contributors: Aaron Clark

    Description:
    Action Menu Target Config

    Licence:
    Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike

    Github:
    https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp
*/

class build_upgrade
{
    condition = "dyna_buildMode select 0";
    //action = "dyna_cursorTarget call EPOCH_QuickUpgrade;"; //TODO: scripted dyna menu
    action = "";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_upgrade.paa";
    tooltipcode = "format['Upgrade %1',getText(configFile >> 'CfgVehicles' >> (typeof dyna_cursorTarget) >> 'displayName')]";
    class special {}; //uses external config, hardcoded
};
class build_remove
{
    condition = "dyna_buildMode select 1";
    action = "dyna_cursorTarget call EPOCH_removeBUILD;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_trash.paa";
    tooltipcode = "format['Remove %1',getText(configFile >> 'CfgVehicles' >> (typeof dyna_cursorTarget) >> 'displayName')]";
};
class build_move
{
    condition = "dyna_buildMode select 2";
    action = "dyna_cursorTarget call EPOCH_fnc_SelectTargetBuild;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_move.paa";
    tooltipcode = "format['Move %1',getText(configFile >> 'CfgVehicles' >> (typeof dyna_cursorTarget) >> 'displayName')]";
};

//Vehicle interaction
class veh_gear
{
    condition = "dyna_isVehicle && !dyna_locked";
    action = "call Epoch_client_gearVehicle;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
    tooltip = "Inspect";
};
class veh_lock
{
    condition = "if (dyna_cursorTarget iskindof 'Bicycle') exitwith {false};dyna_isVehicle && !dyna_locked";
    action = "[dyna_cursorTarget, true, player, Epoch_personalToken] remoteExec ['EPOCH_server_lockVehicle',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_cannot_lock.paa";
    tooltip = "Lock";
};
class veh_unLock
{
    condition = "dyna_isVehicle && dyna_locked";
    action = "[dyna_cursorTarget, false, player, Epoch_personalToken] remoteExec ['EPOCH_server_lockVehicle',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_can_unlock.paa";
    tooltip = "Unlock";
};

//Trader interaction
class tra_talk
{
    condition = "dyna_isTrader";
    action = "dyna_cursorTarget call EPOCH_startInteractNPC;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\talk_blue.paa";
    tooltip = "Talk";
};
class tra_shop
{
    condition = "dyna_isTrader";
    action = "call EPOCH_startNPCTraderMenu;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
    tooltip = "Shop";
};

class player_takeCrypto
{
    condition = "dyna_isDeadPlayer || (dyna_cursorTarget getVariable [""Crypto"",0]) > 0";
    action = "dyna_cursorTarget call EPOCH_takeCrypto;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
    tooltip = "Take Krypto";
};
class player_trade
{
    condition = "dyna_isPlayer";
    action = "[dyna_cursorTarget, player, Epoch_personalToken] call EPOCH_startTRADEREQ;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
    tooltip = "Make Trade Request";
};
class player_trade_accept
{
    condition = "dyna_isPlayer && dyna_canAcceptTrade";
    action = "EPOCH_p2ptradeTarget = EPOCH_pendingP2ptradeTarget;call EPOCH_startTrade;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
    tooltip = "Accept Trade Request";
};

//User action replacement
class maintain_jammer
{
    condition = "dyna_cursorTargetType isEqualTo 'PlotPole_EPOCH' && (damage dyna_cursorTarget < 1)";
    action = "dyna_cursorTarget call EPOCH_maintainIT;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_maintain.paa";
    tooltip = "Maintain";
};
class select_jammer
{
    condition = "dyna_cursorTargetType isEqualTo 'PlotPole_EPOCH' && (damage dyna_cursorTarget < 1)";
    action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec [""EPOCH_server_makeSP"",2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\spawnpoint.paa";
    tooltip = "Make Spawnpoint";
};

//lock unlock
class unlock_lockbox
{
    condition = "(dyna_cursorTargetType in ['LockBox_EPOCH','LockBoxProxy_EPOCH']) && (dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "dyna_cursorTarget call Epoch_secureStorageHandler";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_can_unlock.paa";
    tooltip = "Unlock Lockbox";
};
class lock_lockbox
{
    condition = "(dyna_cursorTargetType in ['LockBox_EPOCH','LockBoxProxy_EPOCH']) && !(dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "dyna_cursorTarget call Epoch_secureStorageHandler";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_cannot_lock.paa";
    tooltip = "Lock Lockbox";
};
class unlock_safe
{
    condition = "(dyna_cursorTargetType in ['Safe_EPOCH','SafeProxy_EPOCH']) && (dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "dyna_cursorTarget call Epoch_secureStorageHandler";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_can_unlock.paa";
    tooltip = "Unlock Safe";
};
class lock_safe
{
    condition = "(dyna_cursorTargetType in ['Safe_EPOCH','SafeProxy_EPOCH']) && !(dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "dyna_cursorTarget call Epoch_secureStorageHandler";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_cannot_lock.paa";
    tooltip = "Lock Safe";
};

//pack
class pack_lockbox
{
    condition = "(dyna_cursorTargetType in ['LockBox_EPOCH','LockBoxProxy_EPOCH']) && (dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec ['EPOCH_server_packStorage',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_pack.paa";
    tooltip = "Pack Lockbox";
};
class pack_safe
{
    condition = "(dyna_cursorTargetType in ['Safe_EPOCH','SafeProxy_EPOCH']) && (dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec ['EPOCH_server_packStorage',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_pack.paa";
    tooltip = "Pack Safe";
};

class VehMaintanance
{
    condition = "dyna_isVehicle && !EPOCH_Vehicle_MaintainLock";
    action = "dyna_cursorTarget call EPOCH_client_VehicleMaintananceCheck;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_man.paa";
    tooltip = "Vehicle Maintanance";
    class Repair
    {
        condition = "(!((EPOCH_VehicleRepairs select 0) isequalto []) || !((EPOCH_VehicleRepairs select 2) isequalto [])) && EPOCH_AdvancedVehicleRepair_Enabled";
        action = "";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
        tooltip = "Repair Vehicle";
        class RepairHull
        {
            condition = "'hithull' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hithull'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_HullBody.paa";
            tooltip = "Repair Hull";
        };
        class ReplaceHull
        {
            condition = "'hithull' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hithull'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_HullBody.paa";
            tooltip = "Repair Hull";
        };
        class RepairEngine
        {
            condition = "'hitengine' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitengine'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Engine.paa";
            tooltip = "Repair Engine";
        };
        class ReplaceEngine
        {
            condition = "'hitengine' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitengine'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Engine.paa";
            tooltip = "Replace Engine";
        };
        class ReplaceGlass
        {
            condition = "'glass' in (EPOCH_VehicleRepairs select 0) || 'glass' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','glass'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Glass.paa";
            tooltip = "Replace Glass";
        };
        class RepairBody
        {
            condition = "'hitbody' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitbody'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_HullBody.paa";
            tooltip = "Repair Body";
        };
        class ReplaceBody
        {
            condition = "'hitbody' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitbody'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_HullBody.paa";
            tooltip = "Repair Body";
        };
        class RepairFuel
        {
            condition = "'hitfuel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitfuel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Fuel.paa";
            tooltip = "Repair Fuel Hose";
        };
        class RepairMainRotor
        {
            condition = "'hithrotor' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hithrotor'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_MainRotor.paa";
            tooltip = "Repair Main Rotor";
        };
        class ReplaceFuel
        {
            condition = "'hitfuel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitfuel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Fuel.paa";
            tooltip = "Replace Fuel Hose";
        };
        class ReplaceMainRotor
        {
            condition = "'hithrotor' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hithrotor'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_MainRotor.paa";
            tooltip = "Replace Main Rotor";
        };
        class RepairTailRotor
        {
            condition = "'hitvrotor' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitvrotor'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_TailRotor.paa";
            tooltip = "Repair Tail Rotor";
        };
        class ReplaceTailRotor
        {
            condition = "'hitvrotor' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitvrotor'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_TailRotor.paa";
            tooltip = "Replace Tail Rotor";
        };
        class ReplaceWinch
        {
            condition = "'hitwinch' in (EPOCH_VehicleRepairs select 0) || 'hitwinch' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitwinch'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_SLG.paa";
            tooltip = "Replace Winch";
        };
        class RepairTireBike1
        {
            condition = "'hitfwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 1st Wheel";
        };
        class RepairTireBike2
        {
            condition = "'hitbwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 2nd Wheel";
        };
        class RepairTire1
        {
            condition = "'hitlfwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitlfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 1st Left Wheel";
        };
        class RepairTire2
        {
            condition = "'hitlf2wheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitlf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 2nd Left Wheel";
        };
        class RepairTire3
        {
            condition = "'hitlmwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitlmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 3rd Left Wheel";
        };
        class RepairTire4
        {
            condition = "'hitlbwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitlbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 4th Left Wheel";
        };
        class RepairTire5
        {
            condition = "'hitrfwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitrfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 1st Right Wheel";
        };
        class RepairTire6
        {
            condition = "'hitrf2wheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitrf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 2nd Right Wheel";
        };
        class RepairTire7
        {
            condition = "'hitrmwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitrmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 3rd Right Wheel";
        };
        class RepairTire8
        {
            condition = "'hitrbwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitrbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 4th Right Wheel";
        };
        class ReplaceTireBike1
        {
            condition = "'hitfwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 1st Wheel";
        };
        class ReplaceTireBike2
        {
            condition = "'hitbwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 2nd Wheel";
        };
        class ReplaceTire1
        {
            condition = "'hitlfwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitlfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 1st Left Wheel";
        };
        class ReplaceTire2
        {
            condition = "'hitlf2wheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitlf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 2nd Left Wheel";
        };
        class ReplaceTire3
        {
            condition = "'hitlmwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitlmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 3rd Left Wheel";
        };
        class ReplaceTire4
        {
            condition = "'hitlbwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitlbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 4th Left Wheel";
        };
        class ReplaceTire5
        {
            condition = "'hitrfwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitrfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 1st Right Wheel";
        };
        class ReplaceTire6
        {
            condition = "'hitrf2wheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitrf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 2nd Right Wheel";
        };
        class ReplaceTire7
        {
            condition = "'hitrmwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitrmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 3rd Right Wheel";
        };
        class ReplaceTire8
        {
            condition = "'hitrbwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitrbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 4th Right Wheel";
        };
        class RepairAvionics
        {
            condition = "'hitavionics' in (EPOCH_VehicleRepairs select 0) || 'hitavionics' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitavionics'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Avionics.paa";
            tooltip = "Repair Avionics";
        };
    };
    class Remove
    {
        condition = "!((EPOCH_VehicleRepairs select 1) isequalto []) && EPOCH_AdvancedVehicleRepair_Enabled";
        action = "";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
        tooltip = "Remove Parts";
        class RemoveEngine
        {
            condition = "'hitengine' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitengine'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Engine.paa";
            tooltip = "Remove Engine";
        };
        class RemoveTire1
        {
            condition = "'hitlfwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitlfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 1st Left Wheel";
        };
        class RemoveTire2
        {
            condition = "'hitlf2wheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitlf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 2nd Left Wheel";
        };
        class RemoveTire3
        {
            condition = "'hitlmwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitlmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 3rd Left Wheel";
        };
        class RemoveTire4
        {
            condition = "'hitlbwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitlbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 4th Left Wheel";
        };
        class RemoveTire5
        {
            condition = "'hitrfwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitrfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 1st Right Wheel";
        };
        class RemoveTire6
        {
            condition = "'hitrf2wheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitrf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 2nd Right Wheel";
        };
        class RemoveTire7
        {
            condition = "'hitrmwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitrmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 3rd Right Wheel";
        };
        class RemoveTire8
        {
            condition = "'hitrbwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitrbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 4th Right Wheel";
        };
    };
    class UpgradeVehicle
    {
        condition = "dyna_isVehicle";
        action = "dyna_cursorTarget call EPOCH_client_upgradeVehicleCheck;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_upgrade.paa";
        tooltip = "Upgrade Vehicle";
        class Upgrade0
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 0";
            action = "(Ignatz_VehicleUpgradeArray select 0) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 0 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 0 select 2),(Ignatz_VehicleUpgradeArray select 0 select 3)]";
        };
        class Upgrade1
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 1";
            action = "(Ignatz_VehicleUpgradeArray select 1) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 1 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 1 select 2),(Ignatz_VehicleUpgradeArray select 1 select 3)]";
        };
        class Upgrade2
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 2";
            action = "(Ignatz_VehicleUpgradeArray select 2) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 2 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 2 select 2),(Ignatz_VehicleUpgradeArray select 2 select 3)]";
        };
        class Upgrade3
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 3";
            action = "(Ignatz_VehicleUpgradeArray select 3) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 3 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 3 select 2),(Ignatz_VehicleUpgradeArray select 3 select 3)]";
        };
        class Upgrade4
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 4";
            action = "(Ignatz_VehicleUpgradeArray select 4) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 4 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 4 select 2),(Ignatz_VehicleUpgradeArray select 4 select 3)]";
        };
    };
};

//Groups
class Groups
{
    condition = "dyna_isPlayer";
    action = "";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_menu_ca.paa";
    tooltip = "Groups Menu";
    class Group
    {
        condition = "dyna_isPlayer";
        action = "call EPOCH_Inventory_Group;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\perm_group_menu_ca.paa";
        tooltip = "Perm Group Menu";
    };
    class TempGroup
    {
        condition = "dyna_isPlayer";
        action = "call EPOCH_Inventory_TempGroup;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\temp_group_menu_ca.paa";
        tooltip = "Temp Group Menu";
    };
};
class player_group_requests
{
    condition = "dyna_isPlayer && !(Epoch_invited_GroupUIDs isEqualTo[])";
    action = "call EPOCH_Inventory_iGroup;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
    tooltip = "Group Requests";
};
class player_tempGroup_requests
{
    condition = "dyna_isPlayer && !(Epoch_invited_tempGroupUIDs isEqualTo[])";
    action = "call EPOCH_Inventory_itempGroup;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
    tooltip = "Temp Group Requests";
};

// Working defibrillator

class player_revive
{
    condition = "dyna_isDeadPlayer && isplayer dyna_cursorTarget";
    action = "dyna_cursorTarget call EPOCH_DefibrillatorUse;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Revive.paa";
    tooltipcode = "format ['Revive %1',name dyna_cursorTarget]";
};

class BaseCam
{
    condition = "dyna_cursorTargetType isEqualTo 'BaseCamTerminal_EPOCH'";
    action = "call Epoch_CamUse;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Camera.paa";
    tooltip = "Watch BaseCam";
};

class Deploy_pack
{
    condition = "(dyna_cursorTarget iskindof 'MBK_01_EPOCH') && ((crew dyna_cursorTarget) isEqualTo [])";
    action = "Deploy_PackVehicle = [player,dyna_cursorTarget]; publicVariableServer 'Deploy_PackVehicle';";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\repair.paa";
    tooltip = "Pack Vehicle";
};
 

im using infastar dont know if that would stop it ?

Link to comment
Share on other sites

40 minutes ago, megaz said:

I Added that see below:

CfgActionMenu_self

  Hide contents

/*
    Author: Raimonds Virtoss - EpochMod.com

    Contributors: Aaron Clark

    Description:
    Action Menu Self Config

    Licence:
    Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike

    Github:
    https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_self.hpp
*/

class veh_lock
{
    condition = "if (vehicle player iskindof 'Bicycle') exitwith {false};dyna_inVehicle && !dyna_lockedInVehicle";
    action = "[vehicle player, true, player, Epoch_personalToken] remoteExec ['EPOCH_server_lockVehicle',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_cannot_lock.paa";
    tooltip = "Lock";
};
class veh_unLock
{
    condition = "dyna_inVehicle && dyna_lockedInVehicle";
    action = "[vehicle player, false, player, Epoch_personalToken] remoteExec ['EPOCH_server_lockVehicle',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_can_unlock.paa";
    tooltip = "Unlock";
};
class player_inspect
{
    condition = "!dyna_inVehicle";
    action = "if !(underwater player) then {call EPOCH_lootTrash}else {if !(((nearestobjects [player,['container_epoch','weaponholdersimulated','GroundWeaponHolder'],5]) select {(_x getvariable ['EPOCH_Loot',false]) || (_x iskindof 'container_epoch' && _x animationPhase 'open_lid' > 0.5)}) isequalto []) then {call EPOCH_QuickTakeLoad} else {call EPOCH_lootTrash}};";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
    tooltip = "Examine";
};
class Groups
{
    condition = "true";
    action = "";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_menu_ca.paa";
    tooltip = "Groups Menu";
    class Group
    {
        condition = "true";
        action = "call EPOCH_Inventory_Group;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\perm_group_menu_ca.paa";
        tooltip = "Perm Group Menu";
    };
    class TempGroup
    {
        condition = "true";
        action = "call EPOCH_Inventory_TempGroup;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\temp_group_menu_ca.paa";
        tooltip = "Temp Group Menu";
    };
};
class player_group_requests
{
    condition = "!(Epoch_invited_GroupUIDs isEqualTo[])";
    action = "call EPOCH_Inventory_iGroup;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
    tooltip = "Group Requests";
};
class player_tempGroup_requests
{
    condition = "!(Epoch_invited_tempGroupUIDs isEqualTo[])";
    action = "call EPOCH_Inventory_itempGroup;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
    tooltip = "Temp Group Requests";
};

class base_mode_enable
{
    condition = "EPOCH_buildMode in [0,2] && !dyna_inVehicle";
    action = "if (EPOCH_playerEnergy > 0) then {EPOCH_stabilityTarget = objNull;EPOCH_buildMode = 1;['Build Mode: Enabled Snap alignment', 5] call Epoch_message;EPOCH_buildDirection = 0} else {['Need Energy!', 5] call Epoch_message};";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_maintain.paa";
    tooltip = "Build Mode: Snap alignment";
};
class base_mode_enable_free
{
    condition = "EPOCH_buildMode == 1 && EPOCH_playerEnergy > 0";
    action = "EPOCH_stabilityTarget = objNull;EPOCH_buildMode = 2;['Build Mode: Enabled Free alignment', 5] call Epoch_message;EPOCH_buildDirection = 0;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_maintain.paa";
    tooltip = "Build Mode: Free alignment";
};
class base_mode_disable
{
    condition = "EPOCH_buildMode > 0";
    action = "EPOCH_buildMode = 0;EPOCH_snapDirection = 0;['Build Mode: Disabled', 5] call Epoch_message;EPOCH_Target = objNull;EPOCH_Z_OFFSET = 0;EPOCH_X_OFFSET = 0;EPOCH_Y_OFFSET = 5;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_remove.paa";
    tooltip = "Build Mode: Disable";
};
class base_mode_snap_direction
{
    condition = "EPOCH_buildMode == 1";
    action = "EPOCH_snapDirection = EPOCH_snapDirection + 1; if (EPOCH_snapDirection > 3) then {EPOCH_snapDirection = 0};[format['SNAP DIRECTION: %1°', EPOCH_snapDirection*90], 5] call Epoch_message;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_rotate.paa";
    tooltip = "Build Mode: Rotate 90°";
    tooltipcode = "format ['Build Mode: Switch Snap Direction to %1° (current %2°)',if (EPOCH_snapDirection < 3) then {(EPOCH_snapDirection+1)*90} else {0},EPOCH_snapDirection*90]";
};
class base_mode_detach
{
    condition = "EPOCH_buildMode > 0 && !isnull EPOCH_target && EPOCH_target_attachedTo isequalto player && Epoch_target iskindof 'Const_Ghost_EPOCH'";
    action = "EPOCH_target_attachedTo = objnull; ['Object Detached', 5] call Epoch_message;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_detach.paa";
    tooltip = "Build Mode: Detach Object";
};
class base_mode_attach
{
    condition = "EPOCH_buildMode > 0 && !isnull EPOCH_target && !(EPOCH_target_attachedTo isequalto player) && Epoch_target iskindof 'Const_Ghost_EPOCH'";
    action = "EPOCH_target_attachedTo = player; ['Object Attached', 5] call Epoch_message;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_attach.paa";
    tooltip = "Build Mode: Attach Object";
};
class Drink
{
    condition = "dyna_Watersource";
    action = "if (currentweapon player == '') then {player playmove 'AinvPknlMstpSnonWnonDnon_Putdown_AmovPknlMstpSnonWnonDnon';}else {if (currentweapon player == handgunweapon player) then {player playmove 'AinvPknlMstpSrasWpstDnon_Putdown_AmovPknlMstpSrasWpstDnon';}else {    player playmove 'AinvPknlMstpSrasWrflDnon_Putdown_AmovPknlMstpSrasWrflDnon';};};{_output = _x call EPOCH_giveAttributes;if (_output != '') then {[_output, 5] call Epoch_message_stack;};} foreach [['Thirst',100],['Toxicity',1,1],['Stamina',10]];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Drink.paa";
    tooltip = "Drink";
};
class Wash
{
    condition = "dyna_Watersource";
    action = "if !('Soap_Epoch' in magazines player) exitwith {['You need a Soap to wash yourself',5] call Epoch_Message;};[] spawn {player playMove 'AinvPknlMstpSnonWrflDnon_medic0';player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';['Washing ...',5] call Epoch_Message;player removeitem 'Soap_Epoch';uisleep 6;{_output = _x call EPOCH_giveAttributes;    if (_output != '') then {[_output, 5] call Epoch_message_stack;};} foreach [['Soiled',-25]];};";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Washing.paa";
    tooltip = "Wash yourself";
};
class ServicePoint
{
    condition = "call EPOCH_SP_Check";
    action = "[dyna_Turret] call EPOCH_SP_Start;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_man.paa";
    tooltip = "Service Point";

    class Refuel
    {
        condition = "!isnil 'Ignatz_Refuel'";
        action = "(Ignatz_Refuel select 1) spawn EPOCH_SP_Refuel";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\vehicle_refuel.paa";
        tooltipcode = "Ignatz_Refuel select 0";
    };
    class Repair
    {
        condition = "!isnil 'Ignatz_Repair'";
        action = "(Ignatz_Repair select 1) spawn EPOCH_SP_Repair";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\repair.paa";
        tooltipcode = "Ignatz_Repair select 0";
    };
    class Rearm0
    {
        condition = "!isnil 'Ignatz_Rearm0'";
        action = "(Ignatz_Rearm0 select 1) call EPOCH_SP_Rearm";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
        tooltipcode = "Ignatz_Rearm0 select 0";
    };
    class Rearm1
    {
        condition = "!isnil 'Ignatz_Rearm1'";
        action = "(Ignatz_Rearm1 select 1) call EPOCH_SP_Rearm";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
        tooltipcode = "Ignatz_Rearm1 select 0";
    };
    class Rearm2
    {
        condition = "!isnil 'Ignatz_Rearm2'";
        action = "(Ignatz_Rearm2 select 1) call EPOCH_SP_Rearm";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
        tooltipcode = "Ignatz_Rearm2 select 0";
    };
};
class veh_Rearm1
{
    condition = "if (count dyna_weaponsTurret > 0) then {!((dyna_weaponsTurret select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player, dyna_weaponsTurret select 0, dyna_Turret] call EPOCH_vehicle_checkTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
    tooltipcode = "format['Add Mag to %1',getText(configFile >> 'CfgWeapons' >> dyna_weaponsTurret select 0 >> 'displayName')]";
};
class veh_Rearm2
{
    condition = "if (count dyna_weaponsTurret > 1) then {!((dyna_weaponsTurret select 1) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_weaponsTurret select 1, dyna_Turret] call EPOCH_vehicle_checkTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
    tooltipcode = "format['Add Mag to %1',getText(configFile >> 'CfgWeapons' >> dyna_weaponsTurret select 1 >> 'displayName')]";
};
class veh_Rearm3
{
    condition = "if (count dyna_weaponsTurret > 2) then {!((dyna_weaponsTurret select 2) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_weaponsTurret select 2, dyna_Turret] call EPOCH_vehicle_checkTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
    tooltipcode = "format['Add Mag to %1',getText(configFile >> 'CfgWeapons' >> dyna_weaponsTurret select 2 >> 'displayName')]";
};
class veh_Rearm4
{
    condition = "if (count dyna_weaponsTurret > 3) then {!((dyna_weaponsTurret select 3) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_weaponsTurret select 3, dyna_Turret] call EPOCH_vehicle_checkTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Rearm.paa";
    tooltipcode = "format['Add Mag to %1',getText(configFile >> 'CfgWeapons' >> dyna_weaponsTurret select 3 >> 'displayName')]";
};
class veh_RemoveAmmo1
{
    condition = "if (count dyna_WeapsMagsTurret > 0) then {!((dyna_WeapsMagsTurret select 0 select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_WeapsMagsTurret select 0 select 0,dyna_WeapsMagsTurret select 0 select 1, dyna_Turret] call EPOCH_vehicle_removeTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\RemoveMag.paa";
    tooltipcode = "format['Remove %1 from %2',getText(configFile >> 'CfgMagazines' >> (dyna_WeapsMagsTurret select 0 select 1) >> 'displayName'),getText(configFile >> 'CfgWeapons' >> (dyna_WeapsMagsTurret select 0 select 0) >> 'displayName')]";
};
class veh_RemoveAmmo2
{
    condition = "if (count dyna_WeapsMagsTurret > 1) then {!((dyna_WeapsMagsTurret select 1 select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_WeapsMagsTurret select 1 select 0,dyna_WeapsMagsTurret select 1 select 1, dyna_Turret] call EPOCH_vehicle_removeTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\RemoveMag.paa";
    tooltipcode = "format['Remove %1 from %2',getText(configFile >> 'CfgMagazines' >> (dyna_WeapsMagsTurret select 1 select 1) >> 'displayName'),getText(configFile >> 'CfgWeapons' >> (dyna_WeapsMagsTurret select 1 select 0) >> 'displayName')]";
};
class veh_RemoveAmmo3
{
    condition = "if (count dyna_WeapsMagsTurret > 2) then {!((dyna_WeapsMagsTurret select 2 select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_WeapsMagsTurret select 2 select 0,dyna_WeapsMagsTurret select 2 select 1, dyna_Turret] call EPOCH_vehicle_removeTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\RemoveMag.paa";
    tooltipcode = "format['Remove %1 from %2',getText(configFile >> 'CfgMagazines' >> (dyna_WeapsMagsTurret select 2 select 1) >> 'displayName'),getText(configFile >> 'CfgWeapons' >> (dyna_WeapsMagsTurret select 2 select 0) >> 'displayName')]";
};
class veh_RemoveAmmo4
{
    condition = "if (count dyna_WeapsMagsTurret > 3) then {!((dyna_WeapsMagsTurret select 3 select 0) in dyna_blockWeapons)}else{false}";
    action = "[vehicle player,dyna_WeapsMagsTurret select 3 select 0,dyna_WeapsMagsTurret select 3 select 1, dyna_Turret] call EPOCH_vehicle_removeTurretAmmo";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\RemoveMag.paa";
    tooltipcode = "format['Remove %1 from %2',getText(configFile >> 'CfgMagazines' >> (dyna_WeapsMagsTurret select 3 select 1) >> 'displayName'),getText(configFile >> 'CfgWeapons' >> (dyna_WeapsMagsTurret select 3 select 0) >> 'displayName')]";
};

class geiger_menu
{
    condition = "'ItemGeigerCounter_EPOCH' in dyna_assigneditems";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_radiation.paa";
    tooltip = "Geiger counter settings";

    class geiger_toggle
    {
        condition = "true";
        action = "call epoch_geiger_show_hide";
             icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_toggle.paa";
        tooltip = "Toggle HUD";
    };
    class geiger_counter_mute
    {
        condition = "!EPOCH_geiger_mute_counter";
        action = "EPOCH_geiger_mute_counter = !EPOCH_geiger_mute_counter";
          icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_volumeoff.paa";
        tooltip = "Mute counter";
    };
    class geiger_counter_unmute
    {
        condition = "EPOCH_geiger_mute_counter";
        action = "EPOCH_geiger_mute_counter = !EPOCH_geiger_mute_counter";
             icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_volumeon.paa";
        tooltip = "Unmute counter";
    };
    class geiger_warning_mute
    {
        condition = "!EPOCH_geiger_mute_warning";
        action = "EPOCH_geiger_mute_warning = !EPOCH_geiger_mute_warning";
             icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_alarmoff.paa";
        tooltip = "Mute warnings";
    };
    class geiger_warning_unmute
    {
        condition = "EPOCH_geiger_mute_warning";
        action = "EPOCH_geiger_mute_warning = !EPOCH_geiger_mute_warning";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_alarmon.paa";
        tooltip = "Unmute warnings";
    };
    class Deploy_deploy
    {
        condition = "!dyna_inVehicle";
        action = "Deploy_SpawnVehicle = [player,'MBK_01_EPOCH']; publicVariableServer 'Deploy_SpawnVehicle';";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\repair.paa";
        tooltip = "Deploy Bike";
    };
};
 

and CfgActionMenu_target

  Reveal hidden contents

/*
    Author: Raimonds Virtoss - EpochMod.com

    Contributors: Aaron Clark

    Description:
    Action Menu Target Config

    Licence:
    Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike

    Github:
    https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp
*/

class build_upgrade
{
    condition = "dyna_buildMode select 0";
    //action = "dyna_cursorTarget call EPOCH_QuickUpgrade;"; //TODO: scripted dyna menu
    action = "";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_upgrade.paa";
    tooltipcode = "format['Upgrade %1',getText(configFile >> 'CfgVehicles' >> (typeof dyna_cursorTarget) >> 'displayName')]";
    class special {}; //uses external config, hardcoded
};
class build_remove
{
    condition = "dyna_buildMode select 1";
    action = "dyna_cursorTarget call EPOCH_removeBUILD;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_trash.paa";
    tooltipcode = "format['Remove %1',getText(configFile >> 'CfgVehicles' >> (typeof dyna_cursorTarget) >> 'displayName')]";
};
class build_move
{
    condition = "dyna_buildMode select 2";
    action = "dyna_cursorTarget call EPOCH_fnc_SelectTargetBuild;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_move.paa";
    tooltipcode = "format['Move %1',getText(configFile >> 'CfgVehicles' >> (typeof dyna_cursorTarget) >> 'displayName')]";
};

//Vehicle interaction
class veh_gear
{
    condition = "dyna_isVehicle && !dyna_locked";
    action = "call Epoch_client_gearVehicle;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
    tooltip = "Inspect";
};
class veh_lock
{
    condition = "if (dyna_cursorTarget iskindof 'Bicycle') exitwith {false};dyna_isVehicle && !dyna_locked";
    action = "[dyna_cursorTarget, true, player, Epoch_personalToken] remoteExec ['EPOCH_server_lockVehicle',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_cannot_lock.paa";
    tooltip = "Lock";
};
class veh_unLock
{
    condition = "dyna_isVehicle && dyna_locked";
    action = "[dyna_cursorTarget, false, player, Epoch_personalToken] remoteExec ['EPOCH_server_lockVehicle',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_can_unlock.paa";
    tooltip = "Unlock";
};

//Trader interaction
class tra_talk
{
    condition = "dyna_isTrader";
    action = "dyna_cursorTarget call EPOCH_startInteractNPC;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\talk_blue.paa";
    tooltip = "Talk";
};
class tra_shop
{
    condition = "dyna_isTrader";
    action = "call EPOCH_startNPCTraderMenu;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
    tooltip = "Shop";
};

class player_takeCrypto
{
    condition = "dyna_isDeadPlayer || (dyna_cursorTarget getVariable [""Crypto"",0]) > 0";
    action = "dyna_cursorTarget call EPOCH_takeCrypto;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
    tooltip = "Take Krypto";
};
class player_trade
{
    condition = "dyna_isPlayer";
    action = "[dyna_cursorTarget, player, Epoch_personalToken] call EPOCH_startTRADEREQ;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
    tooltip = "Make Trade Request";
};
class player_trade_accept
{
    condition = "dyna_isPlayer && dyna_canAcceptTrade";
    action = "EPOCH_p2ptradeTarget = EPOCH_pendingP2ptradeTarget;call EPOCH_startTrade;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\krypto.paa";
    tooltip = "Accept Trade Request";
};

//User action replacement
class maintain_jammer
{
    condition = "dyna_cursorTargetType isEqualTo 'PlotPole_EPOCH' && (damage dyna_cursorTarget < 1)";
    action = "dyna_cursorTarget call EPOCH_maintainIT;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_maintain.paa";
    tooltip = "Maintain";
};
class select_jammer
{
    condition = "dyna_cursorTargetType isEqualTo 'PlotPole_EPOCH' && (damage dyna_cursorTarget < 1)";
    action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec [""EPOCH_server_makeSP"",2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\spawnpoint.paa";
    tooltip = "Make Spawnpoint";
};

//lock unlock
class unlock_lockbox
{
    condition = "(dyna_cursorTargetType in ['LockBox_EPOCH','LockBoxProxy_EPOCH']) && (dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "dyna_cursorTarget call Epoch_secureStorageHandler";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_can_unlock.paa";
    tooltip = "Unlock Lockbox";
};
class lock_lockbox
{
    condition = "(dyna_cursorTargetType in ['LockBox_EPOCH','LockBoxProxy_EPOCH']) && !(dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "dyna_cursorTarget call Epoch_secureStorageHandler";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_cannot_lock.paa";
    tooltip = "Lock Lockbox";
};
class unlock_safe
{
    condition = "(dyna_cursorTargetType in ['Safe_EPOCH','SafeProxy_EPOCH']) && (dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "dyna_cursorTarget call Epoch_secureStorageHandler";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_can_unlock.paa";
    tooltip = "Unlock Safe";
};
class lock_safe
{
    condition = "(dyna_cursorTargetType in ['Safe_EPOCH','SafeProxy_EPOCH']) && !(dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "dyna_cursorTarget call Epoch_secureStorageHandler";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\pad_cannot_lock.paa";
    tooltip = "Lock Safe";
};

//pack
class pack_lockbox
{
    condition = "(dyna_cursorTargetType in ['LockBox_EPOCH','LockBoxProxy_EPOCH']) && (dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec ['EPOCH_server_packStorage',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_pack.paa";
    tooltip = "Pack Lockbox";
};
class pack_safe
{
    condition = "(dyna_cursorTargetType in ['Safe_EPOCH','SafeProxy_EPOCH']) && (dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
    action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec ['EPOCH_server_packStorage',2];";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_pack.paa";
    tooltip = "Pack Safe";
};

class VehMaintanance
{
    condition = "dyna_isVehicle && !EPOCH_Vehicle_MaintainLock";
    action = "dyna_cursorTarget call EPOCH_client_VehicleMaintananceCheck;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_man.paa";
    tooltip = "Vehicle Maintanance";
    class Repair
    {
        condition = "(!((EPOCH_VehicleRepairs select 0) isequalto []) || !((EPOCH_VehicleRepairs select 2) isequalto [])) && EPOCH_AdvancedVehicleRepair_Enabled";
        action = "";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
        tooltip = "Repair Vehicle";
        class RepairHull
        {
            condition = "'hithull' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hithull'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_HullBody.paa";
            tooltip = "Repair Hull";
        };
        class ReplaceHull
        {
            condition = "'hithull' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hithull'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_HullBody.paa";
            tooltip = "Repair Hull";
        };
        class RepairEngine
        {
            condition = "'hitengine' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitengine'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Engine.paa";
            tooltip = "Repair Engine";
        };
        class ReplaceEngine
        {
            condition = "'hitengine' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitengine'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Engine.paa";
            tooltip = "Replace Engine";
        };
        class ReplaceGlass
        {
            condition = "'glass' in (EPOCH_VehicleRepairs select 0) || 'glass' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','glass'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Glass.paa";
            tooltip = "Replace Glass";
        };
        class RepairBody
        {
            condition = "'hitbody' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitbody'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_HullBody.paa";
            tooltip = "Repair Body";
        };
        class ReplaceBody
        {
            condition = "'hitbody' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitbody'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_HullBody.paa";
            tooltip = "Repair Body";
        };
        class RepairFuel
        {
            condition = "'hitfuel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitfuel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Fuel.paa";
            tooltip = "Repair Fuel Hose";
        };
        class RepairMainRotor
        {
            condition = "'hithrotor' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hithrotor'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_MainRotor.paa";
            tooltip = "Repair Main Rotor";
        };
        class ReplaceFuel
        {
            condition = "'hitfuel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitfuel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Fuel.paa";
            tooltip = "Replace Fuel Hose";
        };
        class ReplaceMainRotor
        {
            condition = "'hithrotor' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hithrotor'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_MainRotor.paa";
            tooltip = "Replace Main Rotor";
        };
        class RepairTailRotor
        {
            condition = "'hitvrotor' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitvrotor'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_TailRotor.paa";
            tooltip = "Repair Tail Rotor";
        };
        class ReplaceTailRotor
        {
            condition = "'hitvrotor' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitvrotor'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_TailRotor.paa";
            tooltip = "Replace Tail Rotor";
        };
        class ReplaceWinch
        {
            condition = "'hitwinch' in (EPOCH_VehicleRepairs select 0) || 'hitwinch' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitwinch'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_SLG.paa";
            tooltip = "Replace Winch";
        };
        class RepairTireBike1
        {
            condition = "'hitfwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 1st Wheel";
        };
        class RepairTireBike2
        {
            condition = "'hitbwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 2nd Wheel";
        };
        class RepairTire1
        {
            condition = "'hitlfwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitlfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 1st Left Wheel";
        };
        class RepairTire2
        {
            condition = "'hitlf2wheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitlf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 2nd Left Wheel";
        };
        class RepairTire3
        {
            condition = "'hitlmwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitlmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 3rd Left Wheel";
        };
        class RepairTire4
        {
            condition = "'hitlbwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitlbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 4th Left Wheel";
        };
        class RepairTire5
        {
            condition = "'hitrfwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitrfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 1st Right Wheel";
        };
        class RepairTire6
        {
            condition = "'hitrf2wheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitrf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 2nd Right Wheel";
        };
        class RepairTire7
        {
            condition = "'hitrmwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitrmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 3rd Right Wheel";
        };
        class RepairTire8
        {
            condition = "'hitrbwheel' in (EPOCH_VehicleRepairs select 0)";
            action = "[dyna_cursorTarget,'repair','hitrbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
            tooltip = "Repair 4th Right Wheel";
        };
        class ReplaceTireBike1
        {
            condition = "'hitfwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 1st Wheel";
        };
        class ReplaceTireBike2
        {
            condition = "'hitbwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 2nd Wheel";
        };
        class ReplaceTire1
        {
            condition = "'hitlfwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitlfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 1st Left Wheel";
        };
        class ReplaceTire2
        {
            condition = "'hitlf2wheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitlf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 2nd Left Wheel";
        };
        class ReplaceTire3
        {
            condition = "'hitlmwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitlmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 3rd Left Wheel";
        };
        class ReplaceTire4
        {
            condition = "'hitlbwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitlbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 4th Left Wheel";
        };
        class ReplaceTire5
        {
            condition = "'hitrfwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitrfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 1st Right Wheel";
        };
        class ReplaceTire6
        {
            condition = "'hitrf2wheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitrf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 2nd Right Wheel";
        };
        class ReplaceTire7
        {
            condition = "'hitrmwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitrmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 3rd Right Wheel";
        };
        class ReplaceTire8
        {
            condition = "'hitrbwheel' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitrbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
            tooltip = "Replace 4th Right Wheel";
        };
        class RepairAvionics
        {
            condition = "'hitavionics' in (EPOCH_VehicleRepairs select 0) || 'hitavionics' in (EPOCH_VehicleRepairs select 2)";
            action = "[dyna_cursorTarget,'replace','hitavionics'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Avionics.paa";
            tooltip = "Repair Avionics";
        };
    };
    class Remove
    {
        condition = "!((EPOCH_VehicleRepairs select 1) isequalto []) && EPOCH_AdvancedVehicleRepair_Enabled";
        action = "";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
        tooltip = "Remove Parts";
        class RemoveEngine
        {
            condition = "'hitengine' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitengine'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Engine.paa";
            tooltip = "Remove Engine";
        };
        class RemoveTire1
        {
            condition = "'hitlfwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitlfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 1st Left Wheel";
        };
        class RemoveTire2
        {
            condition = "'hitlf2wheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitlf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 2nd Left Wheel";
        };
        class RemoveTire3
        {
            condition = "'hitlmwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitlmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 3rd Left Wheel";
        };
        class RemoveTire4
        {
            condition = "'hitlbwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitlbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 4th Left Wheel";
        };
        class RemoveTire5
        {
            condition = "'hitrfwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitrfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 1st Right Wheel";
        };
        class RemoveTire6
        {
            condition = "'hitrf2wheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitrf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 2nd Right Wheel";
        };
        class RemoveTire7
        {
            condition = "'hitrmwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitrmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 3rd Right Wheel";
        };
        class RemoveTire8
        {
            condition = "'hitrbwheel' in (EPOCH_VehicleRepairs select 1)";
            action = "[dyna_cursorTarget,'remove','hitrbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
            icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
            tooltip = "Remove 4th Right Wheel";
        };
    };
    class UpgradeVehicle
    {
        condition = "dyna_isVehicle";
        action = "dyna_cursorTarget call EPOCH_client_upgradeVehicleCheck;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_upgrade.paa";
        tooltip = "Upgrade Vehicle";
        class Upgrade0
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 0";
            action = "(Ignatz_VehicleUpgradeArray select 0) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 0 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 0 select 2),(Ignatz_VehicleUpgradeArray select 0 select 3)]";
        };
        class Upgrade1
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 1";
            action = "(Ignatz_VehicleUpgradeArray select 1) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 1 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 1 select 2),(Ignatz_VehicleUpgradeArray select 1 select 3)]";
        };
        class Upgrade2
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 2";
            action = "(Ignatz_VehicleUpgradeArray select 2) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 2 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 2 select 2),(Ignatz_VehicleUpgradeArray select 2 select 3)]";
        };
        class Upgrade3
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 3";
            action = "(Ignatz_VehicleUpgradeArray select 3) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 3 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 3 select 2),(Ignatz_VehicleUpgradeArray select 3 select 3)]";
        };
        class Upgrade4
        {
            condition = "(count Ignatz_VehicleUpgradeArray) > 4";
            action = "(Ignatz_VehicleUpgradeArray select 4) call EPOCH_client_upgradeVehicle";
            iconcode = "gettext (configfile >> 'CfgVehicles' >> (Ignatz_VehicleUpgradeArray select 4 select 1) >> 'picture')";
            tooltipcode = "format ['Upgrade to %1 - %2',(Ignatz_VehicleUpgradeArray select 4 select 2),(Ignatz_VehicleUpgradeArray select 4 select 3)]";
        };
    };
};

//Groups
class Groups
{
    condition = "dyna_isPlayer";
    action = "";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_menu_ca.paa";
    tooltip = "Groups Menu";
    class Group
    {
        condition = "dyna_isPlayer";
        action = "call EPOCH_Inventory_Group;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\perm_group_menu_ca.paa";
        tooltip = "Perm Group Menu";
    };
    class TempGroup
    {
        condition = "dyna_isPlayer";
        action = "call EPOCH_Inventory_TempGroup;";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\temp_group_menu_ca.paa";
        tooltip = "Temp Group Menu";
    };
};
class player_group_requests
{
    condition = "dyna_isPlayer && !(Epoch_invited_GroupUIDs isEqualTo[])";
    action = "call EPOCH_Inventory_iGroup;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
    tooltip = "Group Requests";
};
class player_tempGroup_requests
{
    condition = "dyna_isPlayer && !(Epoch_invited_tempGroupUIDs isEqualTo[])";
    action = "call EPOCH_Inventory_itempGroup;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
    tooltip = "Temp Group Requests";
};

// Working defibrillator

class player_revive
{
    condition = "dyna_isDeadPlayer && isplayer dyna_cursorTarget";
    action = "dyna_cursorTarget call EPOCH_DefibrillatorUse;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Revive.paa";
    tooltipcode = "format ['Revive %1',name dyna_cursorTarget]";
};

class BaseCam
{
    condition = "dyna_cursorTargetType isEqualTo 'BaseCamTerminal_EPOCH'";
    action = "call Epoch_CamUse;";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\Camera.paa";
    tooltip = "Watch BaseCam";
};

class Deploy_pack
{
    condition = "(dyna_cursorTarget iskindof 'MBK_01_EPOCH') && ((crew dyna_cursorTarget) isEqualTo [])";
    action = "Deploy_PackVehicle = [player,dyna_cursorTarget]; publicVariableServer 'Deploy_PackVehicle';";
    icon = "x\addons\a3_epoch_code\Data\UI\buttons\repair.paa";
    tooltip = "Pack Vehicle";
};
 

im using infastar dont know if that would stop it ?

why you included it in another codes?
it must be out of the brackets. I said, it's at bottom.

 (In this case, you'll see the deploy command in the menu of something about radiation, which appear when you have ItemGeigerCounter_EPOCH.)

 

Link to comment
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
  • Discord

×
×
  • Create New...