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 haven't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. From the gates of hell, the 5th Special Effect Contest Results have emerged.
    Dismiss Notice
  4. Rubbed the right way, the genie is out of its lamp! The 12th Concept Art Contest Results have been announced.
    Dismiss Notice
  5. Race against the odds and Reforge, Don't Refund. The 14th Techtree Contest has begun!
    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.

Making a full TD [Reviewed: Ralle]

Discussion in 'Trigger (GUI) Editor Tutorials' started by Ostaph13, Jun 27, 2008.

  1. Ostaph13

    Ostaph13

    Joined:
    Jun 27, 2008
    Messages:
    15
    Resources:
    1
    Tutorials:
    1
    Resources:
    1
    First Thoughts
    This is my recommendation if you want to make a new innovative map that everyone wants to play......
    -Don't make something that has been done before!
    (Example) A Maul such as Wintermaul.
    (Why Not?) It has been overused so many times before, and these days you rarely see a maul anymore because everyone has played it and gotten bored of it.

    -Make something new that features nice qualities, and effects.
    (Example) Element TD.
    (Why?) It features a new system to make towers and fuse elements to upgrade towers. Its hard to get bored of because there are so many possibilities!

    -Make something that you created on your own and didn't steal then edit.
    (Why??) I know its a lot faster just taking a already made map with levels, and such, but then you don't get the experience of working with triggers, and finding out ways to make a great TD!

    -Always protect your map so people can't steal it!
    When you protect your map people won't be able to take it apart and recreate a ripped off version of it!

    -Always go to www.hiveworkshop.com if your stuck on something that you don't know how to do.
    (Why?) Hiveworkshop includes many great tutorials on helping you with specific details on triggering, terraining, and editing!
    _________________________________________________________________
    Map Start

    Step 1:Go to trigger editor. Click on the Initialization folder, and delete it. Make a new folder called Game Start, and make a new trigger called Game Start. Make the Trigger like this
    • Game Start
    • Events:
    • Map Initialization
    • Conditions:
    • None
    • Actions:
    • Melee Game - Use melee time of day (for all players)

    You can also make sounds, and text for the start of your map to do that make a trigger like this.
    • Game Welcome
    • Events:
    • Elapsed Time is 0.10 seconds
    • Conditions:
    • None
    • Actions:
    • Game - Display to (All Players) the text: Whatever you want to say

    Then go to the sound editor and pick out a cool sound that you want to play when you do make a trigger like this.
    • Game sound
    • Events:
    • Elapsed Time is 0.10 seconds
    • Conditions:
    • None
    • Actions:
    • Sound - Stop Music immediately
    • Sound - Play Whatever Sound you like

    And you have created a good start to your TD.
    _________________________________________________________________
    Pathing


    Alright kids lets start your TD! Its extremely simple. I'll guide you through simple steps!
    Step 1:Make a basic, or complex area where creeps pass through and towers are placed! You shouldn't need help on this step just use your imagination!


    Step 2:Now lets work on pathing for the creeps to go.
    Go Layer then Regions. You will see a region palette on your top right side of the world editor. Click add region. Then make a region for where the creeps will spawn. Call it whatever you like I prefer creepspawn.

    Step 3:Now make a region for every turn you have and just name them things like Path 2, Path 3, Path 4 and so on. This will be the route that the creeps will take to get to the end.

    Step 4:Now make an end region where you will lose a life when a creep enters there. Call it whatever you like. Then Make a region surrounding the whole area where Player 1(Red) Plays, or where every player plays and name it Whole Red, or Whole Players.

    Step 5(Triggering):Get ready for some really easy triggering I'll guide you through every step just incase. First lets just say my Td has 4 turns in it so it will have 6 regions. Start, T1, T2, T3, T4, End. This will be the triggering. Yours will probably be simpler but you will understand the concept easily!
    • Trigger1:StarttoT1
    • Events:
    • Unit - Unit Enters Region(Start)
    • Conditions:
    • NONE
    • Actions:
    • Unit - Order (Entering unit) to Move To (Center of T1)

    • T1toT2
    • Events:
    • Unit - Unit Enters Region(T1)
    • Conditions:
    • None
    • Actions:
    • Unit - Order (Entering unit) to Move To (Center of T2)

    • T2toT3
    • Events:
    • Unit - Unit Enters Region(T2)
    • Conditions:
    • None
    • Actions:
    • Unit - Order (Entering unit) to Move To (Center of T3)

    • T3toT4
    • Events:
    • Unit - Unit Enters Region(T3)
    • Conditions:
    • None
    • Actions:
    • Unit - Order (Entering unit) To Move To (Center of T4)

    • T4toEnd
    • Events:
    • Unit - Unit Enters Region(T4)
    • Conditions:
    • None
    • Actions:
    • Unit - Order (Entering unit) To Move To (Center of End)



    Step 6:All you have to do is that concept to connect all of your regions and you got the pathing completely correct! Well now that you've made pathing you probably want to test how it works right? O.K.!
    Make a new trigger titled Test Level. And make it exactly like this!
    • Trigger2:Test Level
    • Events:
    • Time - Elapsed Time is 1.00 seconds
    • Conditions:
    • NONE
    • Actions:
    • Unit - Create 40 Footman for Player 12 (Brown) at (Center of Start Region)(Facing 0.00 degrees)


    Step 7:Now test the map. If it doesn't work then recheck your work for any mistakes, and try again. If it did work than you got pathing easily down Good Job!
    _________________________________________________________________
    Lives

    Step 1: Go to trigger editor, then go to variables. Its the yellow X. You will see a little box that should contain 3 categories. Variable Name, Variable Type, and Initial Value. Click on new variable its the green X. Set the Variable name to RedLives, and set the variable type to Integer. Make the initial value the amount of lives you want Red to start with, and then press Ok.

    Step 2:Now lets setup a leaderboard containing the value of RedLives. Do this trigger Exactly!
    • Trigger3:Lives Leaderboard
    • Events:
    • Time - Elapsed game time is 0.30 seconds
    • Conditions:
    • Absolutely None!
    • Actions:
    • Leaderboard - Create a leaderboard for (All players) titled Player Lives
    • Leaderboard - Add Player 1 (Red) to (Last created leaderboard) with label Lives and value RedLives
    • Leaderboard - Show (Last created leaderboard)



    Step 3: Now that you have created a leaderboard you probably want to see the lives value change. Well then make this trigger!
    • Trigger4:Lives Lost Red
    • Events:
    • Unit - A unit enters End Region
    • Conditions:
    • (Owner of (Entering unit)) Equal to Player 12 (Brown)
    • Actions:
    • Set RedLives = (RedLives - 1)
    • Unit - Remove (Entering unit) from the game
    • Leaderboard - Change the value for Player 1 (Red) in (Last created leaderboard) to RedLives
    • Game - Display to Player Group-Player 1 (Red) the text: 1 Life Lost!
    • Trigger - Run RedDefeat (checking conditions)

    The Red Defeat Trigger....
    • Trigger5:RedDefeat
    • Events:
    • None
    • Conditions:
    • Lives less than or equal to 0
    • Actions:
    • Unit Group - Pick every unit in (Units in Whole Red Region) and do (Unit - Remove (Picked unit) from the game)
    • Game - Defeat Player 1 (Red) with the message: You Lose!

    :grin: Yay! Horray! You made a lives system, and a pathing system for Player 1(Red)!!!!
    _________________________________________________________________

    A time to Think and Discuss

    Alright, now that you have finished making the terrain, pathing, and the lives feature its time to take a break and think about how you are going to continue your Tower Defense. Ask your self these following questions.

    Question #1:
    How successful do I want my Tower Defense to be?

    Answer #1:
    Well I'd recommend that you aim for the most successful possible because when you aim high you have a less chance of hitting low. As you now think that your TD can be really successful you need to know that you need really smooth, long, and nice triggering features. I'll provide you with that, but you need to work hard to earn a good Tower Defense.

    Question #2:
    How long am I willing to work on this Tower Defense?

    Answer #2:
    The answer is simple.... as long as you can. Don't work on it all day though you need to take breaks, go outside, hang out with friends. Thats where you can really get your ideas from... looking outside. There's plenty that nature provides us, and creativity is definitely one of them.

    Final Question:
    This isn't really a question but an answer. Don't think that you can't get help on your map. Ask your friends on Warcraft 3 or go to hiveworkshop if your stuck at any time. Of course this tutorial should provide you with all your TD needs there may be more, and that's a good thing. Now its time to resume work on what we have so far. Lets begin....
    _________________________________________________________________
    Levels!

    Step 1:Finally you get to make your own levels right? Well before that we there's one thing that you have to make. Its a trigger that allows players to see the whole map. Its very important for a TD. Make a new folder, name it Visibility. Make a new Trigger and name it Visibility. Now do this.
    • Trigger6:Visibility
    • Events:
    • Time - Elapsed game time is 0.10 seconds
    • Conditions:
    • None
    • Actions:
    • Visibility - Disable Fog of War
    • Visibility - Disable Black Mask


    Step 2:Alright now that you disabled the Fog of War, and the Black Mask its time to make a starting time for the beginning of the TD.
    In the beginning you need to give people more time than in-between levels. So lets make a separate beginning timer. Make a new folder named TD Timers, and then make a new Trigger named beginning timer. Now go to variables, and make a new variable. Make the Variable name TDtimer, make the variable type a timer. Then press O.K.Now make a new variable. Name it Level. Make it an integer. And Make it equal to 0. Now make a trigger like this.
    • First timer
    • Events:
    • Time - Elapsed game time is 0.10 seconds
    • Conditions:
    • None
    • Actions:
    • Countdown Timer - Start TDTimer as a repeating timer that will expire in 1.00 seconds
    • Set BeginningTimer = (Last started timer)
    • Countdown Timer - Create a timer window for (Last started timer) with title First timer in...


    Step 3:Now that you have your TDtimer you have to make the timer repeat for the rest of the game. Do this trigger.
    • Continuous Timer
    • Events:
    • Timer - TDTimer expires
    • Conditions:
    • None
    • Actions:
    • Countdown Timer - Destroy (Last created Timer Window)
    • Wait until ((All units of (Units owned by Player 12 (Brown)) are dead)Equal to True), checking every 1.00 seconds
    • Countdown Timer - Start TDTimer as a Repeating timer that will expire in 30.00 seconds
    • Set Level = (Level + 1)
    • Set TDTimer = (Last started timer)
    • Countdown Timer - Create a timer window for (Last started timer) with title Enemy Wave in...


    Step 3: Alright now that you have the timer done, I will inform to you what it does. You see when you made a variable named level it equaled 0. But now every time that timer expires it will add 1 to the level variable so you will get a continuous flow of levels, but levels won't start until one levels creeps are all killed. Isn't that great? Of course it is.

    Step 4:Delete your test level you don't need it anymore. Now lets make a couple of level triggers so you can understand how it works. Make a new folder named Levels. Then make a new trigger named level 1. Now make it like this.
    • Level 1
    • Events:
    • Time - TDTimer Expires
    • Conditions:
    • Level is equal to 1
    • Actions:
    • Unit - Create 15 Level1Units for Player 12 (Brown) at (Center of Start Region)

    Of course you have to make a unit for level 1. Most likely you want to make it weak, and then the units will get stronger and stronger after each level. Lets now make level 2.
    • Level 2
    • Events:
    • Time - TDTimer Expires
    • Conditions:
    • Level is equal to 2
    • Actions:
    • Unit - Create 15 Level2Units for Player 12 (Brown) at (Center of Start Region)

    Lets now make level 3 and after making level 3 you will probably be able to make all the rest of the levels on your own.
    • Level 3
    • Events:
    • Time - TDTimer Expires
    • Conditions:
    • Level is equal to 3
    • Actions:
    • Unit - Create 15 Level3Units for Player 12 (Brown) at (Center of Start Region)


    There I showed you now how to make your first 3 levels remember to make different units for each one, and continue this level thing for as long as you would like. You can work on it whenever you want, but for now lets not make anymore levels and lets work on the next part of your TD.
    _________________________________________________________________
    Making Towers

    Step 1:Alright now we are going to make some towers I'll show you how. Open up your object editor. Click on the new custom unit box. Make the Base units Race Human, and Melee. then choose the Guard Tower and press O.K.

    Step 2:Alright on the top there's a thing called Abilities - Normal, remove all those abilities from it. Now change the icon and model file to whatever you would like. Then if you want change the tinting colors. Change the damage, and damage type, and change who it attacks to either ground enemy air, ground enemy, or air enemy so your tower can't attack other players towers. Change the Build time to 1 for Fast build, almost everyone in TD likes fastbuild on towers. Change the gold cost, and lumber cost. Remove Lumber Mill from the techtree requirements. Change the name and both basic and extended tooltips. And that's how to make a tower!

    Step 3:Now lets make a guy that builds the towers. Go to object editor, then make a new object again. Keep it at human and melee. And pick peasant for the builder. Now for the Abilities remove Harvest(Gold and Lumber), and Call to Arms(Peasant), but DON'T REMOVE REPAIR. Change the icon and model if you would like. Make the Attack type None, and make the damage 0. So he can't attack. Go back to abilities and add invulnerability to him so he can't be destroyed. Then make his move speed 500, and move type fly. Change his fly height somewhere between 300-500. Remove all the upgrades used and structures built, and add your towers. Change his name and both tooltips.

    Step 4:Now lets place the builder that you made on the map. Go to Layer and then Units. Go to human then custom. Then place the builder on the map. After you did you can continue making towers levels, and other features that you like.
    _________________________________________________________________
    Importing Models

    Step 1:Importing models is an important thing to do in a TD, it can make your towers or creeps look better than before. To get a model first go to www.hiveworkshop.com and go the the Models page.

    Step 2:Find a good model that suites what you are trying to make.

    Step 3:Download the model and save it to a folder you will remember.

    Step 4:Go on World editor and go to import manager. Click the Import File button and find the .mdx file of your downloaded model, and import it.

    Step 5:Add the model to your selected unit, it will appear blank at first, but when you close and open world editor your model will fully load to your map.

    Final Step:Don't get to many models because the more you have the longer it will take for your map to load!
    _________________________________________________________________
    Final Tips

    -Don't Make certain Races/Towers overpowered
    -Never make cheats to your game
    -Protect your game
    -Get help when needed
    -Test your game all the time
    -Focus and try not to make mistakes
    -Make different types of levels like: Armored, Hero, Air, Ground, Multiplying ETC.
    -Have fun!
     
    Last edited: Jun 27, 2008
  2. Ostaph13

    Ostaph13

    Joined:
    Jun 27, 2008
    Messages:
    15
    Resources:
    1
    Tutorials:
    1
    Resources:
    1
    This is my TD making Tutorial I will update it most of the time, and I hope you admins like it I'm a new User to this website, and Its great. PLEASE APPROVE!!!!
     
  3. forzamoto

    forzamoto

    Joined:
    Apr 14, 2008
    Messages:
    192
    Resources:
    1
    Maps:
    1
    Resources:
    1
    I guess its ok but it is to long and you will need to make it shorter. And alot
    of the triggers will need fixing sorry.

    :cconf: 2/5
     
  4. Ralle

    Ralle

    Owner

    Joined:
    Oct 6, 2004
    Messages:
    11,334
    Resources:
    22
    Tools:
    3
    Maps:
    5
    Tutorials:
    14
    Resources:
    22
  5. forzamoto

    forzamoto

    Joined:
    Apr 14, 2008
    Messages:
    192
    Resources:
    1
    Maps:
    1
    Resources:
    1
    I agree with you 100% there Ralle
     
  6. Ostaph13

    Ostaph13

    Joined:
    Jun 27, 2008
    Messages:
    15
    Resources:
    1
    Tutorials:
    1
    Resources:
    1
    Yea I'm going to update this tutorial as well as creating another one.
     
  7. diabloste

    diabloste

    Joined:
    Aug 25, 2007
    Messages:
    43
    Resources:
    0
    Resources:
    0
    This actually helped me alot.. Thanks! Even tho. I do exactly what you write, and theres still bugs in my TD. Either you could help me, or else it must go on being bugged >:l
     
  8. Plokoon

    Plokoon

    Joined:
    Jul 26, 2008
    Messages:
    2
    Resources:
    0
    Resources:
    0
    • Wait until ((All units of (Units owned by Player 12 (Brown)) are dead)Equal to True), checking every 1.00 seconds


    How i do that?
     
  9. Oziris

    Oziris

    Joined:
    Oct 14, 2006
    Messages:
    4,109
    Resources:
    3
    Icons:
    1
    StarCraft II Resources:
    1
    Tutorials:
    1
    Resources:
    3
    Yes, it's really hard to make this trigger:

    Wait until ((All units of (Units owned by Player 12 (Brown)) are dead)Equal to True), checking every 1.00 seconds

    If you cant tell me then at least post the map. :/


    Edit: I found a bug when i was testing, or mybe i diden't do it right. When the creep comes to the END of the region the game exits to the desktop and Frozen Throne closes.

    Edit: I fixed the problem, the game doesn't crash anymore.
     
    Last edited: Jan 3, 2009
  10. SomeRandomDeleted Dr. Cabbage0

    SomeRandomDeleted Dr. Cabbage0

    Joined:
    Jan 11, 2008
    Messages:
    440
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Leaking trigger omfg.. srsly, you aren't joking with this tutorial? You are serious?
     
  11. Kercyn

    Kercyn

    Joined:
    Feb 14, 2009
    Messages:
    850
    Resources:
    0
    Resources:
    0
    This is very simple. Just go to the Object Editor and set every creep's "Stats - Food Cost" to 1. Then create a trigger that will look like this:

    • Events
      • Player - <Creep Controller>'s Food used becomes Equal to 0.00
    • Actions
      • <Wave cleared, spawn the next>
     
  12. Catch_ya

    Catch_ya

    Joined:
    May 21, 2009
    Messages:
    982
    Resources:
    1
    Spells:
    1
    Resources:
    1
    Leaks

    Unit - Order (Entering unit) To Move To (Center of End) = Leak set end = (Center of End)
    unit - Order (Entering unit) To Move To (Center of End)
    call RemoveLocation(udg_end)
     
  13. Slaydon

    Slaydon

    Joined:
    Jan 6, 2008
    Messages:
    2,432
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    I dont think thats smart, isnt it better to just do this:

    • Events
      • A unit owned by player 12 dies.
    • Conditions
    • Actions
      • (Is there a variable for each level that you can insert in Conditions?)
      • If then else multi thing
        • If (it was lvl 1)
        • And
          • Number of Living Footmen? owned by player 12 equal to 0
      • Then
        • Show text
        • Start Level 2 Trigger
      • Else


    For removing leaks? or?

    EDIT: Catch_Ya posted while writing this
     
  14. Kercyn

    Kercyn

    Joined:
    Feb 14, 2009
    Messages:
    850
    Resources:
    0
    Resources:
    0
    Huh? My trigger only has only one event, not multiple if/then/else statements. Why on earth should you confuse yourself with variables and multiple if/thens when you can replace that with just one event?
     
  15. Slaydon

    Slaydon

    Joined:
    Jan 6, 2008
    Messages:
    2,432
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    Your trigger will spawn the same units every time then.
     
  16. Kercyn

    Kercyn

    Joined:
    Feb 14, 2009
    Messages:
    850
    Resources:
    0
    Resources:
    0
    No, it won't. Not if the creator uses arrays.
     
  17. Catch_ya

    Catch_ya

    Joined:
    May 21, 2009
    Messages:
    982
    Resources:
    1
    Spells:
    1
    Resources:
    1
    you got these variables:
    Level = integer (the current level of the waves)
    Unit_Type = Unit-Type (The Unit type of being spawned)
    Number = integer (The number of units spawned)
    so

    number of living (Unit_Type) owned by player 12 brown equal to 0
     
  18. demonspy

    demonspy

    Joined:
    Jun 21, 2008
    Messages:
    36
    Resources:
    0
    Resources:
    0
    Mm 3/5 becouse i dont understand very much .i thought it will be easier.
     
  19. demonspy

    demonspy

    Joined:
    Jun 21, 2008
    Messages:
    36
    Resources:
    0
    Resources:
    0
    Trigger4:Lives Lost Red

    Leaderboard - Change the value for Player 1 (Red) in (Last created leaderboard) to RedLives


    HOW TO MAKE THIS ? OMG I DONT SEE THIS IN THE TRIGER ?









     
  20. KEALOR

    KEALOR

    Joined:
    Jun 25, 2009
    Messages:
    3
    Resources:
    0
    Resources:
    0
    im makin a mini TD and my 2nd wave (giant Kobold name:that thing) doesnt work it goes bout halfway thru my maze then turns around & goes bak 2 start

    sum1 plz help its pissin me off