Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: Another EUD Question
Another EUD Question
Jun 12 2008, 2:10 am
By: Conspiracy  

Jun 12 2008, 2:10 am Conspiracy Post #1



I was wondering if there was any particular way to figure out the EUD offset of a defiler, when it casts swarm, through the use of EUDs, but not detecting the storm, but detecting the energy used to create the swarm.

I have tried myself, but to no success. Can one of the EUD pro's help out a beginner here?



None.

Jun 12 2008, 2:30 am DT_Battlekruser Post #2



Could you be more specific as to the circumstances? If you know the Local ID of your defiler, than you certainly detect energy loss.



None.

Jun 12 2008, 2:35 am A_of-s_t Post #3

aka idmontie

Use these:

+0x4C - BYTE bPlayerID
+0x4D - BYTE bMainOrderID
+0x4E - BYTE bMainOrderState
+0x4F - BYTE bOrderSignal

+0x57 - BYTE bSpellCooldown

Start at 0x0059CB40 to 0x006283D0.



Personal GitHub
Starcraft GitHub Organization - Feel free to request member status!
TwitchTV

Jun 12 2008, 2:37 am Conspiracy Post #4



Quote from DT_Battlekruser
Could you be more specific as to the circumstances? If you know the Local ID of your defiler, than you certainly detect energy loss.

Laymans terms please?



None.

Jun 12 2008, 2:42 am A_of-s_t Post #5

aka idmontie

Each unit has a Local ID associated with it -- from 0 to 1699. The first unit placed on the map is 0, the second is 1699, the third is 1668 and so on. The adress of Node 0 is 0x0059CB40. You need to read these address to see if it has fired:

+0x4D - BYTE bMainOrderID

Which would be 0x0059CB8D. Now go to datedit and find which ID number firing swarm is and read for that.

So, read the addresses:

0x0059CB8D + (n * 336) == 119

Post has been edited 1 time(s), last time on Jun 12 2008, 2:47 am by A_of-s_t.



Personal GitHub
Starcraft GitHub Organization - Feel free to request member status!
TwitchTV

Jun 12 2008, 2:43 am DT_Battlekruser Post #6



Statistics specific to an individual unit on the map (current HP, current energy, etc.) are stored in a table in RAM called the Local ID table. If you know a local ID and an offset, you can compute the location you need for the EUD condition. This is only plausible if you know the local ID of the specific defiler you want to detect. Local IDs are assigned upon unit creation, so any preplaced unit will always have the same Local ID. Otherwise, if the order of creation of new units changes, the local IDs change, and it becomes virtually impossible to detect properties.

This reminds me, I should get off my ass and finish MemCalc 6.1.

(edit) Uhh, A of S T, are you sure? There is a unit max of 1700 units and to the best of my knowledge the table is first filled in order from 0 to 1699.




None.

Jun 12 2008, 2:45 am Conspiracy Post #7



Nevermind, found it, thanks.



None.

Jun 12 2008, 2:45 am A_of-s_t Post #8

aka idmontie

However, using EUDs, the only efficient way to read these variables is about... 4 times per click... which measn you need to copy these triggers four times per cycle run.

Sorry, dtbk, ur right >.> I've been doing other things with unit node.



Personal GitHub
Starcraft GitHub Organization - Feel free to request member status!
TwitchTV

Jun 12 2008, 3:41 pm Heimdal Post #9



Does anyone have a good system for reading a low-order byte out of the unitnode? Since you can't deconstruct the value without EUD actions I can't think of a good way.

If Blizzard had added an action to copy one death count to another...



None.

Jun 12 2008, 8:02 pm O)FaRTy1billion[MM] Post #10

👻 👾 👽 💪

Quote from DT_Battlekruser
(edit) Uhh, A of S T, are you sure? There is a unit max of 1700 units and to the best of my knowledge the table is first filled in order from 0 to 1699.
If you look at the data, the first unit is in the first slot. The second unit is in the last slot, then it works backward to the first slot (and filling any that may become available.) This is also more apparent when reading preplaced units. One unit may be at like 0x59xxxx, the next at 0x62xxxx, then subsequent units' offsets getting smaller.

Quote from Heimdal
Does anyone have a good system for reading a low-order byte out of the unitnode? Since you can't deconstruct the value without EUD actions I can't think of a good way.

If Blizzard had added an action to copy one death count to another...
TrigPlug can. :P
Pretty much all you can do (other than external functions) is read every possible value... That greatly limits what you can read, though. Like upgrades you'd have to read it 8 times (one for each combination of the other upgrades that share the same dword), assuming all upgrades are available.

