- Joined
- Jan 6, 2008
- Messages
- 2,627
Warcraft III World Editor Guide!
Index:
For this tutorial I’m using Warcraft III Editor Unlimited which can be downloaded on www.wc3campaigns.net/tools/weu/.
I’m using it because it can make your map a bit over 2x times bigger, and more items to use, but you won’t need it for this tutorial.
However, I do not recommend using this tool, since it is outdated and may crash your map.
1) Terrain
This is a picture of a member of The Hive Workshop called "MadseN", which is a very simple terrain:
Now, the grass, mushrooms, shrouds, stones, lamps, fences and trees you see are Doodads and Destructibles.
The area it’s placed on is the Terrain.
Let’s make a simple terrain, start off with a map at any size, and be creative. These are the tools you will need in the Terrain Editor:
Tools:
Terrain Palette:
Doodad Palette:
Let’s start making something, start off with some different terrains:
See what tiles fit together and place them how they would look in reality:
Then you would use the “Apply Height” tool for random terrain height too.
(Note: You might use some higher Size for this tool.)
Again, look what fits and how it should look, don't overdo it.
Now the terrain looks good, let’s put on some Doodads and Destructibles on it.
Start off with Environment in the Doodads, and Ashenvale, you would use almost all of these, just if it fits in, If it is flying, or sticks in the ground, press Ctrl + Page up/down to fix it.
Do not make your map overfilled with shrubs, watch where you place everything.
It may not look too 'forced', but natural.
Looks nice now, doesn’t it?
Lets insert some Trees/Destructibles, so it will look beter.
This is done very fast if you know where to place them, remember to use dead trees too, and you might want to increase the size.
Now a simple trigger, just to show you how to improve this terrain, this is just for the terrain, so it’s not much of a trigger.
Well, open you’re trigger editor and make a new trigger called "Fog", or place the actions in an exisiting trigger that runs at map init.
Right click – New Event and select "Map Initialization", then make something like this:
This is how it looks in-game, sweet terrain and you’re done with the terrain, I didnt show you the cliffs and water because you wont need it so much, but if you're going to use it, you should use ”Ramps” on it to make it walkable or anything that fits.
2) Objects
Units:
This is the Object editor, which is needed in all maps; you can make buildings, units, heroes. You can use custom models to fit your map, they can be found on many wc3 sites (like this site).
You can also attach some models into a unit like a sword on a peasant.
I will show you how, start off by pressing Ctrl-C and Ctrl-V on ANY unit you like, and open up the Import Manager.
When you've got the model you want and the sword, shield, helm, armor or trousers, you must go to your Import manager and insert all the .mdx and .blp files inside it.
Rename the paths to the correct names (most of the time, .blp files have "Texture\" in front of the name, but this isn't always the case - check the readme, or the site where you got the model for the correct paths).
Like this:
Let’s insert it to our unit, open up your object editor again and find Art – Model File and select your model (not sword), if you choose not to use a model, just skip this part and go right to the trigger editor part.
Right click on the unit, press “Select in Tool Palette” and place it inside the terrain we made earlier.
It would appear as a box, just let it be like that and if you want it like the model, save, close and re-open the map and it’s done.
If your model is still a box, one of the paths isn't correct.
Now, let’s make the weapon attached.
Go to the Trigger menu and insert this action into the trigger you have made earlier for the fog.
If you didn't make that trigger, insert the actions or create a trigger that runs at map init.
Not an excellent picture, but I have used a two-handed axe.
But he is wielding it, now, let’s rename our unit.
Just search for it on your selected unit, it should be in the end. Then lets edit his abilities.
Find the "Abilities normal" in the Unit's page and place some random stuff the normal abilities are always on these unit’s and won’t need to be learned.
Just random, to start with.
Now find the stats HP and Mana and edit to what you would like.
Then we could edit what he a can build.
Let's see out progress:
Now we can create a building...
In my example, the building will be like a tree hut.
Let’s make it a large building, that we can “Walk” inside with triggers (these triggers will be shown later on).
First we need to make a tree Doodad in the "Doodad page" in object editor and change the model to whatever you like, set the Maximum and Minimum scale to around 5 and put the Pathing textures to "NONE".
Now go to the region palette and make a region around the tree, and another nearby the region you've just made, call the big one "Enter 1" and the small one "Leave 2"
We will need these regions later for the triggers.
You can also put regions around other units and buildings; change all the models on human buildings, like a whole new race.
Next up, the Trigger editor, but first we need to make our tree “Hut”.
Now it’s time to use Doodads->Pathing Blockers and Cliffs on the terrain. Take it all the way north on the map, or south in a deserted area and make a cliff like this:
Then, create a large region inside this area called "Leave 1", but make it a bit from the end. So we can make that if a unit leaves that region it would get back, and you make a small in the middle called "Enter 2".
Now we've got a secret tree house. We can make it Only Available for our Troll here to get into.
Inside this we can put something inside, like a Fountain of Health and Mana inside and Doodads and then we are actually done with this topic.
3) Triggers
Note that these triggers are very simple, but this is a start.
Trigger
-
Enter
-
Events
- Unit - A unit enters Enter 1
- Unit - A unit enters Leave 1
-
Conditions
- (Unit-type of (Entering unit)) Equal to Slaydon tha Troll
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Enter 1 contains (Entering unit)) Equal to True
-
Then - Actions
- Set TempLoc = (Center of Enter 2)
- Unit - Move (Triggering Unit) instantly to TempLoc
- Camera - Pan camera for (Owner of (Triggering unit)) to TempLoc over 0.00 seconds
- Custom script: call RemoveLocation(udg_TempLoc)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Leave 1 contains (Entering unit)) Equal to True
-
Then - Actions
- Set TempLoc = (Center of Leave 2)
- Unit - Move (Triggering Unit) instantly to TempLoc
- Camera - Pan camera for (Owner of (Triggering unit)) to TempLoc over 0.00 seconds
- Custom script: call RemoveLocation(udg_TempLoc)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Events
There are multiple events, but it requires only 1 event for the trigger to start.
So if a unit enters Leave, but no one enters start, the trigger will still run.
Then there is 1 condition, this seems pretty self-eplanatory, but here is the explenation:
If the unit that has entered one of the regions in the events is of the type " Slaydon tha Troll", the trigger will run - if another unit enters the regions, nothing will happen.
Then the actions, this is more advanced:
We start with an if/then/else-function, this is to check in which region the unit is, so we can move him to the correct position.
Then we have the condition "(Enter 1 contains (Entering unit)) Equal to True" - this means that the entering unit is in the region "Enter 1"
Now we know where we need to send him.
We set the correct location in a variable called "TempLoc", This is to remove the leaks, always do this!.
This variable is of type "Point" and has no array.
We move the unit to the variable "TempLoc", which we have just set to the correct position, we do the same for the camera (since it won't move to the position on it's own).
After that, we remove the leak caused by the position with the custom script.
For more information about leaks, go to this tutorial: Things that Leak
Note that leaks cause lag and (in huge amounts) can cause Warcraft to crash and can split the server!
You always have to remove leaks to prevent this from happening.
Credits
- Slaydon: Creater of the tutorial
- Ap0calypse: changed the word-file to this text, uploaded the images, edited the trigger and fixed some typo's
- MadseN: Made the terrain in the first screenshot.
Last edited: