Basic EUP Operations
By Placing:
1.) Address incremented = 48*(Placed unit’s UnitID) + 4*(Placed unit’s Owner) + 5776160 (Table 1)
2.) Address incremented = 48*(Placed unit’s UnitID) + 4*(Placed unit’s Owner) + 5787104 (Table 2)
- For By Placing to work on units, the extended unit must have a higher index than the target unit
By Removal/Death:
1.) Address decremented = 48*(Placed unit’s UnitID) + 4*(Placed unit’s Owner) + 5776160 (Table 1)
2.) Address decremented = 48*(Placed unit’s UnitID) + 4*(Placed unit’s Owner) + 5787104 (Table 2)
By Killing:
Address incremented = 48*(Killed unit’s UnitID) + 4*(Player that killed) + 5798052 (Table 3)
By Death:
Address incremented = 48*(Dying unit’s UnitID) + 4*(Dying unit’s Owner) + 5808992 (Table 4)
By Giving:
1.) Address incremented = 48*(Given unit’s UnitID) + 4*(New Owner) + 5776160 (Table 1)
2.) Address decremented = 48*(Given unit’s UnitID) + 4*(Old Owner) + 5776160 (Table 1)
3.) Address incremented = 48*(Given unit’s UnitID) + 4*(New Owner) + 5787104 (Table 2)
4.) Address decremented = 48*(Given unit’s UnitID) + 4*(Old Owner) + 5787104 (Table 2)
- Incremented/Decremented means +1/-1
- Players in this reference/guide are always 1-based
- The tables refer to which table in StarCraft’s memory they are overflowing
- Several of these equations are based on the same table and will undo each other
Calculating Affected Indexes
Table 1
Low bound index: (679112 – 48*UnitID) / 336
High bound index: (680132 – 48*UnitID) / 336
Table 2
Low bound index: (668168 – 48*UnitID) / 336
High bound index: (669188 – 48*UnitID) / 336
Table 3
Low bound index: (657220 – 48*UnitID) / 336
High bound index: (658240 – 48*UnitID) / 336
Table 4
Low bound index: (646280 – 48*UnitID) / 336
High bound index: (647300 – 48*UnitID) / 336
- You may not be able to edit the attributes you want if only part of a unit index is covered
Units
Find an Offset: Offsets
If index > 0 Address = 6456296-336*index + offset
Else Address = 5885096 + offset
Player = (Address – 48*UnitID – (Table Offset))/4
- The "Table Offset" is the only constant in the EUP Operation equations, Ex: By Death’s is 5808992
Death-Table Addon EUPs
Setting Target Byte:
Deaths of Player 4 Marines = Target Address - 10
Give to (Player 1) + (Target Value)
Target Address + 4, 4th bit (aka 0x8) must NOT be set
Target Address +18 (4 bytes) must be zero
dEUPs By Giving:
1.) Address incremented = 48*(Deaths of Player 2 Vultures) + 4*(New Owner) + 5776160
2.) Address decremented = 48*(Deaths of Player 2 Vultures) + 4*(Deaths of Player 8 Ghosts) + 5776164
3.) Address incremented = 48*(Deaths of Player 2 Vultures) + 4*(New Owner) + 5787104
4.) Address decremented = 48*(Deaths of Player 2 Vultures) + 4*(Deaths of Player 8 Ghosts) + 5787108
- Incremented/Decremented means +1/-1
- If you didn't understand a word on this post, good, that's why I wrote the next 10 posts
Post has been edited 13 time(s), last time on Nov 16 2015, 7:01 pm by jjf28.
TheNitesWhoSay - Clan Aura - github
Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.
Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.