World of Kungfu Bot (Updated)

You may request or share scripts for MicroMacro in this forum.
Message
Author
felix_fx2
Posts: 11
Joined: Fri Feb 01, 2008 9:01 pm

Re: World of Kungfu Bot (Updated)

#61 Post by felix_fx2 » Wed Jul 30, 2008 11:48 pm

new offsets

Code: Select all

HP_ptr = "005FE608";
HP_offset = 192;


MP_ptr = "005FE608";
MP_offset = 200;
credits
victor_leong
gr8_viruz

Someone please verify

listairee
Posts: 1
Joined: Thu Aug 28, 2008 1:42 am

Re: World of Kungfu Bot (Updated)

#62 Post by listairee » Thu Aug 28, 2008 1:46 am

I am using a bow and I am using the script from earlier post, kungfubow.lua. I seem to be getting this error, kungfubow.lua:310: bad argument #2 to 'memoryReadIntPtr' <<null>>. I am hoping someone would be able to help me. The coding is as follows:

Code: Select all

-------------------------------------------------
--World of Kung Fu Bot

--Mystikfox
--Hackbar
--Mangler
-------------------------------------------------
-- Variable declaration -- do not edit
-------------------------------------------------
CLASS_WARRIOR   = 0;
CLASS_MAGE      = 1;
CLASS_BOW       = 3;
HP              = 10000;
MP              = 10000;
SP              = 10000;


HP_ptr         = "005EE608";
HP_offset      = 192;


MP_ptr         = "005EE608";
MP_offset      = 200;


SP_ptr         = "020F2910";
SP_offset      = 312;


-------------------------------------------------


-------------------------------------------------
-- character configuration YOU HAVE TO CHANGE THIS STUFF FOR THE BOT TO WORK RIGHT
-------------------------------------------------
class           = CLASS_BOW;
key_attack      = key.VK_1;
key_pickup      = key.VK_TILDE;
key_sit         = key.VK_Z;

key_skill1      = key.VK_2;
key_skill2      = key.VK_3;
key_skill3      = key.VK_4;

key_hppotion    = key.VK_F1;
key_mppotion    = key.VK_F2;
key_sppotion    = key.VK_F3;

-- rest or use potions when low on HP/MP/SP 
HP_potion    = 250;
MP_potion    = 80;
SP_potion    = 0;

HP_sit          = 300;
MP_sit          = 100;
SP_sit          = 0;

-- chance to cast
skill1_chance   = 100;
skill2_chance   = 80;
skill3_chance   = 50;

-- MP cost
skill1_cost     = 10;
skill2_cost     = 5;
skill3_cost     = 6;


have_pig        = 0;            -- set to 1 if you have a fortune pig and want to
				-- skip the manual pickup function	

-- buff stuff
-- NOTE:  set on 10 minutes
-- buff / scroll durations in msec 	time = minutes x 60000
-- to de- activate non used buffs / scrolls replace "1" with "0"
-- to activate buff / scroll replace "0" with "1"
-- scrolls can be used too as buff
-------------------------

buff1_duration 		= 300000;
buff_1			= 0;
buff_key1               = key.VK_6;

buff2_duration 		= 600000;
buff_2         		= 0;
buff_key2                = key.VK_7;

--dont change these
buff1_needed 	= true;
buff2_needed 	= true;




-- cast times in milliseconds
skill1_casttime        = 2000;
skill2_casttime        = 2000;
skill3_casttime        = 3000;

-- skill cool downs in milliseconds (not working)
skill1_cooldown        = 3000;
skill2_cooldown        = 1000;
skill3_cooldown        = 5000;
-------------------------------------------------

function hp_potion()
  keyboardPress(key_hppotion);
end

function mp_potion()
  keyboardPress(key_mppotion);
end

function sp_potion()
  keyboardPress(key_sppotion);
end

-- so we aren't spamming the attack key...
-- we will use a timer to press it once
-- every 3 seconds.
function attack_timer()
  keyboardPress(key_attack);
end

function fight_warrior()
  registerTimer("attack_timer", 3000, attack_timer);

  while( have_target() ) do
    if( HP < HP_potion ) then
      hp_potion(); end
    if( MP < MP_potion ) then
      mp_potion(); end
--    if( SP < SP_potion ) then
--      sp_potion(); end
    keyboardPress(key_skill1);
    yrest(120); 
    keyboardPress(key_skill2);
    yrest(120);  
    keyboardPress(key_skill3);
    yrest(120);
    coroutine.yield();	
  end

  unregisterTimer("attack_timer");

  yrest(1000);
