HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Save/Load Triggers Pseudo Tutorial

12-23-2003, 03:14 PM#1
Shadowfax
In this series of messages I shall attempt to analyze and examine how the once "Blizzard-Only" save/load triggers work, using the Orc Campaigns as a guide for those trying to understand it all.

NOTE: All of this is based on the Orc Campaigns, so I shall be using their variables and triggers as a reference point:


PART ONE - REQUIRED VARIABLES

Each map in the save/load system requires the same set of variables when setting up map transitions. Here is the list of appropriate variables for a basic map transition:


AP1_Player Player Player 1 (Red)
* This variable is not a necessity, you could simply use the player triggers in place of this variable.

BlizzardFolder String None
CreateDefaultSpot Point None

ExpDisabledForRexxarBoolean False
Rexxar Unit No Unit
RexxarInParty Boolean True
*Rexxar is the default hero in the Orc missions, so to save time I'm using him for this project. It requires less editing of the core triggers to use Rexxar, but you can use any unit you wish.

SaveExt String None
SaveFolder String None
TransitionHero Unit None
TransitionHeroInParty Boolean False (Default)
TransitionHeroLife Real 0 (Default)
TransitionHeroMana Real 0 (Default)
TransitionHeroName String None

TranstionKey String OrcX01 Transitions
*OrcX01 is the name of the transition Key from the Orc missions. You can title this whatever you'd like.

TransitionSource Integer 0 (Default)
TransitionSpawnA Point None
TransitionSpawnB Point None
TransitionTarget Integer 0 (Default)
TransitionTargetArea Integer 0 (Default)
Zone Integer 0 (Default)
ZoneCount Integer 0 (Default)
ZoneFolder String Zones
ZoneMapExt String None
ZoneMapPath String <Empty String>
ZoneMaps String Array (20) <Empty String>
ZoneSaves String Array (20) <Empty String>

BREAKDOWN:

What all this stuff means:
1. AP1_Player - Defines who Player 1 (red) is.
2. BlizzardFolder - This is where your saved games eventually go. Whatever you define this to be will end up at this path on your hard drive:
Warcraft III Directory\saves\Profile(1,2,3,etc)\BlizzardFolder
3. CreateDefaultSpot - This is where your hero spawns.
4. ExpDisabledForRexxar - Not a necessity, but useful for cache testing purposes.
5. Rexxar - Our Default Hero for this project
6. RexxarInParty - Wether or not Rexxar is "in the player's party"
7. SaveExt - The extension (.w3z) of our save game files
8. SaveFolder - the name of the folder in BlizzardFolder where our saved games are going to end up
9. TransitionHero - Which hero is triggering the map change.
10. TransitionHeroInParty - Related to RexxarInParty, will define wether or not Rexxar is in the party on the next map.
11. TransitionHeroLife - What is the life of the Hero
12. TransitionHeroMana - What is the mana of the Hero
13. TransitionHeroName - The Name of our Hero (default Rexxar)
14. TransitionKey - The most important part of the cache system. This is where all the other labels (TransitionHero, ExpDisabledForRexxar, etc.) is stored.
15. TransitionSource - Defines what the source map of the transition is. If you're on map 1, going to map 2, then the TransitionSource is 1. If you're on map 2 going to map 1, TransitionSource is 2.
16. TransitionSpawn A, B, C, etc. - You can have as many of these as you want. Defines where your TransitionHero is going to spawn.
17. TransitionTarget - Which map are we transitioning to?
18. TransitionTargetArea - Defines the TransitionSpawn where the TransitionHero will appear.
19. Zone - This is a variable defined at Map Initialization. It tells us what map we are currently on.
20. ZoneCount - Defines how many maps are in our save/load system. The number must be equal to or greater than the number of maps you want to use.
21. ZoneMaps - The names of the maps in the game.
22. ZoneSaves - The names of the saved game files that end up in BlizzardFolder\ZoneFolder

SO! These are your variables. In Part 2, we'll start setting them up so they actually do something.

-Bejoty
12-23-2003, 03:42 PM#2
Shadowfax
In this series of messages I shall attempt to analyze and examine how the once "Blizzard-Only" save/load triggers work, using the Orc Campaigns as a guide for those trying to understand it all.

NOTE: All of this is based on the Orc Campaigns, so I shall be using their variables and triggers as a reference point:

PART TWO - Stuff to Do at Intialization

So you've got a list of variables that are just sitting there doing nothing. Now we need to put them to good use. For this project we'll need 2 (two) maps for the save/load system to have any purpose. Each map will requre three sets of Triggers:

Transition Common
Transition Map-Specific
Transition Events

1. Transition Common - Every map in the entire system of save/load levels MUST have this set of triggers for anything to work.
2. Transition Map-Specific - Defines things like TransitionSource and Zone. This is different on each map of the system.
3. Transition Events - These are the triggers that "trigger" map transitions, such as when a unit walks onto the appopriate region, or does something that requires the map to be changed.

Make up a single map. Place a region and title it "GameplayRexxarStart." Place a cave nearby and draw another region directly in front of it called "CaveTransition" and then make another region in front of that called "TransitionSpawnA" This is the extent of map editing you have to do for this project.

Now, since this is our first map, we want to make a default Hero to populate it. This is the way blizzard does it, and the way I do it:

Create two folders:
Load Heroes
Hero Levels and Defaults

In the Load Heroes folder, create two triggers:

1. Load Heroes:
Events
Conditions
Action - Create a game cache from Campaigns.w3v
Action - Run Trigger <gen> Load Rexxar

2. Load Rexxar:
Events
Conditions
Action - Game Cache - Restore Rexxar of OrcX01 from (Last Created Game Cache) at center of (Gameplay Rexxar Start)
Action - Set Rexxar = (Last Restored Unit)
Action - If (Rexxar Not Equal to No Unit) then do (Skip remaining functions) else do (Nothing)
Action - Set CreateDefaultSpot = Center of (GameplayRexxarStart)
Action - Trigger - Run (Create Default Rexxar)

In the Hero Levels and Defaults folder, create two more triggers:

1. Create Default Rexxar
Events
Conditions
Action - Create 1 Rexxar for (AP1_Player) at CreateDefaultSpot facing 0.00 degrees.
Action - Set Rexxar = (Last Created Unit)

2. ExperienceCapRexxar
Events - A unit owned by Player 1 (Red) Gains a level
Condition - (Leveling Hero) equal to Rexxar
Condition - (Level of (Leveling Hero)) Greater than or equal to 8
Action - Hero - Disable experience gain for Rexxar
Action - Set ExpDisabledForRexxar = True

NOW, after that's done, create your map initialization trigger and call the following triggers to run at map initalization:

Event - Map Initalization
Conditions
Action - Trigger - Run (Load Heroes)
Action - Trigger - Run (Init Zones)

Now, since there is no trigger called "Init Zones" we should create it. Do so and place it in the folder "Transitions Common." This is what the Init Zones trigger should look like:

Events
Conditions
Action - Trigger - Run Identify Zone
Set ZoneCount = 2
Set ZoneMapPath = Maps\FrozenThrone\Test
Set ZoneMapExt = .w3x
Set ZoneMaps[1] = test_01
Set ZoneMaps[2] = test_02
Set BlizzardFolder = Blizzard\Test\
Set ZoneFolder = (BlizzardFolder + Zones)
Set SaveExt = .w3z

WHAT THIS DOES: We'll get to the trigger "Identify Zone" in a minute, but the big thing here is that this trigger sets up where to find your transition maps, and where to save your saved games to. ZoneMapPath can be anything, but for now, just save your map files in the FrozenThrone folder in a new folder called "Test"

**You can technically define ZoneMapPath, ZoneMapExt and BlizzardFolder straight from the Variable Editor, but I find that doing it this way keeps everything readily accessible.

BlizzardFolder being set equal to BLizzard\Test means that your saved games are going to appear in this path:
C:\WarcraftIII Directory\saves\Profile #\Blizzard\Test
The profile number depends on what profile you use when you play the game.

ZoneFolder is the actual folder the saved games are stored in, so adding "Zones" to the blizzard folder means your saved games end up here:
C:\WarcraftIII Directory\saves\Profile #\Blizzard\Test\Zones

If you've played the orc campaigns, look in Blizzard\Zones and you'll see the saved games for that campaign there, so this stuff really does work.


Now, go down to Transition Map-Specific and create a trigger called "Identify Zone" that looks like this:

Events
Conditions
Action - Set Zone = 1

All this does is defines what zone we're currently in. Since we're logically going to start in map 1, then the zone we're in is 1. If we wanted to call this zone 2, then you'd use Set Zone = 2, but just call it 1.

Now the game knows that there is a directory for saved games, a directory of what maps we're going to use and that we're sitting on Zone 1 with a default Rexxar. Now it's time to do some transitioning.

Part 3 will cover Zoning Events
12-23-2003, 04:09 PM#3
Shadowfax
In this series of messages I shall attempt to analyze and examine how the once "Blizzard-Only" save/load triggers work, using the Orc Campaigns as a guide for those trying to understand it all.

NOTE: All of this is based on the Orc Campaigns, so I shall be using their variables and triggers as a reference point:

PART THREE - ZONING EVENTS

Okay, remember when I told you to create a cave and put a region next to it called "Cave Transition?" Wouldn't it be nice if that actually did something?

The first thing to do when performing a map transition is to define what map you're on, and what map you're going to. We've already discerned that we're on map #1 by using the "Identify Zone" trigger.

Now, we're going to start by going down to the currently vacant "Transitions" folder and create a few triggers. Create the trigger called "Zone to Cave"

Events - Time - Every 0.50 seconds of game time
Condition - (the trigger queue is empty) equal to True
Condition - Or Any (Conditions) are true
Conditions
((RexxarInParty Equal to True) and ((Rexxar is Alive) Equal to True)
and ((Cave Transition) contains Rexxar) Equal to True)
Action - Trigger - Turn off (This Trigger)
Action - Set TransitionTarget = 2
Action - Set TransitionTargetArea = 1
Action - Trigger - Add Zone Begin MiniCinematic to the trigger queue.
Action - Wait 4.00 Sections
Action - Trigger - Turn on (This Trigger)

Now, that MiniCinematic trigger also goes in the "Transitions" folder. It's not absolutely necessary, but it makes things appear smoother and gives some depth to the gameplay. Basically all it does is fades the screen to black for a few second while the game saves the level and the game cache. It looks like this:

Events
Condition - GameOver = False (add this to the variables list if you have to with the default value set to false)
Action - Set InCinematic Equal to True (add this to the variables list if you have to with the default value set to false)
Action - Cinematic - Fade out over 0.25 seconds using texture White Mask and color (0.00%, 0.00%, 0.00%) with 0.00% Transparency
Action - Wait 0.25 seconds
Action - If (GameOver Equal to True) then do (Skip Remaining Actions) else do (Do Nothing)
Action - Cinematic - Turn cinematic mode On for (All players) over 0.20 seconds
Action - Wait 0.20 seconds
Action - Trigger - Run Transition

You CAN skip this step. Instead of calling "Trigger - Add trigger Zone Begin MiniCinematic to the Trigger queue" in the "Zone to Cave" trigger, just add "Trigger - Run Transition" in its place.

Now, this "Transition" trigger is uber important. It sets up the entire process for saving your heroes and quest data and all the other good stuff. The trigger goes in the folder "Transitions Common" and looks like this:

Events
Conditions
Action - Set TransitionSource = Zone
Action - Set ZoneSaves(TransitionSource) = (ZoneMaps(TransitionSource) + SaveExt)
Action - Trigger - Run Export All
Action - Trigger - Run Perform Map Transition

WHAT THIS DOES: Setting TransitionSource = Zone means that you set TransitionSource = 1, since that's the number of the map that we're on, and the number that was defined with the "Identify Zone" trigger in part 2.

The second action means that when we eventually save this game, it's going to relate to this ZoneSaves string array. This sets up the current ZoneSaves integer to be "1" since we're on map #1. The second half of the action means that the integer applied to ZoneSaves will also be applied to ZoneMaps. Remember what we defined ZoneMaps[1] to be in the "Init Zones" trigger?

**flashback**

Set ZoneCount = 3
Set ZoneMapPath = Maps\FrozenTrhone\Test
Set ZoneMapExt = .w3x
Set ZoneMaps[1] = test_01
Set ZoneMaps[2] = test_02
...
Set SaveExt = .w3z

**end flashback**

So, this means that the save game filename will eventually be "test_01.w3z" and this will be addressed in following triggers and it's a bit more complicated than it seems.

Now we've got a trigger set up and ready to start saving information for us via the "Export All" trigger . . . which will be addressed in Part 4.
12-23-2003, 04:35 PM#4
Shadowfax
In this series of messages I shall attempt to analyze and examine how the once "Blizzard-Only" save/load triggers work, using the Orc Campaigns as a guide for those trying to understand it all.

NOTE: All of this is based on the Orc Campaigns, so I shall be using their variables and triggers as a reference point:

PART FOUR - SAVING ALL THE INFO

Now we've taken our Hero Rexxar and crossed into the "Cave Transition" region and we're ready to move onto the next map. How do we know what kind of stuff to save and where to save it to? This is where the game cache comes in. Loved by some, loathed by others.

PLEASE NOTE: The following information is, as always, taken directly from the Orc Campaigns and condensed for tesing purposes, ergo there is no Quest Data to worry about and only one hero. THIS PART IS HIGHLY BASED ON A LOGICAL SEQUENCE AND PRONE TO NOT WORKING.

In the trigger "Transition" we called an action to run "Export All." This is a vital step in the transition process, if not THE MOST vital. First, create the trigger "Export All" in the "Transitons Common" folder. It will look like this:

Events
Conditions
Action - Game Cache - Create a game cache from Campaigns.w3v
Action - Game Cache - Clear all labels of TransitionKey in (Last Created Game Cache)
Action - For each (Integer A) from 1 to ZoneCount Do (Actions)
Loop - Actions
Game Cache - Store ZoneSaves[(Integer A)] as (ZoneSave + (String((Integer A)))) of TransitionKey in (Last Created Game Cache)
Action - Game Cache - Store TransitionSource as TransitionSource of TransitionKey in (Last Created Game Cache)
Action - Game Cache - Store TransitionTargetArea as TransitionTargetArea of TransitionKey in (Last Created Gam Cache)
Action - Trigger - Run Export Mission Data
Action - Trigger - Run Export Heroes
Action - Game Cache - Save (Last Created Game Cache)

WHAT THIS DOES: We all (should) understand the creation of the Game Cache. The important part here is what we're doing with "TransitionKey" this is a string in which everything will be stored, including things like integers and reals, which are not strings in and of themselves.

The For Loop does some interesting stuff. It's basically saving our progress through the maps. That is to say, if we travel back to this map, it's going to reload the map it saved when we first left. If we leave and come back a third time, it will update the map so it's not the same saved game as the first time we left. All the parentheses become mind boggling and hard to understand, but if you understand the principle, then just go with it.

The other actions just save various variables to the TransitionKey. It should be noted that when writing the trigger, the "LABEL" should not be selected from a list. It should be typed out. The Category will always be TransitionKey, selected from the list.

Let's move on to the next trigger, Export Mission Data. This trigger also goes in the "Transitions Map-Specific" folder and looks like this:

Events
Conditions
Action - Game Cache - Create a game cache from Campaigns.w3v
Action - Game Cache - Store (AP1_Player Current gold) as CurrentGold of TransitionKey in (Last created game cache)
Action - Game Cache - Store (AP1_Player Current lumber) as CurrentLumber of TransitionKey in (Last created game cache)

The only information we're saving here is gold and lumber. This would be the place to save and update Quest data, hero experience caps, and other miscellaneous information. Since we default with 0 gold, create a "debug" trigger that adds a certain amount of gold and wood to AP1_Player just to see if this works.

The next trigger, Export Heroes gets a little tricky. Create the first trigger "Export Heroes" in the "Transitions Map-Specific" folder that looks like:

