Starcraft's data memory is located in a single block starting at 0x00510000 (the 5308416th byte of memory) <<check this>>. At 0x0058A364 (about 500 kilobytes later)
What the hell is that? The rest of the explanation is even worse. Also, we don't modify the unit number anymore.
Yes we do. Maybe not over in Conceptland where you've figured out about players, but this is about extended
unit deaths.
START OVER
Assume that
1) The reader doesn't know what 0x######## or a "memory address" is.
2) The reader doesn't know what a "deaths table" is.
3) The reader doesn't know that death counts are stored in a block of memory.
4) The reader doesn't know ANYTHING except for basic english.
Sorry, I figured I wasn't writing for wikipedia, lemme fix that:
Extended Unit Deaths
by Doodle77 (Channel ops, former moderator, Static SEN owner)
If you've ever visited the Mapmaking Assistance forum, no doubt you have seen a topic of "Useful EUD links." You may even have heard of Devilesk's Eggball using EUDs. But what are EUDs?
In short, EUDs (Extended Unit Deaths) are a way of using the Deaths trigger condition to read things other than death counts, or the Set Deaths action to write to things other than death counts. Now we'll take a closer look at how they work.
Starcraft's data
memory , which is used to store everything related to the game is located in a single block starting atthe memory address
0x00510000 (the 5308416th byte of
virtual memory) <<check this>>. At
0x0058A364 (about 500
kilobytes later) the area used to store
death counts begins. The data is arranged in a
manner that is efficient for Starcraft to access: there is one group of twelve numbers (corresponding to
players 1-12) for each
http://staredit.net/wiki/Unit_Types (228 in all). So when Starcraft wishes to get the death count of Terran Goliaths ([url=http://www.staredit.net/wiki/Units_(Types)">unit #3 - units (along with everything else) are numbered starting with zero) for player 5, it goes to the fourth group of numbers and then takes the fifth number from that group.
But the units are just represented as numbers here, so what happens when we tell Starcraft to get the deaths for unit #1340? This isn't a real unit, but Starcraft does not check this. So it goes to the 1341st group of twelve numbers (remember that units are numbered starting with zero), which is past the end of the area used to store unit deaths. Since Starcraft's data is (for the most part) all in one block, this data is
something unrelated to deaths. If we read the deaths of 1340 for Player 1, we have ended up reading the piece of data at the
memory address 0x599EA4. Through the use of extended units, we have made it possible to read
any part of Starcraft's memory after the deaths table<<will write more later>>
Also, tell ip to fix this escape() bullshit.
None.