end

function fight_mage()
  while( have_target() ) do
    if( HP < HP_potion ) then
      hp_potion(); end
    if( MP < MP_potion ) then
      mp_potion(); end
    
    local roll = math.random(100);
    if( roll <= skill1_chance and MP >= skill1_cost ) then
      -- cast skill 1
      keyboardPress(key_skill1);
      yrest(skill1_casttime);
    else
      keyboardPress(key_attack);
    end
    
    if( roll <= skill2_chance and MP >= skill2_cost ) then
    -- cast skill 1
    keyboardPress(key_skill2);
    yrest(skill2_casttime);
    else
    keyboardPress(key_attack);
    end

    yrest(100);
    coroutine.yield();
  end

  yrest(1000);
end

function fight_bow()
  registerTimer("attack_timer", 3000, attack_timer);

  while( have_target() ) do
    if( HP < HP_potion ) then
      hp_potion(); end
    if( MP < MP_potion ) then
      mp_potion(); end
--    if( SP < SP_potion ) then
--      sp_potion(); end
    keyboardPress(key_skill1);
    yrest(120); 
    keyboardPress(key_skill2);
    yrest(120);  
    keyboardPress(key_skill3);
    yrest(120);
    coroutine.yield();	
  end

  unregisterTimer("attack_timer");

  yrest(1000);
end

-- heal until full HP & MP
function rest_heal()
  if( can_rest == false ) then return; end
  
    keyboardHold(key_sit);
    yrest(50);
    keyboardRelease(key_sit);
  
    -- set a timer to toggle healing in 30 seconds
    registerTimer("heal_rest_timer", 30000, heal_rest_timer);
  
    need_heal = true;
    last_hp = HP;
    while( need_heal ) do
      yrest(100);
      if (HP < last_hp)  then
        print("Under attack! Exiting rest.");
        can_rest = false;
        registerTimer("can_rest_timer", 3000, can_rest_timer);
        break;
      else
        last_hp = HP;
      end
    end
  
    keyboardHold(key_sit);
    yrest(50);
    keyboardRelease(key_sit);
  
  yrest(200);
end

-- toggle can_heal to true, disable timer
function can_rest_timer()
  unregisterTimer("can_rest_timer");
  can_rest = true;
  print("Can rest again.");
end

-- tell heal_rest we no longer need rest
function heal_rest_timer()
  need_heal = false;
end

-- toggle cast needed for buff1
function buff1_timer()
  buff1_needed = true;
end

-- toggle cast needed for buff2
function buff2_timer()
  buff2_needed = true;
end

-- pickup nearby items enhanced
function pickup()
  keyboardHold(key_pickup);
  yrest(50);
  keyboardRelease(key_pickup);
  yrest(775)
  keyboardHold(key_pickup);
  yrest(50);
  keyboardRelease(key_pickup);
  yrest(775)
  keyboardHold(key_pickup);
  yrest(50);
  keyboardRelease(key_pickup);
end



-- you have died! oh noes!
function death_return()
  keyboardPress(key.VK_SNAPSHOT);
  print(os.date("Looks like somebody got you killed.	%X"))
  print("A screen capture has been taken. Open MS Paint and paste it.");
  stopPE(); -- this turns the macro off!
  coroutine.yield(); -- yield to make sure the protected environment stops
end


function move_forward()
  keyboardHold(key.VK_W);
  if( math.random(100) >= 80 )
    then keyboardHold(key.VK_A);
  else if( math.random(100) >= 80 )
    then keyboardHold(key.VK_D); end
  end

  yrest( math.random(2000) );

  keyboardRelease(key.VK_W);
  keyboardRelease(key.VK_A);
  keyboardRelease(key.VK_D);
end









-- update client variables by reading from it's memory
function update_vars()
  HP = memoryReadIntPtr(proc, HP_ptr, HP_offset);
 
  MP = memoryReadIntPtr(proc, MP_ptr, MP_offset);
 
  --SP = memoryReadIntPtr(proc, SP_ptr, SP_offset);
end



-- rotate camera
function rotate_cam()
  wx,wy = windowRect(win);

  mouseSet(wx+512, wy+384);
  yrest(100);
  mouseRHold();
  yrest(100);
  mouseSet(wx+514, wy+384);
  yrest(100);
  mouseRRelease();
  yrest(100);
end



-- selects a nearby monster
function target_monster()
  keyboardHold(key.VK_TAB);
  yrest(50);
  keyboardRelease(key.VK_TAB);
end




-- checks if you have a target
function have_target()
  r,g,b = getPixel(hdc, 506, 31);
  --print(r,g,b); unneeded testcode
  -- check for the goldish color in the monster's HP window
  if( r >= 205 and r <= 225 and g >= 205 and g <= 230 and b >= 185 and b<= 200 ) then
    return true;
  else
    return false;
  end
end



-------------------------------------------------
-- FUNCTION MAIN
-------------------------------------------------
function main()
  win = findWindow("Kungfu Client");
  hdc = openDC(win);
  proc = openProcess( findProcessByExe("GongfuClient.exe") );
  attach(win);

  registerTimer("update_vars", 100, update_vars);
  registerTimer("buff1_timer", buff1_duration, buff1_timer);
  registerTimer("buff2_timer", buff2_duration, buff2_timer);

  
  --pixeltest(); commented test code
  while( 1 ) do
    if( HP == 0 ) then death_return(); end
    if( HP < HP_potion ) then hp_potion(); end
    if( MP < MP_potion ) then mp_potion(); end
    if( HP < HP_sit and can_rest == true ) then rest_heal(); end
    if( MP < MP_sit and can_rest == true ) then rest_heal(); end

    yrest(100);
    target_monster();
    yrest(200);
    if( have_target() ) then
      can_rest = false; -- prevent resting during battle
                        -- for the few that have this bug
      if( class == CLASS_WARRIOR) then fight_warrior(); end
      if( class == CLASS_MAGE) then fight_mage(); end
      if( class == CLASS_BOW) then fight_bow(); end
      can_rest = true;
    else
   
      rotate_cam();
      if( math.random(100) > 90 ) then
        move_forward(); end
    end
    
    
    
   
    if(have_pig == 0) then
    pickup();
    end
    
    if( buff_1 == 1 ) then 
	if( buff1_needed ) then
          keyboardPress(buff_key1);
          print(os.date("buff 1 casted	%X"))
	  buff1_needed = false;
	  yrest(1000);
	end
    end
    if( buff_2 == 1 ) then 
      if( buff2_needed ) then
        keyboardPress(buff_key2);
        print(os.date("buff 1 casted	%X"))
    	buff1_needed = false;
    	yrest(1000);
      end
    end
  end

  detach();
  closeProcess(proc);
end

startMacro(main);
-------------------------------------------------
Any help would be appreciated. Thanks in advance.

DarkP
Posts: 5
Joined: Wed Oct 08, 2008 12:37 pm

Re: World of Kungfu Bot (Updated)

#63 Post by DarkP » Wed Oct 08, 2008 12:39 pm

Wouldn't it be better to just read the HP/MP/SP bar using pixels? I know it won't be as accurate but it saves the hassle of getting the address each time a patch is out...hmm?

User avatar
Administrator
Site Admin
Posts: 5306
Joined: Sat Jan 05, 2008 4:21 pm

Re: World of Kungfu Bot (Updated)

#64 Post by Administrator » Wed Oct 08, 2008 5:07 pm

Yes, DarkP, that is an option. However, due to it's lack of accuracy and reliability, it's usually a last resort. Also, you can only read pixels from the window if it is showing (not minimized) and the area you are trying to read from is not covered by a window. This makes it less than desirable for those people who would like to have the bot work full-auto while they check their e-mail or browse the web.

The #1 problem with pixel reading is that the results differ greatly depending on each user's graphics card and video settings. So what might show up as pure read (255, 0, 0) to me could be slightly different for you (254, 5, 2). Although they are similar (and there is a function to help check if two colors match close enough) it doesn't always want to work. And alpha transparency is a nightmare...

Looking up addresses is fairly easy to do once you know how. The Cheat Engine tutorial on looking up pointers and offsets in the memory editing section of this forum is very useful. It is the method I use most of the time, and have had great success with it. Offsets rarely change, and pointers are typically shared, so once you've found the pointer to, say, your HP, again, you've also already got all the information you need for MP, SP, and other information.

HP_ptr = "005EE608";
HP_offset = 192;
Addresses as a string have been deprecated for a long time. They would need to follow the form 0x005EE608, however, that won't work either as the address has still changed.

DarkP
Posts: 5
Joined: Wed Oct 08, 2008 12:37 pm

Re: World of Kungfu Bot (Updated)

#65 Post by DarkP » Wed Oct 08, 2008 8:24 pm

