免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖

[其它] StarCraft Mapping (转载)

Mapping
General Mapping — Quickies
What is a SCUM? by BSTRhino
SCUM stands for StarCraft User Map, or basically, any map made for use with StarCraft. SCM, which originates from the file extension, is a synonym, but SCX is rarely used to refer to Brood War maps. "SCUM" should be pluraized as "SCUMs", but the incorrect usage "SCUMS" is also common, which can be confused with the more specific term of the same name. SCUMS or UMS refer to Use Map Settings, meaning the map contains triggers or modified data that requires it to be played with the "Use Map Settings" option.

What is StarEdit? by Basan
StarEdit is the map editor that Blizzard bundled with StarCraft, and it is the only official StarCraft editor. It should be in your StarCraft folder. It has decent map creation capabilities, but it lacks advanced features, such as hidden AI scripts and string management. Its trigger interface is point-and-click and allows the easy creation of triggers, but it doesn't support text-based manipulation of such triggers.

What does SCXE stand for? by BSTRhino
SCXE stands for StarCraft X-tra Editor. It has more features than StarEdit, but considerably less than the advanced editors. However, since it resembles StarEdit, and doesn't allow users to change too many things that could crash StarCraft, it's safer than more advanced ones.

How do different editors compare? by UED77
StarCraft map editors have varying degrees of versatility. The tier is as follows:
StarEdit occupies the most basic level.
SCXE has some unit placement and customization options that StarEdit lacks, but it's still built onto the StarEdit core, and doesn't offer more advanced features.
SCM Toolkit and GUEdit are now-obsolete utilities that performed advanced operations on StarCraft maps. They have since been superseded by advanced editors or advanced utilities.
Advanced editors (Starforge and SCMDraft) have numerous features that provide more efficient mapmaking and full utilization of the StarCraft map (CHK) format.
Advanced utilities, spearheaded by Uberation, which has superseded ProEdit, provide specialized functions, some of which are not present in advanced editors, such as string recycling and map protection.


I can't get SCXE to work after installing it and it shows me an error message about a *.dat file of some sort. Help? by Basan
SCXE requires Brood War to be installed.

Where do I download...? by BSTRhino
There are a number of places you can find mapping programs. An up-to-date resource is maintained at the bottom of this thread.

I tried to open a map, but I just get "StarCraft was unable to open [...]. Please make sure that the file is a valid Starcraft data file." by BSTRhino
Most commonly, the map has been protected with a special program. This is to keep people from map stealing, which is the action of taking a map and publishing it, with or without changes, as if it were one's own. As a type of plagiarism, this is highly looked down upon, and the concensus among mapmakers is that authors have the right to protect their work.
If you are interested in learning how specific parts of the map was done, you should first check out this FAQ. If your question has not been answered, try contacting the author, or asking on the forums.
It is also possible that the map is corrupted. Opening it in an advanced editor may display a message that clarifies if the map is protected or just corrupted.

How do I protect my map? by UED77
There are several map protectors at your disposal. Probably the best one is Uberation.
ProEdit was popular a while ago, but its author decided to focus his efforts on helping with the development of Uberation.
Important note: Be sure to save a backup copy of each map you are trying to protect so you don't accidentally protect any unfinished maps!

I heard there's some unprotecting program! Where can I get it? by Nahotnoj
You can't get it. Don't go around asking for it; it will only cause mistrust and is against the forum rules as well.

Which map editor is the best? by UED77
SCMDraft is probably the most full-featured one, as its terrain system is very versatile, and it handles triggers fully as text. There are two areas in which StarForge wins over its competitor: unit arrays (placing multiple units at the same time in a geometric pattern), and unit relocation, by changing the coordinates in the Unit Properties window. SCXE is more adequate to triggering and placing units with the hidden options that StarEdit doesn't show. That makes SCXE an enhanced version of StarEdit and a real useful tool to make more nifty maps without the further hassle of learning how to operate a completely different program.

I can't get SCMDraft 2 to save my triggers (with TrigEdit). Changes are not kept. by BSTRhino
You need to press the "compile" button instead of "save", which you'll find on the toolbar. Just mouse hover each toolbar button until you get the one with the "compile" tooltip and you'll know which one to press.


Terraining, units, and related map aesthetics
How to do I make terrain which has straight edges? by StealthyDeath
Terrain with straight edges is called square terrain. StarForge and SCMDraft can be used to terrain in such a way.

