I agree. ;o
My explanation is probably no better, but it's a start....
Ok. Here is what the little "00 00 00 00 00 00 00 00" diagram means...
EUDs read data in groups of 4 bytes (as deaths have a 4-byte value), but sometimes a value might not be aligned to 4 bytes. Each 00 represents one byte. There are eight in EUDTrig just so if you have a 4-byte value that isn't properly aligned it can spill into the next group (though I don't think this happens much). Just ignore the last 4 in most cases... The first red one is the address that you used. If you have the data length set to 1, only that one will be highlighted. If you set it to 2, then two will be highlighted, etc. This is mostly just so it is pretty...
Health detection should show something like...
00
00 00 00 00 00 00 00
The first byte in this 4-byte group is a regen counter for zerg units or a fractional HP value for other units, so you probably wont know this value (which is why the value you found never includes the first byte). The remaining three are the HP value you see in SC. Because the first highlighted one is not the first 00 group shown, you will have to multiply a value you want to compare to by an exponent of 256 (shown below)... like if you wanted to test to see if a unit had 1 hp, you would multiply 1*256=256. If you wanted to test for 100 hp, 100*256=25600. Etc.
If the first highlighted byte is in these positions, multiply by the value shown:
00 00 00 00 - Multiply by 1 (Or not at all.) (1 = 0x01)
00
00 00 00 - Multiply be 256 (256 = 0x0100)
00 00
00 00 - Multiply by 65536 (65536 = 0x010000)
00 00 00
00 - Multiply by 16777216 (16777216 = 0x01000000)
-- You should never see the 5th+ bytes as the first highlighted byte, as it would give you +1 unit or +1 player.
Also, the first byte is unknown so comparing Exactly probably isn't the best idea...
To test for 100 HP, I'd test something like:
at least 100*256
at most 101*256-1
Which would test for an HP value >= 100 and < 101.
Ask questions, I'm definitely not the best at explaining these things. ;o
EDIT:
Wait, I don't see why 0xXXXXXX51 would give 00 00
00 00. ;o
I get P8//11903 and 00
00 00 00. ;o
EDIT2:
By looking at the very last digit of the address of a value, you can see what its alignment will be:
_0 _1 _2 _3
_4 _5 _6 _7
_8 _9 _A _B
_C _D _E _F
First column will be
00 00 00 00, second will be 00
00 00 00, etc.
xD I don't know if this is helpful.
Post has been edited 2 time(s), last time on Sep 4 2009, 10:45 pm by FaRTy1billion.
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!
This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!