Jump to content

¤WoW¤- AFK Tele Bot Development journal...


StrategicX
 Share

Recommended Posts

Hey mates! First off nice to meet all of you! Im not new to AutoIT, actually I used to read around this forum and learn great things all the time.. Ive always been a fan of C++ because of the classes I took, but ive always been drawn to the flexibility of AutoIT and the cool things you can do with it! So I figured now id start mixing the two and make an account here, share some things and learn some more! Id love to learn the A3x Dll's (my next step)

**Added List view and currently working on an array system to load all waypoints/locations Currently have a list of coordinates to every city in wow :)

Posted Image

But anyway, enough about the past! As im guessing theres gotta be more then a handful of avid world of warcraft players like myself hanging around here~! (lvl 80 nightelf druid hehe) So Id like to start a post on the development stages of my AFK Tele-Bot for wow (3.0.9.9551) And I started this project being Open-Minded and open to suggestions! So I figure this will be perfect! So check out the project and even if you dont play wow im sure youll appreciate the coding aspect of all the technical stuff involved in making my Bot :) Thanks for stopping by! Feel free to post any comments, suggestions or questions you may have!

****AFK Tele-Bot by Strategic-X

Current GUI...

Features a Embedded Console (Managed to embed his console functions jerome YOUR THE MAN! ^_^

(Special thanks to: jerome http://www.autoitscript.com/forum/index.ph...onsole+library)

Scrollable list box below which shows the current or loaded "Hotspots", Also shows the hotspots in a specific .ini Hotspot file..

Three Inputs for XYZ Coordinates to add custom "Hotspots" (prompts the user to name each added)

"Goto Hotspot" Button- which when a Hotspot from the List is selected, it will Teleport you to that location, W/O turning Bot on

"Reload" button- If you get disconnected this will reload player pointers..

"Open Path" - Button allows you to open a previous saved path for the bot to run on...

"Save Hotspot" - Button will save the players current XYZ coordinates to the loaded profile and listbox

"Run Bot" -Button turns on bot, which will then start tele path to Treasure Chests etc..

"Stop Bot" -Button will pause the bot from teleporting..

"New Path" - Button will prompt the user to name the new Path.ini file and save to a directory

"exit" - exit

Three Labels that Update every .3 Seconds(about) showing players current XYZ Position..

***Current Development**

The Bot Currently Saves path.ini files, opens them, saves hotspots to current profile, user can add custom hotspots, As of now the bot can Teleport to a Hotspot selected from the list with no problems... Once a hotspot is selected and the user presses "Goto Hotspot" The bot will calculate Atan2 Theory between current player coordinates and destination coordinates and the result is in Radians, which is the rotation amount needed to get the player to face the destination hotspot,(Took me a lil bit to get this Atan correct but I got it :huh2: So once it calcs the player rotation which only takes like .1 seconds, it memory writes the value to the player rotation offset (I know i know...less memory editing the better...) Im looking into using the mouse... The bot Then teleports to that hotspot which depending on how far it is, Id say an average of about 8-10 seconds? But ive done a series of tests with GM Island and it took over 20 Seconds...Although my bot is in serious early beta! So i predict it be much faster as the development goes on! :lmao: Theres much more involved in the "teleporting" process which ill get into more on the next update! I just wanted to post to get ideas for future features/methods! and to share a few things with you guys and get to know you all!

Future Plans**

Start the development of the pathing, (Thinking of using XML files for path and include zone ID's instead of .INI files..)

Work on object interaction so the bot can auto-Loot treasure chests...

Anti-detection

Be Open-Minded :bike:

Few Useful addresses/Offsets for newer developers...(3.0.9.9551)

PlayerBase: 0x0127F13C (Add +0x30 +0x28 +UR_OFFSET since its a level 3 pointer)

PlayerX: +0x7D0

PlayerY: +0x7D4

PlayerZ: +0x7D8

Height: +0x89C (Fly hack)

ClimbAngle: +0x8A8

M2-1: 0x07129FE

M2-2: 0x071288E

Heres part of my Tele Bot/hack's "Brain" that calculates the rotation needed then turns the player :king:

**NOTE: THE ATAN2() Function used for rotation can be found in Math.au3 UDF in the Au3 standard autoit Include directory!

;//The bot reads from the white list box, and the list box reads from the INI file, so thats why i use the For->Next loop
Local $TX, $TY
    $aItems = _GUICtrlListBox_GetSelItemsText($HOTSPOTS)
    For $iI = 1 To $aItems[0]
        $TX = _StringBetween2($aItems[$iI], "/", "%")
        $TY = _StringBetween2($aItems[$iI], "%", "*")
    Next
    $HX = _MEMORYREAD($PLAYERX, $HPROCESS, "float")
    $HY = _MEMORYREAD($PLAYERY, $HPROCESS, "float")
    $PX = $HX
    $PY = $HY
    $A = _ATAN22($TY - $PY, $TX - $PX)
;//Sometimes youll get a negitive result, and WoW Doesnt use negitive rotation(0-6.3) 
;  we normalize this by adding (PI * 2) Done!
    If $A < 0 Then
        $A = $A + ($pi * 2)
    EndIf
;//Then write to the Rotation offset which turns the player towards destination or waypoint~!
    _MEMORYWRITE($ROTATE, $HPROCESS, $A, "float")
;//Here I turn on a few graphics hacks to recude lag, This is very important for something like this!
;//In previous tests, I swear Ive seen wow crash from such a big lag (on friends laptop LOL)
    HACKHANDLE1()
    $MAINON = 1
    HACKHANDLE2()
EndFunc

Last but not least, for those who want to deal with degree's instead of radians (I dont...) then heres your conversion (works with my function and Atans theory)

$UNITFACING = ($ROTNOW * 180) / $pi
$DEG = ((2 * $pi) - $UNITFACING) + $A

**Development**

**UPDATE 03/02/09

AFK Tele Bot now supports a C++ Dll that is injected and controls the speed of the teleport, along with a few other memory editing functions, including NoClip, and an Airwalk for same level travel without falling through the map, The user will be able to set a teleport speed from 50-100max, Im finally happy with development since I was so frustrated with the speed of the previous method i was using, But now that ive set out to make this C++ DLL, it works very well and development is back on track! Below is some more snippets from AFK Telebot's Source code! :puke: Enjoy.

Heres a Fun function you guys can play around with...its all client side graphics... playing with the values has cool effects :D

Func UNLOADALL()
    If $unloadcheck = 0 Then
    $Defaultload = _MEMORYREAD(0x122dbb0, $HPROCESS, "int")
    $Defaultfog = _MEMORYREAD(0x122dba8, $HPROCESS, "float")
    _MEMORYWRITE(0x122dba8, $HPROCESS, 0, "float")
    _MEMORYWRITE(0x122dbb0, $HPROCESS, 0x08410E44, "int")
    _MEMORYWRITE(0xFDb4CC, $HPROCESS, 7, "float")
    $unloadcheck = 1
    Else
    _MEMORYWRITE(0x122dba8, $HPROCESS, $Defaultfog, "float")
    _MEMORYWRITE(0x122dbb0, $HPROCESS, $Defaultload, "int")
    _MEMORYWRITE(0xFDb4CC, $HPROCESS, 0.5, "float")
    $unloadcheck = 0
    EndIf
EndFunc
Enjoy.

For those that dont know much about memory editing wow, Heres a very useful hack function called noclip, this will allow your toon to go through any object (including terrain) I use this with Airwalk so that you dont fall off the world, this makes it easier to teleport faster and pass through all objects.

Func NOCLIP()
    Dim $Noclipset = 2200
    $NOCLIP = $PlayerMEM + $Noclipset
    If $NOCLIPCHECK = 0 Then
        $NOCLIPCHECK = 1
        _MEMORYWRITE($NOCLIP, $HPROCESS, "0", "float")
    ElseIf $NOCLIPCHECK = 1 Then
        _MEMORYWRITE($NOCLIP, $HPROCESS, "0.2777", "float")
        $NOCLIPCHECK = 0
    EndIf
EndFunc ;=End Noclip

¤_*Change Log*_¤

*Added List view instead of list box, more organized...(working on array system)

*Tele bot now supports a C++ Dll that handles speed and hacks.

*Added a better Airwalk function for stable teleport.

Edited by StrategicX

*WoW Dev Projects: AFK Tele Bot development journalSimple Player Pointer Scanner + Z-Teleport*My Projects: coming soon.Check out my WoW Dev wiki for patch 3.0.9!http://www.wowdev.wikidot.com

Link to comment
Share on other sites

Including character name in screenshot of a running warcraft bot = not a great idea. Especially when the character is listed on Allakhazam. From there, it's a matter of some asshat reporting you to Blizzard, and within a few minutes, your accounts are flagged, and you're probably suspended at the least. Change your pic, already. :)

Other than that, very cool, and good luck with your bot here. You might want to collaborate with JRSmiles and the other developers of the Thermo bot here on the example forum. :)

Edited by JRowe
Link to comment
Share on other sites

Ive always wanted to make a WoW bot. if i can help in any way ill do my best. PM me :)

Cheers

Ashww

X)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Projects: Account Control Wii style gui Bingo Caller - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Want a website? Click here!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -I use my Blackberry Storm to browse the forum! Please be patient!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Link to comment
Share on other sites