How do I make it so lots of SCVs can mine one mineral? (i.e. How do I stack units?) by BSTRhino
It looks like one mineral, but actually it's lots of minerals stacked on top of each other in the same place. You can stack things like that using an advanced editor.

How do I change players colors? by StealthyDeath
Player colors can be changed in the "Player Properties" dialog when using advanced editors. Only Brood War (SCX) maps support color change, and the colors will be reset each time the map is opened in StarEdit, SCXE, or a non-advanced editor. Therefore, such changes are best done last.

How do you place Broodlings that never die? by BSTRhino
Use the "Create Units" trigger action to create the Broodling, and it will have 0 energy. "Create Units with Properties" does not work. Using other actions on the Broodling, such as "Modify Unit Hit Points" will cause the energy to reset, allowing it to die.

How do you place lurker eggs that never die? by BSTRhino
Use an editor that can place them, which is SCXE or above. Eggs placed this way will not die.

How can I make armor or shield upgrades go above level 3? by Basan
Use SCXE or above. In SCXE, set the "Max Level" to the desired number. In StarForge, go to "Player Settings" > "Upgrades". In SCMDraft, go to "Map Settings" > "Scenario".
Note: While playing, the AI won't normally use higher upgrade levels than the default max, 3.

How do I make cloaked bunkers buildable like in Tower D? by hidiho2
Use SCXE.
Locations you need to create:
"Supply Follow". Only needs to be big enough to fit one supply depot. Doesn't matter where this is placed.
"SCV Wait". This is an area on an island where SCV's can be temporarily moved to. It needs to be large enough to hold all the SCV's for all players.
Trigger 1
Players:
(Players you want it to happen for)
Conditions:
Current player commands at least 1 Supply Depot
Actions:
Center location "Supply Follow" on Supply Depot] for (Player you want it to happen for)
Trigger 2:
Players:
(Players you want it to happen for)
Conditions:
Current player commands at least 1 Supply Depot
Actions:
Remove 1 Supply Depot at "Anywhere"
Create 1 Bunker at "Supply Follow"
Teleport (move) all SCV for (Player you want it to happen for) to "SCV Wait"
Wait 50 milliseconds
Create 3 Marine at "Supply Follow"
Execute AI Script "Enter closest bunker" at "Supply Follow"
Wait 200 milliseconds
Disable doodad state for Terran Bunker at "Supply Follow"


How do I create Invisible Bunkers? by StealthyDeath
After you load your bunkers, use the 'Move Units' action to move the bunker somewhere else. The bunker will still fire as if it were in its original position, while the bunker itself will be where you moved it to. You can only move one bunker to one location. So you'll have to have a location for each bunker or have a moving location.

How do I make Pylonless Buildings? by StealthyDeath
Use the Set Doodad State action on the building you want to activate:
Actions:
Enable doodad state for (Protoss Building) for player at "location".

You'll have to add a preserve trigger because it will disable itself sometimes. This only works on 1 of the same building at a time. Each same building you want to enable must have a location of its own.

How to I get glowing wireframes? by StealthyDeath
In Starforge, go to "Unit Settings" > (Unit you want to use). In the First HP box put "2" and in the second one put "1". There are other combinations for different glows, but this is the commonly used one. Glowing wireframes are generally used if the unit is invincible. The second HP box is the HP the unit will have in the game.

How do I place doors, traps, guns, or other installation-specific doodads on other tilesets? by StealthyDeath
Use SCXE or above.

How can spell energy cost be changed? by Basan
Use an advanced editor. Go to "Scenario" > "Technology Settings" or "Special Ability Settings". Select the spell and change its energy cost.
Note: For Wraiths and Ghosts, the energy cloaking draws each second cannot be changed, only the activation cost.

Triggers and related functionality
What are locations? How do I use them? by AqoTrooper
Locations are rectangular areas of the map that can be bound to triggers. Original StarCraft supports 64 locations, one of them being the permanently existing "Anywhere". Brood War allows the creation of 191 additional ones, bringing the total to 255.
Locations can be bound to triggers — in fact, without them, they are meaningless.
To enter the Location Layer, right click in the map editing window and choose "Layers" > "Location". Alternatively, click the "Layers" option in the menubar. To place a location, hold down the left mouse button and drag the boundaries of the appearing blue box. Once created, resizing can be done by moving the white boxes around the location. Moving can be done by clicking once to select the location, and then dragging it to the desired place. and dragging the location. To change a location's name, double click on it, or press enter while having that location selected.