Post has been edited 1 time(s), last time on Jun 14 2008, 3:01 am by FaRTy1billion. Reason: lololwrongprogramname



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Jun 13 2008, 8:00 pm Conspiracy Post #11



Ok, I thought I had the code. But I guess I didn't DT, the defiler is the first unit on the map. A_of-s_t, could you explain those codes to me a little bit more?



None.

Jun 13 2008, 11:19 pm Riney Post #12

Thigh high affectionado

Someone gimme that code too...I...really need it...



Riney#6948 on Discord.
Riney on Steam (Steam)
@RineyCat on Twitter

-- Updated as of December 2021 --

Jun 15 2008, 4:36 pm DT_Battlekruser Post #13



Quote
If you look at the data, the first unit is in the first slot. The second unit is in the last slot, then it works backward to the first slot (and filling any that may become available.) This is also more apparent when reading preplaced units. One unit may be at like 0x59xxxx, the next at 0x62xxxx, then subsequent units' offsets getting smaller.

You should just out and publish all you know about EUD memory structures. I'm too lazy to examine RAM myself, so I'm just going on everything that's been published in the past.



None.

Jun 15 2008, 6:13 pm O)FaRTy1billion[MM] Post #14

👻 👾 👽 💪

I was writing a detailed tutorial, but then I got bored. :P



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Jun 15 2008, 6:30 pm I)eathBringer Post #15



how do u examine sc ram?



None.

Jun 15 2008, 6:51 pm JaBoK Post #16



Quote from Heimdal
Does anyone have a good system for reading a low-order byte out of the unitnode? Since you can't deconstruct the value without EUD actions I can't think of a good way.

If Blizzard had added an action to copy one death count to another...
Copy one death count to another...
Binary countoff, use:

At least x A;
Subtract x A; Add x B; Add x C;

At least x C;
Add x A; Subtract x C;

That lets you copy A over to B.



None.

Jun 15 2008, 7:16 pm O)FaRTy1billion[MM] Post #17

👻 👾 👽 💪

You can't copy EUDs. You cannot run SetDeaths on them to subtract anything. Doing so would break SC anyway.



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Jun 16 2008, 6:46 am Heimdal Post #18



Jabok: Can't do that because the death count I want to be copying from is in EUD-memory. If there were a hypothetical "copy-death-count" action, it would still be allowed to read EUD-memory. And while we're in fantasy-land, I'd like a pet dinosaur.

Farty:
If we still had EUD actions, theoretically you could copy the value to two other death counts and then copy it into the original memory by destructively copying one back.



None.

Jun 16 2008, 7:42 am O)FaRTy1billion[MM] Post #19

👻 👾 👽 💪

Quote from Heimdal
Farty:
If we still had EUD actions, theoretically you could copy the value to two other death counts and then copy it into the original memory by destructively copying one back.
Maybe if you did it within 1 trigger cycle... I don't know how the triggers are handled alongside the game itself, but I can forsee bad things if you mess with certain values and don't have them fixed immediately...



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Jun 20 2008, 12:47 am Conspiracy Post #20



Can we get back on topic, and figure this code out please? Or atleast help me with it?

Thanks :D



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[12:52 pm]
Vrael -- if you're gonna link that shit at least link some quality shit: https://www.youtube.com/watch?v=uUV3KvnvT-w
[11:17 am]
Zycorax -- :wob:
[2024-4-27. : 9:38 pm]
NudeRaider -- Ultraviolet
Ultraviolet shouted: NudeRaider sing it brother
trust me, you don't wanna hear that. I defer that to the pros.
[2024-4-27. : 7:56 pm]
Ultraviolet -- NudeRaider
NudeRaider shouted: "War nie wirklich weg" 🎵
sing it brother
[2024-4-27. : 6:24 pm]
NudeRaider -- "War nie wirklich weg" 🎵
[2024-4-27. : 3:33 pm]
O)FaRTy1billion[MM] -- o sen is back
[2024-4-27. : 1:53 am]
Ultraviolet -- :lol:
[2024-4-26. : 6:51 pm]
Vrael -- It is, and I could definitely use a company with a commitment to flexibility, quality, and customer satisfaction to provide effective solutions to dampness and humidity in my urban environment.
[2024-4-26. : 6:50 pm]
NudeRaider -- Vrael
Vrael shouted: Idk, I was looking more for a dehumidifer company which maybe stands out as a beacon of relief amidst damp and unpredictable climates of bustling metropolises. Not sure Amazon qualifies
sounds like moisture control is often a pressing concern in your city
[2024-4-26. : 6:50 pm]
Vrael -- Maybe here on the StarEdit Network I could look through the Forums for some Introductions to people who care about the Topics of Dehumidifiers and Carpet Cleaning?
Please log in to shout.


Members Online: Roy