Introduction
Hello, in this tutorial you will learn what is needed to make a campaign and how to make one.
Dont scream to me that there already is a campaign tutorial, if you look at that tutorial you'll know that nothing like that should be in the wc3c database anymore, so i wrote this as a replacement. No offence, TheFirstSword
What to do
Ok, run world edit and open up the campaign editor, this comes up

Ok, change the name from "Just another Warcraft 3 Campaign" to "Learning Campaign", change the author to your name and change the description to "Just a learning campaign".
Now click on "Custom Data"

Click on "New Custom Unit"

Change the name to "Hero" and select the Paladin

Now click OK
Now minimize the Campaign Editor and go into the Terrain Editor (which is the default World Edit screen) and go to "New Map"

Click OK
Now go File>Save Map As and save it as "Map01"
Now go back to the Campaign Editor and click on the General tab

Right Click On Just Another Warcraft 3 Campaign

And select add map

And select Map01 then click OK
It's like this now

Now right click on Map01 and select edit. This is so we can just click on Save whenever we want it to save to the campaign instead of having to reimport it into the campaign.
Now in the tool palette go to unit palette > custom units and place "Hero" anywhere on the map.
Now go into the trigger editor

Delete the "Melee Initialization" trigger.
Make a new trigger and call it "Save Hero"
Add the Event
Trigger:
Player - Player 1 (Red) leaves the game with a victory
this event fires when Player 1 (red) has a victory.
No conditions
add the actions
Trigger:
Game Cache - Create a game cache from Learning Campaign.w3v
this just creates the Game Cache that we're going to save "Hero" in.
Trigger:
Game Cache - Store Hero 0001 <gen> as Hero of Map01 in (Last created game cache)
this stores "Hero" in the Game Cache so we can load him in another map
Trigger:
Game Cache - Store Hero 0001 <gen> as Hero of Map01 in (Last created game cache)
And this trigger just saves the game cache.
So the trigger should look like this
Now we need another trigger, one that sets the next map, but first we need another map. Press the save button or Ctrl + S NOT SAVE AS.
Now once it has saved make a new map doing what i said before to make it.
Press Save As and save it as Map02.
Now go back into the campaign editor and add that make, doing what i said before.
Now right click on Map01 (not Map02) and select edit. Go back into the trigger editor and back into the Save Hero Trigger.
Add a new action.
Trigger:
Game - Set the next level to Map02.w3m
This sets the next level to Map02 so that when you have a victory it will go to that map.
Press Save (not save as)
Go back into the Campaign Editor.
You'll notice that now it looks like this:

That meens that the Set Next Level action works.
Now rightclick on Map02(not the one that's branching off Map01) and select edit.
Now in Map02, go to the trigger editor.
Click on the "Variable Editor"

Make a new variable called Hero with the type Unit

Now get out of the variable editor
Delete the "Melee Initialization" trigger.
Make a new trigger called Load Hero.
Add the Event
Trigger:
Map initialization
This event fires as soon as the map loads.
Add the action
Trigger:
Game Cache - Create a game cache from Learning Campaign.w3v
Now this recreates the Game Cache we made in Map01 so that we can load "Hero" from it
Trigger:
Game Cache - Restore Hero of Map01 from (Last created game cache) for Player 1 (Red) at (Center of (Playable map area)) facing 0.00
This restores "Hero" which we stored in the game cache in Map01
Trigger:
Set Hero = (Last restored unit)
This sets "Hero" to a variable so that you can do stuff with him via triggers, because you wouldnt be able to reference him in triggers otherwise.
So the trigger should look like this:
Now your hero will be loaded.
Press Save (do i really have to tell you again not to press Save As?)
Now go back into the Campaign Editor
You'll notice that Map01 is blue, why is this? Because it's not used, AKA you cant play it from the Campaign yet.
To solve this delema press the loading screen tab

Now, right click in this area

And select Add Button

This comes up

Leave Chapter as it is
Change Title to "First Map"
Leave File Loaded as it is
and select the "Visible (first time campaign is loaded)" button.
Should look like this now:

Click OK.
Go back into the General Tab.
Notice That Map01 is no longer blue.
Go back into the Loading Screen Tab
If you want to be able to access anymap without having to go to Map01 then add another button for the other maps, otherwise just go back to the general tab.
Press Save.
And thats how you make a Campaign, of course you need more maps and actual content in the map.
Good Luck with your campaign and hopefully you finish it.
This is The_Elite saying "Have Fun Everyone"
