Jump to content
mad_cheese

Is it possible to return data from command bar?

Recommended Posts

Is it possible to return the position and "page" of the command bar?

 

I would like to try and make  overlay buttons* for C2's radial menu that could select AI-units by mouseclick. I would prefer this over making a whole new set of buttons when there's already a customizable element in the HUD for that

 

But for that to work I would need to know where the command bar is located on the screen, since it can be changed

 

Also, if the player's squad counts +10 units, is there a way to return/set the current command bar page?

 

CommandBar_zpsljypvqfu.jpg

 

I could not find any command or function except showing/hiding the commandbar and a scriptcommand to switch to High Command.

 

Thank you

 

*for the lack of a better word

Share this post


Link to post
Share on other sites

You can return the screen location and size of the command bar using these commands:

_barX = profilenamespace getvariable 'IGUI_GRID_BAR_X';

_barY = profilenamespace getvariable 'IGUI_GRID_BAR_Y';

_barW = profilenamespace getvariable 'IGUI_GRID_BAR_W';

_barH = profilenamespace getvariable 'IGUI_GRID_BAR_H';

 

But I don't know any way to return what units displayed on the command bar (eg, units 1-10, or 11-20). Maybe you could infer the bar contents by capturing keypress of F11, F12 (but the keys can be changed too, potentially the keys could have multiple functions bound to them, but that's unlikely).

 

If desperate, you can force reset the bar to units 1-10 by using teamswitch, probably by playing with group/leadership too.

  • Like 1

Share this post


Link to post
Share on other sites

Your best bet would be to get the configs for the command bar from an AllInOne config dump and work from there. Check visibility of GUI objects (e.g. the 11th box, highlighted boxes) to determine the state of the command bar.

