1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. The raddest synthwave tracks were chosen - Check out our Music Contest #12 - Results and congratulate the winners!
    Dismiss Notice
  5. The poll for Hive's 12th Concept Art Contest is up! Go cast your vote for your favourite genie!
    Dismiss Notice
  6. Travel to distant realms and encounter scenes unknown to the common folk. The Greatest of Adventures is upon us with the 8th Cinematic Contest. Join in on a fun ride.
    Dismiss Notice
  7. The 18th Icon Contest is ON! Choose any ingame unit and give him/her Hero abilities. Good luck to all.
    Dismiss Notice
  8. Contestants are to create a scene set in the Stone Age. Come and see what you can come up with. We wish you the best of luck!
    Dismiss Notice
  9. Colour outside the lines! Techtree Contest #13 is a go. The contest is optionally paired.
    Dismiss Notice
  10. Greetings cerebrates, our Swarm needs new spawners that will have numerous children. Join the HIVE's 31st Modeling Contest - Spawners and Spawned! The contest is optionally paired.
    Dismiss Notice
  11. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

The_Flood's Hero Selection System V1.3a

Submitted by lolreported
This bundle is marked as approved. It works and satisfies the submission rules.
The_Flood's Hero Selection System [Version 1.3a]

This system is created by The_Flood (Flood @ hiveworkshop). Give credits when used or modified.

You may edit this system how much you want, but don't contact me if your changes does not work properly because that isn't my problem, but if you haven't modified anything and the system isn't working as it should, please contact me then! =)

The_Flood's Hero Selection System is a system that allow you to create an original way of hero selection. I think a lot of players are tired of the old "tavern"-selections and then I came up with this. By using a multiboard you can scroll heroes through a list, up and down, using your arrow-keys. An information text will then be displayed to the right about the current selected hero. There's absolutely no limit of how many heroes you can put into this system, the scroll feature will always make sure the correct heroes will be shown. You'll select the hero by pressing the right arrowkey.

This system is also MPI, allowing up to 12 players use it at the same time. I'm using > > if GetLocalPlayer() == Player(udg_HSS_Integer[0] - 1) then < < to make sure each player has it's own multiboard.

This system is user-friendly and has no leaks at all, so have fun using it!

Make sure you read the HSS READ ME, when you've opened the map. There's a lot of text there that tells you how to use this system.

TRIGGERS

TRIGGERS

HSS README
Code (vJASS):
###########################################################################################################
###########################################################################################################
################################ THE_FLOOD'S HERO SELECTION SYSTEM [HSS] ##################################
############################################# VERSION: 1.2a ###############################################
###########################################################################################################

This system is created by The_Flood (Flood at hiveworkshop). Give credits when used or modified.

You may edit this system how much you want, but don'
t contact me if your changes does not work properly
because that isn't my problem, but if you haven't modified anything and the system isn't working as it
should, please contact me then! =)


The_Flood'
s Hero Selection System is a system that allow you to create an original way of hero selection. I
think a lot of players are tired of the old "tavern"-selections and then I came up with this. By using a
multiboard you can scroll heroes through a list, up and down, using your arrow-keys. An information text
will then be displayed to the right about the current selected hero. There's absolutely no limit of how
many heroes you can put into this system, the scroll feature will always make sure the correct heroes will
be shown.

This system is also MPI, allowing up to 12 players use it at the same time. I'
m using
> > if GetLocalPlayer() == Player(udg_HSS_Integer[0] - 1) then < < to make sure each player has it's own
multiboard.

This system is user-friendly and has no leaks at all, so have fun using it!



###########################################################################################################
                    [How do I import this system?]

It'
s simple. Paste the whole folder "The_Floods HSS" into your map and make sure you've checked the
"[X] Automatically create unknown variables while pasting trigger data" in File > Preferences.

Also, you need to copy some script that can be found under the script folder called: "The_FloodsHSS.w3x" and
paste it at the same place in your map.

When you'
ve done this, you can start using this system!



###########################################################################################################
                    [How do I setup this system?]

The only thing you'll have to do is to edit the stuffs in the "HSS Initialization" trigger. You can easily
read and change the variables there to make this system as you want it.

//  This is the name of the multiboard.
Set HSS_MultiboardName = |cffFF8000The_Flood'
s Hero Selection System|r


//  This is how many heroes you want to be visible at the same time at the "scroll-list".
Set HSS_NumberOfHeroesDisplayed = 5 // MAXIMUM IS 25!


//  This is the color that the strength-text will be displayed with.
Set HSS_StrengthColorAndText = |c00FF0000Strength: |r


//  This is the color that the agility-text will be displayed with.
Set HSS_AgilityColorAndText = |c0096FF96Agility: |r


//  This is the color that the intelligence-text will be displayed with.
Set HSS_IntelligenceColorAndText = |c006969FFIntelligence: |r


//  This is a boolean (true or false variable) that will allow you to determine if the heroes stats shall appear
//  at the top of the descriptiontext or the bottom. (true = TOP, false = BOTTOM)
Set HSS_DisplayAttributesAtTop = True


