UI Trigger Help

OMGedDude

New Member
Reaction score
5
I was playing around with the UI Triggers and I came across a couple of problems I couldn't seem to solve.
1. Is there a way to make boss bars only viewable by certain players? I tried to make a hitpoint bar for each player but when I tested the map, all the boss bars stacked up and the bar wouldn't decrease.
ie. I used this action in a trigger which executed at 0.1 seconds of elapsed time
Trigger:
  • UI Setup
    • Events
      • Timer - Elapsed time is 0.1 Game Time seconds
    • Local Variables
      • A = 0 <Integer>
      • B = 0 <Integer>
      • C = 0 <Integer>
      • TempGroup = (Empty player group) <Player Group>
    • Conditions
    • Actions
      • General - For each integer A from 1 to 8 with increment 1, do (Actions)
        • Actions
          • Player Group - Reset TempGroup to have no players
          • Player Group - Add player A to TempGroup
          • Variable - Set B = 0
          • General - For each integer B from 1 to 4 with increment 1, do (Actions)
            • Actions
              • General - If (Conditions) then do (Actions) else do (Actions)
                • If
                  • B == 1
                • Then
                  • Variable - Set C = (C + 1)
                  • UI - Display boss bar C with title "Hitpoints", portrait Assets\Textures\btn-unit-terran-reaper.dds and maximum value (Integer((Player[A] Life (Current)))) for TempGroup
                  • UI - Move boss bar C to Bottom Left of screen with offset (25, 50)
                  • Variable - Set BossBar[A][1] = C
                • Else
                  • General - If (Conditions) then do (Actions) else do (Actions)
                    • If
                      • B == 2
                    • Then
                      • Variable - Set C = (C + 1)
                      • UI - Display boss bar C with title "Mana", portrait Assets\Textures\btn-upgrade-terran-apolloreactor.dds and maximum value (Integer((Player[A] Energy (Current)))) for TempGroup
                      • UI - Move boss bar C to Bottom Left of screen with offset (550, 50)
                      • Variable - Set BossBar[A][2] = C
                    • Else
                      • General - If (Conditions) then do (Actions) else do (Actions)
                        • If
                          • B == 3
                        • Then
                          • Variable - Set C = (C + 1)
                          • UI - Display boss bar C with title "Bullets - Ammo", portrait Assets\Textures\btn-upgrade-terran-u238shells.dds and maximum value Max Ammo[A] for TempGroup
                          • UI - Move boss bar C to Bottom Right of screen with offset (25, 125)
                          • Variable - Set BossBar[A][3] = C
                        • Else
                          • General - If (Conditions) then do (Actions) else do (Actions)
                            • If
                              • B == 4
                            • Then
                              • Variable - Set C = (C + 1)
                              • UI - Display boss bar C with title "Secondary Weapon", portrait Assets\Textures\btn-weapon-terran-longboltmissiles.dds and maximum value Max Second Ammo[A] for TempGroup
                              • UI - Move boss bar C to Bottom Right of screen with offset (25, 50)
                              • Variable - Set BossBar[A][4] = C
                            • Else

And this trigger to refresh the boss bars of each player.
Trigger:
  • RefreshBossBar
    • Events
      • Timer - Every 0.25 seconds of Game Time
    • Local Variables
    • Conditions
    • Actions
      • Player Group - Pick each player in Humans and do (Actions)
        • Actions
          • UI - Set boss bar BossBar[(Picked player)][1] current value to (Integer((MainUnit[(Picked player)] Life (Current)))) (Do refresh the boss bar)
          • UI - Set boss bar BossBar[(Picked player)][2] current value to (Integer((MainUnit[(Picked player)] Energy (Current)))) (Do refresh the boss bar)
(the MainUnit Variable is a unit array which holds the players' fighter unit)
Sorry for the long post, since when I used the CODE tag it distorted the layout of the WC3 tag.

2. Is there a way to show a leaderboard while hiding the game UI? I would like to hide the bottom UI bar while showing a leaderboard of some sort, however, the Hide Game UI action hides both. I was wondering if there was a trigger to just hide the bottom UI bar (The one with the unit portrait and command card).

Thanks
 

LordOfQc

New Member
Reaction score
0
Leaderboard response

I had problems with the leaderboard too but i found another way to create a leaderboard. You can do the same thing with a dialog. I will show you what i did and if you want i can help you to do it.

Sorry i can't take a screenshot when im on Starcraft but it looks good.
 

eXirrah

New Member
Reaction score
51
Did you test the map full house?

If not I believe the problem is that you display the boss bars for non existent
players. You should do it like this:

Trigger:
  • * UI Setup
    • o Events
      • + Timer - Elapsed time is 0.1 Game Time seconds
    • o Local Variables
      • + A = 0 <Integer>
      • + B = 0 <Integer>
      • + C = 0 <Integer>
      • + TempGroup = (Empty player group) <Player Group>
    • o Conditions
    • o Actions
      • Player Group - For each player A in (Active Players) do (Actions)
        • # Actions
          • * Player Group - Reset TempGroup to have no players
          • * Player Group - Add player A to TempGroup
          • ......

EDIT:
I believe there is an easier way to do that.
First of all, why do you need a loop for B if for each of it's values you
execute a different piece of code. You can remove the for loop B and
the ifs, and leave the code in the body of the if statements only.
The game will do the same stuff, except that the code will look cleaner
and execute smoother.

Second ... if you want to keep the ifs, why not use switch statement.
You choose the control variable (in your case B) and then put the code
in each of it's cases (1,2,3,4). The code will look cleaner.
 

Zaraf

New Member
Reaction score
22
Instead of the long nested IF statements, you should use a single Switch function.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top