Page 1 of 4

World of Kungfu Bot (Updated)

Posted: Tue Jan 08, 2008 6:04 pm
by hackbar
Here be the new version with added buffs and caster class support. More updates to come in the future.

Re: World of Kungfu Bot (Updated)

Posted: Tue Jan 08, 2008 8:20 pm
by Administrator
I'll have to check this one out; it looks interesting. And thanks for your addition.
Here's the URL to the WoKF site for others: http://www.worldofkungfu.com/
And screenshots are here: http://www.worldofkungfu.com/index.cfm?action=media


EDIT:
Dear elverion,

This is a notice of a ban placed on the Aeria Games account assigned to this e-mail address. It was found that a character under the account was 'Hacking'. With this behavior confirmed we have placed a 'permanent' ban on the account starting on Tue, 2008-01-08 10:52. If you wish to discuss this ban further please contact us at info@aeriagames.com to receive a request ticket.


-- Aeria Games Team
Actually, the funny thing is, I haven't played Shaiya in a long time, and I didn't cheat at all in DOMO. The DOMO script I posted wasn't used by me--ever. And I'm not sure exactly why they think banning me is going to do any good. Looks like I'll definitely be playing WoKF then!

Re: World of Kungfu Bot (Updated)

Posted: Wed Jan 09, 2008 8:54 am
by Guest
Bunk. Guess ill see you in wokf at least :)

Re: World of Kungfu Bot (Updated)

Posted: Wed Jan 09, 2008 11:01 am
by hackbar
Erm didnt know you could log in as guest. Lol.

Re: World of Kungfu Bot (Updated)

Posted: Wed Jan 09, 2008 5:46 pm
by Administrator
Yeah, guests are enabled (at least for now). I don't really see too much of a problem with it. They have restricted rights, but can still post. I figure, maybe some people will post that don't want to bother signing up.

Anyways, I've made a few changes to the script. One is changing

Code: Select all

proc = openProcess( findProcess("Kungfu Client Ver:1.0.29b") );
to

Code: Select all

proc = openProcess( findProcessByExe("GongfuClient.exe") );
No idea why it's "Gong Fu" now instead of "Kung Fu." The reason for this is that you won't need to change it whenever they update the game's window name. You'd still need to update the window name for findWindow, though... I've also changed the warrior fight function, but that doesn't necessarily mean it's better. It just allows you better control over the chance of using each skill:

Code: Select all

function fight_warrior()

  while( have_target() ) do
    if( HP < HP_potion ) then
      hp_potion(); yrest(500); end
    if( MP < MP_potion ) then
      mp_potion(); yrest(500); end
    if( SP < SP_potion ) then
      sp_potion(); yrest(500); end

    local roll = math.random(100);

    if( roll <= skill1_chance and MP >= skill1_cost ) then
      keyboardPress(key_skill1);
      yrest(120);
    elseif( roll <= skill2_chance and MP >= skill2_cost ) then
      keyboardPress(key_skill2);
      yrest(120);
    elseif( roll <= skill3_chance  and MP >= skill3_cost ) then
      keyboardPress(key_skill3);
      yrest(120);
    else
      keyboardPress(key_attack);
      yrest(500);
    end

    coroutine.yield();
  end

  yrest(1000);
end
So basically, it will use skill2 only if the roll for skill 1 fails, and skill 3 if the roll for skill 2 fails. If even skill 3 fails, it'll just hit them with the spear and re-roll.

Re: World of Kungfu Bot (Updated)

Posted: Thu Jan 10, 2008 3:16 pm
by hackbar
Didn't know you could find by Exe thats alot easier nice change.


Nice improvement to the basic functionality of the warrior_fight() but im not sure whats gonna happen by testing MP cost as warriors dont use MP I haven't actually bothered finding the pointer and offset for the aggression yet. Once I do I'm gonna have to start breaking up classes more as the way that the melee (aggression) classes work is backwards. Spear starts with 100 aggression and works down almost always being able to do solid consistent damage. Axe/Hammer start at 0 and work up working on strong burst damage which is also based on their various buffs.

