Posted: Wed Dec 28, 2011 2:41 pm Post subject: Help - What am i doing wrong?
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?
override public function _experience() : int
{
//d0
_as3_getlocal <0>
//30
_as3_pushscope
//24 0a
_as3_pushbyte 10
//48
_as3_returnvalue
}// end function
Posted: Thu Jan 05, 2012 4:46 pm Post subject: Re: Help - What am i doing wrong?
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.
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