geekm0nkey

New XM8 App coding?

183 posts in this topic

Would a developer or someone in the know of how the new XM8 app process works mind offering up some technical know how. I'm familiar with how exad called their functions can we or, how do we call a script or function from the new process?

  • Like 1

Share this post


Link to post
Share on other sites

It looks like Exad has been raped of its good features to merge into exile and then the rest of it seems to get no support, I hope somebody comes to the rescue

Share this post


Link to post
Share on other sites
Advertisement

ive been playing around,. seems you can use call some_fn_name and it will work if laid out right, but this using exile to build the interface is for the birds.. I'm thinking of rolling my server back to 1.0.3 until the xm8 apps are updated. those are like the servers main functionality.

 

  • Like 1

Share this post


Link to post
Share on other sites

 

   sublime_text_2018-01-05_18-41-44.png sublime_text_2018-01-05_18-43-53.png

It is now fairly easy to create and XM8 app and doesn't require converting GUI editor exports to funky functions. To add a new XM8 app you need only to do the following:

  • Adding the button
    • Modify one of the 14 app buttons located in your mission config.cpp
    • textureNoShortcut: The picture to be shown on this button. Can be mission side or client side
    • text: The text to show on the button. This cannot be blank or the app will not show-up!
    • onButtonClick: The code to run when the app is clicked. You can either open your GUI or run a function. (Like the "BOOM!" app)
    • resource: The classname of the resource to be tied to this app. This can be blank if you do not have any GUI. (Like the "BOOM!" app)
  • Resource Creation (Only necessary if you would like a GUI.)
    • Go into Eden and open the GUI editor. 
    • Create the GUI you want, remembering that you have boundaries of the XM8. Use GUI_GRID as your grid position type.
    • Give names to your elements and export the GUI as "Config (controls as class)"
    • In the mission config.cpp, under the XM8_App buttons, you will see the other XM8 slides. Create a new slide, using one of the current ones as a template and paste the export into the controls class.
    • Change the inheritance of the classes to use the XM8 resource classes if you would like. i.e. RscText ---> RscExileXM8Text
    • Assign the appropriate IDCs to your classes, giving the Slide class a unique IDC. 
  • CfgXM8
    • Create a new class in CfgXM8, and give it a name
    • Assign the controlID, the unique IDC tied to the slide class of your resource
    • Identify which app this class belongs to by filling out the appID. This is just "App" with the number of the button.  If you modified XM8_App05_Button, the appID would be "App05"
    • Finally, add a title. This is what will appears at the top of the XM8 when it's opened.
  • XM8_AppXX_Button
    • If you haven't already, take the classname of your slide, and put it as the resource attribute
    • Change the onButtonClick to use the slide function of the XM8.
      • ['SLIDE_NAME', DIRECTION] call ExileClient_gui_xm8_slide;
      • Just replace SLIDE_NAME with the name of your CfgXM8 class that you created above, and DIRECTION with the direction (either 0 for slide right, or 1 for slide left)
Edited by WURSTKETTE
  • Like 4

Share this post


Link to post
Share on other sites

That does look easy to do when I read it....., but unfortunately I have shit for brains when it comes to working it out :D 

Edited by Razor77
  • Like 2

Share this post


Link to post
Share on other sites
On 09/03/2018 at 9:18 PM, Razor77 said:

Parece que Exad foi estuprada de suas boas características para fundir-se no exílio e, em seguida, o resto parece não receber apoio, espero que alguém venha ao resgate

I've already returned to 1.0.3 I'll stay in it for now, I'll enjoy my little server. I believe someone should be doing a good tutorial, I wonder, because the Xm8 is so incomplete, an excellent tool, plus what would be the solution to complete the XM8 ??
... that same 9.99 €.  :swearing:
until a good tutorial appears!

Share this post


Link to post
Share on other sites

@geekm0nkey @Razor77 I was able to get it working, just do the following:

 

1. Keep the old Exad XM8 functions in the mission files cpp. I.e This stuff under Class CfgXM8

Spoiler

class ExAd_CHVD 
	{
		title = "View Distance Settings";
		controlID = 50200;					//IDC:50200 -> 50102 || These need to be unique and out of range from each other
		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_Journal 
	{
		title = "Journal";
		controlID = 50300;					//IDC:50300 -> 50305 || These need to be unique and out of range from each other
		config = "ExadClient\XM8\Apps\Journal\config.sqf";
		logo = "ExadClient\XM8\Apps\Journal\Icon_Journal.paa";
		onLoad = "ExAdClient\XM8\Apps\Journal\onLoad.sqf";
		onOpen = "ExAdClient\XM8\Apps\Journal\onOpen.sqf";
		onClose = "ExAdClient\XM8\Apps\Journal\onClose.sqf";
	};

 

2. In the extra apps section add your apps underneath the "Boom!" app:

Spoiler

class XM8_App05_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_App06_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "ExAdClient\XM8\Apps\Journal\Icon_Journal.paa";
    text = "Journal";
    onButtonClick = "['ExAd_Journal', 0] call ExileClient_gui_xm8_slide";
    resource = "";
};

 

TextureNoShortcut is the file path to the logo image that displays on the XM8

Text is the App button's name.

OnButtonClick is what happens when the button is clicked. If the app is to go to another screen/menu do the xm8_slide call as above. If the app is to be clicked and do something (such as spawn a bike), directly call the script/function like this:

Spoiler

class XM8_App08_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "ExAdClient\XM8\Apps\DeployVehicle\quad.paa";
    text = "Deploy Quad";
    onButtonClick = "['ExAd_Quad'] call ExAd_XM8_DV_fnc_spawnVehicle";   //HERE!
    resource = "";

 

3. In your mission file go to ExAdClient\XM8\CfgFunctions.cpp and comment out the addApps function.

Spoiler

class XM8_Apps
{
file = "ExAdClient\XM8\Functions";
	//class addApps {};

 

Now go to ExAdClient\XM8\CustomCode\ExileClient_gui_xm8_slide.sqf and comment out the below section (should be lines 36-39).

Spoiler

	/*//ExAd Load Apps 
	if(toLower _toSlideName == 'extraapps')then{
		call ExAd_fnc_addApps;
	};*/

 

You can also optionally delete the fn_addApps.sqf in the functions folder as it is no longer used.

 

Edit: If you had the Exad VG app just comment out the "class ExAd_VG " from the mission file and the #include from the ExadClient\Cfgfunctions

Edit 2: Added step 3 to remove the overlapping icons in the top left corner

Edited by Spazz711
  • Like 9

Share this post


Link to post
Share on other sites

I tried this with the View Distance setting,

When you click on the icon it goes to another screen and nothing shows up. Also there doesn't seem to be a way to go back.

Never mind.. I forgot to add the custom codes into the config.. maybe this is what its not working..

Share this post


Link to post
Share on other sites
15 minutes ago, Slider said:

I tried this with the View Distance setting,

When you click on the icon it goes to another screen and nothing shows up. Also there doesn't seem to be a way to go back.

Never mind.. I forgot to add the custom codes into the config.. maybe this is what its not working..

Hmmm.... If its not working try following the initial install instructions to make sure you haven't accidentally overwritten/deleted something that it relies on when you updated the server to 1.0.4. then follow the above steps

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.