EDIT: Seems like the command bar has a template defined in config (http://pastebin.com/SuScG9WN)

CfgInGameUI >> CommandBar
and is handled further by the engine. :( Perhaps it's possible to find the controls with allDisplays and allControls.
  • Like 1

Share this post


Link to post
Share on other sites

thanks so much guys! that's really insightful.

 

I need to dig into these controls. If I could return the unit's number with ctrlText somehow! if the first button would have the number 11 that would mean it's page 2. Haha that's quite the haystack to dig through.

 

But maybe I can just use the position to create a Controls Group that completely covers the original. Or maybe it's even best to temporarily hide the original commandbar and just create the buttons :|

Share this post


Link to post
Share on other sites

sorry to bother again, I couldn't quite let this one go yet. Digging through the BIS ui-Pbo's, all I found was this (taken from config.cpp in ui_f):

 

 

class CfgInGameUI {
    imageCornerElement = "\A3\ui_f\data\igui\cfg\imageCornerElement_ca.paa";
    xboxStyle = 0;
    colorBackground[] = {"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])"};
    colorBackgroundCommand[] = {1, 1, 1, 1};
    colorBackgroundHelp[] = {1, 1, 1, 1};
    colorText[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])", "(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])", "(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])", "(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])"};
    
    //-- [...] I got rid of other entries
    
    class CommandBar {
        left = "(profilenamespace getvariable [""IGUI_GRID_BAR_X"",        (safezoneX + 1 *             (            ((safezoneW / safezoneH) min 1.2) / 40))])";
        top = "(profilenamespace getvariable [""IGUI_GRID_BAR_Y"",        (safezoneY + safezoneH - 4.5 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
        width = "(36 *             (            ((safezoneW / safezoneH) min 1.2) / 40))";
        height = "(4 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))";
        imageDefaultWeapons = "A3\ui_f\data\igui\cfg\commandbar\imageDefaultWeapons_ca.paa";
        imageNoWeapons = "A3\ui_f\data\igui\cfg\commandbar\imageNoWeapons_ca.paa";
        imageCommander = "A3\ui_f\data\igui\cfg\commandbar\imageCommander_ca.paa";
        imageDriver = "A3\ui_f\data\igui\cfg\commandbar\imageDriver_ca.paa";
        imageGunner = "A3\ui_f\data\igui\cfg\commandbar\imageGunner_ca.paa";
        imageCargo = "A3\ui_f\data\igui\cfg\commandbar\imageCargo_ca.paa";
        dimm = 0.3;
        colorRedTeam[] = {1.0, 0, 0, 1.0};
        colorBlueTeam[] = {0, 0, 1.0, 1.0};
        colorGreenTeam[] = {0.259, 0.463, 0.149, 1};
        colorYellowTeam[] = {0.8, 0.8, 0, 1.0};
        colorWhiteTeam[] = {0.95, 0.95, 0.95, 1};
        
        class prevPage {
            x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
            y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            w = "0.5 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
            h = "2 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            color[] = {0.259, 0.463, 0.149, 1};
            texture = "A3\ui_f\data\igui\cfg\commandbar\prevPage_ca.paa";
        };
        
        class nextPage {
            x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
            y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            w = "0.5 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
            h = "2 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            color[] = {0.259, 0.463, 0.149, 1};
            texture = "A3\ui_f\data\igui\cfg\commandbar\nextPage_ca.paa";
        };
        
        class UnitInfo {
            font = "FontMono";
            
            class VehicleNumberBackground {
                texture = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\vehicleNumberBackground_ca.paa";
                color[] = {"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])"};
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "0 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "3 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class UnitNumberBackground {
                texture = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitNumberBackground_ca.paa";
                color[] = {"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])"};
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "3 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class UnitNameBackground {
                textureNormal = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitNameBackground_normal_ca.paa";
                texturePlayer = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitNameBackground_normal_ca.paa";
                textureSelected = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitNameBackground_selected_ca.paa";
                textureFocus = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitNameBackground_selected_ca.paa";
                colorNormal[] = {"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", 0.8};
                colorPlayer[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.77])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.51])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.08])", 0.4};
                colorFocus[] = {"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", 0.8};
                colorSelected[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.77])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.51])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.08])", 0.8};
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "2 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "3 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                colorText[] = {1, 1, 1, 0.3};
            };
            
            class CommandBackground {
                texture = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\commandBackground_ca.paa";
                color[] = {"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])"};
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "3 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "3 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class VehicleStatus {
                color[] = {0, 0, 0, 0};
                colorDamaged[] = {"(profilenamespace getvariable ['IGUI_ERROR_RGB_R',0.8])", "(profilenamespace getvariable ['IGUI_ERROR_RGB_G',0.0])", "(profilenamespace getvariable ['IGUI_ERROR_RGB_B',0.0])", 0.8};
                colorNoAmmo[] = {"(profilenamespace getvariable ['IGUI_WARNING_RGB_R',0.8])", "(profilenamespace getvariable ['IGUI_WARNING_RGB_G',0.5])", "(profilenamespace getvariable ['IGUI_WARNING_RGB_B',0.0])", 0.6};
                colorNoFuel[] = {"(profilenamespace getvariable ['IGUI_WARNING_RGB_R',0.8])", "(profilenamespace getvariable ['IGUI_WARNING_RGB_G',0.5])", "(profilenamespace getvariable ['IGUI_WARNING_RGB_B',0.0])", 0.6};
                texture = "#(argb,8,8,3)color(1,1,1,1)";
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "0 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "3 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class UnitStatus {
                color[] = {0, 0, 0, 0};
                colorWounded[] = {"(profilenamespace getvariable ['IGUI_ERROR_RGB_R',0.8])", "(profilenamespace getvariable ['IGUI_ERROR_RGB_G',0.0])", "(profilenamespace getvariable ['IGUI_ERROR_RGB_B',0.0])", 0.8};
                colorWoundedFade[] = {"(profilenamespace getvariable ['IGUI_ERROR_RGB_R',0.8])", "(profilenamespace getvariable ['IGUI_ERROR_RGB_G',0.0])", "(profilenamespace getvariable ['IGUI_ERROR_RGB_B',0.0])", 1};
                colorNoAmmo[] = {"(profilenamespace getvariable ['IGUI_WARNING_RGB_R',0.8])", "(profilenamespace getvariable ['IGUI_WARNING_RGB_G',0.5])", "(profilenamespace getvariable ['IGUI_WARNING_RGB_B',0.0])", 0.8};
                texture = "#(argb,8,8,3)color(1,1,1,1)";
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class UnitCombatMode {
                colorBlue[] = {1, 0, 0, 0.5};
                colorGreen[] = {1, 0, 0, 0.7};
                colorWhite[] = {1, 0, 0, 0.7};
                colorYellow[] = {0, 0, 0, 0};
                colorRed[] = {0, 0, 0, 0};
                textureBlue = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitCombatMode_ca.paa";
                textureGreen = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitCombatMode_ca.paa";
                textureWhite = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitCombatMode_ca.paa";
                textureYellow = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitCombatMode_ca.paa";
                textureRed = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitCombatMode_ca.paa";
                text = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitCombatMode_ca.paa";
                x = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                colorText[] = {1, 0, 0, 1};
            };
            
            class UnitBehavior {
                colorCareless[] = {0, 0, 0, 0};
                colorSafe[] = {0, 0, 0, 0};
                colorAware[] = {0, 0, 0, 0};
                colorCombat[] = {1, 0.25, 0, 0.7};
                colorStealth[] = {0, 0.8, 1, 0.7};
                textureMCareless = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitBehavior_ca.paa";
                textureMSafe = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitBehavior_ca.paa";
                textureMCombat = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitBehavior_ca.paa";
                textureMYellow = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitBehavior_ca.paa";
                textureMStealth = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitBehavior_ca.paa";
                text = "\a3\Ui_f\data\IGUI\Cfg\CommandBar\unitBehavior_ca.paa";
                x = "2 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class GroupIcon {
                color[] = {1, 1, 1, 1};
                x = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class VehicleRole {
                color[] = {0, 0, 0, 0.5};
                shadow = false;
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "0 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class VehicleIcon {
                color[] = {1, 1, 1, 1};
                shadow = 2;
                x = "1.2 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "0.1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1.6 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "0.8 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class UnitRank {
                color[] = {0, 0, 0, 0.5};
                shadow = false;
                x = "0.1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "1.1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "0.8 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "0.8 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class UnitRole {
                color[] = {1, 1, 1, 1};
                shadow = 2;
                x = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class UnitSpecialRole {
                color[] = {1, 1, 1, 1};
                shadow = 2;
                x = "2 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class VehicleNumberText {
                font = "RobotoCondensed";
                shadow = 2;
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "0 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                colorText[] = {1, 1, 1, 1};
                sizeEx = "0.8 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class UnitNumberText {
                font = "RobotoCondensed";
                shadow = 2;
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "1 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                colorText[] = {1, 1, 1, 1};
                sizeEx = "0.8 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class UnitName {
                font = "RobotoCondensed";
                shadow = true;
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "2 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "3 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                colorText[] = {1, 1, 1, 1};
                sizeEx = "0.8 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
            
            class CommandText {
                font = "RobotoCondensed";
                shadow = true;
                x = "0 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                y = "3 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                w = "3 *             (            ((safezoneW / safezoneH) min 1.2) / 40)";
                h = "1 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
                colorText[] = {1, 1, 1, 1};
                sizeEx = "0.8 *             (            (            ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
            };
        };
    };
    //-- [...] I got rid of other entries    
};

Share this post


Link to post
Share on other sites
Guest

allDisplay and allControls would be the easier method to return the defined ids to get the elements.

 

Like 

{
    diag_log format ["TYPE : %1 | TEXT : %2 | CLASSNAME : %3 | VISIBLE : %4 | POS : %5 | PARENT : %6 | ID : %7", ctrlType _x, crtlText _x, ctrlClassName _x, ctrlVisible _x, ctrlPosition _x, ctrlParent _x, ctrlIDC _x];
} forEach (allControls findDisplay 46);

Then check the logs :)

Share this post


Link to post
Share on other sites

Did some poking around in game today and it seems that the command bar is handled entirely in engine.. Doesn't seem to be open to modding.. :(

  • Like 1

Share this post


Link to post
Share on other sites

hey, really thanks for the input. A well presented "NO" can save so much time.

 

I did go through those controls and albeit a few teases (like the word unitnumber), there's nothing in there :(

 

Thank you for the answers, I learned something from that!

Share this post


Link to post
Share on other sites
Guest

hey, really thanks for the input. A well presented "NO" can save so much time.

 

I did go through those controls and albeit a few teases (like the word unitnumber), there's nothing in there :(

 

Thank you for the answers, I learned something from that!

 

Can you tell me how you did the radial menu ? Just basic explaination I want to do it all by myself. Because you can create rounded / That way shaped ui elements so you are using texture am I correct ? I thought the events would take the entire RscPicture frame and not only the texture itself. I really didn't really got into it but as I want to do one myself some help could be appreciated. Btw, i will look for the commander menu when I'm back home. I am sure you can get these.

Share this post


Link to post
Share on other sites

Can you tell me how you did the radial menu ? Just basic explaination I want to do it all by myself. Because you can create rounded / That way shaped ui elements so you are using texture am I correct ? I thought the events would take the entire RscPicture frame and not only the texture itself. I really didn't really got into it but as I want to do one myself some help could be appreciated. Btw, i will look for the commander menu when I'm back home. I am sure you can get these.

 

Since I have zero 'real' experience, all I ever do is trial and error - there's probably a much better way but what i did was using 5 layers for the menu. They all have the same dimensions (square). Looking back, in my case 2 layers would have been perfectly fine. All layers have the same rectangular dimensions, only the images are round. I created those in Adobe Illustrator, a friend uses it for work and let me use it for 2h :)

 

I know that CSE had a very similar radial menu, no idea how they made it. It's different, because they changed the colors of the first 'ring' depending on if they were selected or not.

 

Hey if you find anything about the commandbar after all please SCREAM!

Share this post


Link to post
Share on other sites

If you want to select units via buttons then i think your best bet is to use invisible buttons over the current UI. Rip the current setup out of A3 config to get a rough layout and then as ceeb has shown you can get the position.

You can monitor inputAction "groupPageNext"/"groupPagePrev" for if command bar pagination has changed.

If you need to know what units are currently selected you can use

groupSelectedUnits _leader

and to set them

_leader groupSelectUnit [ _unit, _selected ];
  • Like 1

Share this post


Link to post
Share on other sites

 

If you want to select units via buttons then i think your best bet is to use invisible buttons over the current UI. Rip the current setup out of A3 config to get a rough layout and then as ceeb has shown you can get the position.

You can monitor inputAction "groupPageNext"/"groupPagePrev" for if command bar pagination has changed.

If you need to know what units are currently selected you can use

groupSelectedUnits _leader

and to set them

_leader groupSelectUnit [ _unit, _selected ];

 

DUDE. Monitoring inputAction is IT! Where did you even find those actions? They are not listed on the page but they do work!

 

Now I just need to count the units within my group, make the invisible ctrlsGroup and align it with the commandbar. pouf!

 

THANKS EVERYBODY <3

 

 

EDIT: one thing I forgot in my excitement was that I still need to be able to flip those pages with buttons over those page arrows... I hope there's a way to do that

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×