Jump to content
UNIT_normal

[Release] Vehicle Appearance Manager GUI

Recommended Posts

This script allows you to change camouflage and component via GUI.
VAM supports most of vanilla vehicles even mod vehicles.
You can apply custom textures by making exceptions.

 

 

Known issue
- Some components are linked each other. It's not VAM's limitation.
- Some components aren't compatible each other. It's not VAM's limitation.
- Some vehicles don't have default customizing value. Reset will not work in that case.

 

Installation
1. Put VAM_GUI folder on your mission folder.
2. Put stringtable.xml or copy & paste contents to your stringtable.xml.
3. Add this to init.sqf.
[] execVM "VAM_GUI\VAM_GUI_init.sqf";
4. Add this to description.ext.
#include "VAM_GUI\defines.hpp"
#include "VAM_GUI\VAM_GUI_controls.hpp"
#include "VAM_GUI\VAM_GUI_classes.hpp"

 

Option

- In VAM_GUI_init.sqf, you can enable multiple check systems. (Near repair vehicle, In certain marker area, Near KP Liberation FOB area)

 

Download

https://drive.google.com/open?id=1PmzgAoIbtwWXLXpTbVxl8G9dEOfgGo32

(Two version is now merged.)

 

Changelog

Spoiler

Changelog
1.0
Released
1.10
Marid(v1 and v2) fixed. (I suggest you change every v1 to v2)
1.11
List text size adjusted
1.12
Liberation FOB distance check system is now available
1.20
Hidden texture option added for Hummingbird/Pawnee, Blackfoot, Orca
1.21
Bug fixed (Error message when user is trying to scroll down below last component with arrow down key.)
1.22
Action method changed. UGV RCWS bug fixed. Introducing fnc_VAM_variable_cleaner
1.3
Added more condition check options
1.31, 1.32
Minor change
1.40
Action mechanism changed

1.41
Locality problem fixed, some activation conditions has been changed.

 

It's my first GUI creation. It's not perfect but usable.

If you have any problem, please reply on here.

Edited by UNIT_normal
1.41 update
  • Like 7
  • Thanks 5

Share this post


Link to post
Share on other sites

Does this need to be on only the host server or does everyone need to have this installed.

Share this post


Link to post
Share on other sites
6 minutes ago, avibird 1 said:

Does this need to be on only the host server or does everyone need to have this installed.

Just put it in your mission. It will work.

Share this post


Link to post
Share on other sites

Yes I know but if I do. Do other players need to have it installed only me.

Share this post


Link to post
Share on other sites
5 minutes ago, avibird 1 said:

Yes I know but if I do. Do other players need to have it installed only me.

It's not a mod. You should implement this script to your mission that you want to play with other players.

Run server with that mission, then everyone in your server could use this.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
13 minutes ago, avibird 1 said:

Yes I know but if I do. Do other players need to have it installed only me.

a mission is present on each player's client. if you put something in a mission then every player has it. no need to install anything

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Thank you but some things need to be installed in everyone's PC who's in the server with some mods. Good to hear that this does not need to be installed on everyone's

Share this post


Link to post
Share on other sites

Looks nice! My kind of UI, simple, sleek and responsive.

My only feedback would be to add a setting to ignore the requirement to be inside the vehicle.

 

 

  • Like 1

Share this post


Link to post
Share on other sites
6 hours ago, mrcurry said:

Looks nice! My kind of UI, simple, sleek and responsive.

My only feedback would be to add a setting to ignore the requirement to be inside the vehicle.

I made alternative version. Please check.

Share this post


Link to post
Share on other sites
20 hours ago, avibird 1 said:

Thank you but some things need to be installed in everyone's PC who's in the server with some mods. Good to hear that this does not need to be installed on everyone's

It's a script, not a mod.

  • Like 1

Share this post


Link to post
Share on other sites

Great work, I've been looking forward to something like this. I have a small wish/request tho: Make an option to have VAM limited to vehicles in a certain trigger. That way you can have a customization station in a base.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
On 7/2/2019 at 8:10 PM, Mr. Rad said:

