yeah, but if you are a mapper, it's simple to think of them in terms of "CONDITIONS" and "ACTIONS". I'll use MemGraft which is basically the same
Here is an explanation... Buttons don't do anything, unless instructed to perform a certain action. Starcraft uses 3 types of action routines: orders (simple ones such as move, stop, attack, attack move, repair etc.), scripts (spider mine, which waits for units to come in proximity, then attacks like crazy, creep management, such as creating creep, spreading it, losing it if a creep provider such as a hatchery or colony dies, burrowed states etc.) and something I call casting (they are basically intermediates that call other functions, and are, in most cases, techs/spells, and the complexity in all this is that some call weapons, flingys, iscripts etc.). If you're wondering where they are, they're stored in Orders.dat
Anyway, each of these orders/scripts have properties (from flags, such as not being interrupted, not casting over obstacles such as water etc. to stuff like which unit is allowed to do it, since you won't see a tank with mines or a marine with lift-off buttons... and even if you add them, it won't work unless you set a marine to be allowed to liftoff, but it gets more complicated since you'll need to edit lo? files and iscripts... but back to the point now...). In order for StarCraft to know what the player wants, he uses buttons to interact with the user (talking from the engine's POV
).
So now it gets fun
When you press a button, it won't do anything, unless it is properly set-up. This is done by using a set of conditions (reqs) and a set of actions (order calls). Let's say a lurker. We'll assume we are in StarCraft (therefore a lurker doesn't exist). You'll create a hydralisk mutant thingy that only attacks while burrowed. This means the following:
- attack button is missing while unburrowed
- attack button is visible while burrowed
- even if some dude h4xes the game to have an attack button while burrowed, the unit won't attack
Here is where the Reqs and Acts come in:
Button: Attack
Req: Unit is burrowed (noted as "Is using ability 11")
Act: Attack
What does that mean ? The req is "is using ability" and the req value is 11.
If you'll check TechData.dat in your favorite ARR Data editor (A3, A0, ArrEd or DatEd) you'll see that 11 is the ID for burrowing.
This is similar to something like:
Button: Research
Req: Tech is not researched X
Act: Research X
X being the ID of the tech you want to research.
Of course you can do fun stuff like in WarCraft 3, where, by researching one spell (which is actually a traiing that researches both a spell and increases mana) you'll get a new spell on the next level. Something like weapon upgrades only for spells.
In this example we'll allow researching of the lurker aspect ONLY IF burrowing is researched first.
Button: Research Lurker Aspect
Req: Tech is researched 11
Act: Research 32
As for the large textboxes on the right of the Req and Act tabs, they are used to add new actions or requirements using the hex conversion of asm. In asm, iirc, the values of reqs or acts are the EAX registers (but I am not 100% sure).
Anyway, hope this gave you a larger horizon on the fun stuff you can do by playing with Reqs and Acts