1. 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
  2. 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
  3. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  4. Dismiss Notice
  5. The Highway to Hell has been laid open. Come along and participate in the 5th Special Effect Contest.
    Dismiss Notice
  6. 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.

Unlimited Hero Selection System

Discussion in 'Graveyard' started by Orc_Tamer, Dec 30, 2007.

  1. Orc_Tamer

    Orc_Tamer

    Joined:
    Jan 5, 2007
    Messages:
    41
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    [​IMG]
    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
     

    Attached Files:

  2. PurplePoot

    PurplePoot

    Joined:
    Dec 14, 2005
    Messages:
    11,161
    Resources:
    3
    Maps:
    1
    Spells:
    1
    Tutorials:
    1
    Resources:
    3
    If this is GUI it should be in Spells(/Systems), and not in the Jass Snippets forum. (Please read the readmes!)