Introduction
CustomConsoleUI changes the ingame UI allowing to swap the UI during the game.
It does not change the Menus found in F9 to F12 and the mouse cursor, which will still be fitting to the initial Race selected.
In Warcraft 3 V1.31, it can not change the idle worker button (the Lua version auto detects the users version).
How does that work?
CustomConsoleUI expects that all default UI textures were replaced by blank textures inside Game interface:
Then it places custom frames over the not seeable. The Day Time clock model has to be replaced because it is hardcoded to use Texture x, hence it has to go and be replaced by a custom one which is provided in the demo map.
The custom created frames than can be changed during the game, allowing the UI swap effect.
At init you give the system bunches of texturePaths for each UI which each saved to an index. During the game you can then swap to an CustomUI with that index for a wanted player using:
UseCustomConsole(player, consoleIndex)
How to install?
First you have to make the default Console Textures be hidden that is done in Game Interface.
Set ConsoleTexture01 to ConsoleTexture06 to UI\Widgets\EscMenu\Human\blank-background.blp.
ConsoleTexture05 & ConsoleTexture06 can not be set in World Editor - Game Interface.
Set ConsoleInventoryCoverTexture to UI\Widgets\EscMenu\Human\blank-background.blp.
The Day of Time clock has hardcoded textures therefore you need to swap it out. That also should be done in Gameinterface.
Set TimeOfDayIndicator to the model included in this system.
Now export and Import war3mapImported\CustomConsoleUI.toc & war3mapImported\CustomConsoleUI.fdf
Finally you have to set the used textures for the system which differs between vjass and Lua
in the Lua version you fill the local table data at the top of the system with table entries holding the wanted textures.
In the vjass version you fill the array data which is used as 2d array with the pageSize 11. data[0*11 + 1] = ConsoleTexture01 of UI 0. or you use the provided function doing that for you as shown in function init_function of library CustomConsoleUI
The day time clock is a bit wierd hence one can set an offset to fit the texture better to the glowing orbs represeting the current hour of day. Default value for Orc is wrong. While the others are quite fine.
While the demo map only uses normal UI, this also works for custom imported UI.
ChangeLog
V8 Use UI scale options
V7 Replaydetect Reforged V2
V3 (vjass) Fixed a desync Reason
V2
InventoryCover changes in 1.31.
the vjass version uses the FrameLoader now, if provided (which will make it work over buggy Frame Save&Load).