hey thanks for caring about the account and all but its just one of the 100 trial accounts I got from a Chinese friend of mine :) perfect for running tests, and since blizzard now restricts the amount of trial accounts per IP, This was perfect for me... oh and JRSmile? Not sure who that is yet! But like I said I want to be open-Minded! So id love to meet him... anyway thanks for the positive feedback guys. Im currently trying to get over this blasted flu >< Ill update and begin more testing and coding as soon as im not so sick the world is spinning >.>

edit* I also use vidiala so I run wow on a constant proxy Prioxy FTW :)

Edited by StrategicX

*WoW Dev Projects: AFK Tele Bot development journalSimple Player Pointer Scanner + Z-Teleport*My Projects: coming soon.Check out my WoW Dev wiki for patch 3.0.9!http://www.wowdev.wikidot.com

Link to comment
Share on other sites

hey thanks for caring about the account and all but its just one of the 100 trial accounts I got from a Chinese friend of mine :) perfect for running tests, and since blizzard now restricts the amount of trial accounts per IP, This was perfect for me... oh and JRSmile? Not sure who that is yet! But like I said I want to be open-Minded! So id love to meet him... anyway thanks for the positive feedback guys. Im currently trying to get over this blasted flu >< Ill update and begin more testing and coding as soon as im not so sick the world is spinning >.>

edit* I also use vidiala so I run wow on a constant proxy Prioxy FTW :)

You mean you use Tor - Vidiala is just a GUI frontend for the Tor network. And, you are not anonymous to Blizzard using Tor or Privoxy..

Edit: For the average user surfing the net with firefox and using gaia, tor, privoxy, etc. - yeah, you are anonymous to a certain point. But, in order to be anonymous to Blizzard you have to use something similar to SocksCap for your win apps. I chuckle when I hear folks talk about how they got banned and they were using Tor or they get the 203 error when creating accounts and their IP gets chucked for too much usage.

Edited by Ealric

My Projects: [topic="89413"]GoogleHack Search[/topic], [topic="67095"]Swiss File Knife GUI[/topic], [topic="69072"]Mouse Location Pointer[/topic], [topic="86040"]Standard Deviation Calculator[/topic]

Link to comment
Share on other sites

hey thanks for caring about the account and all but its just one of the 100 trial accounts I got from a Chinese friend of mine :) perfect for running tests, and since blizzard now restricts the amount of trial accounts per IP, This was perfect for me... oh and JRSmile? Not sure who that is yet! But like I said I want to be open-Minded! So id love to meet him... anyway thanks for the positive feedback guys. Im currently trying to get over this blasted flu >< Ill update and begin more testing and coding as soon as im not so sick the world is spinning >.>

edit* I also use vidiala so I run wow on a constant proxy Prioxy FTW :)

me is everywhere, everytime :-)

$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

me is everywhere, everytime :-)

well nice to meet ya :) I need to get over thi flu >< ...Otherwise id be already starting on full pathing already! arggg...

*WoW Dev Projects: AFK Tele Bot development journalSimple Player Pointer Scanner + Z-Teleport*My Projects: coming soon.Check out my WoW Dev wiki for patch 3.0.9!http://www.wowdev.wikidot.com

Link to comment
Share on other sites

well nice to meet ya :) I need to get over thi flu >< ...Otherwise id be already starting on full pathing already! arggg...

don't understand what you want, sorry.

$a=StringSplit("547275737420796F757220546563686E6F6C75737421","")
For $b=1 To UBound($a)+(-1*-1*-1)step(2^4/8);&$b+=1*2/40*µ&Asc(4)
Assign("c",Eval("c")&Chr(Dec($a[$b]&$a[$b+1])));''Chr("a")&"HI"
Next ;time_U&r34d,ths,U-may=get$the&c.l.u.e;b3st-regards,JRSmile;
MsgBox(0x000000,"",Eval("c"));PiEs:d0nt+*b3.s4d.4ft3r.1st-try:-)
Link to comment
Share on other sites

who said I asked you for anything? I said I need to get over the FLU.... Flu is like a cold but x10 worse....

on a different note... Tele development has hit a small bump in the road until I can find a correct terrain address to unload it, I have all M2, WMO ...and I also have a terrain address to delete but it wont write to the value in code! It writes in CheatEngine...Never come accross this ever, and I talked anouther good wow dev around here and they said the same...

*WoW Dev Projects: AFK Tele Bot development journalSimple Player Pointer Scanner + Z-Teleport*My Projects: coming soon.Check out my WoW Dev wiki for patch 3.0.9!http://www.wowdev.wikidot.com

Link to comment
Share on other sites

@ Strategic-X

First let me say thank you for working with Autoit. I'm sure you are a fine person and are very smart at coding. This makes you a great asset to the team here, and I look forward to seeing your projects and learning something in the process.

I know people like to develop apps for popular games such as Wow because they want to capitalize on the success of the game. In this regard, I understand the want to have something exclusive to offer and if you let your code out then there is no exclusiveness. If this is the case then I and others can't help you. So when you say "open minded" you don't mean "open source"

It is hard for me or developers to edit or make suggestions about your code if we can't see the the entire code. If your plan is to have us work out only the hard parts to benefit you only then I want no part in the development. Most people don't understand the code anyway and if they did they would write the program themselves.

If you want help talk to these guys:

http://www.autoitscript.com/forum/index.php?showtopic=37998

http://www.autoitscript.com/forum/index.ph...7179&st=105

BUT, the chance is they will use your ideas in their code also, thus no exclusiveness. Honestly I don't agree with them ether because ONCE AGAIN... NO CODE. (none that works anyway)

This is an "Example Scripts" forum. People read the post here to see working examples.

Edited by onestcoder

Need a website: http://www.iconixmarketing.com

Link to comment
Share on other sites

@ Strategic-X

First let me say thank you for working with Autoit. I'm sure you are a fine person and are very smart at coding. This makes you a great asset to the team here, and I look forward to seeing your projects and learning something in the process.

I know people like to develop apps for popular games such as Wow because they want to capitalize on the success of the game. In this regard, I understand the want to have something exclusive to offer and if you let your code out then there is no exclusiveness. If this is the case then I and others can't help you. So when you say "open minded" you don't mean "open source"

It is hard for me or developers to edit or make suggestions about your code if we can't see the the entire code. If your plan is to have us work out only the hard parts to benefit you only then I want no part in the development. Most people don't understand the code anyway and if they did they would write the program themselves.

If you want help talk to these guys:

http://www.autoitscript.com/forum/index.php?showtopic=37998

http://www.autoitscript.com/forum/index.ph...7179&st=105

BUT, the chance is they will use your ideas in their code also, thus no exclusiveness. Honestly I don't agree with them ether because ONCE AGAIN... NO CODE. (none that works anyway)

This is an "Example Scripts" forum. People read the post here to see working examples.

Exactly! And besides those that would want to use this will most definitely have their accounts eventually banned. BE CAREFUL! Your prized main will be gone!

Link to comment
Share on other sites

Exactly! And besides those that would want to use this will most definitely have their accounts eventually banned. BE CAREFUL! Your prized main will be gone!

is this guy serious? Like im here for a damn marketing scheme.... and This type of project ISNT something you just expose to every copy paste noob on the web! Theres is excessive things in this source that if revealed , could be patched within a day if became public....theres alot of other developers that praise me for NOT making this open source... Although I AM and WILL be sharing example SCRIPTS and other useful things kinda LIKE the Example script in this post, it took me some research to find a solid mthod for player rotation, so I shared my function/method with everyone here! Now, I have no idea why someone is saying they want no part in my projects development.....first off Im pretty sure all i asked for was suggestions, not to reprogram my source... Maybe a bigger GUI, diffeent setup...XML files instead of INI files for pathing....etc.

So if you dont play wow, or not into wow development then i understand why your just asking me to post my whole source like its nothing... But in this situation it is something. But im am going to be helping the community, and those who have already PM'ed know that ive already helped them with a few things. Il continue to post example scripts, and wow development, plus this projects progress.

as for not the right section, well I seen that JRsmile and malu have 2 full threads of their projects and one has no source, and the other a couple dont hae source, which is understandable, because the blizzard situation. Plus the bots section is closed so I just posted where I found the same kinda thing. But I did post example script also, and it DOES work! SO thanks for the compliments, and for welcoming me to AutoIT.

