[skip all navigation]

Useful EUD Reference

Pages: < 1 2 3 >
Creator: yoonkwun
Time: Apr 2 2010, 9:09 pm

Post #21     Kaias Apr 4 2010, 9:02 pm

[Avatar]
offlinecontact
Rank: Veteran
Quote from yoonkwun
The byte is a decrementing counter, so if you increase the value in the condition, you can in effect shorten the time it returns true. I made it the smallest value in the test map because I was too lazy to brute test what was the best highest value. Now I did and found it's 234881024 (16777216 * 14). It works pretty well too, it always runs at most once per order, and it's pretty hard to unintentionally click twice fast enough for it to return true only once.
The reason I didn't try this is because in my tests it seemed that the highest value it would be each order varied, enough that it would make it unusable for this purpose. Seems I was wrong (will test).

Edit: Yep, perfect, thank you.

Top

Post #22     yoonkwun Apr 4 2010, 9:13 pm

[Avatar]
offlinecontact
Rank: Regular
Just found out that it runs more than once if you order the unit to target another unit, either by Move or Attack. However in your case of canceling a spell this shouldn't be an issue.

Top

Post #23     CecilSunkure Apr 6 2010, 1:25 am

[Avatar]
offlinecontact
Rank: Veteran
The conditions for order coordinate detection for the first unit:id is
  • Memory(19047, Exactly, x + (65536 * y));

The second unit:id is
  • Memory(161763, Exactly, x + (65536 * y));

The third unit:id is
  • Memory(161679, Exactly, x + (65536 * y));

For each consecutive unit:id from 2 and on you do 161763 - (84 * (unit:id - 1)) to find the EP amount for the bold values above. Just thought this would be useful -it was to me.

As for the attack cooldown the EP for the first unit is 19046. What about the second and third units?
This post was edited 2 times, last edit by CecilSunkure: Apr 6 2010, 1:37 am.  Reason given: Typo

(user posted image)
Top

Post #24     Kaias Apr 6 2010, 1:57 am

[Avatar]
offlinecontact
Rank: Veteran
Quote from CecilSunkure?
The conditions for order coordinate detection for the first unit:id is
  • Memory(19047, Exactly, x + (65536 * y));

The second unit:id is
  • Memory(161763, Exactly, x + (65536 * y));

The third unit:id is
  • Memory(161679, Exactly, x + (65536 * y));

For each consecutive unit:id from 2 and on you do 161763 - (84 * (unit:id - 1)) to find the EP amount for the bold values above. Just thought this would be useful -it was to me.

As for the attack cooldown the EP for the first unit is 19046. What about the second and third units?
Quote from yoonkwun

Code

Converting to other unit indices (z = unit index; x = first unit index address/extended
player):
Address:
if z  = 0: x
if z >= 1: x + 0x8B5F0 - 0x150(z-1)
Extended Player:
if z  = 0: x
if z >= 1: x + 142716 - 84(z-1)

Top

Post #25     CecilSunkure Apr 6 2010, 2:04 am

[Avatar]
offlinecontact
Rank: Veteran
Ah thanks, looked right over that >.>

(user posted image)
Top

Post #26     rockz Apr 6 2010, 2:54 am

[Avatar]
お や す み
offlinecontact
Rank: Veteran
You know, I really don't think we need more than one EUD DB. A unitnode calculator would be nice, as I said earlier, but that's literally it.

This is a great wallpaper to use if you want to go into an epileptic fit every time you sit down in front of your laptop, which I guess is a better option than watching Naruto.
Top

Post #27     HCM™stickynote Jun 26 2010, 10:50 pm

[Avatar]
offlinecontact
Rank: Regular
Quote
59CCFC 19046 ATTACK COOLDOWN: (Make constant higher depending on unit) AtLeast 256

What do you mean by make constant higher? Which constant and by how much?

Top

Post #28     yoonkwun Jun 26 2010, 11:35 pm

[Avatar]
offlinecontact
Rank: Regular
256 is the constant. Add it by 256 a number of times depending on the attack rate of the unit.

Top

Post #29     HCM™stickynote Jun 26 2010, 11:45 pm

[Avatar]
offlinecontact
Rank: Regular
Thanks.Testing it right now.

EDIT: Figured it out. My map was just corrupt or something, and the EUD wasn't working. I thought I just did it wrong. Thanks anyway.
This post was edited 3 times, last edit by stickynote: Jun 27 2010, 12:54 am.

Top

Post #30     Roy Aug 16 2011, 1:51 am

[Avatar]
An artist's depiction of an Extended Unit Death
offlinecontact
Rank: Veteran
I was running through a lot of these addresses for a Terran Marine, and took note on what I thought was happening at some addresses:

Code

