• 0
NFGCaboose-1

XM8 screen goes blank

Question

1.0.4  updated. After adding the xm8 Apps into the config and firing up my server some players xm8s will go blank after clicking on a app. Doesn't matter which one. the player then has to re log to fix the bug, respwaning in wont fix it.

RPT. is not throwing any errors

Share this post


Link to post
Share on other sites

20 answers to this question

  • 0
1 hour ago, NFGCaboose-1 said:

1.0.4  updated. After adding the xm8 Apps into the config and firing up my server some players xm8s will go blank after clicking on a app. Doesn't matter which one. the player then has to re log to fix the bug, respwaning in wont fix it.

RPT. is not throwing any errors

Post your cfgXM8 in spoiler. Also, are you using ExAd?

Share this post


Link to post
Share on other sites
  • 0

Hello i have the same pb.

I have Exad and i have code in my last @Exile i d'ont know where i can place it
My xm8 apps are good, but in the button " More " they are nothing

Share this post


Link to post
Share on other sites
Advertisement
  • 0

@Super Jerome I am using Exad but as you know already a certain dev for that has removed a bunch of the files and after the 1.0.4 release of exile. I think i might have two different versions of exad and that why its causing problems. Mostly seems to be text inside of boxes that are invisible in the Statsbar app and Apoc Airdrop.

 

Spoiler

class CfgXM8
{
    extraApps[] = {"ExAd_Info","ExAd_CHVD","ExAd_APOC_Airdrop","BRAmaRecipes","BaseMarker","ExAd_SB","ExAd_Quad","ExAd_Unit","AIS_Artillery","ExAd_VG"};
    
    class settings
    {
        controlID = 4070;
        appID = "App01";
        title = "Settings";
    };
    
    class healthScanner
    {
        controlID = 4120;
        appID = "App02";
        title = "Health Scanner";
    };
    
    class slothMachine
    {
        controlID = 4140;
        appID = "App03";
        title = "Sloth Machine";
    };
    /*
    * Make sure you change the server rules to match your desires.
    * You can find the file at ExAdClient\XM8\apps\info
    * The file you want to change is message.sqf
    */
    class ExAd_Info
    {
        title = "Server FAQ";                //IDC:50100 -> 50102 || These need to be unique and out of range from each other
        controlID = 50100;                  
        logo = "ExadClient\XM8\Apps\Info\Icon_SI.paa";
        onLoad = "ExAdClient\XM8\Apps\Info\onLoad.sqf";
        onOpen = "ExAdClient\XM8\Apps\Info\onOpen.sqf";
        onClose = "ExAdClient\XM8\Apps\Info\onClose.sqf";
    };
    class ExAd_CHVD
    {
        title = "View Distance Settings";
        controlID = 50200;                  
        config = "ExadClient\XM8\Apps\CHVD\config.sqf";
        logo = "ExadClient\XM8\Apps\CHVD\Icon_CHVD.paa";
        onLoad = "ExAdClient\XM8\Apps\CHVD\onLoad.sqf";
        onOpen = "ExAdClient\XM8\Apps\CHVD\onOpen.sqf";
        onClose = "ExAdClient\XM8\Apps\CHVD\onClose.sqf";
    };
    class ExAd_APOC_Airdrop
    {
        title = "APOC Airdrop";
        controlID = 66000;                    //IDC:66000 -> 66005 || These need to be unique and out of range from each other
        logo = "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\supplydrop_ca.paa";
        config = "ExadClient\XM8\Apps\APOC_Airdrop\config.sqf";
        onLoad = "ExAdClient\XM8\Apps\APOC_Airdrop\onLoad.sqf";
        onOpen = "ExAdClient\XM8\Apps\APOC_Airdrop\onOpen.sqf";
        onClose = "ExAdClient\XM8\Apps\APOC_Airdrop\onClose.sqf";
    };

    class BRAmaRecipes
    {
        controlID = 107000;
        title = "Recipies";
        logo = "ExAdClient\XM8\Apps\BRAmaRecipes\BRAma.paa";
        config = "ExAdClient\XM8\Apps\BRAmaRecipes\config.sqf";
        onLoad = "ExAdClient\XM8\Apps\BRAmaRecipes\onLoad.sqf";
        onOpen = "ExAdClient\XM8\Apps\BRAmaRecipes\onOpen.sqf";
    };
    
    class BaseMarker
    {
         title = "Base Marker";
         controlID = 70001;
         logo = "ExAdClient\XM8\Apps\BaseMarker\BaseMarker.paa";
         onLoad = "ExAdClient\XM8\Apps\BaseMarker\onLoad.sqf";
    };
    
    class ExAd_SB
    {
        title = "Statsbar Settings";
        controlID = 50400;                  //IDC:50400 -> 50475 || These need to be unique and out of range from each other
        logo = "exile_assets\texture\ui\xm8_app_settings_ca.paa";
        onLoad = "ExAdClient\XM8\Apps\SB_Settings\onLoad.sqf";
    };
    
    class ExAd_Quad
    {
        title = "Deploy MRZ4";
        config = "ExAdClient\XM8\Apps\DeployVehicle\config.sqf";
        logo = "ExAdClient\XM8\Apps\DeployVehicle\QuadBike.paa";
        bambiState = 0;
        vehicleClass = "rhsusf_mrzr4_d_mud";
        recipe[] = {{"Exile_Item_LightBulb",1}};
        packable = 1;
        autoCleanUp = 1;
        quickFunction = "['ExAd_Quad'] call ExAd_XM8_DV_fnc_spawnVehicle";
     };
    
     class ExAd_Unit
     {
        title = "Recruit Soldier: x2 Beef Parts needed";
        logo = "ExAdClient\XM8\Apps\DeployVehicle\dog.paa";
        bambiState = 0;
        vehicleClass = "Land_AncientStatue_01_F";
        recipe[] = {{"Exile_Item_BeefParts",1}};
        packable = 0;
        autoCleanUp = 0;
        quickFunction = "['ExAd_Unit'] call ExAd_XM8_DV_fnc_spawnVehicle";
     };
    
     class AIS_Artillery
     {
        title = "Artillery";
        controlID = 70000;    //IDC:70000 -> 70011 || These need to be unique and out of range from each other
        logo = "\A3\Static_f\Mortar_01\data\UI\Mortar_01_ca.paa";
        onLoad = "addons\ais\apps\artillery\onLoad.sqf";
        onOpen = "addons\ais\apps\artillery\onOpen.sqf";
        onClose = "addons\ais\apps\artillery\onClose.sqf";
        config = "addons\ais\apps\artillery\config.sqf";
    };

    class ExAd_VG
    {
        title = "Virtual Garage";
        controlID = 50000;                  //IDC:50000 -> 50015 || These need to be unique and out of range from each other
        logo = "ExadClient\XM8\Apps\VG\Icon_VG.paa";
        onLoad = "ExAdClient\XM8\Apps\VG\onLoad.sqf";
        onOpen = "ExAdClient\XM8\Apps\VG\onOpen.sqf";
        onClose = "ExAdClient\XM8\Apps\VG\onClose.sqf";
    };
};
/*
    XM8 Extra apps, the Exile way of doing it
    
    Here is an example app layout:
    class XM8_App01_Button: RscExileXM8AppButton1x1
    {
        textureNoShortcut = "";      // Path to picture. This can be via mission file or client side PBO
        text = "";                    // The name of the app to be display on the button
        onButtonClick = "";            // The code to fire when the app is clicked
        resource = "";                // The name of the resource to load for the app, leave as an empty string if you just want to run code without a GUI, like BOOM or spawning a bike
    };
*/

class XM8_App01_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\exile_assets\texture\ui\xm8_app_settings_ca.paa";
    text = "Settings";
    onButtonClick = "['settings', 0] call ExileClient_gui_xm8_slide";
    resource = "XM8SlideSettings";
};

class XM8_App02_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\exile_assets\texture\ui\xm8_app_health_scanner_ca.paa";
    text = "Health Scanner";
    onButtonClick = "['healthScanner', 0] call ExileClient_gui_xm8_slide";
    resource = "XM8SlideHealthScanner";
};

class XM8_App03_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\exile_assets\texture\ui\xm8_app_slothMachine_ca.paa";
    text = "Sloth Machine";
    onButtonClick = "['slothMachine', 0] call ExileClient_gui_xm8_slide";
    resource = "XM8SlideSlothMachine";
};

class XM8_App04_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\exile_assets\texture\ui\xm8_app_boom_ca.paa";
    text = "BOOM!";
    onButtonClick = "call ExileClient_system_breaching_detonate";
    resource = "";
};

class XM8_App05_Button: RscExileXM8AppButton1x1
{
     textureNoShortcut = "ExadClient\XM8\Apps\Info\Icon_SI.paa";
    text = "Server FAQ";
    onButtonClick = "['ExAd_Info', 0] call ExileClient_gui_xm8_slide";
    resource = "";
};

class XM8_App06_Button: RscExileXM8AppButton1x1
{
     textureNoShortcut = "ExadClient\XM8\Apps\CHVD\Icon_CHVD.paa";
    text = "View Distance Settings";
    onButtonClick = "['ExAd_CHVD', 0] call ExileClient_gui_xm8_slide";
    resource = "";
};

class XM8_App07_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\supplydrop_ca.paa";
    text = "APOC Airdrop";
    onButtonClick = "['ExAd_APOC_Airdrop', 0] call ExileClient_gui_xm8_slide";
    resource = "";
};

class XM8_App08_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "ExAdClient\XM8\Apps\BRAmaRecipes\BRAma.paa";
    text = "BRAmaRecipes";
    onButtonClick = "['BRAmaRecipes', 0] call ExileClient_gui_xm8_slide";
    resource = "";
};

class XM8_App09_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "ExAdClient\XM8\Apps\BaseMarker\BaseMarker.paa";
    text = "Base Marker";
    onButtonClick = "['Basemarker', 0] call ExileClient_gui_xm8_slide";
    resource = "";
};

class XM8_App10_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "exile_assets\texture\ui\xm8_app_settings_ca.paa";
    text = "Status Bar Settings";
    onButtonClick = "['ExAd_SB', 0] call ExileClient_gui_xm8_slide";
    resource = "";
};

class XM8_App11_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "ExAdClient\XM8\Apps\DeployVehicle\QuadBike.paa";
    text = "Deploy MRZ4";
    onButtonClick = "['ExAd_Quad'] call ExAd_XM8_DV_fnc_spawnVehicle";
    resource = "";
};

class XM8_App12_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "ExAdClient\XM8\Apps\DeployVehicle\dog.paa";
    text = "Recruit Soldier: 1x Beef Parts needed";
    onButtonClick = "ExileClientXM8CurrentSlide = 'apps';closeDialog 0;[] execVM 'ExAdClient\XM8\Apps\DeployVehicle\bodyguard.sqf'";
    resource = "";
};

class XM8_App13_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\A3\Static_f\Mortar_01\data\UI\Mortar_01_ca.paa";
    text = "Artillery";
    onButtonClick = "['AIS_Artillery', 0] call ExileClient_gui_xm8_slide";
    resource = "";
};

class XM8_App14_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                               BELOW IS WHERE ALL THE XM8 APP RESOURCES CAN GO
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class XM8SlideSettings: RscExileXM8Slide
{
    idc = 4070;
    class Controls
    {
        class GoBackButton: RscExileXM8ButtonMenu
        {
            idc = 4071;
            text = "GO BACK";
            x = (30 - 3) * (0.025);
            y = (19 - 2) * (0.04);
            w = 6 * (0.025);
            h = 1 * (0.04);
            onButtonClick = "['extraApps', 1] call ExileClient_gui_xm8_slide";
        };

        class 8GDropDown: RscExileXM8Combo
        {
            idc = 4072;
            x = (5 - 3) * (0.025);
            y = (5 - 2) * (0.04);
            w = 7 * (0.025);
            h = 1 * (0.04);
            onLBSelChanged = "_this call ExileClient_gui_xm8_slide_settings_event_on8GSelectionChanged";
        };

        class 8GLabel: RscExileXM8Text
        {
            idc = -1;
            text = "Show my device in global 8G network.";
            x = (13 - 3) * (0.025);
            y = (5 - 2) * (0.04);
            w = 22 * (0.025);
            h = 1 * (0.04);
            shadow = 0;
        };

        class SoundDropDown: RscExileXM8Combo
        {
            idc = 4075;
            x = (5 - 3) * (0.025);
            y = (7 - 2) * (0.04);
            w = 7 * (0.025);
            h = 1 * (0.04);
            onLBSelChanged = "_this call ExileClient_gui_xm8_slide_settings_event_onSoundSelectionChanged";
        };

        class SoundLabel: RscExileXM8Text
        {
            idc = -1;
            text = "Play a beep sound on notifications.";
            x = (13 - 3) * (0.025);
            y = (7 - 2) * (0.04);
            w = 22 * (0.025);
            h = 1 * (0.04);
            shadow = 0;
        };

        class PartyEspDropDown: RscExileXM8Combo
        {
            idc = 4076;
            x = (5 - 3) * (0.025);
            y = (9 - 2) * (0.04);
            w = 7 * (0.025);
            h = 1 * (0.04);
            onLBSelChanged = "_this call ExileClient_gui_xm8_slide_settings_event_onPartyEspSelectionChanged";
        };

        class PartyEspLabel: RscExileXM8Text
        {
            idc = -1;
            text = "Color of 3D party icons and name tags.";
            x = (13 - 3) * (0.025);
            y = (9 - 2) * (0.04);
            w = 22 * (0.025);
            h = 1 * (0.04);
            shadow = 0;
        };

        class PartyEspSlider: RscExileXM8XSliderH
        {
            idc = 4078;
            x = (5 - 3) * (0.025);
            y = (11 - 2) * (0.04);
            w = 7 * (0.025);
            h = 1 * (0.04);
            onSliderPosChanged = "_this call ExileClient_gui_xm8_slide_settings_event_onPartyEspSliderChanged";
        };

        class PartyEspSliderLabel: RscExileXM8Text
        {
            idc = -1;
            text = "Opacity of 3D party icons and name tags.";
            x = (13 - 3) * (0.025);
            y = (11 - 2) * (0.04);
            w = 22 * (0.025);
            h = 1 * (0.04);
            shadow = 0;
        };

        class PartyMarkerSlider: RscExileXM8XSliderH
        {
            idc = 4079;
            x = (5 - 3) * (0.025);
            y = (13 - 2) * (0.04);
            w = 7 * (0.025);
            h = 1 * (0.04);
            onSliderPosChanged = "_this call ExileClient_gui_xm8_slide_settings_event_onPartyMarkerSliderChanged";
        };

        class PartyMarkerSliderLabel: RscExileXM8Text
        {
            idc = -1;
            text = "Opacity of 3D party markers.";
            x = (13 - 3) * (0.025);
            y = (13 - 2) * (0.04);
            w = 22 * (0.025);
            h = 1 * (0.04);
            shadow = 0;
        };

        class StreamModeDropDown: RscExileXM8Combo
        {
            idc = 4077;
            x = (5 - 3) * (0.025);
            y = (15 - 2) * (0.04);
            w = 7 * (0.025);
            h = 1 * (0.04);
            onLBSelChanged = "_this call ExileClient_gui_xm8_slide_settings_event_onStreamModeSelectionChanged";
        };

        class StreamModeLabel: RscExileXM8Text
        {
            idc = -1;
            text = "Masquerade PIN codes. Perfect for streamers.";
            x = (13 - 3) * (0.025);
            y = (15 - 2) * (0.04);
            w = 22 * (0.025);
            h = 1 * (0.04);
            shadow = 0;
        };
    };
};