Ill be here to stay and share with the community, WITH some open source projects. Just not this one. But I will be putting useful snippets that can be used for similar wow dev's. Thanks again -Strategic-X

*WoW Dev Projects: AFK Tele Bot development journalSimple Player Pointer Scanner + Z-Teleport*My Projects: coming soon.Check out my WoW Dev wiki for patch 3.0.9!http://www.wowdev.wikidot.com

Link to comment
Share on other sites

Thank God your not talking bad about this man/young man.

Hes very smart in my eyes and is even helping me right now with my project,

Unlike many People Ive asked, also thank you JRSmile for your help.

Yeah, Maybe its posted in the wrong Topic, Thats why we have moderators and admins to move them.

Anyways Keep up the good work " StrategicX ",

Ill set up a test account if your ever going to release this to test.

Please Stick around, we need more people like you her.

Edit: Yeah!

Please Dont open source this but work with people so they can understand things.

God Your Smart Haha

Edited by evilelf
Link to comment
Share on other sites

Thank you so much for Posting the ATan2()'s theory

Like i said before, Very Smart.

I could never get it to work last time cause i could not see it in your post.

Now that i have it, Im going to try it out and pm you back so i dont hi-jack your topic.

Link to comment
Share on other sites

hey no problem mate! anyone can PM me or hit me up on MSN, if they have any questions about wow dev. with bots, and memory editing,. I can try me best to help! hope that Atan does you well , elf :)>

*WoW Dev Projects: AFK Tele Bot development journalSimple Player Pointer Scanner + Z-Teleport*My Projects: coming soon.Check out my WoW Dev wiki for patch 3.0.9!http://www.wowdev.wikidot.com

Link to comment
Share on other sites

Thank you so much for Posting the ATan2()'s theory

Like i said before, Very Smart.

I could never get it to work last time cause i could not see it in your post.

Now that i have it, Im going to try it out and pm you back so i dont hi-jack your topic.

wow

Link to comment
Share on other sites

you ok? lol

currently still working on this SafeOpen() function for all the graphics/terrain load... if ANYONE knows where this function in wows memory starts PLEASE PM me ...thanks...been stuck on this for a while now. or if anyone knows how to use IDA Pro and hook/back trace with it thanks.

*WoW Dev Projects: AFK Tele Bot development journalSimple Player Pointer Scanner + Z-Teleport*My Projects: coming soon.Check out my WoW Dev wiki for patch 3.0.9!http://www.wowdev.wikidot.com

Link to comment
Share on other sites

  • 2 weeks later...

for reference to possibly scraping code from old projects that used to bot you can find in wowsharp code.

as an example for finding the facing you need to turn twards your target can be found there:

/// <summary>
        /// Returns the radian that would face the x,y specified
        /// </summary>
        /// <param name="faceX">x</param>
        /// <param name="faceY">y</param>
        /// <returns>Radian needed to face x,y</returns>
        internal float GetFaceRadian( float faceX, float faceY)
        {
            float dx = (x - faceX);
            float dy = faceY - y;

            float newRad=0;
            if(dx>0.0 && dy>=0.0) newRad = (float)Math.Atan( dy/dx );
            if(dx<0.0 && dy>=0.0) newRad = (float)Math.Atan( dy/dx ) + (float)Math.PI;
            if(dx<0.0 && dy<0.0) newRad = (float)Math.Atan( dy/dx ) + (float)Math.PI;
            if(dx>0.0 && dy<0.0) newRad = (float)Math.Atan( dy/dx ) + (float)(2*Math.PI);
    
            newRad -= (float)1.57079633;  //silly game making zero degrees due East
    
            return newRad;
        }

in addition the distance to your target:

/// <summary>
        /// Gets the distance from the current object to the x,y specified
        /// </summary>
        /// <param name="x">x</param>
        /// <param name="y">y</param>
        /// <param name="z">z</param>
        /// <returns>Distance</returns>
        public float GetDistance( float x, float y, float z)
        {
            float dX = X - x;
            float dY = Y - y;
            float dZ = (z != 0 ? Z - z : 0);

            return (float)Math.Sqrt(dX*dX + dY*dY + dZ*dZ);
        }

there is code there that can be scraped if you found a way to run bot undetected :P

glad that someone is still sharing something like this otherwise most are underground about there findings :unsure:

cheers

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...