59CCB8 19029  [Order] Order Coordinates (Similar to 59CD00)
59CCC0 19031  [Position] Unit Coordinates (Similar to 59CCD0) {X*256, Y*65536}
59CCC4 19032  [Position] Unit Idle Face Point (Connected to attacking) {X*256, Y*65536}
59CCC8 19033  [Movement] Unknown (Sprite Algorithm?)
59CCCC 19034  [Movement] Turn Radius
59CCD4 19036  [Position] X-Axis {X*256}
59CCD8 19037  [Position] Y-Axis {Y*256}
59CCE0 19039  [Movement] Move Acceleration (Related to turning)
59CCE4 19040  [Movement] Move Speed
59CCE8 19041  [Movement] Move Speed On X-Axis (Left = Negative, Right = Positive)
59CCEC 19042  [Movement] Move Speed On Y-Axis (Up = Negative, Down = Positive)
59CD3C 19062  [Order] Stop When Movement Destination Is Determined As Invalid


The accuracy of this is only based on my own observations, though. Some more explanation on some of my observations:

Code

59CCC4 19032  [Position] Unit Idle Face Point (Connected to attacking) {X*256, Y*65536}

When this is set to a certain point, that unit will face in the direction of that point while it idles. This has no effect on the unit when it's moving. By default, it was on the current position of the Marine. When the unit is attacking another unit, this point is set to the unit's target. This is likely used to make a unit face its target when attacking.

Code

59CCC8 19033  [Movement] Unknown (Sprite Algorithm?)

The unit flips out when this is frozen on a specific value. It will have difficulty turning, and will usually be seen walking diagonally instead of facing the direction it is actually walking towards.

Code

59CCCC 19034  [Movement] Turn Radius

Setting this to a low value OR a high value increased the turn radius by a significant amount. If asked to travel a short distance just behind the Marine, he would run in a circle because he couldn't turn sharp enough to get to that exact point. It's like a dog chasing its tail.

Code

59CCD4 19036  [Position] X-Axis {X*256}
59CCD8 19037  [Position] Y-Axis {Y*256}

This appears to be the X and Y coordinates of the unit, and as you can see, it's a bit easier using this than it is to use 59CCD0.

Code

59CD3C 19062  [Order] Stop When Movement Destination Is Determined As Invalid

When this address is frozen and you order a unit to try to walk into water or other invalid terrain, the unit will walk in place when it determines it cannot complete the destination, instead of coming to a full stop.
This post was edited 1 time, last edit by Roy: Sep 25 2011, 2:27 am.

Top

Post #31     yoonkwun Aug 16 2011, 2:41 am

[Avatar]
offlinecontact
Rank: Regular
Quote from Roy

Code

59CCD4 19036  [Position] X-Axis {X*256}
59CCD8 19037  [Position] Y-Axis {Y*256}

Quite the find.

>1 pixel accurate unit coordinate detection is now easier/more practical. Also could be used to eliminate those static locations that only detect a single/few unit(s), in an RPG or so.

EDIT: Vast revision of OP, also edited the topic title to better reflect the reference in general.
This post was edited 2 times, last edit by yoonkwun: Aug 16 2011, 4:26 am.

Top

Post #32     Roy Oct 6 2011, 6:51 am

[Avatar]
An artist's depiction of an Extended Unit Death
offlinecontact
Rank: Veteran

Code

0x59CDB8 19093  Matrix damage absorption {X*16777216}

When Defensive Matrix is cast on a unit, this value is set to absorb 250 points of damage. When the value reaches 0 in-game (the unit would have taken 250 points of damage), it cancels the animation and the Matrix counter is set to 0, and vice versa.

When setting either the Matrix damage or counter to 0 forcefully (i.e. EUD action), it does not cancel the Matrix animation. You can set both the timer and absorption to 0 and have the Matrix animation remain on the unit for the remainder of the game (or its life).

So yeah, if you're interested in Defensive Matrix, this may be useful information.

Top

Post #33     IAGG Oct 6 2011, 8:21 am

[Avatar]
offlinecontact
Rank: Member
Is there a way to see if a Unit is stasised from an arb then?

Top

Post #34     Roy Oct 6 2011, 6:27 pm

[Avatar]
An artist's depiction of an Extended Unit Death
offlinecontact
Rank: Veteran

Code

0x59CDC0 19095  [Status] Stasis Timer {X*256}

Also the effect of the unit becoming invincible and unresponsive seems to be connected to address 59CD84 having a value of 16777216*4.

Oh yeah:

Code

[Status]0x59CDC8 19097  [Status] Parasite {X*256}, Blind {X*16777216}

The second byte here seems to be for the Parasite status. The value is connected to which player parasites (i.e. Player 1 = 256, Player 2 = 512, Player 3 = 768, etc.).

Code