Interesting... but I used pixel reading with some success right now, using 2-3 pixel matches. I *think* it works as it is right now because HP bars are either reddish color or blackish color, and not some other colors, same with MP/SP bars. However, I do have to avoid the numbers because it screws up detection, so my script can only detect whether it's 0, "almost empty", "almost full", "full"...

Anyway, can't really do a full auto bot on this game as the 4 numbers of death (or free healing, depends on your perspective) shows up randomly.

KamikaZ
Posts: 1
Joined: Tue Nov 25, 2008 10:06 am

Re: World of Kungfu Bot (Updated)

#66 Post by KamikaZ » Tue Nov 25, 2008 10:16 am

So i guess this is not working anymore, Right?
Here is my log, some1 knows how to fix this?
pl0x lvling gets realy slow after 40+ :shock: :roll:

Greetz,
KamikaZ

Code: Select all

Tue Nov 25 16:23:46 2008 : MicroMacro v0.99
Tue Nov 25 16:23:46 2008 : Processor Type: 586, OS: Windows XP Service Pack 3
Tue Nov 25 16:23:46 2008 : Lua initialized successfully.
Tue Nov 25 16:23:46 2008 : Lua libs opened successfully.
Tue Nov 25 16:23:46 2008 : LuaCoco is available.
Tue Nov 25 16:23:46 2008 : Lua glues exported.
Tue Nov 25 16:23:46 2008 : Keyboard layout: US English
Tue Nov 25 16:23:46 2008 : Configurations run.
Tue Nov 25 16:23:55 2008 : Executing script "kungfubow1.lua".
==================================================


stack traceback:
	.\Bureaublad\wokf\micromacro\lib\lib.lua:476: in function 'startMacro'
	..\Bureaublad\wokf\micromacro\scripts\kungfubow1.lua:427: in main chunk

----------TRACEBACK END----------

Tue Nov 25 16:24:09 2008 ...\Bureaublad\wokf\micromacro\scripts\kungfubow1.lua:310: bad argument #2 to 'memoryReadIntPtr' ((null))
Tue Nov 25 16:24:09 2008 : Execution of kungfubow1.lua complete.
Tue Nov 25 16:24:09 2008 : Execution error: Runtime error
Tue Nov 25 16:24:09 2008 : Collecting garbage...
Tue Nov 25 16:24:09 2008 : 54KB freed.

User avatar
Administrator
Site Admin
Posts: 5306
Joined: Sat Jan 05, 2008 4:21 pm

Re: World of Kungfu Bot (Updated)

#67 Post by Administrator » Tue Nov 25, 2008 10:52 am

String-style addresses were deprecated a long time ago, which is what that script uses. Just open it in notepad and fix them. It's pretty simple. You'll see a line that looks like this:

Code: Select all

HP_ptr         = "005EE608";
Just change "005EE608" to 0x005EE608 (remove the quotes, too!), then save it. Do the same thing for the MP_ptr and SP_ptr.

Blackmusky
Posts: 5
Joined: Sat Dec 13, 2008 6:57 pm

Re: World of Kungfu Bot (Updated)

#68 Post by Blackmusky » Sat Dec 13, 2008 7:01 pm

I dont know if this still works with 1.0.40 but when I run it I get this: Looks like somebody got you killed.
Ascreen capture has been taken. blah blah... No errors in log. Any ideas?

Code: Select all

-------------------------------------------------
--World of Kung Fu Bot

--Mystikfox
--Hackbar
--Mangler
-------------------------------------------------
-- Variable declaration -- do not edit
-------------------------------------------------
CLASS_WARRIOR   = 0;
CLASS_MAGE      = 1;
HP              = 10000;
MP              = 10000;
SP              = 10000;


HP_ptr         = 0x005EE608;
HP_offset      = 192;


MP_ptr         = 0x005EE608;
MP_offset      = 200;


SP_ptr         = 0x020F2910;
SP_offset      = 312;


-------------------------------------------------


-------------------------------------------------
-- character configuration YOU HAVE TO CHANGE THIS STUFF FOR THE 

BOT TO WORK RIGHT
-------------------------------------------------
class = CLASS_Spear;
key_attack = key.VK_1;
key_pickup = key.VK_TILDE;
key_sit = key.VK_Z;

key_skill1 = key.VK_2;
key_skill2 = key.VK_3;
key_skill3 = key.VK_4;

key_hppotion = key.VK_F1;
key_mppotion = key.VK_F2;
key_sppotion = key.VK_F3;