//  This is the color of the "viewing-text". This is the color that the current selected hero in the "scroll-list"
//  will use.
Set HSS_ViewingColor = |cffFF8000


//  This is the color of the "already-selected-text". All selected heroes names will be displayed with this color.
//  This will only appear if HSS_CanUseTheSameHeroes is set to false. (Read below about this).
Set HSS_SelectedColor = |cffff0000


//  This is where the selected hero will be created. Set one location for each player in your map.
//  This is an example of Player 1's start location.
Set HSS_Player_HeroSpawnLocation[1] = (Playable map area)


//  This is a boolean (true or false variable) that allow you to set if the same hero can be picked again or not.
//  If you set it to false, the players can't pick this hero again.
//  If you set it to true, the players can pick this hero again.
Set HSS_CanUseTheSameHeroes = False


//  This is a boolean (true or false variable) that allow you to change if the players current selected hero
//  shall be colored in your "view-color" (above) or shall be colored with your "selected-color" (above) if
//  the hero is picked. This will only be used if HSS_CanUseTheSameHeroes is set to false.
Set HSS_IfPickedSelectViewColor = False



//  This is the text that will appear if the hero a player wants to pick already is picked.
//  This will only appear if HSS_CanUseTheSameHeroes is set to false.
Set HSS_HeroSelectedHeroWarning = |cffff0000Error:|r This hero has already been selected!


//  This is the duration of how long time the text above will be displayed.
Set HSS_HeroSelectedWarningDur = 5.00



###########################################################################################################
                    [How do I add a hero to this system?]

It's extremely simple! You only need a minimum of two actions.

The most important one is this function:

Custom script:   call HSSAddHero('
Hpal', "Paladin", "ReplaceableTextures\\CommandButtons\\BTNHeroPaladin.blp", "22 (+2.7)", "13 (+1.5)", "17 (+1.8)")

It'
s very easy to use when you know how it works.


We'll start with the first argument: 'Hpal'.

    This is the raw-code of your hero (the unit-type). You can see this by visit the Object Editor and press: Ctrl + D.

Next is the "Paladin".

    This is the name of your hero.

3rd is: "ReplaceableTextures\\CommandButtons\\BTNHeroPaladin.blp"

    This is the icon your hero shall have in this system.
    WARNING: You MUST use two "\\" or else it won'
t work, in worst cases, world editor will crash.

4th: "22 (+2.7)"

    This is the amount of strength your hero starts with and how much strength that is gained per level.

5th: "13 (+1.5)"

    This is the amount of agility your hero starts with and how much agility that is gained per level.

and 6th: "17 (+1.8)"

    This is the amount of intelligence your hero starts with and how much intelligence that is gained per level.


And now we're almost done! The only thing left is the description text for your hero. It's very simple to add this, just check
those functions out:

Custom script:   call HSSAddDT1("Warrior Hero, exceptional at defense and augmenting nearby friendly troops.")
//This adds a text to the first description row for your hero.

Custom script:   call HSSAddDT2("")
//This adds a text to the second description row for your hero.

Custom script:   call HSSAddDT3("Range: Melee")
//This adds a text to the third description row for your hero.

and so on, very simple! :)

Warning: You should only use a maximum of 100 characters for each description row.
Warning: There's a maximum of 10 description rows (Custom script:   call HSSAddDT10("LAST ONE").
Warning: You may create more of those by your own, but it'
s up to you. If something went wrong it's not my fault.


###########################################################################################################

Map Script
Code (vJASS):
function HSSAddHero takes integer hssHero, string hssName, string hssIcon, integer hssSStr, integer hssSAgi, integer hssSInt returns nothing
    set udg_HSS_MaxHeroes = ( udg_HSS_MaxHeroes + 1 )
    set udg_HSS_Hero[udg_HSS_MaxHeroes] = hssHero
    set udg_HSS_HeroName[udg_HSS_MaxHeroes] = hssName
    set udg_HSS_HeroIcon[udg_HSS_MaxHeroes] = hssIcon
    set udg_HSS_HeroStartStrength[udg_HSS_MaxHeroes] = hssSStr
    set udg_HSS_HeroStartAgility[udg_HSS_MaxHeroes] = hssSAgi
    set udg_HSS_HeroStartIntelligence[udg_HSS_MaxHeroes] = hssSInt
endfunction

function HSSAddDT1 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow1[udg_HSS_MaxHeroes] = DT
endfunction

function HSSAddDT2 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow2[udg_HSS_MaxHeroes] = DT
endfunction

function HSSAddDT3 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow3[udg_HSS_MaxHeroes] = DT
endfunction

function HSSAddDT4 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow4[udg_HSS_MaxHeroes] = DT
endfunction

function HSSAddDT5 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow5[udg_HSS_MaxHeroes] = DT
endfunction

function HSSAddDT6 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow6[udg_HSS_MaxHeroes] = DT
endfunction

function HSSAddDT7 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow7[udg_HSS_MaxHeroes] = DT
endfunction

function HSSAddDT8 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow8[udg_HSS_MaxHeroes] = DT
endfunction