0x59CDCC 19098 [Status] Maelstrom Timer {X}, Acid Spores {X*65536}

Acid spores in the third byte here. This is a nice value to set because it even applies the effect on the unit, and of course updates the unit's status. (Although I don't know how to remove the effect once it's applied.)
This post was edited 4 times, last edit by Roy: Oct 6 2011, 6:54 pm.

Top

Post #35     O)FaRTy1billion Oct 6 2011, 9:06 pm

[Avatar]
‮.rapsdleF
offlinecontact
Rank: Elite
I sure hope you aren't just digging around in memory editors for these. ;o This has been here for as long as the EUDDB was a thing.

TinyMap2 - Latest in map compression! [ 8/26/12 - New build! Potentially fixed Win7 crash ]
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!
(user posted image) This page has been viewed (user posted image) times!
Top

Post #36     IAGG Oct 8 2011, 8:36 pm

[Avatar]
offlinecontact
Rank: Member
Quote from Roy

Code

0x59CDC0 19095  [Status] Stasis Timer {X*256}

Also the effect of the unit becoming invincible and unresponsive seems to be connected to address 59CD84 having a value of 16777216*4.

Oh yeah:

Code

[Status]0x59CDC8 19097  [Status] Parasite {X*256}, Blind {X*16777216}

The second byte here seems to be for the Parasite status. The value is connected to which player parasites (i.e. Player 1 = 256, Player 2 = 512, Player 3 = 768, etc.).

Code

0x59CDCC 19098 [Status] Maelstrom Timer {X}, Acid Spores {X*65536}

Acid spores in the third byte here. This is a nice value to set because it even applies the effect on the unit, and of course updates the unit's status. (Although I don't know how to remove the effect once it's applied.)

So you are able to detect if a unit has been stasised on the field? But there is no way to remove the stasis? or were u talking about the acid spores?

Top

Post #37     Roy Oct 8 2011, 8:43 pm

[Avatar]
An artist's depiction of an Extended Unit Death
offlinecontact
Rank: Veteran
You can set the stasis to 1 second with EUDAs, which will remove the stasis close enough to instantaneously.

Top

Post #38     Lanthanide Oct 8 2011, 9:38 pm

[Avatar]
offlinecontact
Rank: Regular
If you run a trigger to remove invincibility periodically, then when stasis is cast on a unit it will become vulnerable to damage but remain unable to move. The only thing that won't work on it is medic's restoration which is specifically coded to give an error message when targetting stasis'd units, although I wouldn't be surprised if the CPU could cast restoration on a stasis'd-but-vulnerable-unit that had a restorable malaise, like plague or ensnare on it, because the hard coding is most likely attached to the GUI click event rather than the actual effect itself and obviously the CPU doesn't use a GUI.

This may be a more interesting mechanic for your map, as it effectively makes stasis into an AoE lockdown that works on any units (or any units that you want to remove invincibility from).
This post was edited 1 time, last edit by Lanthanide: Oct 8 2011, 9:54 pm.

O)FaRTy1billion -- "Lanthanide -- surely you have photos of yourself dressed up as a girl, az?" I don't have pictures of me dressed up as a girl.
O)FaRTy1billion -- One time I was jumping on a trampoline (at that very friend's house xD) with water balloons in my shirt held up by a belt.
Azrael.Wrath -- ...
Top

Post #39     Ice Baby Oct 10 2011, 5:34 pm

[Avatar]
offlinecontact
Rank: Member
What about this, can u detect where and what what is stasised and then just replace that unit in the same spot with the same type of unit that isnt stasised? Like if u stasis a marine and detect that it was stasised so after 5 seconds u replace it with a new marine.

Top

Post #40     Roy Oct 11 2011, 2:04 am

[Avatar]
An artist's depiction of an Extended Unit Death
offlinecontact
Rank: Veteran
Quote from Ice Baby
What about this, can u detect where and what what is stasised and then just replace that unit in the same spot with the same type of unit that isnt stasised? Like if u stasis a marine and detect that it was stasised so after 5 seconds u replace it with a new marine.
I have provided the means of detection. As for the where and what, please refer to Section 5.3 of my EPD tutorial. The short answer is that you must uniquely identify the unit in some way in order to actually find it on the map.

Top
0 members in this topic (italic members are currently writing a reply): None
+ guest(s)


[02:58 am]
Vrael -- cheese is still holy
[02:58 am]
Vrael -- and cheese
[02:57 am]
Wing Zero -- Man fucks are pretty much the only thing left in this world that are still holy.
[02:39 am]
Raitaki -- wat
[02:38 am]
lil-Inferno -- "Raitaki -- HOLY F" Gtfo stupid fundie
[01:55 am]
Raitaki -- lol
[01:50 am]
Wing Zero -- Monitor psu exploded
Please log in to shout.