Theres 9 classes total i think so it could get pretty hairy coding an individual fight script for each one but I don't see how generic scripts are gonna cut it.

I haven't even tested the archer yet, prolly make a second account tonight to do that.

Another thing im working on is finding the map coordinates pointers and addresses so we can hopefully build a half decent resupply / inventory dump script.

I've found the addresses for the cursor location when you click somewhere on terrain but not for the characters actual location. Every time i search for the pointers after restarting the client artmoney bombs on me.

Re: World of Kungfu Bot (Updated)

Posted: Thu Jan 10, 2008 6:32 pm
by Administrator
What do you mean the coordinates of the mouse? The "world" coordinates (where clicking will take you), or the screen coordinates (the relation to the top-left of the window)?

If you have found world coordinates, that's awesome! It could definitely allow us to setup a waypoint script that would take your character through certain areas, or to go to shop, or whatever.

If you need help with the pointers, can you post any information on how you found the information? Also, post the non-pointer addresses if you can (it'll help me figure out which result I get is correct).

Re: World of Kungfu Bot (Updated)

Posted: Thu Jan 10, 2008 6:43 pm
by Guest
Well basically i just looked at the number shown under the mini map. Then i just searched for the address and found it but when i filtered the value came up twice. I watched the values as I clicked somewhere new in the world. One would immediatly change to the new coordinates that you would arrive at the other would change as you walked to the new location. Also cooresponding to the mini map coords.

Heres what i think are the x and the y of the place where your mouse clicks in the world.

Re: World of Kungfu Bot (Updated)

Posted: Thu Jan 10, 2008 6:44 pm
by hackbar
Oops I forgot to log in...

Heres the code:

Code: Select all

--new map functions
-----------------------------

X_coord        = 10000;
Y_coord        = 10000;


X_ptr          = "005EE6B0";
X_offset       = 100;

Y_ptr          = "005EE6B0";
Y_offset       = 104;

Re: World of Kungfu Bot (Updated)

Posted: Fri Jan 11, 2008 9:26 am
by hackbar
patch day pointers / offsets didnt change far as i can tell at least for hp/mp i hope the map ones didnt change either as i haven't tested em.

heres the changes for the script.

Code: Select all

function main()
  win = findWindow("Kungfu Client Ver:1.0.30b");
  hdc = openDC(win);
  proc = openProcess( findProcessByExe("GongfuClient.exe") );
  attach(win);

Re: World of Kungfu Bot (Updated)

Posted: Fri Jan 11, 2008 7:24 pm
by Administrator
Have you played around with the movement yet?

I had a quick idea. I think if we lock the x,y of the moveto position, then click anywhere on the screen, it might be possible to make your character move directly to that position. I think I'll have to test this out.

Oh, in other news, I've evaded my Shaiya/Domo ban. I'm like a ninja; moving swiftly and silently. Still annoying that I lost about 180k + tons of items.

Re: World of Kungfu Bot (Updated)

Posted: Fri Jan 11, 2008 9:00 pm
by hackbar
Well i got the pointer +offset for aggression.

I still can't get the map stuff right. Whenever i lookup the pointer for current character location I find nothing even though i can get the raw address. All we currently have is the click point.

The char location is more important i think in terms of getting teleports going and doing the automated walking.

Re: World of Kungfu Bot (Updated)

Posted: Fri Jan 11, 2008 9:55 pm
by Administrator
Of course. However, the way I see it is that we can setup waypoints. Whenever there are no enemies in the area, it would move to the next waypoint, check again, and continue moving along the chain of waypoints. To determine if you are at the waypoint, you would, of course, need to use the distance formula between your character and check if you are within, say, 10 meters.

Are you searching for type float/double? I think that if it only displays a non-floating-point integer, that you should check within a range. So if you are looking for the number 135 for example, search in the range of 135.0 to 136.0.

Re: World of Kungfu Bot (Updated)

Posted: Sat Feb 02, 2008 4:37 pm
by felix_fx2
hackbar wrote:Oops I forgot to log in...

Heres the code:

Code: Select all

--new map functions
-----------------------------

X_coord        = 10000;
Y_coord        = 10000;


X_ptr          = "005EE6B0";
X_offset       = 100;

Y_ptr          = "005EE6B0";
Y_offset       = 104;
hackbar-

this is added in the user portion of the script right.

Re: World of Kungfu Bot (Updated)

Posted: Sat Feb 02, 2008 7:46 pm
by 3cmSailorfuku
elverion wrote:Of course. However, the way I see it is that we can setup waypoints. Whenever there are no enemies in the area, it would move to the next waypoint, check again, and continue moving along the chain of waypoints. To determine if you are at the waypoint, you would, of course, need to use the distance formula between your character and check if you are within, say, 10 meters.

Are you searching for type float/double? I think that if it only displays a non-floating-point integer, that you should check within a range. So if you are looking for the number 135 for example, search in the range of 135.0 to 136.0.
That's merely a bit of the work you would have todo. You would have to constantly calculate the X and Y/Z coordinates you're walking. However those would have to be recalculated again depending on the Camera/Speed/Direction setup. That's just an insane amount of work, which could be solved easier.

Re: World of Kungfu Bot (Updated)

Posted: Sat Feb 02, 2008 7:58 pm
by Administrator
Not necessarily. Doing it that way would be a lot of work, yes. What I had proposed was to just fake it, and let the client figure it out. That is, rather than figure out where the correct place to click is, set the addresses to where you want to go, and induce the movement.

But yeah, it's a boring game. I can't be bothered.

Re: World of Kungfu Bot (Updated)

Posted: Sun Feb 03, 2008 9:26 am
by 3cmSailorfuku
elverion wrote:Not necessarily. Doing it that way would be a lot of work, yes. What I had proposed was to just fake it, and let the client figure it out. That is, rather than figure out where the correct place to click is, set the addresses to where you want to go, and induce the movement.

But yeah, it's a boring game. I can't be bothered.
That would be calling a function of the game itself, like I had suggested once. You could easily dump the game's function offsets and make them useable for yourself. If you happen to accomplish such thing, then the bot won't need so send keys anymore etc or to have the focus on all the time. But such a thing needs alot of work if you want to make it compatible for for than 2 games. Just imagine such a bot where you don't have to setup any kind of Hotkeybar or a Skill setup. You just call it via CastSpell(1193); :P . Oh wait, I forgot this is opensource. I might want to toy around by myself then (:

Re: World of Kungfu Bot (Updated)

Posted: Sun Feb 03, 2008 2:38 pm
by Administrator
Yeah. That's where the plugin system will help. All you would need to do is download the associated .dll files, put them in the plugin folder, and everything will work.

I really would need some example code to work from, so if you're up to the challenge, go ahead and try doing exactly this (make sure it all works), and send some code my way. I'll need it to make sure the plugins are working correctly.

Re: World of Kungfu Bot (Updated)

Posted: Sun Feb 03, 2008 6:07 pm
by 3cmSailorfuku
elverion wrote:Yeah. That's where the plugin system will help. All you would need to do is download the associated .dll files, put them in the plugin folder, and everything will work.

I really would need some example code to work from, so if you're up to the challenge, go ahead and try doing exactly this (make sure it all works), and send some code my way. I'll need it to make sure the plugins are working correctly.
C++ Code of how to call a function + codecave?

Re: World of Kungfu Bot (Updated)

Posted: Sun Feb 03, 2008 7:00 pm
by Administrator
Actually I'm not even sure how would be the best to go about this. There are several ways it can be done.

It might be easiest to just inject some DLLs into the target process, and have MicroMacro send a message requesting that the DLL call the functions from within the program. It's actually kind of a lot of work, I guess, but I'd like to have the system not dependent on having modified clients.