The computer doesn't build or mine! by hidiho2
To make the computer do stuff, first, create a location around its base. It is customarily created above the town hall. Then make a basic AI script command:
Players:
(Your computer player)
Conditions:
Always
Actions:
Run AI script at Location: Run (AI script) at "Location"


You can choose a range of the AI scripts you want. The "Campaign" scripts are suitable for managing an already pre-built base. The "Custom" AI scripts are the ones that would be run if the game were melee or free-for-all, and as such, they are great when the computer starts from scratch. The "Insane" scripts are the most efficient, partly because whenever they are low on resources, they cheat.
A decent explanation of the different AI scripts can be found at the SCC AI scripts FAQ at Battle.net's StarCraft Compendium.

How do you control shared vision? by BSTRhino
In SCXE or above, using the AI scripts that are have names starting with "Shared Vision ON" and "Shared Vision OFF", you can modify the shared vision state between players.
Create a trigger, owned by the person who will see the changes. Then as an action, "Run AI Script" > "Shared Vision". The player that appears in the script is the one whose vision will be revealed to (or hidden from) the trigger owner. In SCMDraft, the scripts are named "+Vi0", "+Vi1" ... "+Vi7" for ON and "-Vi0", "-Vi1" ... "-Vi7" for OFF. The player number in the SCMDraft script name is one less than the common name for the player. To enable a player to see what Player 5 sees, you would use "+Vi4".

How do know for sure which AI script is the one I want to be under a trigger with SCMDraft 2 or even if have it correctly typed? by Basan
If you have doubts, try opening it with another map editor to see if it shows any known script. If it doesn’t show any script, or perhaps crashes the program, then it's probaly invalid.
A list of all script IDs will be posted soon — UED77 (2005-12-17)

How do I make hyper triggers? by Haplo and hidiho2
Hyper triggers — more accurately called hypercheck, always in the singuar — let you process triggers faster. The way StarCraft works is that when it comes to a "Wait" action in the trigger list, it checks all the other triggers to see if their conditions are met, and if so runs them, before coming back to the wait. Waits at the top are run before waits further down in the trigger list, and triggers owned by Player 1 will be run before triggers owned by Player 2, or higher players. Waits for one player will not stop actions for another, but will cause their triggers to be checked. Hypercheck involves the placement of a lot of "Wait 0 millisecond" actions, which cause your other triggers to be run 8-12 times a second, rather than the usual 1.

There are several common forms of implementing hypercheck. The most versatile one is as follows:
Trigger 1:
Players:
An active computer player that has no other "Wait" actions
Conditions:
Switch "Hypercheck" is set
Actions:
Clear switch "Hypercheck"
Wait 0 milliseconds
Preserve trigger
Comment: "Hypercheck" (optional, but highly recommended)
Trigger 2:
Players:
Another active computer player that has no other "Wait" actions, and has a higher number than the computer in the previous trigger
Conditions:
Switch "Hypercheck" is cleared
Actions:
Set switch "Hypercheck"
Wait 0 milliseconds
Preserve trigger
Comment: "Hypercheck" (optional, but highly recommended)

This way, the hypercheck can be easily enabled or disabled, by adding another switch to their conditions.
However, there might exist cases where only one computer is available, or no switches (or counters) can be used. For such cases, there exists a less versatile, albeit sufficient implementation; one that is seen most commonly even nowadays.
Players:
An active computer player that has no other "Wait" actions
Conditions:
Always
Actions:
Wait 0 milliseconds (×62, copied)
Preserve trigger
Comment: "Hypercheck" (optional, but highly recommended)


Remember, when you're using hypercheck and you find your map isn't doing what you want, it might be because you're using a "Wait" command for the player who owns the hypercheck triggers.

How do I remove a Map Revealer with triggers? by AqoTrooper
StarCraft doesn't let you remove specific Map Revealers with the "Remove Units at Location" command; you can only remove all the map revealers on the map at once. If you still want to remove specific Map Revealers, you can create locations over the ones that you don't want to remove, and recreate these once you have removed all. Another roundabout method is to use other units such as Observers or Dark Templars to provide vision.

How do I have players start with a fixed location in a melee map? by Akuma
Go to the "Forces" menu and uncheck "Random Start Location" for all four forces. This also prevents the annoying player color changes that would otherwise occur.