class XM8SlideHealthScanner: RscExileXM8Slide
{
    idc = 4120;
    class Controls
    {
        class GoBackButton: RscExileXM8ButtonMenu
        {
            idc = 4122;
            text = "GO BACK";
            x = (30 - 3) * (0.025);
            y = (19 - 2) * (0.04);
            w = 6 * (0.025);
            h = 1 * (0.04);
            onButtonClick = "['extraApps', 1] call ExileClient_gui_xm8_slide";
        };

        class HealthInfoControlGroup: RscExileXM8ControlsGroupNoHScrollbars
        {
            idc = -1;
            x = (5 - 3) * (0.025);
            y = (5 - 2) * (0.04);
            w = 30 * (0.025);
            h = 15 * (0.04);
            colorBackground[] = {0,0,0,0.25};

            class controls
            {
                class HealthInfo: RscExileXM8StructuredText
                {
                    idc = 4121;
                    x = 0;
                    y = 0;
                    w = 29 * (0.025); // minus 1!
                    h = 15 * (0.04);
                };
            };
        };
    };
};

class XM8SlideSlothMachine: RscExileXM8Slide
{
    idc = 4140;
    class Controls
    {
        class Background: RscExileXM8PictureKeepAspect
        {
            idc = -1;
            text = "\exile_assets\texture\ui\slothMachine\xm8_slothMachineBackground.paa";
            x = -3.1 * (0.025) + (0);
            y = -6 * (0.04) + (0);
            w = 40 * (0.025);
            h = 33 * (0.04);
        };
        
        class XM8SlothMachineSpinButton: RscExileXM8PictureButton
        {
            idc = 4141;
            style = 0x30;
            x = 14.3 * (0.025) + (0);
            y = 15.9 * (0.04) + (0);
            w = 5.7 * (0.025);
            h = 2 * (0.04);
            text = "\exile_assets\texture\ui\slothMachine\button_off_ca.paa";
            action = "[] call ExileClient_gui_xm8_slide_slothMachine_event_onSpinButtonClick;";
        };
        
        class GoBackButton: RscExileXM8ButtonMenu
        {
            idc = 4148;
            text = "GO BACK";
            x = (30 - 3) * (0.025);
            y = (19 - 2) * (0.04);
            w = 6 * (0.025);
            h = 1 * (0.04);
            sizeEx = .9 * (0.04);
            onButtonClick = "['extraApps', 1] call ExileClient_gui_xm8_slide";
        };
        
        class PopTabsLabel: RscExileXM8StructuredText
        {
            idc = 4142;
            text = "<t align='center'><t color='#e14141'><img image='\exile_assets\texture\ui\poptab_inline_ca.paa' size='1' shadow='true' /></t>";
            x = 6.5 * (0.025) + (0);
            y = 13 * (0.04) + (0);
            w = 6 * (0.025);
            h = 2 * (0.04);
        };
        
        class JackpotLabel: RscExileXM8StructuredText
        {
            idc = 4143;
            text = "<t align='center'><t color='#e14141'></t>";
            x = 14 * (0.025) + (0);
            y = 13 * (0.04) + (0);
            w = 6 * (0.025);
            h = 2 * (0.04);
        };
        
        class WinningsLabel: RscExileXM8StructuredText
        {
            idc = 4144;
            text = "<t align='center'><t color='#e14141'>0</t>";
            x = 21.5 * (0.025) + (0);
            y = 13 * (0.04) + (0);
            w = 6 * (0.025);
            h = 2 * (0.04);
        };
        
        class Symbol01: RscExileXM8PictureKeepAspect
        {
            idc = 4145;
            text = "";
            x = 6.55 * (0.025) + (0);
            y = 4 * (0.04) + (0);
            w = 5.83 * (0.025);
            h = 5 * (0.04);
        };
        
        class Symbol02: RscExileXM8PictureKeepAspect
        {
            idc = 4146;
            text = "";
            x = 14.1 * (0.025) + (0);
            y = 4 * (0.04) + (0);
            w = 5.83 * (0.025);
            h = 5 * (0.04);
        };
        
        class Symbol03: RscExileXM8PictureKeepAspect
        {
            idc = 4147;
            text = "";
            x = 21.6 * (0.025) + (0);
            y = 4 * (0.04) + (0);
            w = 5.83 * (0.025);
            h = 5 * (0.04);
        };
    };
};
class CfgNotifications
{
    class Success
    {
        description = "%1";
        title = "Success";
        iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
        iconText = "";
        color[] = {0.7, 0.93, 0, 1};
        duration = 5;
        priority = 0;
        difficulty[] = {};
    };
    class Whoops
    {
        description = "%1";
        title = "Error";
        iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
        iconText = "";
        color[] = {0.7, 0.93, 0, 1};
        duration = 5;
        priority = 0;
        difficulty[] = {};
    };
    class ZCP_Init
    {
        description = "%1";
        title = "ZCP Spawned";
        iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
        iconText = "";
        color[] = {0.7, 0.93, 0, 1};
        duration = 5;
        priority = 0;
        difficulty[] = {};
    };
    class ZCP_Capped
    {
        description = "%1";
        title = "ZCP Capped";
        iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
        iconText = "";
        color[] = {0.7, 0.93, 0, 1};
        duration = 5;
        priority = 0;
        difficulty[] = {};
    };
    class ZCP_Capping
    {
        description = "%1";
        title = "ZCP alert";
        iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
        iconText = "";
        color[] = {0.7, 0.93, 0, 1};
        duration = 5;
        priority = 0;
        difficulty[] = {};
    };
};
   

 

Share this post


Link to post
Share on other sites
  • 0
6 hours ago, NFGCaboose-1 said:

my apps work now but if you click escape on a vanilla xm8 button it will go blank, need to bring this to the attention of the Devs

Someone else said this is happening to them, but this isn't happening to me. This means it's a file that's been altered that is most likely causing the problem, so the Devs won't help you.

Share this post


Link to post
Share on other sites
  • 0

I'm posting this again here so if someone goes searching for it they can find it easier, rather than having to go digging for it buried in another thread.

I'm going to assume that the people getting the blank screen on their XM8 have some other overwrite somewhere causing this issue. I suspect it's an overwrite for the file ExileClient_gui_xm8_show.sqf but ignoring that fact, lets just add an extra simple function for when the XM8 opens.

For this we will be creating an overwrite for the file ExileClient_gui_hud_event_onKeyUp.sqf . It's improtant to note that if you run Vector building then you already have an overwrite for this file, so just make sure you don't already have one as to avoid more problems with your server.

This is the already edited SQF file. I'll explain what I added below it.

Spoiler