function HSSAddDT9 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow9[udg_HSS_MaxHeroes] = DT
endfunction

function HSSAddDT10 takes string DT returns nothing
    set udg_HSS_DescriptionTextRow10[udg_HSS_MaxHeroes] = DT
endfunction

HSS Initialization
  • HSS Initialization
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • -------- First time using this system? Check out the HSS READ ME!! --------
      • -------- First time using this system? Check out the HSS READ ME!! --------
      • -------- ---------------------------------------------------------------------------------------- --------
      • -------- ---------------------------------------------------------------------------------------- --------
      • -------- ------------------------------------------------------ [INITIALIZE THE MULTIBOARD] ------------------------------------------------------ --------
      • Set HSS_MultiboardName = |cffFF8000The_Flood's Hero Selection System [Version 1.2a]|r
      • Set HSS_NumberOfHeroesDisplayed = 5
      • -------- ---------------------------------------------------------------------------------------- --------
      • Set HSS_StrengthColorAndText = |c00FF0000Strength: |r
      • Set HSS_AgilityColorAndText = |c0096FF96Agility: |r
      • Set HSS_IntelligenceColorAndText = |c006969FFIntelligence: |r
      • Set HSS_DisplayAttributesAtTop = True
      • -------- ---------------------------------------------------------------------------------------- --------
      • Set HSS_ViewingColor = |cffFF8000
      • Set HSS_SelectedColor = |cffff0000
      • -------- ---------------------------------------------------------------------------------------- --------
      • Set HSS_Player_HeroSpawnLocation[1] = (Playable map area)
      • Set HSS_Player_HeroSpawnLocation[2] = (Playable map area)
      • Set HSS_Player_HeroSpawnLocation[3] = (Playable map area)
      • -------- ---------------------------------------------------------------------------------------- --------
      • Set HSS_CanUseTheSameHeroes = False
      • Set HSS_IfPickedSelectViewColor = False
      • -------- ---------------------------------------------------------------------------------------- --------
      • Set HSS_HeroSelectedHeroWarning = |cffff0000Error:|r This hero has already been selected!
      • Set HSS_HeroSelectedWarningDur = 5.00
      • -------- ---------------------------------------------------------------------------------------- --------
      • -------- ------------------------------------------------------ [INITIALIZE THE HEROES] ------------------------------------------------------ --------
      • -------- ---------------------------------------------------------------------------------------- --------
      • Custom script: call HSSAddHero('Hpal', "Paladin", "ReplaceableTextures\\CommandButtons\\BTNHeroPaladin.blp", "22 (+2.7)", "13 (+1.5)", "17 (+1.8)")
      • Custom script: call HSSAddDT1("Warrior Hero, exceptional at defense and augmenting nearby friendly troops.")
      • Custom script: call HSSAddDT2("")
      • Custom script: call HSSAddDT3("Range: Melee")
      • Custom script: call HSSAddDT4("")
      • Custom script: call HSSAddDT5("|cffFF8000Abilities:|r Holy Light, Divine Shield, Devotion Aura and Resurrection.")
      • -------- ---------------------------------------------------------------------------------------- --------
      • Custom script: call HSSAddHero('Hamg', "Archmage", "ReplaceableTextures\\CommandButtons\\BTNHeroArchMage.blp", "14 (+1.8)", "19 (+1.0)", "17 (+3.2)")
      • Custom script: call HSSAddDT1("Mystical Hero, adept at ranged assaults.")
      • Custom script: call HSSAddDT2("")
      • Custom script: call HSSAddDT3("Range: 600")
      • Custom script: call HSSAddDT4("")
      • Custom script: call HSSAddDT5("|cffFF8000Abilities:|r Blizzard, Brilliance Aura, Summon Water Elemental and Mass Teleport.")
      • -------- ---------------------------------------------------------------------------------------- --------
      • Custom script: call HSSAddHero('Hmkg', "Mountain King", "ReplaceableTextures\\CommandButtons\\BTNHeroMountainKing.blp", "24 (+3.0)", "11 (+1.5)", "15 (+1.5)")
      • Custom script: call HSSAddDT1("Warrior Hero, adept at offensive combat and disrupting enemy troops.")
      • Custom script: call HSSAddDT2("")
      • Custom script: call HSSAddDT3("Range: Melee")
      • Custom script: call HSSAddDT4("")
      • Custom script: call HSSAddDT5("|cffFF8000Abilities:|r Thunder Clap, Storm Bolt, Bash and Avatar.")
      • -------- ---------------------------------------------------------------------------------------- --------
      • Custom script: call HSSAddHero('Hblm', "Blood Mage", "ReplaceableTextures\\CommandButtons\\BTNHeroBloodElfPrince.blp", "18 (+2.0)", "14 (+1.0)", "19 (+3.0)")
      • Custom script: call HSSAddDT1("Mystical Hero, adept at controlling magic and ranged assaults.")
      • Custom script: call HSSAddDT2("")
      • Custom script: call HSSAddDT3("Range: 600")
      • Custom script: call HSSAddDT4("")
      • Custom script: call HSSAddDT5("|cffFF8000Abilities:|r Flame Strike, Banish, Spihon Mana and Pheonix.")
      • -------- ---------------------------------------------------------------------------------------- --------
      • Custom script: call HSSAddHero('Obla', "Blademaster", "ReplaceableTextures\\CommandButtons\\BTNHeroBlademaster.blp", "18 (+2.0)","23 (+1.75)", "16 (+2.25)")
      • Custom script: call HSSAddDT1("Cunning Hero, adept at quickly killing individual units and creating confusion among enemies.")
      • Custom script: call HSSAddDT2("")
      • Custom script: call HSSAddDT3("Range: Melee")
      • Custom script: call HSSAddDT4("")
      • Custom script: call HSSAddDT5("|cffFF8000Abilities:|r Wind Walk, Critical Strike, Mirror Image and Bladestorm.")
      • -------- ---------------------------------------------------------------------------------------- --------
      • Custom script: call HSSAddHero('Ofar', "Far Seer", "ReplaceableTextures\\CommandButtons\\BTNHeroFarseer.blp", "15 (+2.0)", "18 (+1.0)", "19 (+3.0)")
      • Custom script: call HSSAddDT1("Mystical Hero, effective at ranged attacks and scouting.")
      • Custom script: call HSSAddDT2("")
      • Custom script: call HSSAddDT3("Range: 600")
      • Custom script: call HSSAddDT4("")
      • Custom script: call HSSAddDT5("|cffFF8000Abilities:|r Far Sight, Feral Spirit, Chain Lightning and Earthquake.")
      • -------- ---------------------------------------------------------------------------------------- --------
      • Custom script: call HSSAddHero('Otch', "Tauren Chieftain", "ReplaceableTextures\\CommandButtons\\BTNHeroTaurenChieftain.blp", "25 (+3.2)", "10 (+1.5)", "14 (+1.3)")
      • Custom script: call HSSAddDT1("Warrior Hero, exceptional at absorbing damage and melee combat.")
      • Custom script: call HSSAddDT2("")
      • Custom script: call HSSAddDT3("Range: Melee")
      • Custom script: call HSSAddDT4("")
      • Custom script: call HSSAddDT5("|cffFF8000Abilities:|r Shockwave, Endurance Aura, War Stomp and Reincarnaction.")
      • -------- ---------------------------------------------------------------------------------------- --------
      • Custom script: call HSSAddHero('Oshd', "Shadow Hunter", "ReplaceableTextures\\CommandButtons\\BTNShadowHunter.blp", "15 (+2.0)", "20 (+1.5)", "17 (+2.5)")
      • Custom script: call HSSAddDT1("Cunning Hero, adept at healing magics and voodoo curses.")
      • Custom script: call HSSAddDT2("")
      • Custom script: call HSSAddDT3("Range: 600")
      • Custom script: call HSSAddDT4("")
      • Custom script: call HSSAddDT5("|cffFF8000Abilities:|r Healing Wave, Hex, Serpent Ward and Bid Bad Voodoo.")
      • -------- ---------------------------------------------------------------------------------------- --------
      • -------- Don't change things below. --------
      • Set HSS_HeroesLeft = HSS_MaxHeroes
      • -------- ---------------------------------------------------------------------------------------- --------
      • -------- ------------------------------------------------------ [CREATE THE MULTIBOARD] ------------------------------------------------------ --------
      • Trigger - Run HSS InitializeMultiboard <gen> (checking conditions)