How do I make units roam around randomly? by BSTRhino
Use the Junk Yard Dog AI script in SCXE or above.
Players:
Player you wish to affect
Conditions:
Always
Actions:
Execute AI script: "Set Unit Order To: Junk Yard Dog (Roam around)" at "location"

Units roaming will roam the entire map, not just the location specified.

How do I make the computer nuke? by StealthyDeath
The computer must have both a loaded Nuclear Silo and a Ghost. The computer should also be allied to all players, because they will auto target any enemy units and ignore the location specified to when the AI script "Al Nuke Here" is executed.

This trigger will load the nuke silos.
Players:
Computer
Conditions:
Always
Actions:
Execute AI script at Location: "BW Terran 2-A Fill Silos With Nuke (Type 1)" at "(location where the Nuclear Silos are located)"


This trigger will order the Ghost to nuke that location.
Players:
Computer
Conditions:
Always
Actions:
Execute AI script at Location: "AI Nuke Here" at "(location to nuke)"

How do you open/close doors? by UED77
Use the "Set Doodad State" action.
Disable: Opens the door, disregarding its initial state.
Enable: Closes the door, disregarding its initial state.
Toggle: Changes doodad state to the opposite of its initial state. Usage not recommended.
However, using these commands alone will cause doors to be very buggy. To make sure doors actually work as they are supposed to, use switches.
Closing a door (initially closed)
Players:
Any Player
Conditions:
(Desired player) brings at most 0 men to "(location)"
Switch "Door1" is set
Actions:
Enable doodad state for (door of correct type) for All Players at "(location of door)"
Clear switch "Door1"
Preserve trigger
Opening a door (intially closed)
Players:
Any Player
Conditions:
(Desired player) brings at least 1 men to "(location)"
Switch "Door1" is cleared
Actions:
Disable doodad state for (door of correct type) for All Players at "(location of door)"
Set switch "Door1"
Preserve trigger

Because all switches are initially cleared, you should always set the switch in the trigger that reverses the doodad state. If the door is open, you should set the switch while you close it. If it is closed, you should set it when you open it. This will guarantee the flawless operation of doors.
Traps and the floor hatch operate much the same way.

How do I ally computers with a human player, or pit computers against each other? by UED77
Use the "Set Ally Status" action. The owner of the trigger will be the one affected by the trigger. For example, there is a P1 human, and a P2 computer, and you want to ally them. A trigger owned by P1 saying "Set alliance status: Set P2 to ally" will cause P1 to treat P2 as an ally. However, this trigger has not specified any behavior for P2, so P2 will still attack P1's units. To make sure an alliance is two-way (which it usually should be), be sure to use the appropriate triggers for all affected players.
Likewise, this can be used to force two otherwise allied computer players to attack each other. You just have to set them to be enemies, not allies.

Whenever I use the "Victory" trigger, I lose by UED77
This is a trigger that will execute for the player that owns it. It should always be executed for your player. Whenever "Victory" is executed, all players who do not share allied victory status with the victorious player will be defeated.

How can I change unit names? by StealthyDeath

Go to "Scenario" > "Unit and Hero Settings". Select the unit you want changed, uncheck "Use Default" in the "Custom Name" box, and type in the desired name.

How do I have a unit blinded when the game starts? by StealthyDeath
A medic will automatically blind any enemy unit that has HP of 81 or higher. This has been tested and will always work.

How do I mute unit speech? by AqoTrooper
Players:
Human players
Conditions:
Always
Actions:
Mute all non-trigger unit sounds for current player
Preserve trigger

Without the "Preserve trigger" action, the unit sounds would come back upon reloading a saved game.

How do I change text colours in units, messages and so on to have different colours than the default one, like have seen in some maps? by Fronter

This is probably the most asked question. Some editors, like SCXE, show characters around all text input areas that can be copied and pasted into the text. StarForge has colored squares below text input areas, while SCMDraft requires you to type in escaped character references, which are listed in the "TrigEdit Help.txt" file.

How to make SCMDraft 2 to have trigger editing capabilities? by Basan
There is a plugin called TrigEdit, and it allows SCMDraft to create triggers with a similar similar to that of StarForge. The syntax of TrigEdit is explained in the "TrigEdit Help.txt" file located in the SCMDraft folder. If your SCMDraft didn't come with the TrigEdit plugin, perhaps you should update to a newer version
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

返回列表