/**
 * ExileClient_gui_hud_event_onKeyUp
 *
 * Exile Mod
 * exile.majormittens.co.uk
 * © 2015 Exile Mod Team
 *
 * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. 
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
 */
 
private["_stopPropagation", "_caller", "_keyCode", "_shiftState", "_controlState", "_altState", "_posObject", "_step"];
_stopPropagation = false;
_caller = _this select 0;
_keyCode = _this select 1;
_shiftState = _this select 2;
_controlState = _this select 3;
_altState = _this select 4;
if (_keyCode in (actionKeys "TacticalView")) exitWith {true};
if (_keyCode in (actionKeys "User1") && !(_keyCode isEqualTo 0x02)) exitWith 
{
    if !(ExileClientIsHandcuffed) then 
    {
        call ExileClient_object_vehicle_interaction_keyLock;
    };
    true
};
if (_keyCode in (actionKeys "User2")) exitWith
{
    if (ExileClientAllowPartyMarkers) then 
    {
        if !(ExileClientPartyID isEqualTo -1) then 
        {
            if !(ExileClientIsHandcuffed) then 
            {
                call ExileClient_system_party_updateMyMarker;    
            };
        };
    };
    true
};
if (_keyCode in (actionKeys "User3")) exitWith
{
    ExileClientWaypoints = [];
    true
};
switch (_keyCode) do  

    case 0x29:    
    { 
        call ExileClient_gui_hud_toggleStatsBar;
        _stopPropagation = true; 
    }; 
    case 0x11,
    case 0x1E,
    case 0x1F,
    case 0x20:
    {
        if (ExileClientIsAutoRunning) then
        {
            call ExileClient_system_autoRun_stop;
            _stopPropagation = true; 
        };
    };
    case 0x0B:         
    { 
        if !(ExileClientIsHandcuffed) then 
        {
            if !(ExileIsPlayingRussianRoulette) then
            {
                call ExileClient_system_autoRun_toggle;
            };
        };
        _stopPropagation = true; 
    };
    case 0x08:     
    { 
        if (getText(missionConfigFile >> "Header" >> "gameType") isEqualTo "Escape") then 
        {
            player playMove "Exile_Funny_Dab01";
        };
        _stopPropagation = true; 
    };
    case 0x09:     { _stopPropagation = true; };
    case 0x0A:     { _stopPropagation = true; };
    case 0x3B:     { _stopPropagation = true; };
    case 0x3C:     { _stopPropagation = true; };
    case 0x3D:    { _stopPropagation = true; };
    case 0x3E:    { _stopPropagation = true; };
    case 0x41:     { _stopPropagation = true; };
    case 0x42:    { _stopPropagation = true; };
    case 0x43:     { _stopPropagation = true; };
    case 0x44:    { _stopPropagation = true; };
    case 0x57:     { _stopPropagation = true; };
    case 0x58:     { _stopPropagation = true; };
    case 0x0E:     { _stopPropagation = true; };
    case 0x02:     
    { 
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then 
        {
            if (ExileClientIsInConstructionMode) then
            {
                ExileClientConstructionObject setObjectTextureGlobal [0, "#(argb,2,2,1)color(0.7,0.93,0,0.6,ca)"];
                ExileClientConstructionCurrentSnapToObject = objNull;
                ExileClientConstructionIsInSelectSnapObjectMode = false;
                ExileClientConstructionPossibleSnapPositions = [];
                ExileClientConstructionMode = 1; 
                [] call ExileClient_gui_constructionMode_update;
            }
            else 
            {
                if (primaryWeapon player != "") then
                {
                    if (primaryWeapon player != currentWeapon player) then
                    {
                        player selectWeapon (primaryWeapon player);
                    };
                };
            };
        };
        _stopPropagation = true; 
    };
    case 0x03:     
    { 
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then 
        {
            if (ExileClientIsInConstructionMode) then
            {
                ExileClientConstructionObject setObjectTextureGlobal [0, "#(argb,2,2,1)color(0.7,0.93,0,0.6,ca)"];
                ExileClientConstructionCurrentSnapToObject = objNull;
                ExileClientConstructionIsInSelectSnapObjectMode = false;
                ExileClientConstructionPossibleSnapPositions = [];
                ExileClientConstructionMode = 2; 
                [] call ExileClient_gui_constructionMode_update;
            }
            else 
            {
                if (handgunWeapon player != "") then
                {
                    if (handgunWeapon player != currentWeapon player) then
                    {
                        player selectWeapon (handgunWeapon player);
                    };
                };
            };
        };
        _stopPropagation = true; 
    };
    case 0x04:     
    { 
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then 
        {
            if (ExileClientIsInConstructionMode) then
            {
                if (ExileClientConstructionSupportSnapMode) then
                {
                    if (ExileClientConstructionMode != 3) then 
                    {
                        ExileClientConstructionCurrentSnapToObject = objNull; 
                        ExileClientConstructionPossibleSnapPositions = [];
                        ["InfoTitleAndText", ["Snap Mode", "Look at the object you want to snap to, press SPACE to lock on it and then move your object next to a snap point. Press SPACE again to place the object."]] call ExileClient_gui_toaster_addTemplateToast;
                    };
                    ExileClientConstructionMode = 3; 
                    ExileClientConstructionIsInSelectSnapObjectMode = true;
                    [] call ExileClient_gui_constructionMode_update;
                };
            }
            else 
            {
                if (secondaryWeapon player != "") then
                {
                    if (secondaryWeapon player != currentWeapon player) then
                    {
                        player selectWeapon (secondaryWeapon player);
                    };
                };
            };
        };
        _stopPropagation = true; 
    };
    case 0x05:     
    { 
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then 
        {
            if (ExileClientIsInConstructionMode) then
            {
                if !(ExileClientConstructionKitClassName isEqualTo "Exile_Item_Flag") then 
                {
                    ExileClientConstructionModePhysx = !ExileClientConstructionModePhysx;
                    [] call ExileClient_gui_constructionMode_update;
                };
            }
            else
            {
                if (currentWeapon player != "") then
                {
                    ExileClientPlayerHolsteredWeapon = currentWeapon player;
                    player action["switchWeapon", player, player, 100];
                }
                else 
                {
                    if (ExileClientPlayerHolsteredWeapon != "") then
                    {
                        player selectWeapon ExileClientPlayerHolsteredWeapon;
                    };
                };
            };
        };
        _stopPropagation = true;
    };
    case 0x06:
    {
        if (ExileClientIsInConstructionMode) then
        {
            ExileClientConstructionShowHint = !ExileClientConstructionShowHint;
            [] call ExileClient_gui_constructionMode_update;
        }
        else 
        {
            call ExileClient_system_music_earplugs_toggle;
        };
        _stopPropagation = true;
    };
    case 0x07:
    {
        if (getText(missionConfigFile >> "Header" >> "gameType") isEqualTo "Escape") then 
        {
            if (alive player) then
            {
                [] call ExileClient_gui_hud_toggleEscapeStats;
            };    
        }
        else
        {
            if (ExileClientIsInConstructionMode) then
            {
                if(ExileClientConstructionLock)then
                {
                    ExileClientConstructionLock = false;
                    _posObject = position ExileClientConstructionObject;
                    ExileClientConstructionOffset = player worldToModel _posObject;
                    ExileClientConstructionRotation = (getDir ExileClientConstructionObject) - (getDir player);
                }
                else
                {
                    ExileClientConstructionLock = true;
                };    
            }
            else
            {
                if (!ExileClientXM8IsVisible) then
                {
                    if ("Exile_Item_XM8" in (assignedItems player)) then
                    {
                        if (alive player) then
                        {
                            ExileClientXM8CurrentSlide = "apps";
                            [] call ExileClient_gui_xm8_show;
                        };    
                    };
                };
            };
        };
        _stopPropagation = true;
    };
    case 0x39:
    {
        if (ExileIsPlayingRussianRoulette) then
        {
            if (ExileRussianRouletteCanFire) then 
            {
                [] spawn ExileClient_system_russianRoulette_fire;
            };
        }
        else 
        {
            if (ExileClientIsInConstructionMode) then
            {
                if (ExileClientConstructionMode == 3) then 
                {
                    if (ExileClientConstructionIsInSelectSnapObjectMode) then 
                    {
                        if !(isNull ExileClientConstructionCurrentSnapToObject) then
                        {
                            ExileClientConstructionIsInSelectSnapObjectMode = false;
                            [] call ExileClient_gui_constructionMode_update;
                        };
                    }
                    else 
                    {
                        if (ExileClientConstructionCanPlaceObject) then
                        {
                            ExileClientConstructionResult = 1;
                        };
                    };
                }
                else 
                {
                    if (ExileClientConstructionCanPlaceObject) then
                    {
                        ExileClientConstructionResult = 1;
                    };
                };
                _stopPropagation = true;
            };
        };
    };
    case 0x01:
    {
        if (ExileIsPlayingRussianRoulette) then 
        {
            _stopPropagation = true;
        }
        else 
        {
            if (ExileClientIsInConstructionMode) then
            {
                _stopPropagation = true;
            };
        };
    };
    case 0x10:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 45;
            if (_shiftState) then 
            {
                _step = 90;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 22.5;
                };
            };
            ExileClientConstructionRotation = (ExileClientConstructionRotation - _step + 360) % 360;    
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0x12:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 45;
            if (_shiftState) then 
            {
                _step = 90;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 22.5;
                };
            };
            ExileClientConstructionRotation = (ExileClientConstructionRotation + _step + 360) % 360;    
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0x19:
    {
        if (ExileClientIsInBush) then
        {
            call ExileClient_object_bush_detach;
            _stopPropagation = true;
        };
    };
    case 0x31:
    {
        if!(isNull ExileClientCameraParentObject)then
        {
            if(ExileClientCameraNVG)then
            {
                camUseNVG false;
            }
            else
            {
                camUseNVG true;
            };    
            ExileClientCameraNVG = !ExileClientCameraNVG;
            _stopPropagation = true;
        };
    };
    case 0xC9: 
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then 
            {
                _step = 1;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [2, ((((ExileClientConstructionOffset select 2) + _step) min 6) max -3) ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xD1: 
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then 
            {
                _step = 1;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [2, ((((ExileClientConstructionOffset select 2) - _step) min 6) max -3) ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xC7: 
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then 
            {
                _step = 1;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [1, (((ExileClientConstructionOffset select 1) + _step) min 6) max ExileClientConstructionBoundingRadius ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xCF: 
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then 
            {
                _step = 1;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [1, (((ExileClientConstructionOffset select 1) - _step) min 6) max ExileClientConstructionBoundingRadius ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xDB:
    {
        switch (ExilePartyEspMode) do 
        {
            case 0:         { ExilePartyEspMode = 1; };
            case 1:     { ExilePartyEspMode = 2; };
            case 2:             { ExilePartyEspMode = 0; };
        };
        _stopPropagation = true;
    };
};
_stopPropagation

All we are doing is telling the XM8 to open up to the first screen every time we are pressing 6. If you already have an overwrite for this file, this is what you're adding. Locate case 0x07 (it's between lines 250-260 depending on your edited file) and insert ExileClientXM8CurrentSlide = "apps"; just above [] call ExileClient_gui_xm8_show;

Spoiler

   case 0x07:
    {
        if (getText(missionConfigFile >> "Header" >> "gameType") isEqualTo "Escape") then 
        {
            if (alive player) then
            {
                [] call ExileClient_gui_hud_toggleEscapeStats;
            };    
        }
        else
        {
            if (ExileClientIsInConstructionMode) then
            {
                if(ExileClientConstructionLock)then
                {
                    ExileClientConstructionLock = false;
                    _posObject = position ExileClientConstructionObject;
                    ExileClientConstructionOffset = player worldToModel _posObject;
                    ExileClientConstructionRotation = (getDir ExileClientConstructionObject) - (getDir player);
                }
                else
                {
                    ExileClientConstructionLock = true;
                };    
            }
            else
            {
                if (!ExileClientXM8IsVisible) then
                {
                    if ("Exile_Item_XM8" in (assignedItems player)) then
                    {
                        if (alive player) then
                        {
                            ExileClientXM8CurrentSlide = "apps"; // We are adding this
                            [] call ExileClient_gui_xm8_show; // Above this
                        };    
                    };
                };
            };
        };
        _stopPropagation = true;
    };

it's important that it goes above the call to ExileClient_gui_xm8_show.

  • Like 4

Share this post


Link to post
Share on other sites
  • 0
On 3/16/2018 at 8:19 AM, Beowulfv said:

I'm posting this again here so if someone goes searching for it they can find it easier, rather than having to go digging for it buried in another thread.

I'm going to assume that the people getting the blank screen on their XM8 have some other overwrite somewhere causing this issue. I suspect it's an overwrite for the file ExileClient_gui_xm8_show.sqf but ignoring that fact, lets just add an extra simple function for when the XM8 opens.

For this we will be creating an overwrite for the file ExileClient_gui_hud_event_onKeyUp.sqf . It's improtant to note that if you run Vector building then you already have an overwrite for this file, so just make sure you don't already have one as to avoid more problems with your server.

This is the already edited SQF file. I'll explain what I added below it.

  Reveal hidden contents

/**
 * ExileClient_gui_hud_event_onKeyUp
 *
 * Exile Mod
 * exile.majormittens.co.uk
 * © 2015 Exile Mod Team
 *
 * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. 
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
 */
 
private["_stopPropagation", "_caller", "_keyCode", "_shiftState", "_controlState", "_altState", "_posObject", "_step"];
_stopPropagation = false;
_caller = _this select 0;
_keyCode = _this select 1;
_shiftState = _this select 2;
_controlState = _this select 3;
_altState = _this select 4;
if (_keyCode in (actionKeys "TacticalView")) exitWith {true};
if (_keyCode in (actionKeys "User1") && !(_keyCode isEqualTo 0x02)) exitWith 
{
    if !(ExileClientIsHandcuffed) then 
    {
        call ExileClient_object_vehicle_interaction_keyLock;
    };
    true
};
if (_keyCode in (actionKeys "User2")) exitWith
{
    if (ExileClientAllowPartyMarkers) then 
    {
        if !(ExileClientPartyID isEqualTo -1) then 
        {
            if !(ExileClientIsHandcuffed) then 
            {
                call ExileClient_system_party_updateMyMarker;    
            };
        };
    };
    true
};
if (_keyCode in (actionKeys "User3")) exitWith
{
    ExileClientWaypoints = [];
    true
};
switch (_keyCode) do  

    case 0x29:    
    { 
        call ExileClient_gui_hud_toggleStatsBar;
        _stopPropagation = true; 
    }; 
    case 0x11,
    case 0x1E,
    case 0x1F,
    case 0x20:
    {
        if (ExileClientIsAutoRunning) then
        {
            call ExileClient_system_autoRun_stop;
            _stopPropagation = true; 
        };
    };
    case 0x0B:         
    { 
        if !(ExileClientIsHandcuffed) then 
        {
            if !(ExileIsPlayingRussianRoulette) then
            {
                call ExileClient_system_autoRun_toggle;
            };
        };
        _stopPropagation = true; 
    };
    case 0x08:     
    { 
        if (getText(missionConfigFile >> "Header" >> "gameType") isEqualTo "Escape") then 
        {
            player playMove "Exile_Funny_Dab01";
        };
        _stopPropagation = true; 
    };
    case 0x09:     { _stopPropagation = true; };
    case 0x0A:     { _stopPropagation = true; };
    case 0x3B:     { _stopPropagation = true; };
    case 0x3C:     { _stopPropagation = true; };
    case 0x3D:    { _stopPropagation = true; };
    case 0x3E:    { _stopPropagation = true; };
    case 0x41:     { _stopPropagation = true; };
    case 0x42:    { _stopPropagation = true; };
    case 0x43:     { _stopPropagation = true; };
    case 0x44:    { _stopPropagation = true; };
    case 0x57:     { _stopPropagation = true; };
    case 0x58:     { _stopPropagation = true; };
    case 0x0E:     { _stopPropagation = true; };
    case 0x02:     
    { 
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then 
        {
            if (ExileClientIsInConstructionMode) then
            {
                ExileClientConstructionObject setObjectTextureGlobal [0, "#(argb,2,2,1)color(0.7,0.93,0,0.6,ca)"];
                ExileClientConstructionCurrentSnapToObject = objNull;
                ExileClientConstructionIsInSelectSnapObjectMode = false;
                ExileClientConstructionPossibleSnapPositions = [];
                ExileClientConstructionMode = 1; 
                [] call ExileClient_gui_constructionMode_update;
            }
            else 
            {
                if (primaryWeapon player != "") then
                {
                    if (primaryWeapon player != currentWeapon player) then
                    {
                        player selectWeapon (primaryWeapon player);
                    };
                };
            };
        };
        _stopPropagation = true; 
    };
    case 0x03:     
    { 
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then 
        {
            if (ExileClientIsInConstructionMode) then
            {
                ExileClientConstructionObject setObjectTextureGlobal [0, "#(argb,2,2,1)color(0.7,0.93,0,0.6,ca)"];
                ExileClientConstructionCurrentSnapToObject = objNull;
                ExileClientConstructionIsInSelectSnapObjectMode = false;
                ExileClientConstructionPossibleSnapPositions = [];
                ExileClientConstructionMode = 2; 
                [] call ExileClient_gui_constructionMode_update;
            }
            else 
            {
                if (handgunWeapon player != "") then
                {
                    if (handgunWeapon player != currentWeapon player) then
                    {
                        player selectWeapon (handgunWeapon player);
                    };
                };
            };
        };
        _stopPropagation = true; 
    };
    case 0x04:     
    { 
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then 
        {
            if (ExileClientIsInConstructionMode) then
            {
                if (ExileClientConstructionSupportSnapMode) then
                {
                    if (ExileClientConstructionMode != 3) then 
                    {
                        ExileClientConstructionCurrentSnapToObject = objNull; 
                        ExileClientConstructionPossibleSnapPositions = [];
                        ["InfoTitleAndText", ["Snap Mode", "Look at the object you want to snap to, press SPACE to lock on it and then move your object next to a snap point. Press SPACE again to place the object."]] call ExileClient_gui_toaster_addTemplateToast;
                    };
                    ExileClientConstructionMode = 3; 
                    ExileClientConstructionIsInSelectSnapObjectMode = true;
                    [] call ExileClient_gui_constructionMode_update;
                };
            }
            else 
            {
                if (secondaryWeapon player != "") then
                {
                    if (secondaryWeapon player != currentWeapon player) then
                    {
                        player selectWeapon (secondaryWeapon player);
                    };
                };
            };
        };
        _stopPropagation = true; 
    };
    case 0x05:     
    { 
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then 
        {
            if (ExileClientIsInConstructionMode) then
            {
                if !(ExileClientConstructionKitClassName isEqualTo "Exile_Item_Flag") then 
                {
                    ExileClientConstructionModePhysx = !ExileClientConstructionModePhysx;
                    [] call ExileClient_gui_constructionMode_update;
                };
            }
            else
            {
                if (currentWeapon player != "") then
                {
                    ExileClientPlayerHolsteredWeapon = currentWeapon player;
                    player action["switchWeapon", player, player, 100];
                }
                else 
                {
                    if (ExileClientPlayerHolsteredWeapon != "") then
                    {
                        player selectWeapon ExileClientPlayerHolsteredWeapon;
                    };
                };
            };
        };
        _stopPropagation = true;
    };
    case 0x06:
    {
        if (ExileClientIsInConstructionMode) then
        {
            ExileClientConstructionShowHint = !ExileClientConstructionShowHint;
            [] call ExileClient_gui_constructionMode_update;
        }
        else 
        {
            call ExileClient_system_music_earplugs_toggle;
        };
        _stopPropagation = true;
    };
    case 0x07:
    {
        if (getText(missionConfigFile >> "Header" >> "gameType") isEqualTo "Escape") then 
        {
            if (alive player) then
            {
                [] call ExileClient_gui_hud_toggleEscapeStats;
            };    
        }
        else
        {
            if (ExileClientIsInConstructionMode) then
            {
                if(ExileClientConstructionLock)then
                {
                    ExileClientConstructionLock = false;
                    _posObject = position ExileClientConstructionObject;
                    ExileClientConstructionOffset = player worldToModel _posObject;
                    ExileClientConstructionRotation = (getDir ExileClientConstructionObject) - (getDir player);
                }
                else
                {
                    ExileClientConstructionLock = true;
                };    
            }
            else
            {
                if (!ExileClientXM8IsVisible) then
                {
                    if ("Exile_Item_XM8" in (assignedItems player)) then
                    {
                        if (alive player) then
                        {
                            ExileClientXM8CurrentSlide = "apps";
                            [] call ExileClient_gui_xm8_show;
                        };    
                    };
                };
            };
        };
        _stopPropagation = true;
    };
    case 0x39:
    {
        if (ExileIsPlayingRussianRoulette) then
        {
            if (ExileRussianRouletteCanFire) then 
            {
                [] spawn ExileClient_system_russianRoulette_fire;
            };
        }
        else 
        {
            if (ExileClientIsInConstructionMode) then
            {
                if (ExileClientConstructionMode == 3) then 
                {
                    if (ExileClientConstructionIsInSelectSnapObjectMode) then 
                    {
                        if !(isNull ExileClientConstructionCurrentSnapToObject) then
                        {
                            ExileClientConstructionIsInSelectSnapObjectMode = false;
                            [] call ExileClient_gui_constructionMode_update;
                        };
                    }
                    else 
                    {
                        if (ExileClientConstructionCanPlaceObject) then
                        {
                            ExileClientConstructionResult = 1;
                        };
                    };
                }
                else 
                {
                    if (ExileClientConstructionCanPlaceObject) then
                    {
                        ExileClientConstructionResult = 1;
                    };
                };
                _stopPropagation = true;
            };
        };
    };
    case 0x01:
    {
        if (ExileIsPlayingRussianRoulette) then 
        {
            _stopPropagation = true;
        }
        else 
        {
            if (ExileClientIsInConstructionMode) then
            {
                _stopPropagation = true;
            };
        };
    };
    case 0x10:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 45;
            if (_shiftState) then 
            {
                _step = 90;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 22.5;
                };
            };
            ExileClientConstructionRotation = (ExileClientConstructionRotation - _step + 360) % 360;    
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0x12:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 45;
            if (_shiftState) then 
            {
                _step = 90;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 22.5;
                };
            };
            ExileClientConstructionRotation = (ExileClientConstructionRotation + _step + 360) % 360;    
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0x19:
    {
        if (ExileClientIsInBush) then
        {
            call ExileClient_object_bush_detach;
            _stopPropagation = true;
        };
    };
    case 0x31:
    {
        if!(isNull ExileClientCameraParentObject)then
        {
            if(ExileClientCameraNVG)then
            {
                camUseNVG false;
            }
            else
            {
                camUseNVG true;
            };    
            ExileClientCameraNVG = !ExileClientCameraNVG;
            _stopPropagation = true;
        };
    };
    case 0xC9: 
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then 
            {
                _step = 1;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [2, ((((ExileClientConstructionOffset select 2) + _step) min 6) max -3) ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xD1: 
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then 
            {
                _step = 1;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [2, ((((ExileClientConstructionOffset select 2) - _step) min 6) max -3) ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xC7: 
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then 
            {
                _step = 1;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [1, (((ExileClientConstructionOffset select 1) + _step) min 6) max ExileClientConstructionBoundingRadius ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xCF: 
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then 
            {
                _step = 1;
            }
            else 
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [1, (((ExileClientConstructionOffset select 1) - _step) min 6) max ExileClientConstructionBoundingRadius ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xDB:
    {
        switch (ExilePartyEspMode) do 
        {
            case 0:         { ExilePartyEspMode = 1; };
            case 1:     { ExilePartyEspMode = 2; };
            case 2:             { ExilePartyEspMode = 0; };
        };
        _stopPropagation = true;
    };
};
_stopPropagation

All we are doing is telling the XM8 to open up to the first screen every time we are pressing 6. If you already have an overwrite for this file, this is what you're adding. Locate case 0x07 (it's between lines 250-260 depending on your edited file) and insert ExileClientXM8CurrentSlide = "apps"; just above [] call ExileClient_gui_xm8_show;

  Reveal hidden contents

   case 0x07:
    {
        if (getText(missionConfigFile >> "Header" >> "gameType") isEqualTo "Escape") then 
        {
            if (alive player) then
            {
                [] call ExileClient_gui_hud_toggleEscapeStats;
            };    
        }
        else
        {
            if (ExileClientIsInConstructionMode) then
            {
                if(ExileClientConstructionLock)then
                {
                    ExileClientConstructionLock = false;
                    _posObject = position ExileClientConstructionObject;
                    ExileClientConstructionOffset = player worldToModel _posObject;
                    ExileClientConstructionRotation = (getDir ExileClientConstructionObject) - (getDir player);
                }
                else
                {
                    ExileClientConstructionLock = true;
                };    
            }
            else
            {
                if (!ExileClientXM8IsVisible) then
                {
                    if ("Exile_Item_XM8" in (assignedItems player)) then
                    {
                        if (alive player) then
                        {
                            ExileClientXM8CurrentSlide = "apps"; // We are adding this
                            [] call ExileClient_gui_xm8_show; // Above this
                        };    
                    };
                };
            };
        };
        _stopPropagation = true;
    };

it's important that it goes above the call to ExileClient_gui_xm8_show.

I have added exactly as you show and nothing has changed for my XM8. It still keeps opening on the last used window.

Share this post


Link to post
Share on other sites
  • 0
16 hours ago, Beowulfv said:

@UserKevinFlynn post your file.

/**
 * ExileClient_gui_hud_event_onKeyUp
 *
 * Exile Mod
 * exile.majormittens.co.uk
 * © 2015 Exile Mod Team
 *
 * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
 */
 
private["_stopPropagation", "_caller", "_keyCode", "_shiftState", "_controlState", "_altState", "_posObject", "_step"];
_stopPropagation = false;
_caller = _this select 0;
_keyCode = _this select 1;
_shiftState = _this select 2;
_controlState = _this select 3;
_altState = _this select 4;
if (_keyCode in (actionKeys "TacticalView")) exitWith {true};
if (_keyCode in (actionKeys "User1") && !(_keyCode isEqualTo 0x02)) exitWith
{
    if !(ExileClientIsHandcuffed) then
    {
        call ExileClient_object_vehicle_interaction_keyLock;
    };
    true
};
if (_keyCode in (actionKeys "User2")) exitWith
{
    if (ExileClientAllowPartyMarkers) then
    {
        if !(ExileClientPartyID isEqualTo -1) then
        {
            if !(ExileClientIsHandcuffed) then
            {
                call ExileClient_system_party_updateMyMarker;    
            };
        };
    };
    true
};
if (_keyCode in (actionKeys "User3")) exitWith
{
    ExileClientWaypoints = [];
    true
};
switch (_keyCode) do  
{
    case 0x29:    
    {
        call ExileClient_gui_hud_toggleStatsBar;
        _stopPropagation = true;
    };
    case 0x11,
    case 0x1E,
    case 0x1F,
    case 0x20:
    {
        if (ExileClientIsAutoRunning) then
        {
            call ExileClient_system_autoRun_stop;
            _stopPropagation = true;
        };
    };
    case 0x0B:         
    {
        if !(ExileClientIsHandcuffed) then
        {
            if !(ExileIsPlayingRussianRoulette) then
            {
                call ExileClient_system_autoRun_toggle;
            };
        };
        _stopPropagation = true;
    };
    case 0x08:     
    {
        if (getText(missionConfigFile >> "Header" >> "gameType") isEqualTo "Escape") then
        {
            player playMove "Exile_Funny_Dab01";
        };
        _stopPropagation = true;
    };
    case 0x09:     { _stopPropagation = true; };
    case 0x0A:     { _stopPropagation = true; };
    case 0x3B:     { _stopPropagation = true; };
    case 0x3C:     { _stopPropagation = true; };
    case 0x3D:    { _stopPropagation = true; };
    case 0x3E:    { _stopPropagation = true; };
    case 0x41:     { _stopPropagation = true; };
    case 0x42:    { _stopPropagation = true; };
    case 0x43:     { _stopPropagation = true; };
    case 0x44:    { _stopPropagation = true; };
    case 0x57:     { _stopPropagation = true; };
    case 0x58:     { _stopPropagation = true; };
    case 0x0E:     { _stopPropagation = true; };
    case 0x02:     
    {
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then
        {
            if (ExileClientIsInConstructionMode) then
            {
                ExileClientConstructionObject setObjectTextureGlobal [0, "#(argb,2,2,1)color(0.7,0.93,0,0.6,ca)"];
                ExileClientConstructionCurrentSnapToObject = objNull;
                ExileClientConstructionIsInSelectSnapObjectMode = false;
                ExileClientConstructionPossibleSnapPositions = [];
                ExileClientConstructionMode = 1;
                [] call ExileClient_gui_constructionMode_update;
            }
            else
            {
                if (primaryWeapon player != "") then
                {
                    if (primaryWeapon player != currentWeapon player) then
                    {
                        player selectWeapon (primaryWeapon player);
                    };
                };
            };
        };
        _stopPropagation = true;
    };
    case 0x03:     
    {
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then
        {
            if (ExileClientIsInConstructionMode) then
            {
                ExileClientConstructionObject setObjectTextureGlobal [0, "#(argb,2,2,1)color(0.7,0.93,0,0.6,ca)"];
                ExileClientConstructionCurrentSnapToObject = objNull;
                ExileClientConstructionIsInSelectSnapObjectMode = false;
                ExileClientConstructionPossibleSnapPositions = [];
                ExileClientConstructionMode = 2;
                [] call ExileClient_gui_constructionMode_update;
            }
            else
            {
                if (handgunWeapon player != "") then
                {
                    if (handgunWeapon player != currentWeapon player) then
                    {
                        player selectWeapon (handgunWeapon player);
                    };
                };
            };
        };
        _stopPropagation = true;
    };
    case 0x04:     
    {
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then
        {
            if (ExileClientIsInConstructionMode) then
            {
                if (ExileClientConstructionSupportSnapMode) then
                {
                    if (ExileClientConstructionMode != 3) then
                    {
                        ExileClientConstructionCurrentSnapToObject = objNull;
                        ExileClientConstructionPossibleSnapPositions = [];
                        ["InfoTitleAndText", ["Snap Mode", "Look at the object you want to snap to, press SPACE to lock on it and then move your object next to a snap point. Press SPACE again to place the object."]] call ExileClient_gui_toaster_addTemplateToast;
                    };
                    ExileClientConstructionMode = 3;
                    ExileClientConstructionIsInSelectSnapObjectMode = true;
                    [] call ExileClient_gui_constructionMode_update;
                };
            }
            else
            {
                if (secondaryWeapon player != "") then
                {
                    if (secondaryWeapon player != currentWeapon player) then
                    {
                        player selectWeapon (secondaryWeapon player);
                    };
                };
            };
        };
        _stopPropagation = true;
    };
    case 0x05:     
    {
        if !(ExileClientIsHandcuffed || ExileIsPlayingRussianRoulette) then
        {
            if (ExileClientIsInConstructionMode) then
            {
                if !(ExileClientConstructionKitClassName isEqualTo "Exile_Item_Flag") then
                {
                    ExileClientConstructionModePhysx = !ExileClientConstructionModePhysx;
                    [] call ExileClient_gui_constructionMode_update;
                };
            }
            else
            {
                if (currentWeapon player != "") then
                {
                    ExileClientPlayerHolsteredWeapon = currentWeapon player;
                    player action["switchWeapon", player, player, 100];
                }
                else
                {
                    if (ExileClientPlayerHolsteredWeapon != "") then
                    {
                        player selectWeapon ExileClientPlayerHolsteredWeapon;
                    };
                };
            };
        };
        _stopPropagation = true;
    };
    case 0x06:
    {
        if (ExileClientIsInConstructionMode) then
        {
            ExileClientConstructionShowHint = !ExileClientConstructionShowHint;
            [] call ExileClient_gui_constructionMode_update;
        }
        else
        {
            call ExileClient_system_music_earplugs_toggle;
        };
        _stopPropagation = true;
    };
    case 0x07:
    {
        if (getText(missionConfigFile >> "Header" >> "gameType") isEqualTo "Escape") then
        {
            if (alive player) then
            {
                [] call ExileClient_gui_hud_toggleEscapeStats;
            };    
        }
        else
        {
            if (ExileClientIsInConstructionMode) then
            {
                if(ExileClientConstructionLock)then
                {
                    ExileClientConstructionLock = false;
                    _posObject = position ExileClientConstructionObject;
                    ExileClientConstructionOffset = player worldToModel _posObject;
                    ExileClientConstructionRotation = (getDir ExileClientConstructionObject) - (getDir player);
                }
                else
                {
                    ExileClientConstructionLock = true;
                };    
            }
            else
            {
                if (!ExileClientXM8IsVisible) then
                {
                    if ("Exile_Item_XM8" in (assignedItems player)) then
                    {
                        if (alive player) then
                        {
                            ExileClientXM8CurrentSlide = "apps";
                            [] call ExileClient_gui_xm8_show;
                        };    
                    };
                };
            };
        };
        _stopPropagation = true;
    };
    case 0x39:
    {
        if (ExileIsPlayingRussianRoulette) then
        {
            if (ExileRussianRouletteCanFire) then
            {
                [] spawn ExileClient_system_russianRoulette_fire;
            };
        }
        else
        {
            if (ExileClientIsInConstructionMode) then
            {
                if (ExileClientConstructionMode == 3) then
                {
                    if (ExileClientConstructionIsInSelectSnapObjectMode) then
                    {
                        if !(isNull ExileClientConstructionCurrentSnapToObject) then
                        {
                            ExileClientConstructionIsInSelectSnapObjectMode = false;
                            [] call ExileClient_gui_constructionMode_update;
                        };
                    }
                    else
                    {
                        if (ExileClientConstructionCanPlaceObject) then
                        {
                            ExileClientConstructionResult = 1;
                        };
                    };
                }
                else
                {
                    if (ExileClientConstructionCanPlaceObject) then
                    {
                        ExileClientConstructionResult = 1;
                    };
                };
                _stopPropagation = true;
            };
        };
    };
    case 0x01:
    {
        if (ExileIsPlayingRussianRoulette) then
        {
            _stopPropagation = true;
        }
        else
        {
            if (ExileClientIsInConstructionMode) then
            {
                _stopPropagation = true;
            };
        };
    };
    case 0x10:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 45;
            if (_shiftState) then
            {
                _step = 90;
            }
            else
            {
                if (_controlState) then
                {
                    _step = 22.5;
                };
            };
            ExileClientConstructionRotation = (ExileClientConstructionRotation - _step + 360) % 360;    
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0x12:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 45;
            if (_shiftState) then
            {
                _step = 90;
            }
            else
            {
                if (_controlState) then
                {
                    _step = 22.5;
                };
            };
            ExileClientConstructionRotation = (ExileClientConstructionRotation + _step + 360) % 360;    
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0x19:
    {
        if (ExileClientIsInBush) then
        {
            call ExileClient_object_bush_detach;
            _stopPropagation = true;
        };
    };
    case 0x31:
    {
        if!(isNull ExileClientCameraParentObject)then
        {
            if(ExileClientCameraNVG)then
            {
                camUseNVG false;
            }
            else
            {
                camUseNVG true;
            };    
            ExileClientCameraNVG = !ExileClientCameraNVG;
            _stopPropagation = true;
        };
    };
    case 0xC9:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then
            {
                _step = 1;
            }
            else
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [2, ((((ExileClientConstructionOffset select 2) + _step) min 6) max -3) ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xD1:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then
            {
                _step = 1;
            }
            else
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [2, ((((ExileClientConstructionOffset select 2) - _step) min 6) max -3) ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xC7:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then
            {
                _step = 1;
            }
            else
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [1, (((ExileClientConstructionOffset select 1) + _step) min 6) max ExileClientConstructionBoundingRadius ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xCF:
    {
        if (ExileClientIsInConstructionMode) then
        {
            _step = 0.25;
            if (_shiftState) then
            {
                _step = 1;
            }
            else
            {
                if (_controlState) then
                {
                    _step = 0.025;
                };
            };
            ExileClientConstructionOffset set [1, (((ExileClientConstructionOffset select 1) - _step) min 6) max ExileClientConstructionBoundingRadius ];
            [] call ExileClient_gui_constructionMode_update;
            _stopPropagation = true;
        };
    };
    case 0xDB:
    {
        switch (ExilePartyEspMode) do
        {
            case 0:         { ExilePartyEspMode = 1; };
            case 1:     { ExilePartyEspMode = 2; };
            case 2:             { ExilePartyEspMode = 0; };
        };
        _stopPropagation = true;
    };
};
_stopPropagation

Share this post


Link to post
Share on other sites
Advertisement

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

  • Recently Browsing   0 members

    No registered users viewing this page.