HSS InitializeMultiboard
  • HSS InitializeMultiboard
    • Events
    • Conditions
    • Actions
      • -------- Do not change anything here, if you don't know what you're doing. --------
      • -------- ---------------------------------------------------------------------------------------- --------
      • For each (Integer HSS_Integer[0]) from 1 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Player(HSS_Integer[0])) controller) Equal to User
              • ((Player(HSS_Integer[0])) slot status) Equal to Is playing
            • Then - Actions
              • Trigger - Add to HSS ScrollUp <gen> the event (Player - (Player(HSS_Integer[0])) Presses the Up Arrow key)
              • Trigger - Add to HSS ScrollDown <gen> the event (Player - (Player(HSS_Integer[0])) Presses the Down Arrow key)
              • Trigger - Add to HSS SelectHero <gen> the event (Player - (Player(HSS_Integer[0])) Presses the Right Arrow key)
              • -------- ---------- --------
              • Set HSS_Player_CurrentIndex[HSS_Integer[0]] = 1
              • -------- ---------- --------
              • Multiboard - Create a multiboard with 2 columns and 25 rows, titled HSS_MultiboardName
              • Set HSS_Player_Multiboard[HSS_Integer[0]] = (Last created multiboard)
              • -------- ---------- --------
              • Multiboard - Set the display style for HSS_Player_Multiboard[HSS_Integer[0]] item in column 0, row 0 to Show text and Hide icons
              • Multiboard - Set the display style for HSS_Player_Multiboard[HSS_Integer[0]] item in column 2, row 1 to Show text and Show icons
              • -------- ---------- --------
              • Multiboard - Set the width for HSS_Player_Multiboard[HSS_Integer[0]] item in column 1, row 0 to 15.00% of the total screen width
              • Multiboard - Set the width for HSS_Player_Multiboard[HSS_Integer[0]] item in column 2, row 0 to 85.00% of the total screen width
              • -------- ---------- --------
              • Multiboard - Hide HSS_Player_Multiboard[HSS_Integer[0]]
              • For each (Integer HSS_Integer[1]) from 1 to HSS_NumberOfHeroesDisplayed, do (Actions)
                • Loop - Actions
                  • Multiboard - Set the display style for HSS_Player_Multiboard[HSS_Integer[0]] item in column 1, row HSS_Integer[1] to Show text and Show icons
                  • Multiboard - Set the icon for HSS_Player_Multiboard[HSS_Integer[0]] item in column 1, row HSS_Integer[1] to HSS_HeroIcon[HSS_Integer[1]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[0]] item in column 1, row HSS_Integer[1] to HSS_HeroName[HSS_Integer[1]]
              • -------- ---------- --------
              • Set HSS_Integer[4] = (Player number of (Player(HSS_Integer[0])))
              • Trigger - Run HSS UpdateMultiboard <gen> (checking conditions)
            • Else - Actions

