Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: Quick EUD problems
Quick EUD problems
Feb 26 2010, 12:51 am
By: Oo.DaMeiN.oO  

Feb 26 2010, 12:51 am Oo.DaMeiN.oO Post #1



Okay, I have this address and I'm trying to make it into an EUD to no avail.. I just get dropped automatically.

Address: 0041E280 > Converted in EUDTrig I got -372793 ( I made the Offset 0x41E280, thats right, right? )

So I put that in the deaths, and in the units I do At Least 1929379840 which I got from the hex byte of E96A390273, converting 73 to decimal which gives me 115 and then multiplying it by 16777216 and resulting in the 1929379840.

So the final result is:

Memory(4294594503, At least, 1929379840);
(The trigger editor, in SCMDraft2 displays this, but when I go into the classic the number is still -372793)

Which auto crashes Starcraft.

Post has been edited 2 time(s), last time on Feb 26 2010, 1:22 am by Oo.DaMeiN.oO.



None.

Feb 26 2010, 1:40 am rockz Post #2

ᴄʜᴇᴇsᴇ ɪᴛ!

Player number = 0xFFFA4FC7 = -372793

You're in the right place.

e9 6a 39 02 73 is 5 bytes. What are you trying to read, and what is that hex value?



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Feb 26 2010, 1:49 am Oo.DaMeiN.oO Post #3



It's a hack, location hack to be specific.

The hex value is above: E96A390273



None.

Feb 26 2010, 1:55 am rockz Post #4

ᴄʜᴇᴇsᴇ ɪᴛ!

you can only read 4 bytes at a time. What's the address of e9 and what's the address of 73?



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Feb 26 2010, 1:59 am Oo.DaMeiN.oO Post #5



I'm not following... this is what I get when I search for the hex.



(OllyDbg110)



None.

Feb 26 2010, 2:15 am rockz Post #6

ᴄʜᴇᴇsᴇ ɪᴛ!

Memory(-372793, whatever, [0x??*0x1 + 0xe9*0x100 + 0x6a*0x10000 + 0x39*0x1000000] aka 963307776 + byte 0)
will read these values:
0x41e280 : ??
0x41e281 : E9
0x41e282 : 6a
0x41e283 : 39

Memory(-372792, whatever, [0x3a*0x1 + 0x6f*0x100 + 0x57*0x10000 + 0x8b*0x1000000] aka 2337763130)
0x41e284 : 3a
0x41e285 : 6f
0x41e286 : 57
0x41e287 : 8b

Except your numbers changed, so I don't know what you're trying to do.



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Feb 26 2010, 2:21 am Oo.DaMeiN.oO Post #7



Thanks Rockz, I'll try that tomorrow but I gtg for now. I'll respond tomorrow :)



None.

Feb 26 2010, 1:26 pm Oo.DaMeiN.oO Post #8



Hmm, that doesn't make sense to me Rockz :(

I'm new to Olly so I don't really know why its not working, the guy who was helping me had to leave and couldn't explain the hex part to me :/



None.

Feb 26 2010, 6:51 pm rockz Post #9

ᴄʜᴇᴇsᴇ ɪᴛ!

The memory conditions read 4 bytes at a time. They read addresses ending with 0, 4, 8, and C in the 1s place.

I don't really know why you're trying to read that data. On my non-cheating copy of SC, this is what that address reads.

To convert a hex into decimal, you take the bytes and put them in reverse order. The memory viewer will show them like this:
55 8b ec 83
To put them into calc, you have to put it in with the most significant first:
83ec8b55
Which of course is 2213317461 in decimal.

You've said it crashes and drops you. Crashing and dropping are two different things.

What don't you understand?



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Feb 27 2010, 12:06 am Oo.DaMeiN.oO Post #10



Oh, you take the whole thing?

Someone told me you just take the last digit of the hex and convert to decimal and then multiply it by 61777216 and thats final result.

And it crashes me, sorry.



None.

Feb 27 2010, 1:03 am rockz Post #11

ᴄʜᴇᴇsᴇ ɪᴛ!

In my previous example, you can use the range of 83000000 to 83ffffff to detect when the last byte is 83.

Trigger("Player 1"){
Conditions:
Memory(4294594503, At least, 2197815296); //finds 00 00 00 83 or greater
Memory(4294594503, At most, 2214592510); //finds FF FF FF 83 or less

Actions:
Preserve Trigger();
Create Unit("Current Player", "Terran Marine", 1, "Anywhere");
}

//-----------------------------------------------------------------//

That's what I used, and it works fine.



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Feb 27 2010, 3:59 pm Oo.DaMeiN.oO Post #12



Okay, thanks. I'll try that out later today and see what happens.



None.

Feb 28 2010, 1:57 am SkiPz Post #13



Using the same concept but with the bytes being 55 E9 6A 39

To detect 39000000 being least and 39FFFFFF most

I got:

Cond:
Deaths(-372793, AtLeast, 956301312, 0); //00 00 00 39
Deaths(-372793, AtMost, 973078527, 0); // FF FF FF 39