Events
Conditions
Action - Set TransitionHero = Rexxar
Action - Set TransitionHeroName = Rexxar
Action - Set TransitionHeroInParty = RexxarInParty
Action - Trigger - Run Export One Hero

All this does is store some info about Rexxar. The whole "RexxarInParty" thing is sort of a runaround and not really necessary, but leave it there anyway. The next trigger is "Export One Hero" which goes in the "Transitions Map-Specific" folder and looks like:

Events
Condition - TransitionHeroInParty Equal to True (which it is)
Action - Game Cache - Store TransitionHero as (Transition + TransitionHeroName) of TransitionKey in (Last Created Game Cache)
Action - Game Cache - Store (Life of TransitionHero) as ((Transition + TransitionHeroName) + Life) of TransitionKey in (Last Created Game Cache)
Action - Game Cache - store (Mana of TransitionHero) as ((Transition + TransitionHeroName) + Mana) of TransitionKey in (Last Created Game Cahce)
Unit - Remove TransitionHero from game

Now then remember how we had "Export Heroes" with only Rexxar listed? If you had multiple heroes you wanted to move across maps, you'd call this trigger after each one and TransitionHeroName would apply to different heroes. This is going to save TransitionHero (which is Rexxar) as TransitionRexxar in the Game Cache, to be loaded in the next level.

By removing the unit from the game, we make sure that there won't be duplicates when we return. ALLRIGHT THEN! Our resources are saved, and our hero is saved. Now it's time to actually save the game itself and switch the map . . . which comes in Part 5.
12-23-2003, 04:52 PM#5
Shadowfax
In this series of messages I shall attempt to analyze and examine how the once "Blizzard-Only" save/load triggers work, using the Orc Campaigns as a guide for those trying to understand it all.

NOTE: All of this is based on the Orc Campaigns, so I shall be using their variables and triggers as a reference point:

PART FIVE - The Physical Save, Changing Levels


Now its' time to actually change the level. Way back in the trigger "Transition" we called "Export All" and "Peform Map Transition." We just covered Export All in the last post, so all that's left is "Perform Map Transition" where the saving and loading takes place.

Now, a simple thing to do would be just to say "save the game as <whatever>.w3z and load <whatever>.w3z. But then it's not easy to dynamically update the save games when we switch between levels, so Blizzard came up with a rather ingenious way to do it. Create the "Perform Map Transition" trigger in the "Transitions Common" folder and make it look thusly:

Events
Conditions
Action - If (All Conditions are True) then do (Then actions) else do (Else Ctions)
If - Conditions
ZoneSaves(TransitionTarget) Not equal to <empty string>
(The ((ZoneFolder + \) + ZoneSaves(TransitionTarget))Saved Game
exists) Equal to True

Then - Actions
Game - Save game as ((ZoneFolder+\) + ZoneSaves(TransitionSource)) and load ((ZoneFolder +\) + ZoneSaves(TransitionTarget)) (Skip Scores)

Else - Actions
Game - Save game as ((ZoneFolder + \) + ZoneSaves(TransitionSource)) and change level to (ZoneMapPath + (ZoneMaps(TransitionTarget) + ZoneMapExt)) (Skip Scores)

WHAT THIS DOES: Okay then, we've got an if, then else statement. This is the beauty of Blizzard's idea. Think of it this way:

IF - The conditions are met
THEN - This map has been visted before, so load the old saved game
ELSE - The map ahsn't been visted before, so load the level from scratch

Since we're going to map #2, then the statement would look like this:

IF - C:\WarcraftIII Directory\saves\Profile #\Blizzard\Test\Zones\test_02.w3z EXISTS

THEN - The map has been vistited before, so save our game as:

C:\WarcraftIII Directory\saves\Profile #\Blizzard\Test\Zones\test_01.w3z

and load the saved-game file for level #2:

C:\WarcraftIII Directory\saves\Profile #\Blizzard\Test\Zones\test_02.w3z

ELSE - If the saved game doesn't exist where we said it would, then the map hasn't been visted before, so save our game as:

