Jump to content

DOWNLOAD MODS

Are you looking for something shiny for your load order? We have many exclusive mods and resources you won't find anywhere else. Start your search now...

LEARN MODDING

Ready to try your hand at making your own mod creations? Visit the Enclave, the original ES/FO modding school, and learn the tricks of the trade from veteran modders...

JOIN THE ALLIANCE

Membership is free and registering unlocks image galleries, project hosting, live chat, unlimited downloads, & more...

[WIP] Hud Status Bars Enhanced


forli
 Share

Recommended Posts

NexusMods Thread

BethesdaForums Thread

AssimilationLab Thread

 

Hi everyone!
I'm working on a little improvement for HUD Status Bars by TheNiceOne:

  • Manipulate bars at runtime: dynamically create, manipulate and destroy a bar from a script.
  • Support multiple ini: actually, if a mod needs to show some bars, you need to open "HUD Status Bars.ini", copy some lines from the mod's readme and maintain a loooong list of bars. With this improvement, the author just need to provide an ini with all bars for the mod. You just need to put this ini in a specific folder: DONE! When uninstalling, delete the ini: DONE! "HUD Status Bars.ini" will stay untouched.
  • Add support to quests bars: they show your current active quest objective ("Go to Kvatch and find Martin",   "Collect 10 Nirnroots: 3/10",   "Close the Great Oblivion gate and save <spoiler>. Time left: 00:10:39",   etc). Just define a file ini for a quest, containing the bars it needs. DONE! No additional esp required, no scripts, no further operations. HSBE will take care of EVERYTHING and doesn't need any master, apart from the original "HUD Status Bars.esp" (which has no master).
  • Create all ini files for all Vanilla, SI and KOTN quests, so they will have Quest HUD elements for all quests. I may require some help to complete this point in a reasonable time...
  • Create ini files for quest from other mods. Well, I'll leave this to other modders and to anyone with some time to spare to create some bars for some quests
  • Eventually add some features/fields to HUD Status Bars...

Currently I'm typing a some lines of code and test if it can be done (that means: if HUD Status Bars allows this kind of manipulation to his bars).
If everything goes right, I'll open the "Quest HUD ini season". Even creating a single quest ini will grant you a seat in the Hall of Heroes (the credits section).
Else, if HUD Status Bars doesn't like to be "stressed", there will be no "Quest HUD" feature. So don't start creating ini without my signal "Begins!"
 
 
 
I already sent a message to TheNiceOne, asking to release this addon, as stated in the HUD Status Bars page.
I tried creating some ini for some quests: in less than an hour I was able to fully define 5 quests ini, so creating a quest require no more than ~10 minutes, except for LOOOOONG quests. This means that, with some help, we can rapidly define all quests ini!
 
In the meantime: what do you think about this idea/project? Any suggestion? Critique?
Of course, many people don't like the quest marker on the compass, because it ruin the game immersion, but this mod won't ruin any quest. It will simply print a short message, with the current quest state, example: "Collect 12 rumare scales. You have 5/12".

Edited by forli
Link to comment
Share on other sites

Perfect! It works as expected!
I'm able to show the bars based on: current active quest, current quest stage, current mods.
Ok the "Quest HUD ini season" is officially open to everyone!
Do you have some basic CS knowledge? And do you know how to create an bar for HUD Status Bars? Do you have some time to spare?
If yes, you have everything you need to support this project!
 
 
At this link you will find a shared folder where you can find the HSBE esp (beta version: expect some console spam...), a "QuestTest.esp" for testing, and the few ini files I manage to create (and they are ugly, since I made them to test the mod functionality...).

  • NOTE 1: You can use the "QuestTest.esp" for testing and learning. The folder already include a "QuestTest.esp.ini" and the quest folders "QuestA", "QuestB" and "QuestC". All these quests have repeatable stages 10, 20, 30 and 40 (10 uncomplete, 30 complete, 40 stop the quest).
  • NOTE 2: The HSBE esp require "HUD Status Bars.esp"

