In olden days, people used trigger such as "If player brings to location x then do something" to trigger a command. This way of input has so many disadvantages. First of all, player can miss some important moment when inputing command. And second of all, mapmaker should create as many locations according to no. of commands he creates. And finally, it's very slow way to input command. If you want to use healing potion as soon as your health goes below than 5% in battle, the actual time you use the potion will be when you are already dead.
So what would be the better input method?
Dropship (Inventory)
I've first seen this method in "Basketball" map. If you unload some unit from transport such as overlord, shuttle and dropship then certain command will be executed according to the unit you unloaded. And after command has been executed order tranport to load unloaded unit.
Advantages: Fast and convenient. You can hotkey transport and click unit to execute command you want without having delay and moving screen.
Disadvantage: If you want to input sequence of commands really fast, this method isn't appropriate. And since each transport can hold up to 8 commands(assuming that unit in transport takes 1 grid), it can be inefficient if your map requires lots of command.
Any better way?
Command Tree
Many people believe that they can't set unit's build time to 0 second. And yes it is true, but did you know that in SCMDraft2 you can set build time to 1 millisecond?
Let's say we use units from gateway for input and we accept 2 inputs. Here is the command tree.
note: 'Z' = Zealot, 'D' = Dragoon, 'T' = HighTemplar and 'K' = Dark Templar.
__Z
/ | | \
Z D T K
__D
/ | | \
Z D T K
__T
/ | | \
Z D T K
__K
/ | | \
Z D T K
Possible outcomes = 16
{ZZ}, {ZD}, {ZT}, {ZK}, {DZ}, {DD}, {DT}, {DK}, {TZ}, {TD}, {TT}, {TK}, {KZ}, {KD}, {KT}, {KK}
If we want to accept 3 inputs then there will be 64 outcomes in total.
How about 4 inputs? There will be 256 outcomes. But you must set the timer so that when time expires initiate input.
For example, let's say input time out = 1 sec.
______| 0.0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0 |sec
Input : Z.............Z.................D
______
Result = {Z,Z,D}
______| 0.0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0 |sec
Input : T...........................................................................................K
______
Result = {T}, {K}
Result won't be {T,K} because K has been input after time expired.
There is actually one more method that is improvement of first method. That is moving unit out of some location so that it will trigger a command. But this method is also not efficient enough, because we only have got 0 ~ 9 for hotkey. If we have more than 10 commands then some commands must be executed by moving screen. Perhaps you can hotkey multiple units, but still nah..
And if you have invented better input method than this one, then feel free to post here.
DO NOT forget about unit's build time can be 1 millisecond by using SCMDraft2
Note: I'm not the inventor of any of methods above.
QUOTE
Dropship (Inventory)
I've first seen this method in "Basketball" map. If you unload some unit from transport such as overlord, shuttle and dropship then certain command will be executed according to the unit you unloaded. And after command has been executed order tranport to load unloaded unit.
Advantages: Fast and convenient. You can hotkey transport and click unit to execute command you want without having delay and moving screen.
Disadvantage: If you want to input sequence of commands really fast, this method isn't appropriate. And since each transport can hold up to 8 commands(assuming that unit in transport takes 1 grid), it can be inefficient if your map requires lots of command.
Any better way?
Use the same system you just described for the command tree.
QUOTE(Sniper @ Sep 29 2005, 03:53 PM)
Use the same system you just described for the command tree.
[right][snapback]323948[/snapback][/right]
Yep, but the difference is that you can't unload unit twice in short period of time. And sometimes, even you click the unit, unit just won't be unloaded. Very weird, hah?
QUOTE(fishgold @ Sep 28 2005, 05:46 PM)
DO NOT forget about unit's build time can be 1 millisecond by using SCMDraft2
[right][snapback]323886[/snapback][/right]
Starforge does it to...just put the time to 1 it takes 1 milisecond. I put the time to 0 and it crashed if you tried to build it so i changed it to 1 and it is split second fast just like you said. So Starforge works as well.