- Joined
- Jan 5, 2007
- Messages
- 40
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>
-
Loop - Actions
- 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
-
Loop - Actions
-
For each (Integer A) from Your Last Heroes Made, do (Actions)
- Else - Actions
-
If - Conditions
-
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>
-
Loop - Actions
- 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
-
Loop - Actions
- Else - Actions
-
If - Conditions
-
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
-
Events
-
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
-
Loop - Actions
-
Events
-
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>
-
Loop - Actions
- 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
-
Loop - Actions
-
For each (Integer A) from 1 to 4, do (Actions)
- Else - Actions
-
If - Conditions
-
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>
-
Loop - Actions
- 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
-
Loop - Actions
-
For each (Integer A) from 5 to 8, do (Actions)
- Else - Actions
-
If - Conditions
-
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>
-
Loop - Actions
- 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
-
Loop - Actions
-
For each (Integer A) from 9 to 12, do (Actions)
- Else - Actions
-
If - Conditions
-
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>
-
Loop - Actions
- 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
-
Loop - Actions
- Else - Actions
-
If - Conditions
-
Events
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