HSS ScrollUp
  • HSS ScrollUp
    • Events
    • Conditions
      • HSS_Player_ViewingMultiboard[(Player number of (Triggering player))] Equal to True
    • Actions
      • -------- Do not change anything here, if you don't know what you're doing. --------
      • -------- ---------------------------------------------------------------------------------------- --------
      • Set HSS_Player_CurrentIndex[(Player number of (Triggering player))] = (HSS_Player_CurrentIndex[(Player number of (Triggering player))] - 1)
      • -------- ---------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HSS_Player_CurrentIndex[(Player number of (Triggering player))] Less than or equal to 0
        • Then - Actions
          • Set HSS_Player_CurrentIndex[(Player number of (Triggering player))] = 1
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • HSS_Player_CurrentIndex[(Player number of (Triggering player))] Greater than HSS_MaxHeroes
            • Then - Actions
              • Set HSS_Player_CurrentIndex[(Player number of (Triggering player))] = HSS_MaxHeroes
            • Else - Actions
      • -------- ---------- --------
      • Set HSS_Integer[4] = (Player number of (Triggering player))
      • Trigger - Run HSS UpdateMultiboard <gen> (checking conditions)

HSS ScrollDown
  • HSS ScrollDown
    • Events
    • Conditions
      • HSS_Player_ViewingMultiboard[(Player number of (Triggering player))] Equal to True
    • Actions
      • -------- Do not change anything here, if you don't know what you're doing. --------
      • -------- ---------------------------------------------------------------------------------------- --------
      • Set HSS_Player_CurrentIndex[(Player number of (Triggering player))] = (HSS_Player_CurrentIndex[(Player number of (Triggering player))] + 1)
      • -------- ---------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HSS_Player_CurrentIndex[(Player number of (Triggering player))] Less than or equal to 0
        • Then - Actions
          • Set HSS_Player_CurrentIndex[(Player number of (Triggering player))] = 1
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • HSS_Player_CurrentIndex[(Player number of (Triggering player))] Greater than HSS_MaxHeroes
            • Then - Actions
              • Set HSS_Player_CurrentIndex[(Player number of (Triggering player))] = HSS_MaxHeroes
            • Else - Actions
      • -------- ---------- --------
      • Set HSS_Integer[4] = (Player number of (Triggering player))
      • Trigger - Run HSS UpdateMultiboard <gen> (checking conditions)

HSS SelectHero
  • HSS SelectHero
    • Events
    • Conditions
      • HSS_Player_ViewingMultiboard[(Player number of (Triggering player))] Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • HSS_HeroSelected[HSS_Player_CurrentIndex[(Player number of (Triggering player))]] Equal to False
        • Then - Actions
          • -------- Change things here if you know what you're doing. You may need to modify this trigger. --------
          • -------- ---------------------------------------------------------------------------------------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • HSS_CanUseTheSameHeroes Equal to False
            • Then - Actions
              • Set HSS_HeroSelected[HSS_Player_CurrentIndex[(Player number of (Triggering player))]] = True
            • Else - Actions
          • -------- ---------------------------------------------------------------------------------------- --------
          • Set HSS_Integer[6] = (Player number of (Triggering player))
          • Set HSS_Player_ViewingMultiboard[HSS_Integer[6]] = False
          • -------- ---------- --------
          • -------- Those actions will hide the multiboard for the player that selected a hero. --------
          • Custom script: if GetLocalPlayer() == Player(udg_HSS_Integer[6] - 1) then
          • Multiboard - Hide HSS_Player_Multiboard[HSS_Integer[6]]
          • Custom script: endif
          • -------- ---------- --------
          • -------- This action is not necessary, but it will reset the camera. Good if you'll use the EXAMPLE PanCameraWhileSelecting trigger. --------
          • Camera - Reset camera for (Player(HSS_Integer[6])) to standard game-view over 0.00 seconds
          • -------- ---------- --------
          • -------- This is the actions that will create a selected hero for a player. --------
          • Set HSS_Point = (Center of HSS_Player_HeroSpawnLocation[HSS_Integer[6]])
          • Camera - Pan camera for (Player(HSS_Integer[6])) to HSS_Point over 0.00 seconds
          • Unit - Create 1 HSS_Hero[HSS_Player_CurrentIndex[HSS_Integer[6]]] for (Player(HSS_Integer[6])) at HSS_Point facing Default building facing degrees
          • Custom script: call RemoveLocation(udg_HSS_Point)
          • -------- ---------- --------
          • -------- You can modify this line. This is the text that will appear when a player selects a hero. --------
          • Game - Display to (All players) for 15.00 seconds the text: (|cffFF8000 + ((Name of (Triggering player)) + (|r has selected: + HSS_HeroName[HSS_Player_CurrentIndex[HSS_Integer[6]]])))
        • Else - Actions
          • Set HSS_PlayerGroup = (Player group((Triggering player)))
          • Game - Display to HSS_PlayerGroup for HSS_HeroSelectedWarningDur seconds the text: HSS_HeroSelectedHeroWarning
          • Custom script: call DestroyForce(udg_HSS_PlayerGroup)