Great work, I've been looking forward to something like this. I have a small wish/request tho: Make an option to have VAM limited to vehicles in a certain trigger. That way you can have a customization station in a base.

There is check function to limit customization only around KP Liberation FOB.

If you understand how it works, you can change it for your preference.

(Tip : Changing global variable "VAM_conditioncheck1" between "true" and "false" are related with action condition.)

Currently I cannot do that myself because I have limited access to computer now.

If I can do, I will make more check option for it.

Share this post


Link to post
Share on other sites

Hi i have a problem that the option on the scrollwheel to bring up menu ain't showing.

I'm not sure if it's because of the way i have added the XML string

Or if these need to be in a piticular place in the description

#include "VAM_GUI\defines.hpp"
#include "VAM_GUI\VAM_GUI_controls.hpp"
#include "VAM_GUI\VAM_GUI_classes.hpp"

 

Edited by Sgt Smash
Message is hidden for some reason
  • Like 1

Share this post


Link to post
Share on other sites
19 hours ago, Sgt Smash said:

Hi i have a problem that the option on the scrollwheel to bring up menu ain't showing.

I'm not sure if it's because of the way i have added the XML string

Or if these need to be in a piticular place in the description

#include "VAM_GUI\defines.hpp"
#include "VAM_GUI\VAM_GUI_controls.hpp"
#include "VAM_GUI\VAM_GUI_classes.hpp"

 

 

On 7/1/2019 at 2:16 AM, UNIT_normal said:

Installation
1. Put VAM_GUI folder on your mission folder.
2. Put stringtable.xml or copy & paste contents to your stringtable.xml.
3. Add this to init.sqf.
[] execVM "VAM_GUI\VAM_GUI_init.sqf";
4. Add this to description.ext.
#include "VAM_GUI\defines.hpp"
#include "VAM_GUI\VAM_GUI_controls.hpp"
#include "VAM_GUI\VAM_GUI_classes.hpp"

#include "VAM_GUI\defines.hpp"
#include "VAM_GUI\VAM_GUI_controls.hpp"
#include "VAM_GUI\VAM_GUI_classes.hpp"

These things are essential because these files contain every data about my GUI and #include command gets them in your mission.

Share this post


Link to post
Share on other sites
4 hours ago, UNIT_normal said:

 

#include "VAM_GUI\defines.hpp"
#include "VAM_GUI\VAM_GUI_controls.hpp"
#include "VAM_GUI\VAM_GUI_classes.hpp"

These things are essential because these files contain every data about my GUI and #include command gets them in your mission.

Thanks for the reply

The reason i asked is my description file looks like this

Spoiler

define true 1
#define false 0
// Required for the XM8, do not remove!
#include "RscDefines.hpp"
#include "ExAdClient\ExAd.cpp"
#include "KBC\wire\gui\dialog.hpp"

 

///////////////////////////////////////////////////////////////////////////////
// Server Settings - Modify at will
///////////////////////////////////////////////////////////////////////////////
author = "Updated by Sgt Smash";
onLoadName = "Arma Gods Gaming";
onLoadMission= "https://steamcommunity.com/groups/armagodsgamingexile";
loadScreen = "exile_assets\texture\mod\logo.paa";
disableChannels[] = {0, 2};
OnLoadIntro = "";
OnLoadIntroTime = false;
OnLoadMissionTime = false;


class Header
{
    gameType = Survive; // Do NOT change this
    minPlayers = 1;
    maxPlayers = 100;
};

///////////////////////////////////////////////////////////////////////////////
// Exile Settings - Do not change these!
///////////////////////////////////////////////////////////////////////////////
forceRotorLibSimulation = 2;
skipLobby = 1;
joinUnassigned = 1;
respawn = "BASE";
respawnDelay = 300;
respawnDialog = 0;
respawnOnStart = 0;
respawnButton = 1;
respawnTemplates[] = {"Exile"};
corpseManagerMode = 0;
corpseLimit = 20;
corpseRemovalMinTime = 1800;
corpseRemovalMaxTime = 3600;
wreckManagerMode = 0;
wreckLimit = 2;
wreckRemovalMinTime = 60;
wreckRemovalMaxTime = 360;
scriptedPlayer = 1;
disabledAI = 1;
enableItemsDropping = 0;
briefing = 0;
debriefing = 0;
allowFunctionsLog = 1;
enableDebugConsole = 0;
allowFunctionsRecompile = 0;
showSquadRadar = 0;
showUAVFeed = 0;
reviveDelay = 6;
reviveForceRespawnDelay = 3;
reviveBleedOutDelay = 300;

