Page 1 of 11

Swim, Speed and wall hacks

Posted: Wed Jul 27, 2011 3:42 am
by lisa
Userfunction files need to be saved to your
micromacro/scripts/rom/userfunctions
folder.
You can tell a userfunction file as it will always be
userfunction_
and will always be a .lua type file, so
userfunction_********.lua
I changed names to userfunction_ as they should be, if you have any old versions just delete them so as not to cause conflicts.

Address is now in addresses.lua as of bot revision 684, update bot and use this file and it won't need updating anymore. Just need address updated in addresses.lua after any patch which we do anyway =)


Fly Hack

Rewrote Fly hack using the new function to change entire 6 bytes at the same time. Got rid of the version with timer, not needed.
Just use fly() to start flying and flyoff() to stop flying.
userfunction_swimhack.lua
V 2.1
Required update for version 724 and above of the bot. r5
(888 Bytes) Downloaded 2363 times

Speed Hack

Rewritten speed hack totally. Now also works mounted.
usage examples
speed() -- set speed to fast (best speed, taking into account speed buffs)
speed("on") -- set speed to fast (best speed, taking into account speed buffs)
speed(100) -- set speed to you guessed it fast

speed("off") -- set it to normal walking (correct speed, taking into account speed buffs)
speedoff() -- set it to normal walking (correct speed, taking into account speed buffs)
speed(50) -- set to normal unbuffed speed

speed(31) -- walk like a snail

range is from 30 to 200 where 50 is normal walking pace
userfunction_speedhack.lua
Version 1.3
- Automatically calculates best speed taking into account speed buffs.
- Works mounted
(3.01 KiB) Downloaded 798 times
Speedhack uses addresses from addresses.lua and you should never have to update the userfunction.


Wall Hack

To use the wall hack just use

wallon() -- To turn on the wall hack

walloff() -- To turn off the wall hack

It does a pattern search for the memory address so shouldn't need updating after patches.
userfunction_wallhack.lua
Version 1.11
(1.51 KiB) Downloaded 1237 times
Fly & Speed (for manual play)

Ok adding a WP file for usage with these 2 userfunctions.
save file to your waypoints folder.

--=== Note ===--
This is purely for when playing manually and you want to use speed or swim with a keypress.

Once you start the WP use the numberpad keys 1 2 4 5.
1 = fly
2 = flyoff
4 = fast speed
5 = normal speed
hack.xml
use rom/bot path:hack
then use numberpad keys as instructed.
(1.05 KiB) Downloaded 1589 times

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 5:48 am
by rock5
The speed off value shouldn't be 70. That's still 40% faster than normal.

Personally I would have written it as setSpeed(value) so you could use multiple values in different situations.

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 5:52 am
by lisa
Yeah your right, I'll just rewrite it, I was going to just leave it as was written by the author but I think things should be improved when they can be improved.

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 6:01 am
by rock5
Life is a journey, not a destination.

Ooh, how zen of me. :)

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 6:06 am
by lisa
Something like this would work.

Code: Select all

local staticcharbase_address = addresses.staticbase_char;
offsetsx = {0x598, 0x42};
function speed(_speed)
if _speed == "on" or _speed == nil then _speed = 100 end -- defaults to 100 if nothing specified
if _speed == "off" then _speed = 50 end -- normal walk speed

	if _speed > 106 or 30 > _speed then -- greater then 106 is to fast, less then 30 is to slow
		error("Speed outside of safe values, 30 to 106\n")
	end

	function memoryfreezespeed()
		memoryWriteBytePtr(getProc(), staticcharbase_address, offsetsx, _speed);
	end

	if _speed > 50 then
		registerTimer("speedTimer", 5, memoryfreezespeed);
		printf("Speedhack ACTIVATED!\n");
	end

	if 51 > _speed then
		unregisterTimer("speedTimer");
		memoryWriteBytePtr(getProc(), staticcharbase_address, offsetsx, _speed);
		printf("Speedhack DEactivated.\n");
	end
end

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 6:26 am
by rock5
Looks good. I like the on and off settings.

I can see the usefulness of it but, personally, I wouldn't use a timer. I like the fact that it automatically resets when I exit an instance. But that's just me.

I notice you only use the timer when it's fast. Doesn't it reset if it's slower than normal?

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 6:28 am
by lisa
honestly no idea, I just adapted the original. it had a timer for fast so I kept it like that. As to how or why it works, no idea.

I think I have a version of yours still somewhere, I might check it out and compare the 2.

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 6:37 am
by rock5
I don't have a function, all I have is what I use in my egg script. It just changes the value. It stays changed util I leave the zone.

It should be easy enough to check if slow speeds reset. Ok I just did. They do. So if you are going to use a timer then you should use it for slow and fast speeds because they both reset.

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 6:45 am
by lisa
So if timer for both then it will be more like this then

Code: Select all

local staticcharbase_address = addresses.staticbase_char;
offsetsx = {0x598, 0x42};
function speed(_speed)
if _speed == "on" or _speed == nil then _speed = 100 end 	-- defaults to 100 if nothing specified
if _speed == "off" then _speed = 50 end						-- normal walk speed

	if _speed > 106 or 30 > _speed then  					-- greater then 106 is to fast, less then 30 is to slow
		error("Speed outside of safe values, 30 to 106\n")
	end

	function memoryfreezespeed()
		memoryWriteBytePtr(getProc(), staticcharbase_address, offsetsx, _speed);
	end
	
	if _speed == 50 then sp = "normal" end
	if _speed > 50 then sp = "fast" end
	if 50 > _speed then sp = "slow" end
	
		registerTimer("speedTimer", 5, memoryfreezespeed);
		printf("Speed set how you like it, "..sp.."\n");