Act:
KillUnit(Ghost, P1);

But this doesn't work?

And would just like to point this out since it looks like someone would try to copy & paste what you did rockz but 83FFFFFF = 2214592511 Not 2214592510; that's 83FFFFFE ^^

Post has been edited 1 time(s), last time on Feb 28 2010, 2:45 am by SkiPz.



None.

Feb 28 2010, 4:12 am rockz Post #14

ᴄʜᴇᴇsᴇ ɪᴛ!

uh, double check your memory then. Use my trigger, then change the address to 83 while in starcraft. I suggest you use "create unit" rather than killunit.



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Mar 1 2010, 5:05 am SkiPz Post #15



Okay how about we make this really simple if I wanted to detect the Red bytes. What would I need to have?

I used to be able to do this a few months ago without too much of an issue, but for some reason doesn't matter what I do, it's not working.

Thanks.

Attachments:
Example.jpg
Hits: 7 Size: 495.68kb



None.

Mar 1 2010, 7:43 am rockz Post #16

ᴄʜᴇᴇsᴇ ɪᴛ!

Test map
I really don't understand how you screw this up.

Note the trigger YOU used, I changed the address to 39, and the trigger runs.

Lets work first on making sure that you can detect the 39, then we'll get the rest of them.



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Mar 1 2010, 1:12 pm Oo.DaMeiN.oO Post #17



Solved problems
Collapsable Box

Okay.. so I now know how to do the location hack just fine.

But now when I'm trying to figure out a different hack, I get all the steps save the At Least/At Most again due to the fact that all the numbers that I attempt to convert from Hex to Dec. become 10 digits, which Memory only allows 9 digits.

Is the process to convert the 4th byte always in Hex you put the last digit and then 6 0's and then for At Most the last digit and 6 F's or does it change depending on the number?

For example: If the hex is CF 8B DA 79 and I take the DA and it comes out as 3657433088 it will not work because its 10 digits, so what do I do in that situation?

Post has been edited 7 time(s), last time on Mar 1 2010, 3:32 pm by Oo.DaMeiN.oO.



None.

Mar 1 2010, 4:33 pm SkiPz Post #18



Well glad my trigger works for you and everything; means I did something partially right. However the trigger Does Not for me on my test map so I dunno what's going there. It does work on yours so somehow I have some setting on my map messed up, because the trigger is exactly the same.


I thought you had to read 4 bytes? If not, what you might be able to do is DA hex = 218 dec. It's the 2nd byte (0 based) so you do 218*65536 which = 14286848 decimal; or DA0000.

Not entirely sure if that's the correct way to do it however.

And it depends on what byte you are trying to read and it's amount. If the far right byte (in olly) is over 128 you take all the bytes, reverse them (if in olly they are 00 11 22 33; then put them in calc as 33 22 11 00) convert to decimal, minus 4294967296 from decimal value found and change the result to negative and copy this number down. Then change it to Hex and make sure it's the right bytes.

Post has been edited 3 time(s), last time on Mar 1 2010, 6:29 pm by SkiPz.



None.

Mar 1 2010, 5:09 pm Oo.DaMeiN.oO Post #19



Sorry Skipz, I was meaning Rockz triggers (unless yours is his)

Try using the Classic Trigger Editor, see if it works for you then.



None.

Mar 1 2010, 5:27 pm SkiPz Post #20



He used my triggers in his map excluding the create unit, I used killunit but it would work either way.; I used the same concept he was showing except i took the harder route and did 57*16777216 to find the decimal value of 39000000 :lol:

Not sure why but yeah it works in Scmdraft but I had to do it on a new map....i think my other map got corrupted or something because scmdraft errors out when it tries to open it.

Post has been edited 2 time(s), last time on Mar 1 2010, 6:21 pm by SkiPz.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[01:19 pm]
Vrael -- IM GONNA MANUFACTURE SOME SPORTBALL EQUIPMENT WHERE THE SUN DONT SHINE BOY
[2024-5-02. : 1:35 am]
Ultraviolet -- Vrael
Vrael shouted: NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
Gonna put deez sportballs in your mouth
[2024-5-01. : 1:24 pm]
Vrael -- NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
[2024-4-30. : 5:08 pm]
Oh_Man -- https://youtu.be/lGxUOgfmUCQ
[2024-4-30. : 7:43 am]
NudeRaider -- Vrael
Vrael shouted: if you're gonna link that shit at least link some quality shit: https://www.youtube.com/watch?v=uUV3KvnvT-w
Yeah I'm not a big fan of Westernhagen either, Fanta vier much better! But they didn't drop the lyrics that fit the situation. Farty: Ich bin wieder hier; nobody: in meinem Revier; Me: war nie wirklich weg
[2024-4-29. : 6:36 pm]
RIVE -- Nah, I'm still on Orange Box.
[2024-4-29. : 4:36 pm]
Oh_Man -- anyone play Outside the Box yet? it was a fun time
[2024-4-29. : 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
[2024-4-29. : 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.
Please log in to shout.


Members Online: Roy, Wing Zero