Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
Ultimate GUI Hero Pick System 2.3 Created by -Kobas- Link to JASS version
------------------------------------------------------------------------- Please if you find any errors or bugs report them to me so I can fix them
Features: - Easy to understand/edit/import/use.
- Can be mixed with multiboard together.
- Small file size.
- Unique idea, perfect way to show people something new.
- Now MPI as well.
What is different in my system?
You can edit interface and play with it to make it look like anything you want really easily. How to add more buttons, for example hero icons
You will need to create new destructible doodads just like I did for buttons, edit texture and scaling value
Remember to trigger dummy unit as well. Why so long triggers and so many variables?
Well this system isn't created for 1 player, you can remove all interfaces except undead (example) and just edit variables easily (using another array integer) to make it usable for all players.
You can copy part of triggers as well, they will work perfectly fine alone cuz they use different variable. Can we add more options to system?
Of course, especially if you are working on Single Player maps, you will find system funny once when you remove 90% of triggers created for other players and interfaces Why GUI, use script instead, trackables and such things?
I won't answer to such question, and I will try to ignore such comments -.-
UGHPS Setup
Events
Map initialization
Conditions
Actions
-------- Player Colors --------
Set TextColor[1] = |c00FF0000
Set TextColor[2] = |c000042FF
Set TextColor[3] = |c001CE6B9
Set TextColor[4] = |c00540081
Set TextColor[5] = |c00FFFC01
Set TextColor[6] = |c00FEBA0E
Set TextColor[7] = |c0020C000
Set TextColor[8] = |c00E55BB0
Set TextColor[9] = |c00959697
Set TextColor[11] = |c00FFFFBB
Set TextColor[12] = |c00FF00FF
-------- Player Interface Regions --------
Set UGHPS_InterfaceRegion[1] = Player Interface 1 <gen>
Set UGHPS_InterfaceRegion[2] = Player Interface 2 <gen>
-------- Player multipli value, should be ranged from 100 to 800. Everything above 800 will ruin trigger cuz max array limit will be reached. --------
-------- I use 100 cuz 100 - 20 for each hero = 40 more room between. --------
Set Integer_i = 100
-------- Integer that calculate things, it's easier for me to work like this, if you need different value you can just change 1 variable instead all. --------
Set Integer_k = 1
-------- Interface Camera --------
Set UGHPS_Camera[1] = Interface 1 <gen>
-------- Damage --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 1))] = (Center of Damage 1 <gen>)
-------- Range --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 2))] = (Center of Range 1 <gen>)
-------- Armor --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 3))] = (Center of Armor 1 <gen>)
-------- AoE --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 4))] = (Center of AoE 1 <gen>)
-------- Support --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 5))] = (Center of Support 1 <gen>)
-------- Regeneration --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 6))] = (Center of Regeneration 1 <gen>)
-------- Hero Name --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 7))] = (Center of Hero Name 1 <gen>)
-------- Hero Class --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 8))] = (Center of Hero 1 <gen>)
-------- Hero Introduction --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 9))] = (Center of Intro 1 <gen>)
-------- Stats - Attributes --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 10))] = (Center of A 1 <gen>)
-------- Hero Spawn Location --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 11))] = (Center of Spawn Location 1 <gen>)
-------- Player multipli value, should be ranged from 100 to 800. Everything above 800 will ruin trigger cuz max array limit will be reached. --------
-------- I use 100 cuz 100 - 20 for each hero = 40 more room between. --------
Set Integer_i = 200
-------- Integer that calculate things, it's easier for me to work like this, if you need different value you can just change 1 variable instead all. --------
Set Integer_k = 1
-------- Interface Camera --------
Set UGHPS_Camera[2] = Interface 2 <gen>
-------- Damage --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 1))] = (Center of Damage 2 <gen>)
-------- Range --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 2))] = (Center of Range 2 <gen>)
-------- Armor --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 3))] = (Center of Armor 2 <gen>)
-------- AoE --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 4))] = (Center of AoE 2 <gen>)
-------- Support --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 5))] = (Center of Support 2 <gen>)
-------- Regeneration --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 6))] = (Center of Regeneration 2 <gen>)
-------- Hero Name --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 7))] = (Center of Hero Name 2 <gen>)
-------- Hero Class --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 8))] = (Center of Hero 2 <gen>)
-------- Hero Introduction --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 9))] = (Center of Intro 2 <gen>)
-------- Stats - Attributes --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 10))] = (Center of A 2 <gen>)
-------- Hero Spawn Location --------
Set UGHPS_HeroStats[(Integer_i + (Integer_k + 11))] = (Center of Spawn Location 2 <gen>)
-------- Disable camera variable for all players --------
Set UGHPS_CameraCheck[(Player number of (Player((Integer A))))] = False
-------- Add player select unit event to trigger below. --------
Trigger - Add to UGHPS Buttons <gen> the event (Player - (Player((Integer A))) Selects a unit)
-------- Add player skips cinematic or write xxx to right trigger. --------
Trigger - Add to UGHPS Progress <gen> the event (Player - (Player((Integer A))) skips a cinematic sequence)
Trigger - Add to UGHPS Progress <gen> the event (Player - (Player((Integer A))) types a chat message containing xxx as An exact match)
Trigger - Add to UGHPS Camera x <gen> the event (Time - UGHPS_CameraTimer[(Integer A)] expires)
-------- Let's make clickable units transparent (unvisible) --------
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in (Units in (Playable map area) matching (((Unit-type of (Matching unit)) Equal to Click) or ((Unit-type of (Matching unit)) Equal to Settings))) and do (Animation - Change (Picked unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency)
Set UGHPS_HERO_H[((Integer_i x (Integer A)) + Integer_k)] = Paladin
-------- Hero destructible model --------
Destructible - Hide UGHPS_HeroModel[((Integer_i x (Integer A)) + Integer_k)]
-------- Damage --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 1))] = |cFF00FF00IIIIIII|r|cFFFF0000III|r
-------- Range --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 2))] = |cFF00FF00II|r|cFFFF0000IIIIIIII|r
-------- Armor --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 3))] = |cFF00FF00IIII|r|cFFFF0000IIIIII|r
-------- AoE --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 4))] = |cFF00FF00I|r|cFFFF0000IIIIIIIII|r
-------- Support --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 5))] = |cFF00FF00IIIII|r|cFFFF0000IIIII|r
-------- Regeneration --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 6))] = |cFFFF0000IIIIIIIIII|r
-------- Hero Name --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 7))] = Aurrius the Pure
-------- Hero Class --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 8))] = |cffffcc00Palladin
-------- Hero Introduction --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 9))] = Warrior Hero, exceptional at defense and augmenting nearby friendly troops. Can learn Holy Light, Divine Shield, Devotion Aura and Resurrection. |n|n|cffffcc00Attacks land units.|r
-------- Stats - Attributes --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 10))] = (|cffffcc0022 + 2.7|r) (17 + 1.8) (13 + 1.5)
-------- Sound - Hero Selected --------
Set UGHPS_Sound[((Integer_i x (Integer A)) + Integer_k)] = HeroSelectedPaladin <gen>
-------- Sound - Hero Picked --------
Set UGHPS_Sound[((Integer_i x (Integer A)) + (Integer_k + 1))] = HeroPickedPaladin <gen>
Set UGHPS_HERO_H[((Integer_i x (Integer A)) + Integer_k)] = Blood Mage
-------- Hero destructible model --------
Destructible - Hide UGHPS_HeroModel[((Integer_i x (Integer A)) + Integer_k)]
-------- Damage --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 1))] = |cFF00FF00IIIIIII|r|cFFFF0000III|r
-------- Range --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 2))] = |cFF00FF00IIIII|r|cFFFF0000IIIII|r
-------- Armor --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 3))] = |cFF00FF00IIIIIIII|r|cFFFF0000II|r
-------- AoE --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 4))] = |cFFFF0000IIIIIIIIII|r
-------- Support --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 5))] = |cFFFF0000IIIIIIIIII|r
-------- Regeneration --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 6))] = |cFF00FF00II|r|cFFFF0000IIIIIIII|r
-------- Hero Name --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 7))] = Kelen the Destroyer
-------- Hero Class --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 8))] = |cffffcc00Blood Mage
-------- Hero Introduction --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 9))] = Mystical Hero, adept at controlling magic and ranged assaults. Can learn Flame Strike, Banish, Siphon Mana and Phoenix. |n|n|cffffcc00Attacks land and air units.|r
-------- Stats - Attributes --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 10))] = (18 + 2.0) (14 + 1.0) (|cffffcc0019 + 3.0|r)
-------- Sound - Hero Selected --------
Set UGHPS_Sound[((Integer_i x (Integer A)) + Integer_k)] = HeroSelectedBloodElf <gen>
-------- Sound - Hero Picked --------
Set UGHPS_Sound[((Integer_i x (Integer A)) + (Integer_k + 1))] = HeroPickedBloodElf <gen>
Set UGHPS_HERO_H[((Integer_i x (Integer A)) + Integer_k)] = Sylvanas Windrunner
-------- Hero destructible model --------
Destructible - Hide UGHPS_HeroModel[((Integer_i x (Integer A)) + Integer_k)]
-------- Damage --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 1))] = |cFF00FF00IIII|r|cFFFF0000IIIIII|r
-------- Range --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 2))] = |cFF00FF00IIIII|r|cFFFF0000IIIII|r
-------- Armor --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 3))] = |cFF00FF00IIIIIIII|r|cFFFF0000II|r
-------- AoE --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 4))] = |cFF00FF00IIIII|r|cFFFF0000IIIII|r
-------- Support --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 5))] = |cFFFF0000IIIIIIIIII|r
-------- Regeneration --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 6))] = |cFF00FF00II|r|cFFFF0000IIIIIIII|r
-------- Hero Name --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 7))] = Sylvanas Windrunner
-------- Hero Class --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 8))] = |cffffcc00Ranger
-------- Hero Introduction --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 9))] = Warrior Hero, adept at enhancing ranged attacks and slaying enemies from afar. Can learn Scout, Cold Arrows, Trueshot Aura, and Starfall. |n|n|cffffcc00Attacks land and air units.|r
-------- Stats - Attributes --------
Set UGHPS_StringAttributes[((Integer_i x (Integer A)) + (Integer_k + 10))] = (18 + 1.9 ) (|cffffcc0019 + 1.5|r) (15 + 2.6)
-------- Sound - Hero Selected --------
Set UGHPS_Sound[((Integer_i x (Integer A)) + Integer_k)] = HeroSelectedRanger <gen>
-------- Sound - Hero Picked --------
Set UGHPS_Sound[((Integer_i x (Integer A)) + (Integer_k + 1))] = HeroPickedRanger <gen>
UGHPS Camera
Events
Time - Every 0.10 seconds of game time
Conditions
Actions
-------- Each 0.1 sec we create timer that will set camera above system for right player if he use system. --------
For each (Integer Integer_c) from 1 to 2, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
UGHPS_CameraCheck[Integer_c] Equal to True
Then - Actions
Countdown Timer - Start UGHPS_CameraTimer[Integer_c] as a One-shot timer that will expire in 0.00 seconds
Else - Actions
UGHPS Camera x
Events
Conditions
Actions
-------- It's camera system, just copy it, nothing important really --------
For each (Integer Integer_c) from 1 to 2, do (Actions)
Loop - Actions
Custom script: if GetExpiredTimer() == udg_UGHPS_CameraTimer[udg_Integer_c] then
Camera - Apply UGHPS_Camera[(Player number of (Player(Integer_c)))] for (Player(Integer_c)) over 0.10 seconds
Skip remaining actions
Custom script: endif
Interface Human
Events
Unit - A unit Sells a unit
Conditions
(Unit-type of (Sold unit)) Equal to Human Interface
Actions
Destructible - Pick every destructible in UGHPS_InterfaceRegion[(Player number of (Owner of (Sold unit)))] and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border NE (D)
(Destructible-type of (Picked destructible)) Equal to Border Orc (D)
(Destructible-type of (Picked destructible)) Equal to Border UD (D)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border H (D) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border NE (DL)
(Destructible-type of (Picked destructible)) Equal to Border Orc (DL)
(Destructible-type of (Picked destructible)) Equal to Border UD (DL)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border H (DL) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border NE (DR)
(Destructible-type of (Picked destructible)) Equal to Border Orc (DR)
(Destructible-type of (Picked destructible)) Equal to Border UD (DR)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border H (DR) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border NE (L)
(Destructible-type of (Picked destructible)) Equal to Border Orc (L)
(Destructible-type of (Picked destructible)) Equal to Border UD (L)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border H (L) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border NE (R)
(Destructible-type of (Picked destructible)) Equal to Border Orc (R)
(Destructible-type of (Picked destructible)) Equal to Border UD (R)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border H (R) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border NE (U)
(Destructible-type of (Picked destructible)) Equal to Border Orc (U)
(Destructible-type of (Picked destructible)) Equal to Border UD (U)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border H (U) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border NE (UL)
(Destructible-type of (Picked destructible)) Equal to Border Orc (UL)
(Destructible-type of (Picked destructible)) Equal to Border UD (UL)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border H (UL) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border NE (UR)
(Destructible-type of (Picked destructible)) Equal to Border Orc (UR)
(Destructible-type of (Picked destructible)) Equal to Border UD (UR)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border H (UR) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
Interface Orc
Events
Unit - A unit Sells a unit
Conditions
(Unit-type of (Sold unit)) Equal to Orc Interface
Actions
Destructible - Pick every destructible in UGHPS_InterfaceRegion[(Player number of (Owner of (Sold unit)))] and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (D)
(Destructible-type of (Picked destructible)) Equal to Border NE (D)
(Destructible-type of (Picked destructible)) Equal to Border UD (D)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border Orc (D) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (DL)
(Destructible-type of (Picked destructible)) Equal to Border NE (DL)
(Destructible-type of (Picked destructible)) Equal to Border UD (DL)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border Orc (DL) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (DR)
(Destructible-type of (Picked destructible)) Equal to Border NE (DR)
(Destructible-type of (Picked destructible)) Equal to Border UD (DR)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border Orc (DR) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (L)
(Destructible-type of (Picked destructible)) Equal to Border NE (L)
(Destructible-type of (Picked destructible)) Equal to Border UD (L)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border Orc (L) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (R)
(Destructible-type of (Picked destructible)) Equal to Border NE (R)
(Destructible-type of (Picked destructible)) Equal to Border UD (R)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border Orc (R) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (U)
(Destructible-type of (Picked destructible)) Equal to Border NE (U)
(Destructible-type of (Picked destructible)) Equal to Border UD (U)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border Orc (U) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (UL)
(Destructible-type of (Picked destructible)) Equal to Border NE (UL)
(Destructible-type of (Picked destructible)) Equal to Border UD (UL)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border Orc (UL) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (UR)
(Destructible-type of (Picked destructible)) Equal to Border NE (UR)
(Destructible-type of (Picked destructible)) Equal to Border UD (UR)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border Orc (UR) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
Interface Night Elf
Events
Unit - A unit Sells a unit
Conditions
(Unit-type of (Sold unit)) Equal to Night Elf Interface
Actions
Destructible - Pick every destructible in UGHPS_InterfaceRegion[(Player number of (Owner of (Sold unit)))] and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (D)
(Destructible-type of (Picked destructible)) Equal to Border Orc (D)
(Destructible-type of (Picked destructible)) Equal to Border UD (D)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border NE (D) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (DL)
(Destructible-type of (Picked destructible)) Equal to Border Orc (DL)
(Destructible-type of (Picked destructible)) Equal to Border UD (DL)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border NE (DL) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (DR)
(Destructible-type of (Picked destructible)) Equal to Border Orc (DR)
(Destructible-type of (Picked destructible)) Equal to Border UD (DR)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border NE (DR) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (L)
(Destructible-type of (Picked destructible)) Equal to Border Orc (L)
(Destructible-type of (Picked destructible)) Equal to Border UD (L)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border NE (L) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (R)
(Destructible-type of (Picked destructible)) Equal to Border Orc (R)
(Destructible-type of (Picked destructible)) Equal to Border UD (R)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border NE (R) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (U)
(Destructible-type of (Picked destructible)) Equal to Border Orc (U)
(Destructible-type of (Picked destructible)) Equal to Border UD (U)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border NE (U) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (UL)
(Destructible-type of (Picked destructible)) Equal to Border Orc (UL)
(Destructible-type of (Picked destructible)) Equal to Border UD (UL)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border NE (UL) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (UR)
(Destructible-type of (Picked destructible)) Equal to Border Orc (UR)
(Destructible-type of (Picked destructible)) Equal to Border UD (UR)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border NE (UR) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
Interface Undead
Events
Unit - A unit Sells a unit
Conditions
(Unit-type of (Sold unit)) Equal to Undead Interface
Actions
Destructible - Pick every destructible in UGHPS_InterfaceRegion[(Player number of (Owner of (Sold unit)))] and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (D)
(Destructible-type of (Picked destructible)) Equal to Border Orc (D)
(Destructible-type of (Picked destructible)) Equal to Border NE (D)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border UD (D) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (DL)
(Destructible-type of (Picked destructible)) Equal to Border Orc (DL)
(Destructible-type of (Picked destructible)) Equal to Border NE (DL)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border UD (DL) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (DR)
(Destructible-type of (Picked destructible)) Equal to Border Orc (DR)
(Destructible-type of (Picked destructible)) Equal to Border NE (DR)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border UD (DR) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (L)
(Destructible-type of (Picked destructible)) Equal to Border Orc (L)
(Destructible-type of (Picked destructible)) Equal to Border NE (L)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border UD (L) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (R)
(Destructible-type of (Picked destructible)) Equal to Border Orc (R)
(Destructible-type of (Picked destructible)) Equal to Border NE (R)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border UD (R) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (U)
(Destructible-type of (Picked destructible)) Equal to Border Orc (U)
(Destructible-type of (Picked destructible)) Equal to Border NE (U)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border UD (U) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (UL)
(Destructible-type of (Picked destructible)) Equal to Border Orc (UL)
(Destructible-type of (Picked destructible)) Equal to Border NE (UL)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border UD (UL) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Destructible-type of (Picked destructible)) Equal to Border H (UR)
(Destructible-type of (Picked destructible)) Equal to Border Orc (UR)
(Destructible-type of (Picked destructible)) Equal to Border NE (UR)
Then - Actions
Set point_p = (Position of (Picked destructible))
Destructible - Create a Border UD (UR) at point_p facing 0.00 with scale 1.00 and variation 0
Custom script: call RemoveLocation ( udg_point_p)
Destructible - Remove (Picked destructible)
Else - Actions
UGHPS Progress
Events
Conditions
Actions
Set UGHPS_CameraCheck[(Player number of (Triggering player))] = True
Camera - Apply UGHPS_Camera[(Player number of (Triggering player))] for (Triggering player) over 0.00 seconds
Trigger - Turn on UGHPS Camera <gen>
UGHPS Buttons
Events
Conditions
(Unit-type of (Triggering unit)) Equal to Click
Actions
-------- Turn off trigger to fix small bug when player click fast on icon and create few heroes at same time. --------
Trigger - Turn off (This trigger)
-------- Remove selected unit from player selection. --------
Selection - Clear selection for (Triggering player)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Triggering unit) Equal to Click 0001 <gen>
(Triggering unit) Equal to Click 0008 <gen>
Then - Actions
-------- Hero number --------
-------- WARRNING: 20 is integer_k value from setup trigger, we used 20 as multiple there (20 for 1st hero, 40 for 2nd 60 for 3rd) --------
Set Integer_k = 20
-------- integer_h is variable that define hero, unneeded really but it makes trigger action below more eye kindly. --------
Set Integer_h = ((Integer_i x (Player number of (Triggering player))) + Integer_k)
-------- Location variable that use position of created unit, used for cleaning leaks :) --------
Set point_p = (Position of (Triggering unit))
-------- We create effect on hero icon (variable point_p) --------
Special Effect - Create a special effect at point_p using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
-------- We destroy same effect to clean leak. --------
Special Effect - Destroy (Last created special effect)
-------- We destroy point_p to clean leaks. --------
Custom script: call RemoveLocation ( udg_point_p)
For each (Integer A) from 1 to 3, do (Actions)
Loop - Actions
-------- WARRNING: 20 is integer_k value from setup trigger, we used 20 as multiple there (20 for 1st hero, 40 for 2nd 60 for 3rd) --------
-------- We hide all hero destructibles shown to player --------
Destructible - Hide UGHPS_HeroModel[(((Player number of (Triggering player)) x Integer_i) + (20 x (Integer A)))]
-------- Now only show right one :) --------
Destructible - Show UGHPS_HeroModel[(((Player number of (Triggering player)) x Integer_i) + Integer_k)]
-------- Play sound when player click on hero icon --------
Sound - Play UGHPS_Sound[((Integer_i x (Player number of (Triggering player))) + Integer_k)] at 100.00% volume, attached to (Triggering unit)
-------- Let's remove all text, create new one and store it to variables once again. --------
For each (Integer A) from 1 to 11, do (Actions)
Loop - Actions
Floating Text - Destroy UGHPS_FT[(Integer A)]
Floating Text - Create floating text that reads UGHPS_StringAttributes[(((Player number of (Triggering player)) x Integer_i) + (Integer_k + (Integer A)))] at UGHPS_HeroStats[(((Player number of (Triggering player)) x Integer_i) + ((Integer A) + 1))] with Z offset 0.00, using font size 8.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
Set UGHPS_FT[(Integer A)] = (Last created floating text)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Triggering unit) Equal to Click 0005 <gen>
(Triggering unit) Equal to Click 0009 <gen>
Then - Actions
-------- Hero number --------
-------- WARRNING: 40 is integer_k value from setup trigger, we used 20 as multiple there (20 for 1st hero, 40 for 2nd 60 for 3rd) --------
Set Integer_k = 40
-------- integer_h is variable that define hero, unneeded really but it makes trigger action below more eye kindly. --------
Set Integer_h = ((Integer_i x (Player number of (Triggering player))) + Integer_k)
-------- Location variable that use position of created unit, used for cleaning leaks :) --------
Set point_p = (Position of (Triggering unit))
-------- We create effect on hero icon (variable point_p) --------
Special Effect - Create a special effect at point_p using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
-------- We destroy same effect to clean leak. --------
Special Effect - Destroy (Last created special effect)
-------- We destroy point_p to clean leaks. --------
Custom script: call RemoveLocation ( udg_point_p)
For each (Integer A) from 1 to 3, do (Actions)
Loop - Actions
-------- WARRNING: 20 is integer_k value from setup trigger, we used 20 as multiple there (20 for 1st hero, 40 for 2nd 60 for 3rd) --------
-------- We hide all hero destructibles shown to player --------
Destructible - Hide UGHPS_HeroModel[(((Player number of (Triggering player)) x Integer_i) + (20 x (Integer A)))]
-------- Now only show right one :) --------
Destructible - Show UGHPS_HeroModel[(((Player number of (Triggering player)) x Integer_i) + Integer_k)]
-------- Play sound when player click on hero icon --------
Sound - Play UGHPS_Sound[((Integer_i x (Player number of (Triggering player))) + Integer_k)] at 100.00% volume, attached to (Triggering unit)
-------- Let's remove all text, create new one and store it to variables once again. --------
For each (Integer A) from 1 to 11, do (Actions)
Loop - Actions
Floating Text - Destroy UGHPS_FT[(Integer A)]
Floating Text - Create floating text that reads UGHPS_StringAttributes[(((Player number of (Triggering player)) x Integer_i) + (Integer_k + (Integer A)))] at UGHPS_HeroStats[(((Player number of (Triggering player)) x Integer_i) + ((Integer A) + 1))] with Z offset 0.00, using font size 8.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
Set UGHPS_FT[(Integer A)] = (Last created floating text)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Triggering unit) Equal to Click 0003 <gen>
(Triggering unit) Equal to Click 0010 <gen>
Then - Actions
-------- Hero number --------
-------- WARRNING: 60 is integer_k value from setup trigger, we used 20 as multiple there (20 for 1st hero, 40 for 2nd 60 for 3rd) --------
Set Integer_k = 60
-------- integer_h is variable that define hero, unneeded really but it makes trigger action below more eye kindly. --------
Set Integer_h = ((Integer_i x (Player number of (Triggering player))) + Integer_k)
-------- Location variable that use position of created unit, used for cleaning leaks :) --------
Set point_p = (Position of (Triggering unit))
-------- We create effect on hero icon (variable point_p) --------
Special Effect - Create a special effect at point_p using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
-------- We destroy same effect to clean leak. --------
Special Effect - Destroy (Last created special effect)
-------- We destroy point_p to clean leaks. --------
Custom script: call RemoveLocation ( udg_point_p)
For each (Integer A) from 1 to 3, do (Actions)
Loop - Actions
-------- WARRNING: 20 is integer_k value from setup trigger, we used 20 as multiple there (20 for 1st hero, 40 for 2nd 60 for 3rd) --------
-------- We hide all hero destructibles shown to player --------
Destructible - Hide UGHPS_HeroModel[(((Player number of (Triggering player)) x Integer_i) + (20 x (Integer A)))]
-------- Now only show right one :) --------
Destructible - Show UGHPS_HeroModel[(((Player number of (Triggering player)) x Integer_i) + Integer_k)]
-------- Play sound when player click on hero icon --------
Sound - Play UGHPS_Sound[((Integer_i x (Player number of (Triggering player))) + Integer_k)] at 100.00% volume, attached to (Triggering unit)
-------- Let's remove all text, create new one and store it to variables once again. --------
For each (Integer A) from 1 to 11, do (Actions)
Loop - Actions
Floating Text - Destroy UGHPS_FT[(Integer A)]
Floating Text - Create floating text that reads UGHPS_StringAttributes[(((Player number of (Triggering player)) x Integer_i) + (Integer_k + (Integer A)))] at UGHPS_HeroStats[(((Player number of (Triggering player)) x Integer_i) + ((Integer A) + 1))] with Z offset 0.00, using font size 8.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
Set UGHPS_FT[(Integer A)] = (Last created floating text)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
Or - Any (Conditions) are true
Conditions
(Triggering unit) Equal to Click 0022 <gen>
(Triggering unit) Equal to Click 0007 <gen>
Integer_h Not equal to 0
Then - Actions
Set UGHPS_CameraCheck[(Player number of (Triggering player))] = False
Unit - Create 1 UGHPS_HERO_H[Integer_h] for (Triggering player) at UGHPS_HeroStats[(((Player number of (Triggering player)) x Integer_i) + 12)] facing Default building facing degrees
-------- Let's display message to enemy players --------
Set UGHPS_TempForce = (All enemies of (Triggering player))
Quest - Display to UGHPS_TempForce the Hint message: (TextColor[(Player number of (Triggering player))] + ((Name of (Triggering player)) + (|r has picked + (Name of (Last created unit)))))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Triggering unit) Equal to Click 0002 <gen>
(Triggering unit) Equal to Click 0006 <gen>
Then - Actions
Set UGHPS_CameraCheck[(Player number of (Triggering player))] = False
Set Integer_h = ((Integer_i x (Player number of (Triggering player))) + (20 x (Random integer number between 1 and 3)))
Unit - Create 1 UGHPS_HERO_H[Integer_h] for (Triggering player) at UGHPS_HeroStats[(((Player number of (Triggering player)) x Integer_i) + 12)] facing Default building facing degrees
-------- Let's display message to enemy players --------
Set UGHPS_TempForce = (All enemies of (Triggering player))
Quest - Display to UGHPS_TempForce the Hint message: (TextColor[(Player number of (Triggering player))] + ((Name of (Triggering player)) + (|r has randomed + (Name of (Last created unit)))))
-------- Play sound when player select hero --------
Sound - Play UGHPS_Sound[Integer_h] at 100.00% volume, attached to (Last created unit)
-------- Location variable that use position of created unit, used for cleaning leaks :) --------
Set point_p = (Position of (Last created unit))
Camera - Pan camera for (Triggering player) to point_p over 0.00 seconds
Wait 0.00 seconds
-------- We create effect on hero spawn location (variable point_p) --------
Special Effect - Create a special effect at point_p using Abilities\Spells\Human\Resurrect\ResurrectTarget.mdl
-------- We destroy same effect to clean leak. --------
Special Effect - Destroy (Last created special effect)
Camera - Reset camera for (Triggering player) to standard game-view over 0.00 seconds
-------- We destroy point_p to clean leaks. --------
Custom script: call RemoveLocation ( udg_point_p)
Wait 0.00 seconds
Trigger - Turn on (This trigger)
Skip remaining actions
Else - Actions
Please if you find any errors or bugs report them to me so I can fix them
Change Log
Version 1.0
- Uploaded Spell Version 1.1
- Added blockade to stop players from creating 2 or more heroes with fast clicking (Thanks to Maker)
- Fixed leak trigger action
- Optimized main trigger a little
- Added more documentation and description (Loading Screen as well) Version 1.2
- Optimized triggers to max
- New interface design
- Easier to understand/edit/import/use
- Smaller size Version 1.2b
- Optimized camera triggers (Maker) Version 2.0 Ultimate
- First MPI version
- New hero stats display
- Removed Spells (for now) Version 2.1 Ultimate
- Fixed/Optimized triggers
- More comments Version 2.2 Ultimate
- Added colored text and messages displayed to enemy players when you pick or random your hero
- Added sound when you select or pick hero
- Added Settings button where you can pick 1 between 4 different interfaces
- New system look (Resized models, edited text etc etc) Version 2.3 Ultimate
Fixed/Improved:
- When pressing ESC, the camera pans to the hero selection screen. Make the camera apply instantly. You can also use fade out, apply cam, fade in.
- One can get two heroes if the OK button is clicked rapidly.
- If one clicks OK before a hero is selected, the camera will pan to the center of the map. This situation is not handled with triggers.
- UGHPS camera timers are not initialized automatically for other indexes than 0 and 1. That means it won't work for player 2. You need to create the other timers yourself.
- You should add the events of UGHPS Camera x trigger in the setup trigger.
- UGHPS Buttons does the checks for the rest of the unit types even if it has found a match already. Use skip remaining actions or put the if/then/elses inside each other.
- P2 hero models aren't initially hidden.
- UGHPS Setup has two events, only use Map Initialization.
- Add importing instructions into the map.
Approved. Great system.
Improvements:
-The units sold triggers should be turned off when there are no players in the screen
-Set the number of players into a variable at map initiliazation, use the variable in UGHPS Camera triggers
-Perhaps...
First it looks epic at pictures, i'd like to see it in DotA, seconds it looks a bit complicated and that makes me like it even more
second what is that at upper right point, it's cutted and it's on both pictures
UI looks epic and it fits to multiboard but sadly you didn't do anything of it? are you ?
New version will contain only 2 heroes and night elf interface.
Still I will keep all settings in map so you can easily pick and create anything you want.
After this new version I will improve it a little and add few more heroes, maybe taverns and such options.
You need to copy whole system interface few times (1 for each player).
Triggers are MUI so just add unit for right icons into right conditions.
Also you will need to edit camera and progress trigger.
I will do it myself in few days so you can wait as well.
OK I was trying to figure out why they moved away I readded the old buttons so alls you have to do is look at the interface(outside of the map) and test the map to see the issue I was having press -nss during the game to activate the interface. new map is attached to post.
basically it doesn't alternate between sentinel and scourge taverns anymore and the one button is disabled for some reason and the one button that i fixed to test out if it would disable doesn't disable.
Here you go, I edited it a little, as you can see I just gave you base idea what to do, when player click on tavern it will change value of integer variable named "A".
First tavern change it to 1, 2nd into 2 etc etc.
All hero icons that are located on same location use same button.
When player click on button if then else function check value of integer variable "A".
If value equal to 1 hero located on 1st place from tavern 1 will be showed (just like on test map).
You can go on now edit variable values, add more buttons hero models and icons.
But I suggest you to wait until I create fully working up to 12 player supported version. (You can always try yourself as well )
Ok, I will play around with this one and try to get it to work with mui, I need to practice my trigger skills anyway. Any simple advice getting it to work?
deffently a nice system cant wait for the muilti player version
only thing i dislike is that the floating text is blury and that the skills is in the same location as the heros u can select what happends when u got a shit load of heros that cover like the whole thing or half of (or down past the first skill info). but this can all be fixxed with customization and looking at the triggers it all seems streat forward and easy to customize.
I altered and edited this into my map -Kobas- from you v1.1...
hope you like how I used it
Also if you can't put this into your map you might as well give up until you learn a bit more about GUI...
Thx to you I have an awsome way of how to pick the Lords on my map thx
I use models and textures, there is no such triggers
You can create, move, remove objects with triggers, but you need models, because you create objects with them.
I started working on ultimate version that will support up to 12 players.
Ofc I will create it only for 2 but with simple copy and paste you can do anything you want.
So far I finished setup. I just need to trigger events when players click on icons.
I remade the triggers for my map to be MPI feel free to use
Pasetebin -here it is, u can use if u want. I removed the skills becuase in my map they doesn't fit (30-50 skills per hero... well ofc they doesn't fit ) Made new types of bars... if some1 uses it in his map pls Write my lovely little name in the credits thanks!
BTW named it 2.0 because with full multiplayer support it could be called a brand new version And I recoded the entire button trigger because the original script wasn't automatical enough... Now it just takes the new buttons and heroes, you don't have to copy the entire button selection part Checked in multiplayer and for Illidian's sake it didn't desync Oh and I made the position of the texts tobe relative to each other, so you only have to position hero name... Advanced users can change easily and it'll make ppl with less knowledge to import it at ease (it was very hard to import it into a different map with different position It took me like 2 hours to set the coordinates precisely xD)
Thanks for support, I'm still busy with my hosted project, as soon as I finish this system for it I will upload MPI version here as well.
Also trackables will be used as well.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.