Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Help - What am i doing wrong?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
SpinningCone
How do I cheat?
Reputation: 0

Joined: 28 Dec 2011
Posts: 2

PostPosted: Wed Dec 28, 2011 2:41 pm    Post subject: Help - What am i doing wrong? Reply with quote

OK so i'm trying to tweak the game RoboKill 2 i wanted to increase the amount of exp given by enemies and a few other things.

so i pulled the swf file out of the exe and am using the sothink swf decompiler to look at the code.

i found the code that returns the base experience for an enemy.

looks like this
Code:
        override public function _experience() : int
        {
            return 10;
        }// end function


the AOB for this is D0 30 24 0A 47

0A appears to be the value and the command pushbyte is 24, 47 looks like the return

so i find that AOB change 0A but it doesn't do anything.


another example is is how long it takes the shop to re-roll the random inventory.





Code:
         public function getShopInventory() : Layout
        {
            var _loc_1:Array = null;
            var _loc_5:int = 0;
            if (lastObjects)
            {
                if (gs.Ticks - lastObjectsTime < 100 * 60 && lastObjectsScene == gs)
                {
                    _loc_1 = lastObjects;
                }
            }
            if (!_loc_1)




looks like if the ticks are less then 100 * 60 then you get the old items.

so i find the AOB

64 B0 57 a1 24 64 24 3C A2 (only one result)

looks like in as3 A2 is multiply so i change it to A3 which should be divide. this should shorten the time but it does nothing. neither does changing the values 64 and 3C to smaller values.


as far as i can tell I'm doing the right thing and finding what i would expect but it has no effect on the game. any thoughts?

here is the raw code for those functions:





Code:
public function getShopInventory() : Layout
        {
//d0
_as3_getlocal <0>
//30
_as3_pushscope
//20
_as3_pushnull
//80 0e
_as3_coerce Array
//d5
_as3_setlocal <1>
//24 00
_as3_pushbyte 0
//63 05
_as3_setlocal <5>
//60 b1 57
_as3_getlex lastObjects
//12 27 00 00
_as3_iffalse offset: 39
//60 d9 03
_as3_getlex gs
//66 e9 02
_as3_getproperty Ticks
//60 b0 57
_as3_getlex lastObjectsTime
//a1
_as3_subtract
//24 64
_as3_pushbyte 100
//24 3c
_as3_pushbyte 60
//a2
_as3_multiply
//ad
_as3_lessthan
//2a
_as3_dup
//12 08 00 00
_as3_iffalse offset: 8
Code:
        override public function _experience() : int
        {
//d0
_as3_getlocal <0>
//30
_as3_pushscope
//24 0a
_as3_pushbyte 10
//48
_as3_returnvalue
        }// end function
Back to top
View user's profile Send private message
rooski
Master Cheater
Reputation: 0

Joined: 31 Oct 2007
Posts: 340
Location: Siberia

PostPosted: Thu Jan 05, 2012 4:46 pm    Post subject: Re: Help - What am i doing wrong? Reply with quote

SpinningCone wrote:

the AOB for this is D0 30 24 0A 47


according to the raw byte code you posted its
Code:
d0 30 24 0a 48

but if this game syncs with a server then it wont matter , nothing will change.(lookup server sided vs client sided)

SpinningCone wrote:

Code:
         public function getShopInventory() : Layout
        {
            var _loc_1:Array = null;
            var _loc_5:int = 0;
            if (lastObjects)
            {
                if (gs.Ticks - lastObjectsTime < 100 * 60 && lastObjectsScene == gs)
                {
                    _loc_1 = lastObjects;
                }
            }
            if (!_loc_1)




looks like if the ticks are less then 100 * 60 then you get the old items.

so i find the AOB

64 B0 57 a1 24 64 24 3C A2 (only one result)

looks like in as3 A2 is multiply so i change it to A3 which should be divide. this should shorten the time but it does nothing. neither does changing the values 64 and 3C to smaller values.


aob here is
Code:
60 b0 57 a1 24 64 24 3c a2 ad 2a

also the if statement has a logic AND(&&) which checks if lastobjectscene equals gs.
Code:
gs.Ticks - lastObjectsTime < 100 * 60 && lastObjectsScene == gs


you can get rid of it along with the AND , or make it a logical OR.

and you are searching for these bytes and changing them at the very begging screen right after the swf is loaded , right?

_________________
clawtheclouds.com
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites