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

Unlimited Hero Selection System

Level 5
Joined
Jan 5, 2007
Messages
40
uhbp6.gif

Unlimited Hero Selection System
by Orc_Tamer

Features:
In GUI (Jass version may be released)

Requires:
Next - Hero Unit
Hero - Unit Type Variable
Start - Integer Variable
TimerStart - Timer Variable (If you want to use it)

Here is a nice little system that will make any of your maps unique by making a tavern, altar, or any building be able to train/summon unlimited heroes. Array limit is 8191 so it's "almost" unlimited =P

Instructions:
Replace "Tavern 0002 <gen>" with any pre-placed building in the game and has "Sell Units" unit ability.
Add the hero to your "Set Heroes"
Use this as your template to add 4 new heroes
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Next Equal to Your Next Variable Number
    • Then - Actions
      • For each (Integer A) from Your Last Heroes Made, do (Actions)
        • Loop - Actions
          • Neutral Building - Remove Hero[(Integer A)] from Tavern 0002 <gen>
      • Neutral Building - Add Next to Tavern 0002 <gen> with 1 in stock and a max stock of 1
      • For each (Integer A) from Your New 4 Heroes, do (Actions)
        • Loop - Actions
          • Neutral Building - Add Hero[(Integer A)] to Tavern 0002 <gen> with 1 in stock and a max stock of 1
    • Else - Actions
Make sure your last loop removes the your last 4 heroes and set your "Next" variable back to 1 and add back your first 4 heroes.

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Next Equal to Your Last Next Variable Number
    • Then - Actions
      • Set Next = 1
      • For each (Integer A) from Your Last Heroes, do (Actions)
        • Loop - Actions
          • Neutral Building - Remove Hero[(Integer A)] from Tavern 0002 <gen>
      • Neutral Building - Add Next to Tavern 0002 <gen> with 1 in stock and a max stock of 1
      • For each (Integer A) from Your First 4 Heroes, do (Actions)
        • Loop - Actions
          • Neutral Building - Add Hero[(Integer A)] to Tavern 0002 <gen> with 1 in stock and a max stock of 1
    • Else - Actions
Game Triggers:
  • Set Heroes
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- Set Up Our Heroes --------
      • Set Hero[1] = Paladin
      • Set Hero[2] = Archmage
      • Set Hero[3] = Mountain King
      • Set Hero[4] = Blood Mage
      • Set Hero[5] = Blademaster
      • Set Hero[6] = Far Seer
      • Set Hero[7] = Tauren Chieftain
      • Set Hero[8] = Shadow Hunter
      • Set Hero[9] = Death Knight
      • Set Hero[10] = Lich
      • Set Hero[11] = Dreadlord
      • Set Hero[12] = Crypt Lord
      • Set Hero[13] = Keeper of the Grove
      • Set Hero[14] = Priestess of the Moon
      • Set Hero[15] = Demon Hunter
      • Set Hero[16] = Warden
  • Start Hero
    • Events
      • Time - StartTimer expires
    • Conditions
    • Actions
      • -------- Change event to "Time Elapsed" if you don't want to use the timer --------
      • Set Next = 1
      • Neutral Building - Add Next to Tavern 0002 <gen> with 1 in stock and a max stock of 1
      • For each (Integer A) from 1 to 4, do (Actions)
        • Loop - Actions
          • Neutral Building - Add Hero[(Integer A)] to Tavern 0002 <gen> with 1 in stock and a max stock of 1
  • Next
    • Events
      • Unit - A unit Sells a unit
    • Conditions
      • (Unit-type of (Sold unit)) Equal to Next
    • Actions
      • Unit - Remove (Sold unit) from the game
      • Set Next = (Next + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Next Equal to 2
        • Then - Actions
          • For each (Integer A) from 1 to 4, do (Actions)
            • Loop - Actions
              • Neutral Building - Remove Hero[(Integer A)] from Tavern 0002 <gen>
          • Neutral Building - Add Next to Tavern 0002 <gen> with 1 in stock and a max stock of 1
          • For each (Integer A) from 5 to 8, do (Actions)
            • Loop - Actions
              • Neutral Building - Add Hero[(Integer A)] to Tavern 0002 <gen> with 1 in stock and a max stock of 1
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Next Equal to 3
        • Then - Actions
          • For each (Integer A) from 5 to 8, do (Actions)
            • Loop - Actions
              • Neutral Building - Remove Hero[(Integer A)] from Tavern 0002 <gen>
          • Neutral Building - Add Next to Tavern 0002 <gen> with 1 in stock and a max stock of 1
          • For each (Integer A) from 9 to 12, do (Actions)
            • Loop - Actions
              • Neutral Building - Add Hero[(Integer A)] to Tavern 0002 <gen> with 1 in stock and a max stock of 1
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Next Equal to 4
        • Then - Actions
          • For each (Integer A) from 9 to 12, do (Actions)
            • Loop - Actions
              • Neutral Building - Remove Hero[(Integer A)] from Tavern 0002 <gen>
          • Neutral Building - Add Next to Tavern 0002 <gen> with 1 in stock and a max stock of 1
          • For each (Integer A) from 13 to 16, do (Actions)
            • Loop - Actions
              • Neutral Building - Add Hero[(Integer A)] to Tavern 0002 <gen> with 1 in stock and a max stock of 1
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Next Equal to 5
        • Then - Actions
          • Set Next = 1
          • For each (Integer A) from 13 to 16, do (Actions)
            • Loop - Actions
              • Neutral Building - Remove Hero[(Integer A)] from Tavern 0002 <gen>
          • Neutral Building - Add Next to Tavern 0002 <gen> with 1 in stock and a max stock of 1
          • For each (Integer A) from 1 to 4, do (Actions)
            • Loop - Actions
              • Neutral Building - Add Hero[(Integer A)] to Tavern 0002 <gen> with 1 in stock and a max stock of 1
        • Else - Actions
Why is this Unlimited?
Because normal taverns or any buildings uses 12 slots max and this can be used more than that.
Why use this?
1. Uses less buildings (Taverns, Altars, ect)
2. It's unique
3. Faster to add heroes to your Tavern
 

Attachments

  • UnlimitedHeroSelectionSystem.w3x
    24.5 KB · Views: 75
Top