dbw

[Release] Simple Dynamic Status Icons

65 posts in this topic

Hello guys,

I present you my first ever release here.
A simple minimalistic status icon script :D 
This is the first time I ever touch UI scripting, so be nice, but any suggestion is appreciated.

I'll keep updating this when I have the time. Next updates I'll try to clean up the code and make the ui more dynamic.

Feel free to modify / tweak it.

Download & Installation: https://github.com/neonoxd/Exile-Dynamic-StatusIcons


9e98e0a03d.jpg
20161118171446_1.jpg

9433625407.gif

 
Spoiler

UPDATE[11/18]:
New Status Icon, that appears when body temperature is below 36c
Minor code optimisation, and tried to smooth transitions from one state to another when updating the circle bars.
Edit: Committed old statusbar.sqf to github, its fixed now. :D 

UPDATE[11/18] #2
-Disabled Exile Status Display (Bottom left hud)

UPDATE[11/19]
-The display should reInit now after using Arsenal.
-Shouldn't crash the script when your variables are not initialised yet.

UPDATE[11/20]
-Grouped the Icons so it's easier to reposition.
-Renamed files and folders so its more consistent

UPDATE[11/22]
-New Togglable text based display, to check your stats more precisely ( Default key is ~ )

UPDATE[11/24]
- Now in preparation for night mode, circlebars and icons are separated, and now on a different layer, which means that you can set their colour separately.



Planned features:
-Night Mode (High contrast colours)
-Config file, to customize

Known bugs:
-If you are using infiStar, the icons disappear when you open the Arsenal, and won't reappear until you relog.should be good now 9_9
-If you load in too slow the ui might not appear.
(didn't figure out how to start initialising the ui, only after the client loads in, so currently there is a timer, and if your playervariables are not initialised yet, the ui script crashes.)
 should be good now ¬¬

Big shoutout to everyone who got involved, by writing suggestions, critiques and helping me. It means a lot! :D 

also shoutout to 

 

 

Edited by dbw
updated stuff
  • Like 14

Share this post


Link to post
Share on other sites
Advertisement

I'm trying my best. :D thanks for the good words.
This is pretty much a personal project, to learn how to work with the GUI, so I'll definitely will be adding more to it, when I have the time :D Currently I'm just experimenting with these :D 

  • Like 2

Share this post


Link to post
Share on other sites

@dbw Really nice dude, wish I had the patience to learn GUI editing. 

I see some people here calling for additions like FPS etc, I think its fine the way it is, keep it less a "status bar" and more a "hud addition"!

You could expand on this, and add in temperature, then you could remove the current Exile hunger / thirst display and have your version instead.

Wd

  • Like 2

Share this post


Link to post
Share on other sites
46 minutes ago, John said:

@dbw Really nice dude, wish I had the patience to learn GUI editing. 

I see some people here calling for additions like FPS etc, I think its fine the way it is, keep it less a "status bar" and more a "hud addition"!

You could expand on this, and add in temperature, then you could remove the current Exile hunger / thirst display and have your version instead.

Wd

Thanks man :D

Thats exactly my plan.

I want to do the temperature icon to only appear when you are cold. Kind of like a debuff notification, but might change that.

And yeah I want to keep it simple. You measure your fps with steamoverlay anyway :D

Share this post


Link to post
Share on other sites
7 minutes ago, dbw said:

Thanks man :D

Thats exactly my plan.

I want to do the temperature icon to only appear when you are cold. Kind of like a debuff notification, but might change that.

And yeah I want to keep it simple. You measure your fps with steamoverlay anyway :D

Sweet,

In case you are not sure, the variable you are looking for when you work on temperature is -

_bodyTemperature = ExileClientPlayerAttributes select 5;
_bodyWetness = ExileClientPlayerAttributes select 6;
_ambientTemperature = ExileClientEnvironmentTemperature; // Or just simply ExileClientEnvironmentTemperature

=)

Edited by John
  • Like 1

Share this post


Link to post
Share on other sites

Absolutely loving this!! May I make a request/suggestion? Have a config option to have it either on the left or the right of the screen?

Edited by kuplion
  • Like 1

Share this post


Link to post
Share on other sites

statusbar.hpp - example

20161118060313_1.png without temperature

Spoiler

class StatusBar
{    
        idd = 13372;
        fadein = 1;
        fadeout = 1;
        duration = 10e10;
        onLoad = "uiNamespace setVariable ['StatusBar', _this select 0]";
        onUnload = "uiNamespace setVariable ['StatusBar', objNull]";
        onDestroy = "uiNamespace setVariable ['StatusBar', objNull]";
        
        class controls
        {
            class HealthControl
            {    
                idc = 13373;
                type = 0;
                //style = 0 * 16;
                style = 2096;
                    x = 0.10 * safezoneW + safezoneX;
                    y = 0.888704 * safezoneH + safezoneY;
                //x = safeZoneX + safeZoneW - 0.15; //right side
                //x = safeZoneX;                                // left side
                //y = 0;
                //y = 1 / 2 - 0.15;
                w = 0.15;
                h = 0.15 * 3 / 4;
                font = "EtelkaNarrowMediumPro";
                sizeEx = 0.1;
                colorBackground[] = {0,0,0,0};
                colorText[] = {1,1,1,0.6};
                text = "";
            };  
            class FoodControl : HealthControl
            {    
                idc = 13374;
                x = 0.14 * safezoneW + safezoneX;
                y = 0.888704 * safezoneH + safezoneY;
                //y = 0.15;
                //y = 1 / 2;
                text = "";
            }; 
            class WaterControl : HealthControl
            {    
                idc = 13375;
                x = 0.18 * safezoneW + safezoneX;
                y = 0.888704 * safezoneH + safezoneY;
                //y = 0.30;
                //y = 1 / 2 + 0.15;
                text = "";
            }; 
            class TemperatureControl : HealthControl
            {    
                idc = 13376;
                x = 0.22 * safezoneW + safezoneX;
                y = 0.888704 * safezoneH + safezoneY;
                //y = 0.30;
                //y = 1 / 2 + 0.30;
                text = "";
            }; 
        };    
};
 

this .hpp has temperature include

  • Like 1

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.