-- rest or use potions when low on HP/MP/SP
HP_potion = 40;
MP_potion = 0;
SP_potion = 0;

HP_sit = 40;
MP_sit = 0;
SP_sit = 0;

-- chance to cast
skill1_chance = 100;
skill2_chance = 80;
skill3_chance = 0;

-- MP cost
skill1_cost = 38;
skill2_cost = 20;
skill3_cost = 80;


have_pig = 0; -- set to 1 if you have a fortune pig and want to
-- skip the manual pickup function

-- buff stuff
-- NOTE: set on 10 minutes
-- buff / scroll durations in msec time = minutes x 60000
-- to de- activate non used buffs / scrolls replace "1" with "0"
-- to activate buff / scroll replace "1" with "1"
-- scrolls can be used too as buff
-------------------------

buff1_duration = 600000;
buff_1 = 0;
buff_key1 = key.VK_8;

buff2_duration = 600000;
buff_2 = 0;
buff_key2 = key.VK_9;

--dont change these
buff1_needed = true;
buff2_needed = true;




-- cast times in milliseconds
skill1_casttime = 2000;
skill2_casttime = 1000;
skill3_casttime = 3000;

-- skill cool downs in milliseconds (not working)
skill1_cooldown = 3000;
skill2_cooldown = 8000;
skill3_cooldown = 9000;
-------------------------------------------------

function hp_potion()
keyboardPress(key_hppotion);
end

function mp_potion()
keyboardPress(key_mppotion);
end

function sp_potion()
keyboardPress(key_sppotion);
end

-- so we aren't spamming the attack key...
-- we will use a timer to press it once
-- every 3 seconds.
function attack_timer()
keyboardPress(key_attack);
end

function fight_warrior()
registerTimer("attack_timer", 3000, attack_timer);

while( have_target() ) do
if( HP < HP_potion ) then
hp_potion(); end
if( MP < MP_potion ) then
mp_potion(); end
-- if( SP < SP_potion ) then
-- sp_potion(); end
keyboardPress(key_skill1);
yrest(120);
keyboardPress(key_skill2);
yrest(120);
keyboardPress(key_skill3);
yrest(120);
coroutine.yield();
end

unregisterTimer("attack_timer");

yrest(1000);
end

function fight_mage()
while( have_target() ) do
if( HP < HP_potion ) then
hp_potion(); end
if( MP < MP_potion ) then
mp_potion(); end

local roll = math.random(100);
if( roll <= skill1_chance and MP >= skill1_cost ) then
-- cast skill 1
keyboardPress(key_skill1);
yrest(skill1_casttime);
else
keyboardPress(key_attack);
end

if( roll <= skill2_chance and MP >= skill2_cost ) then
-- cast skill 1
keyboardPress(key_skill2);
yrest(skill2_casttime);
else
keyboardPress(key_attack);
end

yrest(100);
coroutine.yield();
end

yrest(1000);
end

-- heal until full HP & MP
function rest_heal()
if( can_rest == false ) then return; end

keyboardHold(key_sit);
yrest(50);
keyboardRelease(key_sit);

-- set a timer to toggle healing in 30 seconds
registerTimer("heal_rest_timer", 30000, heal_rest_timer);

need_heal = true;
last_hp = HP;
while( need_heal ) do
yrest(100);
if (HP < last_hp) then
print("Under attack! Exiting rest.");
can_rest = false;
registerTimer("can_rest_timer", 3000, can_rest_timer);
break;
else
last_hp = HP;
end
end

keyboardHold(key_sit);
yrest(50);
keyboardRelease(key_sit);

yrest(200);
end

-- toggle can_heal to true, disable timer
function can_rest_timer()
unregisterTimer("can_rest_timer");
can_rest = true;
print("Can rest again.");
end

-- tell heal_rest we no longer need rest
function heal_rest_timer()
need_heal = false;
end

-- toggle cast needed for buff1
function buff1_timer()
buff1_needed = true;
end

-- toggle cast needed for buff2
function buff2_timer()
buff2_needed = true;
end

-- pickup nearby items
function pickup()
keyboardHold(key_pickup);
yrest(50);
keyboardRelease(key_pickup);
yrest(775)
keyboardHold(key_pickup);
yrest(50);
keyboardRelease(key_pickup);
end



