• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Simplistic Reforged-inspired UI

Info

How to import

Updates


This is a Reforged inspired console UI that combines elements from the web-UI found in the WC3 CASC files.
I initially wanted to use this for myself, but I think it can be useful for others too.

Enjoy.

For this demonstration we will replace the Human UI, but you can do this for all the races:

1. Import all files except "blank.dds".
2. Rename the files:
"ui\console\human\humanuitile-inventorycover.dds"
"ui\console\human\humanuitile-timeindicatorframe.dds"
"ui\console\human\humanuitile01.dds"
"ui\console\human\humanuitile02.dds"
"ui\console\human\humanuitile03.dds"
"ui\console\human\humanuitile04.dds"
"ui\widgets\console\human\human-console-button-back-active.dds"
"ui\widgets\console\human\human-console-buttonstates2.dds"
"ui\widgets\escmenu\human\human-options-button-highlight.dds"
"ui\widgets\escmenu\human\human-options-menu-background.dds"
"ui\widgets\escmenu\human\human-options-menu-border.dds"
"war3mapImported\Black Box.tga"

3. Import "blank.dds" rename it to "ui\console\human\humanuitile05.dds"
4. Import "blank.dds" again and rename it to "ui\console\human\humanuitile06.dds". These two UI frames are those that extend to the left and right of the screen on classic graphics.
5. Lastly we will hide the default black screen on the bottom and replace it with our own "Black box.tga" so it covers the portait on the backside. This requires a few lines of code shown below.

Code:
function Setup takes nothing returns nothing
    local framehandle blackbox

    call BlzFrameSetVisible(BlzGetFrameByName("ConsoleUIBackdrop",0), false) // Hide bottom black box
    set blackbox = BlzCreateFrameByType("BACKDROP", "", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0) // tiny black box behind portrait
    call BlzFrameSetSize(blackbox, 0.1, 0.15)
    call BlzFrameSetAbsPoint(blackbox, FRAMEPOINT_CENTER, 0.25, 0.05)
    call BlzFrameSetTexture(blackbox, "war3mapImported\\Black box.tga", 0, true)
    call BlzFrameSetLevel(blackbox , -1)
endfunction


Update 3:
- Added mipmaps to the UI frames so they no longer look "corrupted" on Reforged "Low" settings (yes, Reforged graphics uses mipmaps on custom UI textures on low settings).

Update 2:
- Added import paths for the textures.
- Updated the minimap border.
- Added chains around the clock.
- Flipped the inventory cover background, so the shadows fit better.
- Added a small banner above the unit portrait.

Update 1:
Added a re-skin for the menu and quest section. Frames created with frame natives are also affected by this.
Previews
Contents

Black Box (Texture)

blank (Texture)

human-console-button-back-active (Texture)

human-console-buttonstates2 (Texture)

human-options-button-highlight (Texture)

human-options-menu-background (Texture)

human-options-menu-border (Texture)

humanuitile-inventorycover (Texture)

humanuitile-timeindicatorframe (Texture)

humanuitile01 (Texture)

humanuitile02 (Texture)

humanuitile03 (Texture)

humanuitile04 (Texture)

Level 18
Joined
Oct 17, 2012
Messages
818
1. Add the code to the map header and then create a trigger with Map Initialization as the event. Add a custom script action to the trigger with the code: call Setup().

OR

2. Create a trigger and convert it to Custom Text. Then replace the code with the one in the description and then rename function to InitTrig_Your_Trigger_Name.

OR

3. Create a trigger and convert it to Custom Text. Then replace the code with the following:
JASS:
library CustomUI initializer Init

private function Init takes nothing returns nothing
    local framehandle blackbox
    call BlzFrameSetVisible(BlzGetFrameByName("ConsoleUIBackdrop",0), false) // Hide bottom black box
    set blackbox = BlzCreateFrameByType("BACKDROP", "", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0) // tiny black box behind portrait
    call BlzFrameSetSize(blackbox, 0.1, 0.15)
    call BlzFrameSetAbsPoint(blackbox, FRAMEPOINT_CENTER, 0.25, 0.05)
    call BlzFrameSetTexture(blackbox, "war3mapImported\\Black box.tga", 0, true)
    call BlzFrameSetLevel(blackbox , -1)
endfunction

endlibrary

Note: For the second option, spaces in trigger name must be underscores for function names.

I would not recommend the first option because the map header gets cluttered, and there is this rare bug, in which the map header code gets replaced with code from another trigger.
 
Last edited:
Top