C:\WarcraftIII Directory\saves\Profile #\saves\Blizzard\Test\Zones\test_01.w3z

and load the level from scratch from the ZoneMapPath directory:

C:\WarcraftIII Directory\Maps\FrozenThrone\Test\test_02.w3x

Using the "Skip Scores" function just means that there will be no interruption between the levels and they'll seamlessly load from one to the next.

Now, the next level will load. But we haven't worked on the triggering for the next level so you'll load with a black play area via fog of war and nothing to do. We'll work on that in Part 6.
12-23-2003, 05:21 PM#6
Shadowfax
In this series of messages I shall attempt to analyze and examine how the once "Blizzard-Only" save/load triggers work, using the Orc Campaigns as a guide for those trying to understand it all.

NOTE: All of this is based on the Orc Campaigns, so I shall be using their variables and triggers as a reference point:

PART SIX - LOADING THE INFO IN THE NEW MAP

Our heroes are floating in the void of our game cache and we've loaded the next map. Unfortunately, there are no triggers to tell the cache what to do with all the stuff it has saved. So, it's time to change that.

First off, we'll be working with the second map (test_02.w3x). Create another cave or something and place a region on it called "Overmap Transition" and another region in front of that called "Transition Spawn"

The first thing you'll want to do is define all the variables that are found in Part 1, copy all the triggers from the test_01.w3x map and paste them into this new map. Some modifications will have to be made:

1. Map Initialization: Instead of calling Load Heroes and Init Zones, call Init Zones and a new trigger, "Import All"

2. Identify Zone - Change "1" to "2" since we're on a new map.

3. Zone to Cave - Change to "Zone to Overmap" and change the trigger that says "Cave Transition" contains Rexxar to "Overmap Transition" contains Rexxar AND change TransitionTarget from "2" to "1"

Now, time to start adding new triggers. First we'll do "Import All" which goes under the "Transition Common" Folder. **(at this time, you can also add these triggers to the test_01.w3x map, since you'll need them there as well.)** It should look like this:

