Jump to content

webbie

Member
  • Posts

    34
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by webbie

  1. Actually I think the distance check is wrong i have it as 250 shouldnt that mean 250m???
    eg. scanRadius, 250?

    EDIT: nevermind I had it set to 15m in the dyna cfg>

     

    class Playerscan
    {
        condition = "player isEqualTo vehicle player && !(player getVariable ['GOM_fnc_scanActive',false])";
        action = "[player,250,5] spawn GOM_fnc_scan";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_alarmon.paa";
        tooltip = "Player Scan";
    };

     

  2. 1 hour ago, He-Man said:

    You can use the same settings as in your addaction:

    
    class Playerscan
    {
        condition = "player isEqualTo vehicle player && !(player getVariable ['GOM_fnc_scanActive',false])";
        action = "[player,15,5] spawn GOM_fnc_scan";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_alarmon.paa";
        tooltip = "Player Scan";
    };

    I think this should work

    For the action does the referenced script just go into the root folder? Im unsure how the calls are located?

  3. Thx for the reply @He-Man.

    Ill give this a shot. 

    Do I add this to cfgactionmenu_sef.hpp and then make the action the script?

    what do I set the condition as if nothings reqd?

    EDIT:
     

    class Playerscan
    {
        condition = "true";
        action = "custom\playerscan.sqf";
                icon = "x\addons\a3_epoch_code\Data\UI\buttons\geiger_alarmon.paa";
        tooltip = "Player Scan";
    };

     

  4. 42 minutes ago, Ghostrider-GRG said:

    I think they are ready but they are dependent on having the latest client file in your mission PBO. The will not complete unless a certain number of AI at the mission are killed. I was messing with them a little to make them tolerant of the fact that AI sometimes glitch into those huge containers. I'll be interested to know if you have success in completing them with this additional information.

    I tried this a few different ways however each time it loaded it could not be completed. All AI were dead. The trigger on the captive isn't firing , I haven't had a big look into it but that's the basics of my experience.

  5. Hi all,

    I have created a player scan script however when I load into the server it does not work.
    Wondering if I am missing something or I need to add something to epoch to make it run.

    Ive tried it in the editor with epoch, SP and MP and it works.

    I feel like it might have something to do with using player/playableUnits  as the variable. Tried both.
    I use infi as well. I dont think its an issue. Ive checked idd's etc

    init.sqf and initplayerlocal.sqf

    [] execVM "PlayerScan5sinitplayerlocal.sqf";

    PlayerScan5sinitplayerlocal.sqf

    GOM_fnc_scan = {
    params [["_scanObject",objNull],["_scanRadius",250],["_duration",5],["_debug",false]];
    
    	_scanObject setVariable ["GOM_fnc_scanActive",true,true];
    	if (_debug) then {systemChat "Scanning for Players!"};
    	hint "Scanning for Players!";
    	sleep 1;
    	_stopTime = time + _duration;
    	waitUntil {
    
    		_nearPlayers = (_scanObject nearEntities _scanRadius) - [player] select {isPlayer _x};
    		hintsilent format ["Scanning: %1\nPlayers detected: %2",[-(time - _stopTime),"HH:MM"] call BIS_fnc_timeToString,count _nearPlayers];
    		time > _stopTime
    	};
    	if (_debug) then {systemChat "Scanning Complete!"};
    	_scanObject setVariable ["GOM_fnc_scanActive",false,true];
    
    	hint "Scanning Complete!";
    
    };
    
    //add scan action to object
    player addAction ["Scan for Players",{
    	params ["_object","_caller","_ID"];
    
    	_scan = [_object,15,5] spawn GOM_fnc_scan;
    
    },[],0,true,true,"","_this isEqualTo vehicle _this AND !(_this getVariable ['GOM_fnc_scanActive',false])",5];

    Thx in Advance.

     

  6. Hi all,

    All credits due to @He-Man for his usual brilliant scripting and  community support.

    Here is a bit of code you can add to epoch to allow for Health Regen when your Thirst and Hunger at at a certain level.
    Add this to epoch_code/compile/setup/masterLoop/Event3.sqf at the bottom and dont remove the code above.

    But setdamage will need a BE-Filter for sure!

    Quote

    _ReduceHealth = 0; if (EPOCH_playerThirst > 250) then { _ReduceHealth = _ReduceHealth + EPOCH_playerThirst*0.00001; }; if (EPOCH_playerHunger > 500) then { _ReduceHealth = _ReduceHealth + EPOCH_playerHunger*0.00001; }; _highestDMG = damage player; _alldmg = ((getAllHitPointsDamage player) param [2,[]]); { _currentDMG = _x; if (_currentDMG > _highestDMG) then{ _highestDMG = _currentDMG; }; } forEach _alldmg; if (_highestDMG > 0) then { _MaxNewDmg = (_highestDMG - _ReduceHealth) max 0; player setdamage ((damage player) min _MaxNewDmg); { player setHitIndex [_foreachindex,_x min _MaxNewDmg]; } foreach _alldmg; };

    My values are set to 80% and this is how it looks in mine.
     

    Quote

    // runs every 15 seconds
    if !(_prevEquippedItem isEqualTo EPOCH_equippedItem_PVS) then {
        _prevEquippedItem = EPOCH_equippedItem_PVS;
        EPOCH_equippedItem_PVS remoteExec ["EPOCH_server_equippedItem",2];
    };
    // force update
    if (_forceUpdate || EPOCH_forceUpdate) then {
        _forceUpdate = false;
        EPOCH_forceUpdate = false;
        EPOCH_forceUpdateNow = false;
        call _fnc_forceUpdate;
    };

    //HeMan health regen values are for 90%
    _ReduceHealth = 0;
    if (EPOCH_playerThirst > 1800) then {
        _ReduceHealth = _ReduceHealth + EPOCH_playerThirst*0.00001;
    };
    if (EPOCH_playerHunger > 3600) then {
        _ReduceHealth = _ReduceHealth + EPOCH_playerHunger*0.00001;
    };
    _highestDMG = damage player;
    _alldmg = ((getAllHitPointsDamage player) param [2,[]]);
    {
        _currentDMG = _x;
        if (_currentDMG > _highestDMG) then{
            _highestDMG = _currentDMG;
        };
    } forEach _alldmg;
    if (_highestDMG > 0) then {
        _MaxNewDmg = (_highestDMG - _ReduceHealth) max 0;
        player setdamage ((damage player) min _MaxNewDmg);
        {
            player setHitIndex [_foreachindex,_x min _MaxNewDmg];
        } foreach _alldmg;
    };
     

    Ive tested this and it works very well.
    Also see below for a table reflecting values I calculated to work out the hunger and thirst values.
    image.png.d9babaf95bbbeed3cd59b20c2c71f6e3.png

  7. Maybe re-download and redo the 3 steps from the beginning just in case you've gone wrong somewhere, usually the best way.

    @Dango thank you I did eventually work it out. I had to remove it unfortunately due to issues in the sides however I've resolved this now so will likely have another go at it.

  8. 10 hours ago, webbie said:

    and have you moved the scripts folder into the mission file and added it in the init?

    Scripts folder? It needs to go in the mission file.

    As your error is referencing that it can not find the scripts folder, double check the path it is in if you have indeed inserted it.

  9. Hey all, trying to track down the code that determines what the multigun Vehicle attachment will fix. Here is why. A player of mine noticed that the vtols can not be repaired. After some testing on both the epoch and vanilla variant I couldn't get either to work and actually found I couldn't do much with repair on them at all, I'm wondering if this is the same as the Hitpoint issue???

    As always thx in advance for any help or suggestions, always appreciated :)

  10. First off, Fantastic Mod! Adds so much to the game and makes just leaving the house a bit frightening, lol.

    Couple of easy ones.

    1. How do I know what version I am running?

    2. Am I able to change the marker size via GMS_fnc_spawnMarker.sqf

    ???
     

    Spoiler

    ////////////////////////////////////////////
    // Create Mission Markers 
    // by Ghostrider-GRG-
    //////////////////////////////////////////
    // spawn a round marker of a size and color specified in passed parameters

    private["_blck_fn_configureRoundMarker"];

    private["_blck_fn_configureRoundMarker"];
    _blck_fn_configureRoundMarker = {
        private["_name","_pos","_color","_size","_MainMarker","_arrowMarker","_labelMarker","_labelType"];
        //diag_log format["_blck_fn_configureRoundMarker: -: _this = %1", _this];
        params["_name","_pos","_color","_text","_size","_labelType"];

        //diag_log format["_blck_fn_configureRoundMarker: _pos = %1, _color = %2, _size = %3, _name = %4, label %5",_pos, _color, _size, _name, _text];
        // Do not show the marker if it is in the left upper corner
        if ((_pos distance [0,0,0]) < 10) exitWith {};
        
        _MainMarker = createMarker [_name, _pos];
        _MainMarker setMarkerColor _color;
        _MainMarker setMarkerShape "ELLIPSE";
        _MainMarker setMarkerBrush "Grid";
        _MainMarker setMarkerSize _size; //
        //diag_log format["_blck_fn_configureRoundMarker: -: _labelType = %1", _labelType];
        if (count toArray(_text) > 0) then
        {
            switch (_labelType) do {
                case "arrow":
                {
                    //diag_log "++++++++++++++--- marker label arrow detected";
                    _name = "label" + _name;
                    _textPos = [(_pos select 0) + (count toArray (_text) * 12), (_pos select 1) - (_size select 0), 0];
                    _arrowMarker = createMarker [_name, _textPos];
                    _arrowMarker setMarkerShape "Icon";
                    _arrowMarker setMarkerType "HD_Arrow";
                    _arrowMarker setMarkerColor "ColorBlack";
                    _arrowMarker setMarkerText _text;
                    //_MainMarker setMarkerDir 37;
                    };
                case "center": 
                {
                    //diag_log "++++++++++++++--- marker label dot detected";
                    _name = "label" + _name;
                    _labelMarker = createMarker [_name, _pos];
                    _labelMarker setMarkerShape "Icon";
                    _labelMarker setMarkerType "mil_dot";
                    _labelMarker setMarkerColor "ColorBlack";
                    _labelMarker setMarkerText _text;
                    };
                };
        };
        if (isNil "_labelMarker") then {_labelMarker = ""};
        _labelMarker
    };

    _blck_fn_configureIconMarker = {
        private["_MainMarker"];
        params["_name","_pos",["_color","ColorBlack"],["_text",""],["_icon","mil_triangle"]];
        //diag_log format["_blck_fn_configureIconMarker: _name=%1;  _pos=%2;  _color=%3;  _text=%4",_name,_pos,_color,_text];
        
        _name = "label" + _name;
        _MainMarker = createMarker [_name, _pos];
        _MainMarker setMarkerShape "Icon";
        _MainMarker setMarkerType _icon;
        _MainMarker setMarkerColor _color;
        _MainMarker setMarkerText _text;    
        _MainMarker
    };

    //diag_log format["spawnMarker::  --  >> _this = %1",_this];
    //  _this = [[""BlueMarker"",[12524.1,18204.7,0],""Bandit Patrol"",""center"",""ColorBlue"",[""ELIPSE"",[175,175]]],""ColorBlue"",""BlueMarker""]"
    params["_mArray"];
    private["_marker"];
    _mArray params["_missionType","_markerPos","_markerLabel","_markerLabelType","_markerColor","_markerType"];
    _markerType params["_mShape","_mSize","_mBrush"];
    //diag_log format["spawnMarker.sqf::  --  >> _missionType %1 | _markerPos %2 | _markerLabel %3 | _markerLabelType %4 | _markerColor %5 | _markerType %6",_missionType,_markerPos,_markerLabel,_markerLabelType,_markerColor,_markerType];

    if ((_markerType select 0) in ["ELIPSE","RECTANGLE"]) then // not an Icon .... 
    {        
        switch (_missionType) do {
            // params["_missionType","_pos","_text","_labelType","_color","_type","_size","_brush"];
            // Type                    Size                Brush
            default {_marker = [_missionType,_markerPos,_markerColor,_markerLabel, _mSize,_markerLabelType,_mShape,_mBrush] call _blck_fn_configureRoundMarker;};
        };
    };
    if !((_markerType select 0) in ["ELIPSE","RECTANGLE"]) then 
    {  //  Deal with case of an icon
        //  params["_name","_pos",["_color","ColorBlack"],["_text",""],["_icon","mil_triangle"]];
        _marker = [_missionType,_markerPos, _markerColor,_markerLabel,_markerType select 0] call _blck_fn_configureIconMarker;
    };
    //diag_log format["spawnMarker complete script with _marker = %1",_marker];
    if (isNil "_marker") then {_marker = ""};
    _marker
     

    THANKS!

  11. 10 minutes ago, He-Man said:

    @webbie,

    you have the Door-Opener configs in cfgActionmenu_self.hpp put into the Geiger_Menu brackets.

    Put it at the very end of the file.

    Thank so much I didnt see the end statement finished their, Thank You once again for your awesome scripts :)

  12. Hey @He-Man, Tried to get this working but no action menu shows.

    Ive checked all the code to match including the addition in the core as mentioned above and done the init.

    Below are the 3 associated files and Ive checked the settings for cinder wall. 

    Im running 1.0. Apologies for the messy init. Epoch has been a pretty steep curve to learn.

    Thanks in Advance!

    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_move.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_move.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_move.paa";
        tooltip = "Build Mode: Attach Object";
    };
    class Drink
    {
        condition = "_nearObjects = nearestObjects [player, [], 2];_check = 'water';_ok = false;{if (alive _x) then {_ok = [_x, _check] call EPOCH_worldObjectType;};if (_ok) exitWith {};} forEach _nearObjects;_ok";
        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 [['Toxicity',4,1],['Stamina',10],['Thirst',100]];";
        icon = "x\addons\a3_epoch_code\Data\UI\buttons\Drink.paa";
        tooltip = "Drink";
    };
    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 Ignatz_DoorOpener
        {
            condition = "if (dyna_AtHome && dyna_IsDriver) then {['opencheck'] call Ignatz_Client_DoorOpener} else {false};";
            action = "['open'] call Ignatz_Client_DoorOpener;";
            icon = "addons\pics\Actions\Gate_Open.paa";
            tooltip = "Open Gate";
        };
        class Ignatz_DoorCloser
        {
            condition = "if (dyna_AtHome && dyna_IsDriver) then {['closecheck'] call Ignatz_Client_DoorOpener} else {false};";
            action = "['close'] call Ignatz_Client_DoorOpener;";
            icon = "addons\pics\Actions\Gate_Close.paa";
            tooltip = "Close Gate";
        };
    };
     

    Spoiler

    /*
        Author: Raimonds Virtoss - EpochMod.com

        Contributors: Aaron Clark

        Description:
        Action Menu Core 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_core.hpp
    */

    class CfgActionMenu
    {
        class variableDefines //must be global, nil when menu closes
        {
            dyna_cursorTarget = "([10] call EPOCH_fnc_cursorTarget)";
            dyna_cursorTargetType = "typeOf ([10] call EPOCH_fnc_cursorTarget)";
            dyna_inVehicle = "vehicle player != player";
            dyna_IsDriver = "dyna_inVehicle && player == (driver (vehicle player))";
            dyna_itemsPlayer = "items player";
            dyna_magazinesPlayer = "magazines player";
            dyna_assigneditems = "assignedItems player";
            dyna_sizeOf = "((sizeOf dyna_cursorTargetType/2) max 6) min 30";
            dyna_distance = "(player distance dyna_cursorTarget) <= dyna_sizeOf";

            dyna_buildMode = "([10] call EPOCH_fnc_cursorTarget) call EPOCH_checkBuild;";
            dyna_isVehicle = "if (!(isNull dyna_cursorTarget) && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'LandVehicle') || (dyna_cursorTarget isKindOf 'Air') || (dyna_cursorTarget isKindOf 'Ship') || (dyna_cursorTarget isKindOf 'Tank'))} else {false}";
            dyna_isTrader = "if (!(isNull dyna_cursorTarget) && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'Man') && (dyna_cursorTarget != player) && (!isPlayer dyna_cursorTarget) && ((dyna_cursorTarget getVariable['AI_SLOT', -1]) != -1))} else {false}";
            dyna_isPlayer = "if (!(isNull dyna_cursorTarget) && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'Man') && (dyna_cursorTarget != player) && (isPlayer dyna_cursorTarget))} else {false}";
            dyna_isDeadPlayer = "if (!(isNull dyna_cursorTarget) && !(alive dyna_cursorTarget)) then {(dyna_cursorTargetType in ['Epoch_Male_F','Epoch_Female_F'])} else {false}";
            dyna_canAcceptTrade = "if (!(isNull EPOCH_pendingP2ptradeTarget) && alive EPOCH_pendingP2ptradeTarget) then {((EPOCH_pendingP2ptradeTarget isKindOf 'Man') && (dyna_cursorTarget isEqualTo EPOCH_pendingP2ptradeTarget))} else {false}";
            dyna_locked = "locked dyna_cursorTarget in [2,3]";
            dyna_lockedInVehicle = "locked vehicle player in [2,3]";
            
            dyna_blockWeapons = "[]";
            dyna_Turret = "if (!dyna_inVehicle) then {[]} else {if ((assignedVehicleRole player) isequalto ['driver']) then {[-1]} else {if (count (assignedVehicleRole player) == 2) then {(assignedVehicleRole player) select 1}else {[]}}}";
            dyna_weaponsTurret = "if (!dyna_inVehicle) then {[]}else {((vehicle player) weaponsTurret dyna_Turret) select {!((getArray(configFile >> 'CfgWeapons' >> _x >> 'magazines')) select {!((getText (configFile >> 'CfgMagazines' >> _x >> 'picture')) isequalto '')} isequalto [])}}";
            dyna_WeapsMagsTurret = "call {_out = [];if (dyna_inVehicle) then {_added = [];{_weapon = _x;_WeaponMags = ((vehicle player) magazinesTurret dyna_Turret) select {(_x in (getArray (configFile >> 'CfgWeapons' >> _weapon >> 'magazines'))) && !((getText (configFile >> 'CfgMagazines' >> _x >> 'picture')) isequalto '')};if !(_WeaponMags isequalto []) then {{if !(_x in _added) then {_out pushback [_weapon,_x];_added pushback _x;};} foreach _WeaponMags;};} foreach dyna_weaponsTurret;};_out}";
            
            dyna_mapPlayerMarkerON = "(getNumber(('CfgEpochClient' call EPOCH_returnConfig) >> 'playerLocationMarkerGPSOnly') isEqualTo 1)";
            dyna_mapPlayerMarker = "(((getArray(('CfgMarkerSets' call EPOCH_returnConfig) >> 'PlayerMarker' >> 'markerArray') select 0) select 0) in allMapMarkers)";
            
            dyna_deathMarkerON = "(getNumber(('CfgEpochClient' call EPOCH_returnConfig) >> 'playerDeathMarkerGPSOnly') isEqualTo 1)";
            dyna_deathMarker = "profileNameSpace getVariable['EPOCHLastKnownDeath',[]]";
            dyna_deathMarkerAvail = "!(dyna_deathMarker isEqualTo [])";
            dyna_mapDeathMarker = "(((getArray(('CfgMarkerSets' call EPOCH_returnConfig) >> 'DeathMarker' >> 'markerArray') select 0) select 0) in allMapMarkers)";
            
            dyna_AtHome = "call {_config = 'CfgEpochClient' call EPOCH_returnConfig;_buildingJammerRange = getNumber(_config >> 'buildingJammerRange');_nearjammers = nearestobjects [player,['Plotpole_EPOCH'],_buildingJammerRange];if (_nearjammers isEqualTo []) exitwith {false};_nearestJammer = _nearjammers select 0;((_nearestJammer getVariable['BUILD_OWNER', '-1']) in[getPlayerUID player, Epoch_my_GroupUID])}";
        };

        class self
        {
            #include "CfgActionMenu_self.hpp"
        };

        class target
        {
            #include "CfgActionMenu_target.hpp"
        };
        
        class map
        {
            #include "CfgActionMenu_map.hpp"
        };
    };
     

    Spoiler

    //Door Opener
    if (hasInterface) then {
        Ignatz_Client_DoorOpener = compilefinal preprocessfilelinenumbers "addons\Ignatz_Client_DoorOpener.sqf";
    };

    //Init UPSMON script
    call compile preprocessFileLineNumbers "scripts\Init_UPSMON.sqf";

    execVM "debug\blckClient.sqf";

    [] execVM "real_weather.sqf";

    //[] execVM "status_bar\fn_statusBar.sqf";

    //Status Bar
    if (hasInterface) then {[] execVM "addons\Status_Bar\init_statusBar.sqf"};

    if (hasInterface) then {[] execVM "addons\Ignatz_EarPlugs.sqf";
    };
    //if (hasInterface) then {[] execVM "addons\Ignatz_Statusbar.sqf";
    //};
    if(hasInterface) then{    FlipVic  = compileFinal  preprocessFileLineNumbers "custom\FlipVehicle.sqf";
    };
    [] execVM "addons\halv_spawn\init.sqf";


    // Welcome Credits by Gr8
    [] execVM "custom\welcome.sqf";


    //null =[] execVM "briefing.sqf";

    //[] execVM "briefing.sqf";

    if (hasinterface) then {
        [] spawn {
            // Put here all Client Codes, that can run before Player is full loaded in
            // [] execVM "MyOwnPlayerInit.sqf";

            // Wait until Player is full loaded ingame
            waituntil {!isNull player};
            waituntil {time > 25};
            waituntil {isPlayer player};
            waituntil {alive player};
            waituntil {getPlayerUID player != ''};
            waitUntil {!isNull (findDisplay 46)};
            waituntil {typeof player in ["Epoch_Male_F","Epoch_Female_F"]};
            waituntil {!isNil "Epoch_my_GroupUID"};
            uisleep 2;
            // Put here all Client Codes, that have to run after player is full ingame
            [] execVM "briefing.sqf";
        };
    };
     

     

  13. 32 minutes ago, webbie said:

    Apologies if this has already been asked but i'm just trying to find where it chooses the config to call from for sls. Ive configured the loot but it fills the crate with a crazy amount of stuff. Im guessing theirs a line somewhere that designates this. Again apologies is this has already been answered or is in an obvious spot, sometimes a cant see for looking, Thanks in Advance.

    Nevermind Ive found what Im looking for it was calling the right file but I was editing sls not the actual loot amount in crates.

  14. Apologies if this has already been asked but i'm just trying to find where it chooses the config to call from for sls. Ive configured the loot but it fills the crate with a crazy amount of stuff. Im guessing theirs a line somewhere that designates this. Again apologies is this has already been answered or is in an obvious spot, sometimes a cant see for looking, Thanks in Advance.

×
×
  • Create New...