Use this shared folder to upload your files, check the files from other users, and contribute to this project. Just post on this thread what are you doing.
 
 
 
 
Here's how it works:
HSBE add a new folder: "Data\Ini\HSBE\". Inside this folder, you can put different things:
 
 
1) A file with the name of an esp or esm (including the extension) .ini (Example: "DLCShiveringIsles.esp.ini"). These files are loaded automatically ONLY   IF that mod is loaded (Above example: DLCShiveringIsles.esp is loaded). These bar works exactly like the ones in "HUD Status Bars.ini": they are loaded when game start and are permanent for the current game session.
 
 
2) A folder called like a quest editorID (Example: "Data\Ini\HSBE\MQ05\"). Inside this subfolder you can place:

  • A "Global.ini" file. All bars in this file are shown when the quest is active and running, independently from the stage.
  • Many "<STAGE>.ini" files. All bars in these files are shown when the quest is active, running and at stage <STAGE>. This means, that all bars placed in the file "30.ini" will be shown when the quest stage is exactly 30.

You can place (obviously) a single Global.ini, but as many <STAGE>.ini files you wish (even each single stage).
Both bars from "Global.ini" and "<STAGE>.ini" are defined like the ones in "HUD Status Bars.ini", with only a difference: to complete a bar you need to use SetStage tnoHSB 30 instead of SetStage tnoHSB 10
 
You can see some examples in the above folder.

Link to comment
Share on other sites

I'm adding support to new values for bar positioning:

tnoHSB.hud_x

  • HUDbars2
  • HUDbars2Left
  • HUDbars2Right
  • HUDnoticeLeft

tnoHSB.hud_y

  • HUDbars2High
  • HUDbars2Low
  • HUDbars2Left
  • HUDbars2Right
  • HUDnoticeBelow

All HUDbars2* values works like the HUDbars* counterpart, but ignore "tnoHSB.hud_store_pos", so they always position relative to the standard bars.

HUDnoticeLeft and HUDnoticeBelow allow you to position the bar relative to the message in the up-left corner of the screen (respectively: same X as the message icon and below the message icon).

 

 

 

Also, I'm adding a new field:

Set tnoHSB.hud_quest To <number>

 

Put a quest in "tnoHSB.hud_ref" and set tnoHSB.hud_quest to 1/2/3/4.

It will automatically show the icon, with size 75 (configurable by user) and put the text right (1), below (2), left (3), or above (4) the icon and will align X and Y with the notices. Of course, you can change the x and y, if you want.

Then you only need to define a text

 

So a typical quest info is reduced to:

set tnoHSB.hud_ref to "MS95"

set tnoHSB.hud_quest to 1

set tnoHSB.hud_name to "You must do <something>"

SetStage tnoHSB 30

Link to comment
Share on other sites

New version is up on Google Drive shared folder!
Added the hud_quest variable, the new values, and completed all ini for the first 5 main quests
Read the guide in the Docs folder on how to use the new feature.
As you can see, the new hud_quest variable (which is slightly different from what I planned above) speed up things at the point you usually only need 3 rows to define a quest bar, including the final SetStage!!!
 
The next step is optimizing the HUD Status Bars code, thanks to the OBSE 's 21 new greater powers!
If you want some screenshots for what the new quest bars look like, take a look:

 

Screenshot?

Just linked!

Link to comment
Share on other sites

Yes.

These ones don't define x and y, so they read the user preference (which are, by default: HUDnoticeLeft and HUDnoticeBelow), but users can change these preferences in HSBE.ini.

Also, you can actually define x and y, and these will override even user preferences.

 

NOTE: I implemented a little trick so using HUDnoticeBelow more than once will automatically put a bar under the last one in the stack, and not just below the notice.

This avoid that 2 bars, even from different ini get placed in the same spot. And it work very nice! (You can see it: don't forget that hud_quest, among other things, automatically set x and y to the above user preferences, ONLY if you don't define hud_x and hud_y them).

 

 

 

EDIT: Currently I need to completely rebuild the original HSB code, as it seems TNO didn't like code organization, function calls, and performances.

If I don't, modding this code is a real challenge (if not impossible)!

Edited by forli
Link to comment
Share on other sites

  • 2 weeks later...

Progress update:
The mod rebuild is complete, it uses the most advanced OBSE commands, all CS advices about performance, and it works perfectly. NOT IT'S TIME TO IMPROVE IT!
 
 
What's already done:
Check the link to drive and read the readme in Docs for all previously added features. In addition:
 - Moved the alpha calculation from the script to the XML (don't know if this increases the performance a bit, but it delete 1-2 function calls)
 - Added HUDtxtPercent1, HUDtxtPercent2, HUDtxtValueOfMax1 and HUDtxtValueOfMax2. These values will display float number up to 1-2 decimals, compared to the integer HUDtxtPercent and HUDtxtValueOfMax.
 - Added HUDtime2H12 and HUDtime3H12, if you want to display the time in 12 format (AM/PM included... or should I leave this to users?)
 
 
Work in progress:
 - Fading bars
Tests already done: it works!
With this new feature, you can define 2 new settings: "(Float) hud_fade_in" and "(Float) hud_fade_out". When the bar become visible (for any reason), the bar won't just "pop-up". Now it will slowly fade in in <hud_fade_in> seconds. Same behaviour happens if bar become invisible: fade out in <hud_fade_out> seconds!
If you don't specify a time, or if time is 0, the bar will appear/disappear as normal.
I'm sure this will give the HUD a more elegant appearance!
 
 - Blinking bars
Another feature I'm planning (no tests done yet for this one), is "": when a condition (defined in the ini, as always) is met, the bar will start blinking! It will stop when the condition isn't met anymore.
I'm sure many miss a similar feature even on the vanilla HUD!
 
 - Bars ID
A simply ID you can use to retrieve a bar no matter it's position in the XML. (Should be very easy to implement)
 
 
Future plans:
 - Not sure if this is possible: Extends the control over the vanilla Health/Magicka/Fatigue bars, weapon and magic icons and the compass.
 - [FUNCTIONS: CreateNewIdeas and AskNewIdeas are elaborating...]

Link to comment
Share on other sites

Mega news!

While adding the blink feature I had some time to add a "pop-up" feature too!

Now bars, when becoming visible, can slide from outside the screen to their position, then slide away when their visibility must change!

Also: fade, blink and pop-up can be combined for spectacular new effects!

 

NOTE: Even if a bar start blinking, it won't override the visibility settings. If visibility result to 0, then the bar simply disappear, and no blink happens. It's player responsibility ensure that the bar visibility formula is "compatible" the bar blinking formula (if visible is "tnoHSB.val > 5" and blink is "tnoHSB.val <2", you'll never see it blinking...).

 

 

Now, how do they work?

 - Fade: Set "fade_in" and/or "fade_out" float fields. If you define the fade_in and bar become visible, then bar will slowly fade instead of instantly appearing. Same for fade out.

 - Pop-up: Set "popup_in", "popup_out" and "popup_dir" float fields. As above: in popup_in/out seconds the bar will enter/exit from the screen border defined by popup_dir.

 - Blink: Set a "blink" formula field. If the formula is true, then bar will blink. The result of the formula is the "blink time". (Example: "0.25 * (tnoHSB.frac < 0.3)" will make the bar blink when tnoHSB.frac < 0.3, and it will blink ~4 times per second

 

As I said, you can use all settings together... for spectacular effects never seen before in HSB (and Oblivion, in general)!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...