HSS UpdateMultiboard
  • HSS UpdateMultiboard
    • Events
    • Conditions
    • Actions
      • -------- Do not change anything here, if you don't know what you're doing. --------
      • -------- ---------------------------------------------------------------------------------------- --------
      • Set HSS_Integer[5] = HSS_Player_CurrentIndex[HSS_Integer[4]]
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • HSS_HeroesLeft Greater than 0
              • HSS_CanUseTheSameHeroes Equal to True
        • Then - Actions
          • For each (Integer HSS_Integer[3]) from 1 to HSS_NumberOfHeroesDisplayed, do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (HSS_Player_CurrentIndex[HSS_Integer[4]] + (HSS_Integer[3] - 1)) Less than or equal to HSS_MaxHeroes
                • Then - Actions
                  • Multiboard - Set the display style for HSS_Player_Multiboard[HSS_Integer[4]] item in column 1, row HSS_Integer[3] to Show text and Show icons
                  • Multiboard - Set the icon for HSS_Player_Multiboard[HSS_Integer[4]] item in column 1, row HSS_Integer[3] to HSS_HeroIcon[(HSS_Player_CurrentIndex[HSS_Integer[4]] + (HSS_Integer[3] - 1))]
                  • -------- ---------- --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • HSS_Integer[3] Equal to 1
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • HSS_HeroSelected[(HSS_Player_CurrentIndex[HSS_Integer[4]] + (HSS_Integer[3] - 1))] Equal to False
                        • Then - Actions
                          • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 1, row HSS_Integer[3] to (HSS_ViewingColor + (HSS_HeroName[(HSS_Player_CurrentIndex[HSS_Integer[4]] + (HSS_Integer[3] - 1))] + |r))
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • HSS_IfPickedSelectViewColor Equal to False
                            • Then - Actions
                              • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 1, row HSS_Integer[3] to (HSS_SelectedColor + (HSS_HeroName[(HSS_Player_CurrentIndex[HSS_Integer[4]] + (HSS_Integer[3] - 1))] + |r))
                            • Else - Actions
                              • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 1, row HSS_Integer[3] to (HSS_ViewingColor + (HSS_HeroName[(HSS_Player_CurrentIndex[HSS_Integer[4]] + (HSS_Integer[3] - 1))] + |r))
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • HSS_HeroSelected[(HSS_Player_CurrentIndex[HSS_Integer[4]] + (HSS_Integer[3] - 1))] Equal to False
                        • Then - Actions
                          • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 1, row HSS_Integer[3] to HSS_HeroName[(HSS_Player_CurrentIndex[HSS_Integer[4]] + (HSS_Integer[3] - 1))]
                        • Else - Actions
                          • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 1, row HSS_Integer[3] to (HSS_SelectedColor + (HSS_HeroName[(HSS_Player_CurrentIndex[HSS_Integer[4]] + (HSS_Integer[3] - 1))] + |r))
                • Else - Actions
                  • Multiboard - Set the display style for HSS_Player_Multiboard[HSS_Integer[4]] item in column 1, row HSS_Integer[3] to Hide text and Hide icons
              • -------- ---------- --------
              • Multiboard - Set the icon for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 1 to HSS_HeroIcon[HSS_Integer[5]]
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • HSS_CanUseTheSameHeroes Equal to True
                • Then - Actions
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 1 to (HSS_ViewingColor + (HSS_HeroName[HSS_Integer[5]] + |r))
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • HSS_IfPickedSelectViewColor Equal to True
                    • Then - Actions
                      • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 1 to (HSS_ViewingColor + (HSS_HeroName[HSS_Integer[5]] + |r))
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • HSS_HeroSelected[HSS_Integer[5]] Equal to False
                        • Then - Actions
                          • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 1 to (HSS_ViewingColor + (HSS_HeroName[HSS_Integer[5]] + |r))
                        • Else - Actions
                          • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 1 to (HSS_SelectedColor + (HSS_HeroName[HSS_Integer[5]] + |r))
              • -------- ---------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • HSS_DisplayAttributesAtTop Equal to True
                • Then - Actions
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 3 to (HSS_StrengthColorAndText + (HSS_HeroStartStrength[HSS_Integer[5]] + |r))
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 4 to (HSS_AgilityColorAndText + (HSS_HeroStartAgility[HSS_Integer[5]] + |r))
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 5 to (HSS_IntelligenceColorAndText + (HSS_HeroStartIntelligence[HSS_Integer[5]] + |r))
                  • -------- ---------------------------------------------------------------------------------------- --------
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 7 to HSS_DescriptionTextRow1[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 8 to HSS_DescriptionTextRow2[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 9 to HSS_DescriptionTextRow3[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 10 to HSS_DescriptionTextRow4[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 11 to HSS_DescriptionTextRow5[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 12 to HSS_DescriptionTextRow6[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 13 to HSS_DescriptionTextRow7[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 14 to HSS_DescriptionTextRow8[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 15 to HSS_DescriptionTextRow9[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 16 to HSS_DescriptionTextRow10[HSS_Integer[5]]
                • Else - Actions
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 14 to (HSS_StrengthColorAndText + (HSS_HeroStartStrength[HSS_Integer[5]] + |r))
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 15 to (HSS_AgilityColorAndText + (HSS_HeroStartAgility[HSS_Integer[5]] + |r))
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 16 to (HSS_IntelligenceColorAndText + (HSS_HeroStartIntelligence[HSS_Integer[5]] + |r))
                  • -------- ---------------------------------------------------------------------------------------- --------
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 3 to HSS_DescriptionTextRow1[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 4 to HSS_DescriptionTextRow2[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 5 to HSS_DescriptionTextRow3[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 6 to HSS_DescriptionTextRow4[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 7 to HSS_DescriptionTextRow5[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 8 to HSS_DescriptionTextRow6[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 9 to HSS_DescriptionTextRow7[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 10 to HSS_DescriptionTextRow8[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 11 to HSS_DescriptionTextRow9[HSS_Integer[5]]
                  • Multiboard - Set the text for HSS_Player_Multiboard[HSS_Integer[4]] item in column 2, row 12 to HSS_DescriptionTextRow10[HSS_Integer[5]]
        • Else - Actions
          • Set HSS_PlayerGroup = (Player group((Player(HSS_Integer[4]))))
          • Game - Display to HSS_PlayerGroup for 2.50 seconds the text: |cffff0000System Er...
          • Set HSS_Player_ViewingMultiboard[HSS_Integer[4]] = False
          • Custom script: if GetLocalPlayer() == Player(udg_HSS_Integer[4] - 1) then
          • Multiboard - Hide HSS_Player_Multiboard[HSS_Integer[4]]
          • Custom script: endif
          • Custom script: call DestroyForce(udg_HSS_PlayerGroup)

EXAMPLE RepickHero
  • EXAMPLE RepickHero
    • Events
      • Player - Player 1 (Red) types a chat message containing -Repick as An exact match
    • Conditions
    • Actions
      • -------- Make sure there's any heroes left to be repicked with. --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • HSS_HeroesLeft Greater than 0
              • HSS_CanUseTheSameHeroes Equal to True
        • Then - Actions
          • Game - Display to (All players) for 5.00 seconds the text: ((Name of (Triggering player)) + will repick his hero!)
          • -------- ---- --------
          • Custom script: set bj_wantDestroyGroup = true
          • Unit Group - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True)) and do (Actions)
            • Loop - Actions
              • Unit - Remove (Picked unit) from the game
          • -------- ---- --------
          • Set HSS_Player_ViewingMultiboard[(Player number of (Triggering player))] = True
          • Custom script: if GetLocalPlayer() == GetTriggerPlayer() then
          • Multiboard - Show HSS_Player_Multiboard[(Player number of (Triggering player))]
          • Multiboard - Maximize HSS_Player_Multiboard[(Player number of (Triggering player))]
          • Custom script: endif
          • Set HSS_Player_CurrentIndex[(Player number of (Triggering player))] = 1
          • Set HSS_Integer[4] = (Player number of (Triggering player))
          • Trigger - Run HSS UpdateMultiboard <gen> (checking conditions)
        • Else - Actions
          • Set HSS_PlayerGroup = (Player group((Triggering player)))
          • Game - Display to HSS_PlayerGroup for 5.00 seconds the text: You can't repick, t...
          • Custom script: call DestroyForce(udg_HSS_PlayerGroup)

EXAMPLE PanCameraWhileSelecting
  • EXAMPLE PanCameraWhileSelecting
    • Events
      • Time - Every 0.05 seconds of game time
    • Conditions
    • Actions
      • For each (Integer HSS_Integer[10]) from 1 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Player(HSS_Integer[10])) controller) Equal to User
              • ((Player(HSS_Integer[10])) slot status) Equal to Is playing
              • HSS_Player_ViewingMultiboard[HSS_Integer[10]] Equal to True
            • Then - Actions
              • Camera - Apply HSS Camera <gen> for (Player(HSS_Integer[10])) over 0.20 seconds
            • Else - Actions

[/HIDDEN]

CHANGELOG

Version 1.0a (20-09-2010)

  • Release

Version 1.0b (20-09-2010)

  • The multiboard will now automatically be maximized instantly.

Version 1.1a (30-09-2010)

  • Improved the information text in the "HSS READ ME".
  • Added a new option that allow users to change if they want to make the heroes be selected more than once or not. (Prevent double selecting). This wil be changed by this new action:
  • Set HSS_CanUseTheSameHeroes = False

With this new feature some other options also got created like those:
  • Set HSS_SelectedColor = |cffff0000
  • Set HSS_IfPickedSelectViewColor = False
  • Set HSS_HeroSelectedHeroWarning = |cffff0000Error:|r This hero has already been selected!
  • Set HSS_HeroSelectedWarningDur = 5.00

Just to make it as simple as possible. You can read about those options in the "HSS READ ME" text.
  • Improved the EXAMPLE AllPickMode trigger.
  • Improved the system. Some errors and bugs fixed.

Version 1.2a (19-10-2010)

  • Players will no longer be stuck in the selection menu when no heroes is left to be picked. The system will automatically detect this and close the selection menu for the player(s).
  • The HSS_StartStrength/Agility/Intelligence have been changed into a string variable instead of a integer variable. Players will now be able to write a stat text such as "Strength: 15 (+2.2)".
  • Improved the temporarily system heroes "view".
  • Improved the system overall a little, things that won't be noticed.

Version 1.3a (09-11-2010)

  • Fixed an issue with the system.
  • Added a new EXAMPLE trigger (Repick a Hero).




Keywords:
The_Flood, Flood, Hero, Selection, System, List, Multiboard, Color, HSS, New, Version
Contents

The_Flood's HSS - Version 1.3a (Map)

Reviews
Moderator
19:22, 15th Oct 2010 The_Reborn_Devil: The triggering looks good and this could be useful to someone. Status: Approved Rating: Useful
  1. lolreported

    lolreported

    Joined:
    Aug 16, 2007
    Messages:
    705
    Resources:
    12
    Tools:
    1
    Maps:
    5
    Spells:
    6
    Resources:
    12
    @Dr. Boom,
    Thanks for the review! I do also like this system, weird I've never seen something like this before, that why I did create it. :)

    1. Are you sure you did use the latest version? Because I thought I did fix the "can't get out glitch"... I'll have to take a look at that then.
    2. I'll fix this when I've got time.
    3. People are able to do this at their own, but as the maker, I think this should be included. I'll fix it when I've got time.
    4. I'll fix this when I've got time.

    Thanks again, +rep.
     
  2. RaidonGod

    RaidonGod

    Joined:
    Oct 7, 2008
    Messages:
    285
    Resources:
    5
    Models:
    3
    Icons:
    2
    Resources:
    5
    seen such a system in dark invasion II before. :D

    nice system. looks good and can be modified too. :)
     
  3. lolreported

    lolreported

    Joined:
    Aug 16, 2007
    Messages:
    705
    Resources:
    12
    Tools:
    1
    Maps:
    5
    Spells:
    6
    Resources:
    12
    Thanks ^^
     
  4. Thepriest1750

    Thepriest1750

    Joined:
    Nov 19, 2010
    Messages:
    37
    Resources:
    1
    Tutorials:
    1
    Resources:
    1
    sweet thanks alot for this!
    There where some triggers i could use :)

    will give credit ofcourse!
     
  5. lolreported

    lolreported

    Joined:
    Aug 16, 2007
    Messages:
    705
    Resources:
    12
    Tools:
    1
    Maps:
    5
    Spells:
    6
    Resources:
    12
    No problem ^^
     
  6. Magtheridon96

    Magtheridon96

    Joined:
    Dec 12, 2008
    Messages:
    6,006
    Resources:
    26
    Maps:
    1
    Spells:
    8
    Tutorials:
    7
    JASS:
    10
    Resources:
    26
    If you want this system to handle more than 25 heroes, you could add a "Next Page" Option that will hide the current multiboard and show another one.
     
  7. lolreported

    lolreported

    Joined:
    Aug 16, 2007
    Messages:
    705
    Resources:
    12
    Tools:
    1
    Maps:
    5
    Spells:
    6
    Resources:
    12
    There is no cap? You can have unlimited heroes.
     
  8. anhlsls

    anhlsls

    Joined:
    Dec 7, 2011
    Messages:
    5
    Resources:
    0
    Resources:
    0
    Sr but i cant find any "script that can be found under the script folder named: The_FloodsHSS.w3x"
    Could it be anything wromg with that...?
     
  9. kimberker

    kimberker

    Joined:
    Nov 8, 2009
    Messages:
    46
    Resources:
    0
    Resources:
    0
    Text & Icon Size

    Is it possible to change the size of text and icon?