end

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 6:50 am
by rock5
I think you still want to say

Code: Select all

if _speed == 50 then 
    unregisterTimer
else
    registerTimer
end

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 6:59 am
by lisa
K easy done, I feel I need to make sure the arg is actually a number though. Pretty sure it will just error out if it isn't saying trying to compare number to string.

Code: Select all

local staticcharbase_address = addresses.staticbase_char;
offsetsx = {0x598, 0x42};
function speed(_speed)
	if _speed == "on" or _speed == nil then _speed = 100 end 	-- defaults to 100 if nothing specified
	if _speed == "off" then _speed = 50 end						-- normal walk speed

	if _speed > 106 or 30 > _speed then  						-- greater then 106 is to fast, less then 30 is to slow
		error("Speed outside of safe values, 30 to 106\n")
	end

	function memoryfreezespeed()
		memoryWriteBytePtr(getProc(), staticcharbase_address, offsetsx, _speed);
	end
	
	local sp
	
	if _speed > 50 then sp = "fast" end
	if 50 > _speed then sp = "slow" end
	
	if _speed == 50 then
		unregisterTimer("speedTimer");
		memoryWriteBytePtr(getProc(), staticcharbase_address, offsetsx, 50);
		printf("Speed set to normal walk speed.\n");
	else
		registerTimer("speedTimer", 5, memoryfreezespeed);
		printf("Speed set how you like it, "..sp..".\n");
	end
end

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 7:36 am
by rock5
lisa wrote: I feel I need to make sure the arg is actually a number though. Pretty sure it will just error out if it isn't saying trying to compare number to string.
I think it would. It would be easy enough to add a number check after checking if it's "on" or "off".

Nice to see you made "sp" local. You could also make "offsetsx" and even the "memoryfreezespeed" function local.

Re: Swim and Speed hacks

Posted: Wed Jul 27, 2011 8:58 am
by lisa
I gave up on the timer, seems timer has always wanted to actually start going to waypoint coords to activate, not sure why.

This is my final fully tested works like a charm code

Code: Select all

local staticcharbase_address = addresses.staticbase_char;
local offsetsx = {0x598, 0x42};
function speed(_speed)
	if _speed == nil then _speed = 100 end
	if _speed and type(_speed) ~= "number" then
		_speed = string.lower(_speed)
		if _speed == "on" then _speed = 100 end		-- defaults to 100 if nothing specified
		if _speed == "off" then _speed = 50 end							-- normal walk speed
		if type(_speed) ~= "number" then
			printf("Incorrect usage of function speed().\n")
			player:sleep()
		end
	end
	
	if _speed > 106 or 30 > _speed then  						-- greater then 106 is to fast, less then 30 is to slow
		error("Speed outside of safe values, 30 to 106\n")
	end

	function memoryfreezespeed()
		memoryWriteBytePtr(getProc(), staticcharbase_address, offsetsx, _speed);
	end
	
	local sp
	
	if _speed > 50 then sp = "fast" end
	if 50 > _speed then sp = "slow" end
	if _speed == 50 then sp = "normal" end
	
	local playerAddress = memoryReadIntPtr(getProc(), addresses.staticbase_char, addresses.charPtr_offset);
	if playerAddress ~= 0 then
		memoryWriteFloat(getProc(), playerAddress + 0x40, _speed);
		printf("Speed set to how you like it, "..sp..".\n")
	end
end

Re: Swim and Speed hacks

Posted: Fri Jul 29, 2011 4:43 pm
by Tamyra
I'm slightly confused, does this require having a bot running, or can you turn it on and go where you want without a bot?

Re: Swim and Speed hacks

Posted: Fri Jul 29, 2011 8:32 pm
by lisa
it is set up as a userfunction that can be called with the bot. So yes you use the bot. Not sure how else you are going to call the function without some sort of programme to run it.

Re: Swim and Speed hacks

Posted: Sat Jul 30, 2011 12:34 am
by rock5
You should be able to use Cheat Engine if you know how to set up the pointer.

Re: Swim and Speed hacks

Posted: Fri Aug 05, 2011 4:55 pm
by kanta
Not in game right now so I can't test it but couldn't you run the command line "waypoint" and use it then?

Also, just to make sure I'm understanding this properly. I can set it to a faster speed when I enter an instance and when I break party to exit it will automatically reset my speed to the normal setting? I don't have to manually set it to normal speed in my waypoint? One other thing is that I have the "Escape Artist" title so I move normally at 10% faster, will it setting the speed to normal cancel the title "buff"?

Re: Swim and Speed hacks

Posted: Fri Aug 05, 2011 5:28 pm
by kanta
Grrr... No matter what I do I can't seem to go any faster then speed 65. Turn it up to 66 or higher and I keep getting the "rubber band" effect if I move more than around a range of 200. Would love to be able to run my KS farming at 100 :cry:

Re: Swim and Speed hacks

Posted: Fri Aug 05, 2011 9:24 pm
by rock5
I know in my egg script, if you disable teleports and set speed to 100, it works(although I haven't tested it recently). Maybe it's because it doesn't travel far. Also it's been suggested that not all zones or instances have the same limits.

Re: Swim and Speed hacks

Posted: Sat Aug 06, 2011 8:36 am
by kanta
If I add in a few waypoints for it to hesitate for a moment, I can use speed 70. I guess those pauses are necessary for the client and server to synchronize the character position. Maybe if I had a more powerful computer and faster internet I could go higher.