-- you have died! oh noes!
function death_return()
keyboardPress(key.VK_SNAPSHOT);
print(os.date("Looks like somebody got you killed. %X"))
print("A screen capture has been taken. Open MS Paint and paste 

it.");
stopPE(); -- this turns the macro off!
coroutine.yield(); -- yield to make sure the protected 

environment stops
end


function move_forward()
keyboardHold(key.VK_W);
if( math.random(100) >= 80 )
then keyboardHold(key.VK_A);
else if( math.random(100) >= 80 )
then keyboardHold(key.VK_D); end
end

yrest( math.random(2000) );

keyboardRelease(key.VK_W);
keyboardRelease(key.VK_A);
keyboardRelease(key.VK_D);
end









-- update client variables by reading from it's memory
function update_vars()
HP = memoryReadIntPtr(proc, HP_ptr, HP_offset);

MP = memoryReadIntPtr(proc, MP_ptr, MP_offset);

--SP = memoryReadIntPtr(proc, SP_ptr, SP_offset);
end



-- rotate camera
function rotate_cam()
wx,wy = windowRect(win);

mouseSet(wx+512, wy+384);
yrest(100);
mouseRHold();
yrest(100);
mouseSet(wx+514, wy+384);
yrest(100);
mouseRRelease();
yrest(100);
end



-- selects a nearby monster
function target_monster()
keyboardHold(key.VK_TAB);
yrest(50);
keyboardRelease(key.VK_TAB);
end




-- checks if you have a target
function have_target()
r,g,b = getPixel(hdc, 506, 31);
--print(r,g,b); unneeded testcode
-- check for the goldish color in the monster's HP window
if( r >= 205 and r <= 225 and g >= 205 and g <= 230 and b >= 185 

and b<= 200 ) then
return true;
else
return false;
end
end



-------------------------------------------------
-- FUNCTION MAIN
-------------------------------------------------
function main()
win = findWindow("Kungfu Client");
hdc = openDC(win);
proc = openProcess( findProcessByExe("GongfuClient.exe") );
attach(win);

registerTimer("update_vars", 100, update_vars);
registerTimer("buff1_timer", buff1_duration, buff1_timer);
registerTimer("buff2_timer", buff2_duration, buff2_timer);


--pixeltest(); commented test code
while( 1 ) do
if( HP == 0 ) then death_return(); end
if( HP < HP_potion ) then hp_potion(); end
if( MP < MP_potion ) then mp_potion(); end
if( HP < HP_sit and can_rest == true ) then rest_heal(); end
if( MP < MP_sit and can_rest == true ) then rest_heal(); end

yrest(100);
target_monster();
yrest(200);
if( have_target() ) then
can_rest = false; -- prevent resting during battle
-- for the few that have this bug
if( class == CLASS_WARRIOR) then fight_warrior(); end
if( class == CLASS_MAGE) then fight_mage(); end
can_rest = true;
else

rotate_cam();
if( math.random(100) > 90 ) then
move_forward(); end
end




if(have_pig == 0) then
pickup();
end

if( buff_1 == 1 ) then
if( buff1_needed ) then
keyboardPress(buff_key1);
print(os.date("buff 1 casted %X"))
buff1_needed = false;
yrest(1000);
end
end
if( buff_2 == 1 ) then
if( buff2_needed ) then
keyboardPress(buff_key2);
print(os.date("buff 1 casted %X"))
buff1_needed = false;
yrest(1000);
end
end
end

detach();
closeProcess(proc);
end

startMacro(main);
-------------------------------------------------

Blackmusky
Posts: 5
Joined: Sat Dec 13, 2008 6:57 pm

Re: World of Kungfu Bot (Updated)

#69 Post by Blackmusky » Mon Dec 15, 2008 8:14 pm

Anybody ???

SinSxi
Posts: 11
Joined: Thu Feb 19, 2009 3:31 pm

Re: World of Kungfu Bot (Updated)

#70 Post by SinSxi » Sat Feb 21, 2009 3:21 pm

Can someone update this, it would be much appreciated!

longnt
Posts: 2
Joined: Fri May 22, 2009 1:59 am

Re: World of Kungfu Bot (Updated)

#71 Post by longnt » Fri May 22, 2009 2:12 am

New pointer
HP_ptr = 0x00621608;
HP_offset = 192;

MP_ptr = 0x00621608;
MP_offset = 200;

redemption94
Posts: 2
Joined: Thu Oct 02, 2014 3:18 am

Re: World of Kungfu Bot (Updated)

#72 Post by redemption94 » Thu Oct 02, 2014 3:20 am

Why doesn't the rotate camera function not working? I have to stay in front of the pc to rotate the camera manually.

Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests