[Guide] Easy way to make gatherbot! (autoit) menu

User Tag List

Page 1 of 3 123 LastLast
Results 1 to 15 of 35
  1. #1
    gononono64's Avatar Contributor
    Reputation
    100
    Join Date
    Jul 2009
    Posts
    85
    Thanks G/R
    1/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Guide] Easy way to make gatherbot! (autoit)

    Hello, my name is Devon and I'm an alcoholic...

    Moving on.

    ~ Introduction:~
    I recently left my job because Zellers is one of the shittiest places to work. EVER. (at least mine is) So after a few days kicking in the front seat and sitting in the back seat, i decided to do something productive. Something like teach you newbies more useful crap, in the hopes that one day you too will be useful.

    This guide will be about a way to make a gather bot. It will be simple (it is your job to elaborate) but none the less it will (i hope) explain the fundamentals of creating gathering bot.

    Again you need to know at least one programming language and be quite a bit experienced in it.

    To start you will need:
    1x knowledge of an object manager
    1x A GetLocalPlayerXYZR function
    1x A way to make your character run (waypoints are good)
    1x common senses
    -1x noobines
    -1x trolling

    Any help needed on making bots can be found here: http://www.mmowned.com/forums/world-...ete-newbs.html

    Lets get started,

    ~XYZ:~


    To start, lets go ahead and find the object in memory (our GetMemloc function) To do this, we must tell it to strictly search for Objects. We can do this by going through each object and checking the type to see if it is type 5
    Note: you can also check it buy name or both.

    Example:
    Code:
    Func GetObjectMemLoc()
       
    $NextObject = _MemoryRead("0x" & Hex($currMgr + $FirstObjectOffset), $wow, "dword")
    
        While (<= 7)
    
    $ObjType = _MemoryRead("0x" & Hex($NextObject + $GameObjTypeOffset), $wow, "dword") 
              IF ($ObjType = 5) Then
               ;GetClosestNode
              endif
    $NextObject = _MemoryRead("0x" & Hex($NextObject + $NextObjectOffset), $wow, "dword")
         Wend
    Endfunc
    Again referring to the dump thread, you can get the objects XYZ position. This will obviously help you get to your node that you want to collect.

    In the dump, you will see an offset for an objects X location, as well as y and z, that equals this: x = '0x110, y = x + 0x4 , z = x + 0x8'. If we use this as well as get our local players position then we can calculate the distance between the two and get our player to run to the closest one.

    It would look something like this:
    Code:
    Global Const $ObjectPosXOffset = 0x110
    Global Const $ObjectPosYOffset = 0x110 + 0x4
    Global Const $ObjectPosZOffset = 0x110 + 0x8
    
    Global Const $UnitPosXOffset = 0x898
    Global Const $UnitPosYOffset = 0x898 + 0x4
    Global Const $UnitPosZOffset = 0x898 + 0x8
    Global Const $UnitRotationOffset = 0x8A8
    
    Func _GetXYZR($GUID = $pGUID, $isObject = False)
    	Local $pXYZR[4]
    	$ObjectMemLoc = _GetPlayerMemLoc($GUID)
    
    	If $isObject = True Then
    		$pXYZR[0] = _MemoryRead("0x" & Hex($ObjectMemLoc + $ObjectPosXOffset), $wow, "float")
    		$pXYZR[1] = _MemoryRead("0x" & Hex($ObjectMemLoc + $ObjectPosYOffset), $wow, "float")
    		$pXYZR[2] = _MemoryRead("0x" & Hex($ObjectMemLoc + $ObjectPosZOffset), $wow, "float")
    		$pXYZR[3] = 0
    	Else
    
    		$pXYZR[0] = _MemoryRead("0x" & Hex($ObjectMemLoc + $UnitPosXOffset), $wow, "float")
    		$pXYZR[1] = _MemoryRead("0x" & Hex($ObjectMemLoc + $UnitPosYOffset), $wow, "float")
    		$pXYZR[2] = _MemoryRead("0x" & Hex($ObjectMemLoc + $UnitPosZOffset), $wow, "float")
    		$pXYZR[3] = _MemoryRead("0x" & Hex($ObjectMemLoc + $UnitRotationOffset), $wow, "float")
    		
    		If $GUID = $pGUID Then
    			If ($pXYZR[0] = 0 And $pXYZR[1] = 0) Then
    				MsgBox(0x10, "Error", "Probably not in game")
    				_EmergencyExit()
    			EndIf
    		EndIf
    	EndIf
    	
    	Return $pXYZR
    EndFunc   ;==>_GetXYZR
    After you have your positions for both the player, you can then calculate the closest one by doing this:

    Code:
    Func _GetDistanceTarget($targetX, $targetY, $targetZ = False)
    
    	$pXYZR = _GetXYZR()
    	$pXPos = $pXYZR[0]
    	$pYPos = $pXYZR[1]
    	$pZPos = $pXYZR[1]
    
    	If $targetZ = False Then
    		$targetZ = 0
    		$pZPos = 0
    	EndIf
    
    	$DistanceToTarget = Sqrt(($targetX - $pXPos) ^ 2 + ($targetY - $pYPos) ^ 2 + ($targetY - $pYPos) ^ 2)
    	Return $DistanceToTarget
    EndFunc   ;==>_GetDistanceTarget
    And...

    Code:
    Func GetClosestNode
    $XYZR = _GetXYZR($GUID,True); Gets XYZ and Rotation of wowobject params "_GetXYZR(guid, isobject)"
    			$dist = _GetDistanceTarget($XYZR[0], $XYZR[1])
    
    			If $dist <> 0 Then
    				If $tempdist = "" Then
    					$tempdist = $dist
    					$tempguid = $GUID
    				Else
    					If $tempdist > $dist Then
    						$tempdist = $dist
    						$tempguid = $GUID
    					EndIf
    
    				EndIf
    			EndIf
    Return $tempguid
    endfunc
    Just a reminder that the above is only to locate the closest node to you. There is no actual movement. The movement is for you to figure out. You can do this buy checking the distance between your current position and the node vs. your next waypoint position and the node. There are other ways of doing it.

    ~Collecting the node:~


    This is fairly easy. All you have to do is set the GUID of the object into the MouseOverGUID address and then send the interact with mouse-over key (that you hot-keyed in key-bindings manually)

    Something like this:
    Code:
    Func _GatherLoot($ObjGUID)
    	$name = _GetObjectName($ObjGUID)
    	MsgBox(0,"",$name)
    	;MouseoverGUID = 0x99C6A8
    	_MemoryWrite($WoWBase + 0x99C6A8, $Wow, $ObjGUID, "UINT64") ;params "_memorywrite(address, handle, data, type)"
            ;T is my interact with mouse-over key
    	ControlSend("World of Warcraft", "", "", "{T}")
    EndFunc   ;==>_GatherLoot
    ~Conclusion:~

    The code above is only example code. It is very incomplete and if taken would probably give lots of errors. It is there just to show you by example. If there is anything that is erroneous please tell me and i will fix it quickly.

    Also a quick thanks for all the people that post in the dump thread! You guys are amazing!

    Also if you do not understand what i am talking about in this thread please look at my other guide: http://www.mmowned.com/forums/world-...ete-newbs.html
    Hi! My name is Devon and I’m an alcoholic. Moving on…
    https://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/319172-guide-how-make-wow-bot-complete-newbs.html

    [Guide] Easy way to make gatherbot! (autoit)
  2. #2
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1511
    Join Date
    May 2008
    Posts
    2,432
    Thanks G/R
    81/333
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    If you're just starting out, definitely go straight to C#. If you're ever planning on doing a NavMesh (and you will at some point if you're making a bot) or doing anything like packet manipulation, assembly, or in-process hooking you're going to need C#.

    Edit: Or C++ respectively, you'll also need this if you're hooking in-process with C#, but that's easy copy pasta
    Last edited by Jadd; 04-09-2011 at 08:08 PM.

  3. #3
    gononono64's Avatar Contributor
    Reputation
    100
    Join Date
    Jul 2009
    Posts
    85
    Thanks G/R
    1/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Apples or oranges? ... im not just starting out btw. I used autoit because i like it and i think its the simplest "language" for explaining stuff to people who aren't as experienced.
    Hi! My name is Devon and I’m an alcoholic. Moving on…
    https://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/319172-guide-how-make-wow-bot-complete-newbs.html

  4. #4
    jayswag's Avatar Sergeant
    Reputation
    15
    Join Date
    Mar 2011
    Posts
    44
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by gononono64 View Post
    Apples or oranges? ... im not just starting out btw. I used autoit because i like it and i think its the simplest "language" for explaining stuff to people who aren't as experienced.
    This is true, although since autoit can make you get into some bad coding habits, its def. Not the "best" place to start.. I learned the hard way lol, now that I'm coding in C# 4.0 ill never move to anything else (unless a job so requires it VC++ etc)

    Great Contrib. though Im sure plenty of kids will enj0y playing with this until the next patch
    +Rep

  5. #5
    Azzie2k8's Avatar Member
    Reputation
    11
    Join Date
    Apr 2009
    Posts
    190
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by jayswag View Post
    This is true, although since autoit can make you get into some bad coding habits, its def. Not the "best" place to start.. I learned the hard way lol, now that I'm coding in C# 4.0 ill never move to anything else (unless a job so requires it VC++ etc)

    Great Contrib. though Im sure plenty of kids will enj0y playing with this until the next patch
    +Rep
    You can always develop bad coding habits in every language...

    and btw nice conrtibution gononono64

  6. #6
    Blondy's Avatar Private
    Reputation
    1
    Join Date
    Feb 2011
    Posts
    8
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Nice Guide! Good work...
    but as Jadd wrote I suggest to use C#, too.
    I have coded my own Gatherbot with AutoIt (includes many things from above ) and it works great.
    I think to release source here but not sure because its bad code :P

    Within the Project become bigger you'll see C# is in my opinion better not only for a NavMesh.

  7. #7
    Azzie2k8's Avatar Member
    Reputation
    11
    Join Date
    Apr 2009
    Posts
    190
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Blondy View Post
    Nice Guide! Good work...
    but as Jadd wrote I suggest to use C#, too.
    I have coded my own Gatherbot with AutoIt (includes many things from above ) and it works great.
    I think to release source here but not sure because its bad code :P

    Within the Project become bigger you'll see C# is in my opinion better not only for a NavMesh.
    Okay I am not trying to fight anyones fight here but why to you keep telling him to use C# ?

    I think he is explaining quite good that he wants to show beginners how stuff works and if hew wants to go with autoit for this then it is fine.

    Originally Posted by gononono64 View Post
    Apples or oranges? ... im not just starting out btw. I used autoit because i like it and i think its the simplest "language" for explaining stuff to people who aren't as experienced.
    It is a really easy language(script language or whatever) that even a new programmer can easily understand. It is even easier than C# (I know it is only easy at the beginning before you go really in depth). That stupid language is perfect for his intentions so why should he switch ? Obviously he is not trying to build a huge project with AutoIt but just understanding the basic concepts of things and that is perfect. The fact that he shares this makes it even better.

  8. #8
    LogicWin's Avatar Master Sergeant
    Reputation
    51
    Join Date
    Mar 2011
    Posts
    103
    Thanks G/R
    4/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Jadd View Post
    If you're just starting out, definitely go straight to C#. If you're ever planning on doing a NavMesh (and you will at some point if you're making a bot) or doing anything like packet manipulation, assembly, or in-process hooking you're going to need C#.

    Edit: Or C++ respectively, you'll also need this if you're hooking in-process with C#, but that's easy copy pasta
    Actually you can hook/inject in AutoIt, the down side is that it's a small amount of examples of it.

    Never less i agree on moving into c#, I'll do it when i find something that i can't do it with AutoIt.

  9. #9
    Timmid's Avatar Member
    Reputation
    124
    Join Date
    Apr 2007
    Posts
    247
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i haven't really coded too much in AutoIt or C#, but I can almost for sure say that C# would be better in the long run.

    I'd learn C# if someone posted their source or an example of a bot but I haven't seen that yet.

    Nonetheless still a good contribution people can still learn from it. +Rep

  10. #10
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    C# and C++ is certainly apples and oranges. AutoIt however is just dogshit.

  11. #11
    sitnspinlock's Avatar Elite User CoreCoins Purchaser
    Reputation
    398
    Join Date
    Sep 2010
    Posts
    439
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Everyone has their own preference, I prefer c++. autoit is something ive never looked into or cared about really, just looks like a script kiddie haven.

  12. #12
    LogicWin's Avatar Master Sergeant
    Reputation
    51
    Join Date
    Mar 2011
    Posts
    103
    Thanks G/R
    4/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Can't really understand why AutoIt can give bad programming habit's, it's not even a programing language!
    It help'ed me, im best in programming in my class.

  13. #13
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by everdox View Post
    Everyone has their own preference, I prefer c++. autoit is something ive never looked into or cared about really, just looks like a script kiddie haven.
    There's a difference between a sensible preference (C, C++, C#, Python, etc etc) and something just stupid (AutoIt, Brain****, etc).

    Originally Posted by LogicWin View Post
    Can't really understand why AutoIt can give bad programming habit's, it's not even a programing language!
    It help'ed me, im best in programming in my class.

  14. #14
    dook123's Avatar Active Member
    Reputation
    21
    Join Date
    Oct 2008
    Posts
    115
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Timmid View Post
    i haven't really coded too much in AutoIt or C#, but I can almost for sure say that C# would be better in the long run.

    I'd learn C# if someone posted their source or an example of a bot but I haven't seen that yet.

    Nonetheless still a good contribution people can still learn from it. +Rep

    I believe there are plenty of examples around to put together a C# bot. Also, Search for MBot... its C# and a really good base for a bot for someone starting. Blackrain is nice too but I dont remember what it has in it :P.

    Anyways, Interesting post. I like the contribution and Im with Cypher in his last post on both points...
    ------------------------------
    If not me than who?

  15. #15
    gononono64's Avatar Contributor
    Reputation
    100
    Join Date
    Jul 2009
    Posts
    85
    Thanks G/R
    1/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There's a difference between a sensible preference (C, C++, C#, Python, etc etc) and something just stupid (AutoIt, Brain****, etc).
    I dont see why you pick on autoit so much. Have you even used it? Its a very nice beginner language and the community is helpful and respectful cuz they understand that you are a beginner. Everyone has to have a beginning and i just happened to choose autoit. And no disrespect but you should be a little more respectful to those who did choose this language even if its bad.

    And for the record i know c++ (good enough) and i am transitioning to VB because it looks nice and i want to make easy shitty games
    Hi! My name is Devon and I’m an alcoholic. Moving on…
    https://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/319172-guide-how-make-wow-bot-complete-newbs.html

Page 1 of 3 123 LastLast

Similar Threads

  1. Easy way to make custom weapons and armor
    By Nimaasuss in forum WoW EMU Guides & Tutorials
    Replies: 72
    Last Post: 01-30-2013, 07:40 PM
  2. [GUIDE] EASY way to make gold!
    By fireguild1 in forum World of Warcraft Guides
    Replies: 7
    Last Post: 10-20-2008, 07:46 PM
  3. [Guide] Safe and Easy way of Making Custom *Armor*Weapons*Bags*Etc.
    By Job For a Cowboy in forum WoW EMU Guides & Tutorials
    Replies: 60
    Last Post: 01-26-2008, 08:55 AM
  4. Semi-Easy way to make Gold.
    By Knuck3ls in forum World of Warcraft Guides
    Replies: 15
    Last Post: 10-10-2007, 09:27 AM
  5. Easy way to make quick money, completely and utterly unbannable
    By m0rbidang3l in forum World of Warcraft Exploits
    Replies: 30
    Last Post: 05-08-2007, 11:51 PM
All times are GMT -5. The time now is 12:17 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search