Events
Conditions
Action - Game Cache - Reload all game cache data from disk
Action - Game Cache - Create a game cache from Campaigns.w3v
Action - For each (Integer A) from 1 to ZoneCount, do (actions)
Loop - Actions
Set ZoneSaves(((IntegerA)) = (Load (ZoneSave + (String((Integer A)))) of TransitionKey from (last created game cache))
Action - Set TransitionSource = (Load TransitionSource of TransitionKey) from (last created game cache)
Action - Set TransitionTargetArea = (Load TransitioNTargetArea of TransitionKey) from (last created game cache)
Action - Trigger - Run Import Mission Data
Action - Trigger - Run Import Heroes

This is reloading everything you saved with the "Export All" trigger back in part 3. The next trigger is "Import Mission Data" which goes in the "Transitions Common" folder and looks like this:

Events
Conditions
Action - Set RexxarInParty equal to (Load TransitionHeroInParty of TransitionKey) from (last created game cache)
Action - Player - Set AP1_Player Current gold to (Load CurrentGold of TransitionKey) from (last created game cache)
Action - Player - Set AP!_Player Current lumber to (load Current Lumber of TransitionKey) from (last created game cache)

If you defined anything else in Mission Data like quests and such, you can reload it here also. The next trigger is "Import Heroes" which goes in "Transitions Common" and looks like:

Events
Conditions
Action - Trigger - Run Set Hero Locations
Action - Trigger - Run Import Hero Rexxar

Set Hero Locations goes in "Transitions Map-Specific" and can be added to test_01.w3x also. It looks like:

Events
Conditions
Action - Set TransitionSpawnA = (Center of Transition Spawn)

**If you could be spawning on different places of the map, you'd then need to add a few IF/THEN/ELSE statements here. Since we only have one point of entry, this is all we need.

Now for Import Hero Rexxar. This trigger goes ino "Transitions Common" and looks like this:

Events
Condition - RexxarInParty Equal to True
Action - Set TransitionHeroName = Rexxar
Action - Set TransitionSpot = TransitionSpawnA
Action - Game Cache - Restore (Transition + TransitonHeroName of TransitionKey) from (last created game cache) for AP1_Player at center of TransitionSpot facing 0.00 degrees.

If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If (Conditions)
(Last Restored Unit) Equal to No unit

Then - Actions
Set CreateDefaultSpot = TransitionSpot
Trigger - Run Create Default Rexxar

Else - Actions
Set Rexxar = (Last restored unit)
Set TransitionHeroLife = (Load((Transition + TransitionHeroName) + Life) of TransitionKey from (last created game cache)
If (All conditions are True) then do (Then Actions) else do (else actions)
If (Conditions)
TransitionHeroLife Greater than 0.00
Then - Actions
Unit - Set life of (Last restored unit) to TransitionHeroLife
Else - Actions
Set TransitionHeroMana= (Load((Transition + TransitionHeroName) + Mana) of TransitionKey from (last created game cache)
If (All conditions are True) then do (Then Actions) else do (else actions)
If (Conditions)
TransitionHeroMana Greater than 0.00
Then - Actions
Unit - Set Mana of (Last restored unit) to TransitionHeroMana
Else - Actions

And there you have it, your hero should be up and running with all health and mana appropriately weighed in his favor. Now, if everything is set up properly and working, Rexxar should be able to travel back and forth between the Overmap (test_01.w3x) and the cave map (test_02.w3x).

If there's a problem and Rexxar just doesn't appear at all, then at least it narrows it down to a problem with the Game Cache, which can be a tricky devil. Just make sure you've SAVED the game cache in the Export All trigger and check your spellings and variables in each map.

The final step will be a wrap-up as well as some ideas.
12-23-2003, 06:56 PM#7
l]arkOne
Have you forgotten some " \ "?

C:\WarcraftIII Directory\saves\Profile #\Blizzard\Test\Zones
This is what you want to do but wont its really do this?
C:\WarcraftIII Directory\saves\Profile #\Blizzard\TestZones

I cant find the "\" in this
Set BlizzardFolder = Blizzard\Test
Set ZoneFolder = (BlizzardFolder + Zones)

Or do we have to add the slash later in the tutorial?
12-23-2003, 07:07 PM#8
Shadowfax
I'm sorry, I left out a slash. The action should read:

Set BlizzardFolder = Blizzard\Test\
Set ZoneFolder = BlizzardFolder + Zones

Thank you, I'll edit that presently.

-Bejoty
12-23-2003, 07:25 PM#9
Hunter0000
I smell... A ****ING SPAMMER

dont make each part a differnt thread you idiot! put them all under the same ****ing one!
12-23-2003, 08:34 PM#10
l]arkOne
Wait a sec, I just read part 5 and heres what I saw
(The ((ZoneFolder + \) + ZoneSaves(TransitionTarget))Saved Game


You see the slash? You added it after so no need to have it twice. Tho you should make a small note that the slash will be added later.
12-23-2003, 09:00 PM#11
l]arkOne
Trouble!!!! Something isnt right
C:\WarcraftIII Directory\saves\Profile #\Blizzard\Test\Zones\test_01.w3z
^ This is where its supposed to save


C:\WarcraftIII Directory\saves\Profile #\CustomSaves\test_01\Blizzard\TestZones\test_01.w3z

I got the same trouble when trying to make my own and I dont know what we can do.
12-23-2003, 09:17 PM#12
weaaddar
the triggers now save to customsaves to ensure a malicious user can't override your campaign data.This is the "fix" that blizz did.
12-23-2003, 09:42 PM#13
l]arkOne
But how are you supposed to write? I tryed all possible way of writing it and nothing will make it like we need. We need all file in the same folder and the loading path. This is what I was saying since at least 1 week and everyone is like check the orc campaign.
12-23-2003, 10:24 PM#14
weaaddar
remove the path is superflous just write the save as the name itself and the load as the first maps name\ name itself it'll auto save it to CustomSaves\mapname\
12-23-2003, 11:15 PM#15
l]arkOne
If you save as Map1.w3z, you can get the map by doing this; CustomSaves\Map1\Map1.w3z? I think I already tryed this one tho.