First off, wow, I can't believe this site is back up again. I like it so much better than the one offered by those who advertised here when it was down. What happened anyway?
Secondly, I haven't seen much tutorials/threads on map making, I've NEVER finished a map, and I'm not claiming these ideas to be great, but they have helped me (and the realizations of these techniques have caused me to restart maps again and again...)
1) Personal Hero-following Location
A Personal Hero-following Location, which I call "Player_PL" is a location that constantly follows a player's hero. The hero followed must be unique (meaning there only being one of it for a player), though the hero may still have pets, friends, minions, etc.
There are many uses to this, the possibilities are many. Here's one of which I use:
In many RPG's, there are "Treasure Boxes", often which are represented by Vaspene Orbs, the cubic-looking things probes carry out of Assimilators, mine is not much different. Though... I consider my game to be a fairly large one and would like to place locations conservatively... so I use a "Player_PL"! This location will follow my hero constantly, and when my hero realizes a box over-there yonder, it can walk up to it, bringing the location to it, and a trigger would react appropriately to the box being in my hero's location.
Realizing how many locations this may save me (as many as there are treasure boxes), I go ahead and place all my treasure boxes on the map.
Crap.
How the heck do I determine which box to give what? That is a problem isn't it? But just as there are many possibilities to the functions of a Player_PL, there are also many possible remedies to the problems it causes. One of which is:
Delete all the treasure boxes you have created. Use a unit you would otherwise have no use for (preferably a flying unit). We'll call this unit "Box Decoy". Replace the deleted boxes with said unit. Grab any unit and place it adjacent (or under if you can) to the Box Decoy, we'll call it the Box Decoy's partner. At the beginning of the game, make a location center to wherever any Box Decoys may be. Remove the Box Decoy and its partner (so the location must be big enough to fit both when the location is centered onto the Box Decoy) and replace it with any number of a buried allied/neutral unit, then end the create list with a treasure box as the cherry on top.
Now when your hero walks up to the treasure box, his/her location would scream to the trigger commands "TREASURE TREASURE TREASURE!!!!" and the buried units under the box would determine which trigger to run. i.e. 1 buried zergling beneath the box means the player will be rewared 100 minerals. 2 zerglings buried beneath the box would mean 200 minerals.
Again, having a location follow your hero isn't a complicated idea, but the possibilities of what you can do with them may be.
2) Global Hero-positioning Location
A Global Hero-positioning Location is a location that constantly jump from one player's essential/unique hero to the other. I call it the Global_PL. RPG's often offer more than player, thus generating more than one hero. This technique is like grabbing all the Player_PL's and putting it into one, so that instead of making a trigger for each player that brings his/her hero's location to a triggering unit (the unit that causes a trigger to occur), one could simply make it so that when the Global_PL encounters the triggering unit, the appropriate trigger occurs.
For example, there are 3 key items in my game, the Uraj Crystal, the Khalis Crystal, and the Data Disc. There are to be "picked up" by any heroes that reach them. Instead of having 3 locations placed at each of the three key items, I could simply have one Global_PL jump from one hero to the next. When the Global_PL jumps to a hero that happens to be at the location of the key item, then the "pick up" trigger would occur. Specifying which player gets the item is also in your control.
There are many ways one could do this. I did the following:
There are 3 players to my map, each of which have a specific unit I have the Global_PL jump to. I chose to use death counters of a Starport of an allied Computer Player. For Player 1, placed above all other triggers except just before Player_PL (so that the Global_PL could position on the hero before any of the other triggers are checked), the Global_PL location centers onto a Medic under the conditions that Player 1 controls a Medic, and Player 8, my allied Computer Player, has suffered 0 deaths of Starports. Player two is under the same conditions, but the Computer Player is required to have suffered 1 death of a Starport for the Global_PL to jump onto Player 2's Medic. Player 3 is the same, but with the respective changes. Then on Player 3, after the Global_PL trigger, a trigger detects if Player 8 has suffered at most 1 Starport, then add 1 death in Starport for Player 8. Immediately after that trigger, another follows, detecting that if Player 8 has suffered exactly 2 deaths of Starports, then it sets deaths of Starports for Player 8 to be 0. Both of the later triggers have a Wait 0. at the end to make sure it wont go crazy -_-
To make it more clear:
Trigger
Players
Conditions
Actions
Repeat that trigger for players 2 and 3, making the changes of adding 1 more death to player 2's trigger condition and 2 deaths to player 3's.
after that, just after player 3's Global_PL trigger, this:
Trigger
Players
Conditions
Actions
Followed by:
[TRIGGER]
[DESCRIPTION]Add deaths of Starports if it has not reached 2[/DESCRIPTION]
[CONDITIONS]
[*]Player 8 has suffered at most 1 death of Terran Starport.
[/CONDITIONS]
[ACTIONS]
[*]Preserve Trigger.
[*]Modify death counters for Player 8: Add 1 for Terran Starport.
[*]Wait 0 milliseconds.
[/ACTIONS]
[/TRIGGER]
I only saved 2 locations with this method, but the amount of items, NPC's, and buildings added up may end up saving me a couple or few dozens of spaces.
This idea works better with Hyper Triggering
3) Speech-Lock & Random NPC Dialogue
This is not a location-saver, but it's one of my favorites nonetheless. So in my RPG, I've a town, and in that town, there are citizens. There are 4 types of occupents in my city. The most common are the Civillians as the common citizens, followed by Zealots and Marines as Soldiers and Guards, and a High Templar as the oh-so-common elder of the city. I'd REALLY like to NOT have any of them display a dialogue repeatedly (whether timed or not), and as a personal preference, not the same constant speech. I'd like varietion of their dialgoues...
This requires a counter function, you choose what you will, I chose a death counter of drones. This will also need a randomized switch called "talkSwitch" under a preserved triggers line.
First, I create a function that will cause the NPC to talk only once, and repeat only if I were to walk out of the location and then back in. I need a switch called talkCheck_P1, and a Location called 'Civillian Guy' with an Civillian in it.
For that, I have:
CONDITIONS:
talkCheck_P1 is Set.
Current Player brings exactly 0 of any men to 'Civillian Guy'.
ACTIONS:
Preserve Triggers.
Clear talkSwitch.
The above function will be used later.
Next, I have a function that'll... "ghetto" randomize a deathcounter from 0-4.
CONDITIONS:
Always
ACTIONS:
Preserve Triggers.
Randomize talkSwitch.
Wait 500.
then
CONDITIONS:
Switch talkSwitch is Cleared.
ACTIONS:
Preserve Triggers.
Set death counters for Player 8: Subtract 1 to Drones.
Randomize talkSwitch.
and
CONDITIONS:
Switch talkSwitch is Set.
Player 8 has suffered at most 3 deaths of Zerg Drone.
ACTIONS:
Set death counters for Player 8: Add 1 to Zerg Drone.
Randomize talkSwitch.
You could do whatever math you want (add 1, subtract 2, for example), this is just the simplist.
With those pieces of triggers set, I need now to have NPC dialogues applied to each of the death counters, so I have:
CONDITIONS:
Player 8 has suffered at exactly 0 Zerg Drone.
Current Player brings at least 1 of any unit to 'Civillian Guy'.
(add a condition of area here if you'd like. Areas like cities, dungeosn, so that your civs in your dungeo don't say the same things as your city civs).
talkCheck_P1 is Cleared.
ACTIONS:
Preserve Triggers.
Display Text 'Hi, how are you today?'
Set talkCheck.
And repeat for death counts: 1, 2, and 3.
What this entire thing essentially does is that everytime you walk into the location, the NPC displays a dialogue corresponding to each of the 4 death counts (0-4). When you walk into the location, the switch 'talkCheck' becomes set, disabling the trigger to repeat itself via Preserve Triggers. Then, when you walk away from the location, another trigger clears the switch. Now you have a speech system that only occurs once when you walk into a location, and it has 4 possible dialogues.
If you want many of your NPCs to talk, this technique really goes hand-in-hand with the Player_PL and Global_PL techniques. In my current map, I have a location constantly following my character, and when the computer happens to have a unit that provides speech in that location, it gives a dialogue respective to the randomized death counts. And in this way, all the civillians I walk up to has a set of common citizen dialogue, all the marines have their own, as well as the zealots. Of course, this would totally suck if you have all the civillians say the same set of dialogue for all the cities you have... so add a condition that requires a player to be in a particular city.
So.. I've typed a lot (AGAIN -_-)... and I do realize that these are simple techniques, if not with a giant "DUH" on them, but I found them to help me a lot, and after so many years of starcraft's release, not much is seemed to be said about the "DUH" stuff... maybe somebody else is noob like me would like this If you guys found this helpful, or would like me to post some more up here, let me know, if not, I'll stop wasting the forum space xD
I still have ideas like:
Area Identification - figuring out where your hero is without setting giant locations around the entire area.
More location-saving techniques
Tips on location recylcing.
Post has been edited 5 time(s), last time on Dec 29 2007, 2:22 pm by fm47.
None.