showHUD[] =
{
    true,   // Scripted HUD (same as showHUD command)
    true,   // Vehicle + soldier info
    true,   // Vehicle radar
    true,   // Vehicle compass
    true,   // Tank direction indicator
    true,  // Commanding menu
    false,  // Group Bar
    true,   // HUD Weapon Cursors
    true   // Vehicle Panel (Required for GPS)
};

#include "config.cpp"

class CfgRemoteExec
{
    class Functions
    {
        mode = 1;
        jip = 0;
        class ExAdServer_fnc_clientRequest { allowedTargets=2; };
        class ExileServer_system_network_dispatchIncomingMessage { allowedTargets=2; };
    };

    class Commands
    {
        mode = 0;
        jip = 0;
    };
};


#include "R3F_LOG\desc_include.h"

class RscTitles
{
    #include "VEMFr_client\gui\RscDisplayVEMFrClient.hpp"
    #include "VEMFr_client\gui\RscDisplayBaseAttack.hpp"
    #include "ExAdClient\RscTitles.cpp"
};

class CfgFunctions
{
    #include "ExAdClient\CfgFunctions.cpp"
};

class CfgNetworkMessages
{
    #include "ExAdClient\CfgNetworkMessages.cpp"
    class wireTransferRequest
    {
        module = "wire";
        parameters[] = {"STRING","SCALAR","BOOL"};
    };
    
    // GADD CrateDump
    class getMoneyAndRespect
    {
        module = "cratedump";
        parameters[] =
        {
            "STRING",
            "OBJECT"
        };
    };
    class receiveMoneyAndRespect
    {
        module = "cratedump";
        parameters[] =
        {
            "SCALAR",
            "SCALAR"
        };
    };
    class updateMoneyAndRespect
    {
        module = "cratedump";
        parameters[] =
        {
            "SCALAR",
            "SCALAR",
            "STRING",
            "OBJECT"
        };
    };
    class updatelogs
    {
        module = "cratedump";
        parameters[] =
        {
            "STRING",
            "STRING",
            "SCALAR",
            "SCALAR",
            "SCALAR",
            "SCALAR",
            "SCALAR",
            "SCALAR",
            "STRING"
        };
    };
};

class CfgHints
{
    #include "ExAdClient\CfgHints.cpp" // Only needed for ExAd Virtual Garage
};
};

 

  • Like 1

Share this post


Link to post
Share on other sites
On 7/5/2019 at 12:43 PM, Sgt Smash said:

Thanks for the reply

The reason i asked is my description file looks like this

  Reveal hidden contents

define true 1
#define false 0
// Required for the XM8, do not remove!
#include "RscDefines.hpp"
#include "ExAdClient\ExAd.cpp"
#include "KBC\wire\gui\dialog.hpp"

 

///////////////////////////////////////////////////////////////////////////////
// Server Settings - Modify at will
///////////////////////////////////////////////////////////////////////////////
author = "Updated by Sgt Smash";
onLoadName = "Arma Gods Gaming";
onLoadMission= "https://steamcommunity.com/groups/armagodsgamingexile";
loadScreen = "exile_assets\texture\mod\logo.paa";
disableChannels[] = {0, 2};
OnLoadIntro = "";
OnLoadIntroTime = false;
OnLoadMissionTime = false;


class Header
{
    gameType = Survive; // Do NOT change this
    minPlayers = 1;
    maxPlayers = 100;
};

///////////////////////////////////////////////////////////////////////////////
// Exile Settings - Do not change these!
///////////////////////////////////////////////////////////////////////////////
forceRotorLibSimulation = 2;
skipLobby = 1;
joinUnassigned = 1;
respawn = "BASE";
respawnDelay = 300;
respawnDialog = 0;
respawnOnStart = 0;
respawnButton = 1;
respawnTemplates[] = {"Exile"};
corpseManagerMode = 0;
corpseLimit = 20;
corpseRemovalMinTime = 1800;
corpseRemovalMaxTime = 3600;
wreckManagerMode = 0;
wreckLimit = 2;
wreckRemovalMinTime = 60;
wreckRemovalMaxTime = 360;
scriptedPlayer = 1;
disabledAI = 1;
enableItemsDropping = 0;
briefing = 0;
debriefing = 0;
allowFunctionsLog = 1;
enableDebugConsole = 0;
allowFunctionsRecompile = 0;
showSquadRadar = 0;
showUAVFeed = 0;
reviveDelay = 6;
reviveForceRespawnDelay = 3;
reviveBleedOutDelay = 300;

showHUD[] =
{
    true,   // Scripted HUD (same as showHUD command)
    true,   // Vehicle + soldier info
    true,   // Vehicle radar
    true,   // Vehicle compass
    true,   // Tank direction indicator
    true,  // Commanding menu
    false,  // Group Bar
    true,   // HUD Weapon Cursors
    true   // Vehicle Panel (Required for GPS)
};

#include "config.cpp"

class CfgRemoteExec
{
    class Functions
    {
        mode = 1;
        jip = 0;
        class ExAdServer_fnc_clientRequest { allowedTargets=2; };
        class ExileServer_system_network_dispatchIncomingMessage { allowedTargets=2; };
    };

    class Commands
    {
        mode = 0;
        jip = 0;
    };
};


#include "R3F_LOG\desc_include.h"

class RscTitles
{
    #include "VEMFr_client\gui\RscDisplayVEMFrClient.hpp"
    #include "VEMFr_client\gui\RscDisplayBaseAttack.hpp"
    #include "ExAdClient\RscTitles.cpp"
};

class CfgFunctions
{
    #include "ExAdClient\CfgFunctions.cpp"
};

class CfgNetworkMessages
{
    #include "ExAdClient\CfgNetworkMessages.cpp"
    class wireTransferRequest
    {
        module = "wire";
        parameters[] = {"STRING","SCALAR","BOOL"};
    };
    
    // GADD CrateDump
    class getMoneyAndRespect
    {
        module = "cratedump";
        parameters[] =
        {
            "STRING",
            "OBJECT"
        };
    };
    class receiveMoneyAndRespect
    {
        module = "cratedump";
        parameters[] =
        {
            "SCALAR",
            "SCALAR"
        };
    };
    class updateMoneyAndRespect
    {
        module = "cratedump";
        parameters[] =
        {
            "SCALAR",
            "SCALAR",
            "STRING",
            "OBJECT"
        };
    };
    class updatelogs
    {
        module = "cratedump";
        parameters[] =
        {
            "STRING",
            "STRING",
            "SCALAR",
            "SCALAR",
            "SCALAR",
            "SCALAR",
            "SCALAR",
            "SCALAR",
            "STRING"
        };
    };
};

class CfgHints
{
    #include "ExAdClient\CfgHints.cpp" // Only needed for ExAd Virtual Garage
};
};

 

Change

#include "RscDefines.hpp"
#include "ExAdClient\ExAd.cpp"
#include "KBC\wire\gui\dialog.hpp"

to

#include "RscDefines.hpp"
#include "ExAdClient\ExAd.cpp"
#include "KBC\wire\gui\dialog.hpp"
#include "VAM_GUI\VAM_GUI_controls.hpp"
#include "VAM_GUI\VAM_GUI_classes.hpp"

I think this is solution.

I believe RscDefines.hpp is same as defines.hpp.

  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks i will give this a try later😀

 

 

Is the XML added ok? I've never joined more than one thing in there before

 

Edit: everytime i try to add  a spoiler with my XML the message gets hidden

was gonne ask if i had added it ok with what else is already in there dam forum hates me lol

Share this post


Link to post
Share on other sites
On 7/6/2019 at 6:28 PM, Sgt Smash said:

Thanks i will give this a try later😀

 

 

Is the XML added ok? I've never joined more than one thing in there before

 

Edit: everytime i try to add  a spoiler with my XML the message gets hidden

was gonne ask if i had added it ok with what else is already in there dam forum hates me lol

Select everything between

<!--  VAM LINE START  -->

and

<!--  VAM LINE END  -->

in stringtable.xml.

And copy it and paste to your mission stringtable.xml.

Share this post


Link to post
Share on other sites
4 hours ago, UNIT_normal said:

Select everything between

<!--  VAM LINE START  -->

and

<!--  VAM LINE END  -->

in stringtable.xml.

And copy it and paste to your mission stringtable.xml.

Can i just paste it anywhere after the stuff i already have in stringtable.xml.?

Share this post


Link to post
Share on other sites
13 hours ago, Sgt Smash said:

Can i just paste it anywhere after the stuff i already have in stringtable.xml.?

Yes. You can paste it anywhere between your strings. Just don't break its form and your strings form.

  • Thanks 1

Share this post


Link to post
Share on other sites
On 7/2/2019 at 8:10 PM, Mr. Rad said:

Great work, I've been looking forward to something like this. I have a small wish/request tho: Make an option to have VAM limited to vehicles in a certain trigger. That way you can have a customization station in a base.

In 1.30, now you can place marker area to make service area.

Share this post


Link to post
Share on other sites

@UNIT_normal - I put in EXACTLY what you stated.  It does not work.  I download the 'ALT' version from the link you posted above in this post.  This was also for a SP mission too.

 

The 'VAM' menu shows in the 'Action Menu', upon selecting it, I get a 'Resource VAM_GUI Not Found' error.

 

I just put your folder, Init.SQS, Description.Ext, and the StringTable.XML files into a EMPTY mission folder along with a 'one man' mission file, run it, then I get the above error.

 

I have included 2 screenshots of the error as well as my folder layout and file contents.

 

As a note and a question, what is with the 'mission.sqm' file?  I noticed it is 'encoded' as well as I am sure it will confuse people as what to do with it.  Personally, I ignored it and did not view nor copy it.

 

Thanks and I appreciate what appears DOES work...once installed properly...

 

🙂

 

*****

 

For some reason, I cannot insert pix into the post!  😞

 

SS #1 - https://imgur.com/OETIzQv

SS #2 - https://imgur.com/YdS6Cwa

 

 

 

 

  • Sad 1

Share this post


Link to post
Share on other sites
7 hours ago, z80cpu said:

@UNIT_normal - I put in EXACTLY what you stated.  It does not work.  I download the 'ALT' version from the link you posted above in this post.  This was also for a SP mission too.

 

The 'VAM' menu shows in the 'Action Menu', upon selecting it, I get a 'Resource VAM_GUI Not Found' error.

 

I just put your folder, Init.SQS, Description.Ext, and the StringTable.XML files into a EMPTY mission folder along with a 'one man' mission file, run it, then I get the above error.

 

I have included 2 screenshots of the error as well as my folder layout and file contents.

 

As a note and a question, what is with the 'mission.sqm' file?  I noticed it is 'encoded' as well as I am sure it will confuse people as what to do with it.  Personally, I ignored it and did not view nor copy it.

 

Thanks and I appreciate what appears DOES work...once installed properly...

 

🙂

 

*****

 

For some reason, I cannot insert pix into the post!  😞

 

SS #1 - https://imgur.com/OETIzQv

SS #2 - https://imgur.com/YdS6Cwa

I included mission.sqm because it is demo mission.

Please try demo mission and tell me about result.

If you can, upload your mission and send me through reply or message.

 

I think you have some missing files in VAM_GUI folder.

defines.hpp
VAM_GUI_controls.hpp
VAM_GUI_classes.hpp

If these files are missing, you will get error message that you got.

 

#include "VAM_GUI\defines.hpp"
#include "VAM_GUI\VAM_GUI_controls.hpp"
#include "VAM_GUI\VAM_GUI_classes.hpp"

 

How about write new description.ext and copy these lines?

It might be unicode error things.

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

×