Hallow's End Trick or Treat menu

User Tag List

Page 1 of 3 123 LastLast
Results 1 to 15 of 37
  1. #1
    bulathefirst's Avatar Member
    Reputation
    29
    Join Date
    May 2008
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Hallow's End Trick or Treat

    Since Blizzard decided to be total d****s and require you to get the pet and the helm for the Hallow's End achievement, I decided to make a bot that would automatically trick or treat. I found this guide by Bazra really helpful http://www.mmowned.com/forums/world-...ick-macro.html however, like others I had a concern for being banned. One person (CheeseProphet) suggested to make an autoit script that would Trick or Treat, log out for 1h-1h15min and then Trick or Treat again. So I made one! This is my first time writing something from scratch so please be lenient with my mistakes. I am posting the code for it and I am also writing a full guide on not only how to use it but how to customize basically everything about it so that you can minimize as much as possible your chance of getting banned.

    The macros you will need to use are the following. Place them in your 1, 2, 3, 4 actions on your action bar:

    1:
    Code:
    /target NameOfInkeeperInFull
    For this macro NameOfInkeeperInFull you can go to ANY inn in the world (as long as it's friendly) and use that innkeeper for Trick or Treating. If you are in a far-away, deserted Inn you will be much safer than in any capital city. However, since the bot does log out, it is still pretty safe to camp in Dalaran or any other capital city. IMPORTANT: Make sure you log out close enough to the Innkeeper so that your toon can interact with it. The bot does not move your toon so if you are out of range, it will not be able to accomplish anything. IMPORTANT2: I'd highly advise against using a neutral inn. If you are in combat at the time of logging out or if you get killed, then again the bot will not be able to accomplish anything. Sanctuaries are the best to prevent against this possible issue.

    2:
    Code:
    /script SelectGossipOption(1)
    3:
    Code:
    /use Treat Bag
    4:
    Code:
    /camp
    If you are new to this, you must download and install Autoit v3, then open up a blank notepad, copy and paste the code bellow and save it as a .au3 extension (instead of the default .txt). Then simply run this new .au3 file.

    The code is as follows:
    V1.1 - Added countdown timer. Thank you to 1337pyro for suggesting and contributing code for this function!
    V1.2 - Added screenshot taking capability and improved some times.
    V1.3 - Added in direct key sending to the WoW client. Yes this means if you get any pop up or if you are on the computer while the bot is trick or treating it will still be able to accomplish its task! Thank you again to 1337pyro for his help on making the bot delay the time between sending keystrokes which fixed the password problem!
    Code:
    Opt("SendKeyDelay", 100) ;1337pyro's suggestion
    $Path = "C:\Program Files\World of Warcraft\WoW.exe"
    
    HotKeySet("{F5}", "TogglePause")
    
    Global $Paused
    TogglePause()
    
    ToolTip('',0,0)
    MsgBox(0, "Warning!", "IMPORTANT!!! This bot does NOT work if you have an Authenticator tied to your account!" &@CRLF& "It is also recomended that you have started and exited WoW before running this bot.", "", "")
    Sleep(1000)
    
    $screenshot = InputBox("Screenshot", "Would you like the bot to take a Screenshot everytime it opens the bag? Type in Y for Yes or anything else/hit cancell for No.", "", "")
    
    Geton()
    
    
    Func Geton()
    
    ToolTip('Starting WoW...',0,0)
    Run($Path, "")
    Sleep(15000)
    
    ToolTip('Entering Password',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "YourPasswordHere", 1)
    Sleep(2000)
    
    ToolTip('Logging In...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(20000)
    
    ToolTip('Entering World...',0,0)
    Sleep(3000)    
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(30000)
    Treat()
    EndFunc    
    
    Func Treat()
    
    ToolTip('Switching to next action bar...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "k", 1)
    Sleep(2000)
    
    ToolTip('Targetting Innkeeper...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "1", 1)
    Sleep(Random(2000, 10000, 1))
    
    ToolTip('Interacting with Innkeeper...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "j", 1)
    Sleep(Random(2000, 10000, 1))
    
    ToolTip('Trick or Treat!',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "2", 1)
    Sleep(Random(2000, 10000, 1))
    
    ToolTip('Opening Bag...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "3", 1)
    Sleep(Random(1000, 4000, 1))
    
    If $screenshot = "Y" Then
        ToolTip('Taking Screenshot, smile!',0,0)
        Sleep (1000)
        ControlSend ("World of Warcraft", "" , "" , "{PRINTSCREEN}")
        Sleep (1000)
        Exitgame()
    ElseIf @error = 1 Then
        Sleep (100)
        Exitgame()
    Else
        Sleep (100)
        Exitgame()
    EndIf
    Endfunc
    
    Func Exitgame()
    ToolTip('Logging out...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "4", 1)
    Sleep(Random(2000, 12000, 1))
    
    ToolTip('Backing out to Main Menu...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(Random(2000, 5000, 1))
    
    ToolTip('Exiting Game...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(100)
    Waiting()
    EndFunc
    
    Func Waiting() ;Thank you to 1337pyro for suggesting and cleaning up this part!
    $timeleft = Random(60, 75, 1)
    While 1 
    If $timeleft > 0 Then
    ToolTip("The bot will wait "&$timeleft& " minutes before Trick or Treating",0 ,0)
    $timeleft = $timeleft-1
    Sleep(60000)
    Else
    Geton()
    EndIf
    WEnd
    EndFunc
    
    Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Paused, F5 to resume.',0,0)
    Wend
    EndFunc

    Ok so let's start off with the first line, the path C:\Program Files\World of Warcraft\WoW.exe. Change this to whatever path WoW.exe is located in. The one posted in the code is the default path so if you haven't changed that during the WoW installation you can leave it as is. The reason I recommended that you have started and exited WoW before running the bot is that the first run usually takes the longest to load and the wait times for the bot aren't set to wait for a very long time (30 seconds to load up). I have a pretty fast computer so if you find that the bot doesn't wait enough after you've logged in, or entered the world, increase these times. This shouldn't be any problem for most people. At the same time, log in to the toon you want the bot to trick or treat with so that when it re-logs back in, it uses the proper toon. IMPORTANT: WoW must be closed when you start the bot. It will automatically start WoW by itself. The first time it does this run-through keep an eye on it and make sure it runs smoothly. As soon as it exits WoW you can walk away with no fear of anything going wrong (unless Windows decides to update and restarts itself or anything crazy like that).

    Going further down we encounter YourPasswordHere. This is used ONLY to log you back in after the one hour has passed. As you can see from the script, there is NO WAY it will be sent over the internet(other than to Blizzard's servers to log you in). I am not out to hack you. Since you are only entering the password, the account name must be remembered so please make sure the box "Remember Account Name" is checked.

    Further along we get to ToolTip('Switching to next action bar...',0,0)... this whole "paragraph" is OPTIONAL. What it does is switch your action bar 1 to action bar 2 in case you want to save your abilities the way they are on action bar 1 and your action bar 2 is empty. Like I mentioned you can erase this whole paragraph. If you decide to keep it, make sure you go into Key Bindings and switch Next Action Bar from the default Shift + Up Arrow to k. If you want to be even safer, do not use k and use the letter of your choice remembering to change it both in the WoW Key Bindings and in the script where it says ControlSend(..."k"...). Also if you use this paragraph, make sure you put the macros on action bar 2 and not 1.

    Further along where it says ToolTip('Interacting with Innkeeper...',0,0) make sure you go into WoW key bindings and change Interact with Target to j. Again you can use any letter or number you wish just remember to change it both in WoW and in the script.

    The next couple of actions are straightforward since the ToolTip indicates what step the bot is at.

    At the very end, $timeleft = Random(60, 75, 1) the bot simply takes a time between 60 minutes (1h) and 75 minutes (1h15m) and waits that long before logging in so that Blizzard/Warden don't get suspicious if you always log on and run the same actions over and over again.

    ANY time you see Sleep() you can change the number in the brackets to whatever you want.

    Whenever you see ControlSend(..."1"...), ControlSend(..."2"...), ControlSend(..."3"...), ControlSend(..."4"...) these correspond with the 1, 2, 3, 4 macros. You can switch these numbers to any others on your action bar keys. Make sure wherever you move the macros that they coincide with the numbers that you've edited in the script. REMEMBER: 1 second = 1000 since autoit uses milliseconds.

    Final notes: Make sure Autoloot is on. Make sure you don't have an authenticator or if you do, take it off. Make sure if you have multiple accounts, the one you want the bot to log on is selected. Make sure your computer does not Sleep, Hibernate or Shut Down if no input happens for more than an hour. Also, don't run this 24/7, you WILL get banned if you do. Be smart about using it. I cannot guarantee that this bot will not get you banned. **** MAKE SURE YOU HAVE ENOUGH EMPTY ROOM IN YOUR BAGS****

    Final, Final notes: If you have any questions please just ask. I am giving full credit to the guide I posted up above, that's where I got macros 2 and 3 and the ideas on how to get this bot to work from. If this is somehow a repost, I apologize and a moderator can delete this thread.

    I hope this bot helps you guys out and good luck on getting your pet + helm and possibly even the 310% drake!

    Edit 1: Edited to make the guide even clearer and to fix a bunch of spelling/grammar mistakes. As I come up with more potential issues I will update this guide as soon as possible. If you spot something wrong please point it out. I have released this bot as soon as I could and so I haven't had as much time as I'd like to test it. Please bear that in mind if you encounter any errors or problems, thanks!

    Edit 2: Added in the Countdown Timer so now you can see exactly (in minutes) how much time is left until the bot logs on to trick or treat again. Working towards adding in a screenshot feature for when the bot opens the bag, stay tuned! Again, please let me know if I messed anything up.

    Edit 3: Added in V1.2 with screenshot taking capabilities!

    Edit 4: Finally! Thanks to 1337pyro's suggestion I was able to get direct key sending to WoW to work including with passwords that have characters such as #$%@! WoW does not have to be the targeted process anymore, everything is now sent directly to it including taking screenshots! Opt("SendKeyDelay", 100) delays the keystrokes sent to WoW, it must be added in for your password to be entered in correctly. I have replaced every Send() to ControlSend(). I have not colored it like I usually do as that would be tedious and it would make the text too colorful. I removed the original version of the code. If you still want it, just send me a PM and I'll send it to you. I also updated the whole guide to accommodate for all the recent changes to the bot.

    V2.0 - -I have used the same color scheme in the code as for version 1.X however since a lot of things changed I have opted to only color important parts rather than all the updates (such as taking screenshot etc...).

    V2.0 - Added support for multiple toons (on the same server), added prompt for password, changed the way the initial setup of the bot works and some time adjustments.
    Code:
    Opt("SendKeyDelay", 100) ;1337pyro's suggestion
    $Path = "C:\Program Files\World of Warcraft\WoW.exe"
    Global $alt = 0
    
    HotKeySet("{F5}", "TogglePause")
    
    Global $Paused
    TogglePause()
    
    ToolTip('',0,0)
    MsgBox(0, "Warning!", "IMPORTANT!!! This bot does NOT work if you have an Authenticator tied to your account!" &@CRLF& "It is also recomended that you have started and exited WoW before running this bot.", "", "")
    Sleep(1000)
    
    $screenshot = InputBox("Screenshot", "Would you like the bot to take a Screenshot everytime it opens the bag? Type in Y for Yes or anything else/hit cancell for No.", "", "")
    $yourpass = InputBox("Password", "Please enter your password:" &@CRLF& "I am not out to hack you, please see my forum post and if you are not convinced, edit the script and only put your password there.", "", "")
    
    MsgBox(0, "Warning!", "The bot will now start WoW for the final part of setup!" &@CRLF& "Please do not go afk just yet!", "", "")
    Sleep(1000)
    
    ToolTip('Starting WoW, please do not go afk just yet!',0,0)
    Run($Path, "")
    Sleep(15000)
    
    ToolTip('Entering Password',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , $yourpass)
    Sleep(2000)
    
    ToolTip('Logging In...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(10000)
    
    ToolTip('',0,0)
    MsgBox(0, "Warning!", "Please select the main toon or the top most alt you want the bot to log in on RIGHT NOW and then hit OK" &@CRLF& "", "", "")
    Sleep(1000)
    
    $alterns = InputBox("Alts", "Would you like the bot to log onto multiple alts? Type in Y for Yes or anything else/hit cancell for No.", "", "")
    
    If $alterns = "Y" Then
    $alternumber = InputBox("Alts", "How many alts, EXCLUDING the top most alt, would you like the bot to trick or treat with? (Remember, 7 is the maximum!)", "", "")
    
    If $alternumber = 1 then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    $alterpositiontwo = 0
    $alterpositionthree = 0
    $alterpositionfour = 0
    $alterpositionfive = 0
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    If $alternumber = 2 then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    $alterpositionthree = 0
    $alterpositionfour = 0
    $alterpositionfive = 0
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    If $alternumber = 3 then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    $alterpositionthree = InputBox("Alts", "What is the position of the fourth alt compared to the third alt? (How many slots down?)", "", "")
    $alterpositionfour = 0
    $alterpositionfive = 0
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    
    If $alternumber = 4 then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    $alterpositionthree = InputBox("Alts", "What is the position of the fourth alt compared to the third alt? (How many slots down?)", "", "")
    $alterpositionfour = InputBox("Alts", "What is the position of the fifth alt compared to the fourth alt? (How many slots down?)", "", "")
    $alterpositionfive = 0
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    If $alternumber = 5 then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    $alterpositionthree = InputBox("Alts", "What is the position of the fourth alt compared to the third alt? (How many slots down?)", "", "")
    $alterpositionfour = InputBox("Alts", "What is the position of the fifth alt compared to the fourth alt? (How many slots down?)", "", "")
    $alterpositionfive = InputBox("Alts", "What is the position of the sixth alt compared to the fifth alt? (How many slots down?)", "", "")
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    
    If $alternumber = 6 then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    $alterpositionthree = InputBox("Alts", "What is the position of the fourth alt compared to the third alt? (How many slots down?)", "", "")
    $alterpositionfour = InputBox("Alts", "What is the position of the fifth alt compared to the fourth alt? (How many slots down?)", "", "")
    $alterpositionfive = InputBox("Alts", "What is the position of the sixth alt compared to the fifth alt? (How many slots down?)", "", "")
    $alterpositionsix = InputBox("Alts", "What is the position of the seventh alt compared to the sixth alt? (How many slots down?)", "", "")
    $alterpositionseven = 0
    EndIf
    
    If $alternumber = 7 then
    $alterpositionone = 1
    $alterpositiontwo = 1
    $alterpositionthree = 1
    $alterpositionfour = 1
    $alterpositionfive = 1
    $alterpositionsix = 1
    $alterpositionseven = 1
    EndIf
    
    ElseIf @error = 1 Then
    	Treat()
    	Sleep (100)
    Else
    	Treat()
    	Sleep (100)
    EndIf
    
    $totalpos = $alterpositionone + $alterpositiontwo + $alterpositionthree + $alterpositionfour + $alterpositionfive + $alterpositionsix + $alterpositionseven
    
    Treat()   
    
    Func Treat()
    
    ToolTip('Entering World...',0,0)
    Sleep(3000)    
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(30000)
    
    ToolTip('Switching to next action bar...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "k", 1)
    Sleep(2000)
    
    ToolTip('Targetting Innkeeper...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "1", 1)
    Sleep(Random(2000, 10000, 1))
    
    ToolTip('Interacting with Innkeeper...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "j", 1)
    Sleep(Random(2000, 10000, 1))
    
    ToolTip('Trick or Treat!',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "2", 1)
    Sleep(Random(2000, 10000, 1))
    
    ToolTip('Opening Bag...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "3", 1)
    Sleep(Random(1000, 4000, 1))
    
    If $screenshot = "Y" Then
    	ToolTip('Taking Screenshot, smile!',0,0)
    	Sleep (1000)
    	ControlSend ("World of Warcraft", "" , "" , "{PRINTSCREEN}")
    	Sleep (1000)
    ElseIf @error = 1 Then
    	Sleep (100)
    Else
    	Sleep (100)
    EndIf
    
    ToolTip('Logging out...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "4", 1)
    Sleep(Random(2000, 12000, 1))
    
    
    If $alterns = "Y" Then
    	If $alt < $alternumber then
    	$alt = $alt + 1
    	Secondalt()
    	Else
    	ExitgameAlts()
    	EndIf
    ElseIf @error = 1 Then
    	Exitgame()
    	Sleep (100)
    Else
    	Exitgame()
    	Sleep (100)
    EndIf
    EndFunc
    
    Func Exitgame()
    
    ToolTip('Backing out to Main Menu...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(Random(2000, 5000, 1))
    
    ToolTip('Exiting Game...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(100)
    Waiting()
    EndFunc
    
    Func Waiting() ;Thank you to 1337pyro for suggesting and cleaning up this part!
    $timeleft = Random(60, 75, 1)
    While 1 
    If $timeleft > 0 Then
    ToolTip("The bot will wait "&$timeleft& " minute(s) before Trick or Treating",0 ,0)
    $timeleft = $timeleft-1
    Sleep(60000)
    Else
    Geton()
    EndIf
    WEnd
    EndFunc
    
    Func Geton()
    
    ToolTip('Starting WoW...',0,0)
    Run($Path, "")
    Sleep(15000)
    
    ToolTip('Entering Password',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , $yourpass)
    Sleep(2000)
    
    ToolTip('Logging In...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(15000)
    
    Treat()
    EndFunc
    
    Func Secondalt()
    
    ToolTip('Switching alts',0,0)
    Sleep(3000)
    
    $alterpositiononeone = $alterpositionone
    $alterpositiontwotwo = $alterpositiontwo
    $alterpositionthreethree = $alterpositionthree
    $alterpositionfourfour = $alterpositionfour
    $alterpositionfivefive = $alterpositionfive
    $alterpositionsixsix = $alterpositionsix
    $alterpositionsevenseven = $alterpositionseven
    
    If $alt = 1 then
    While 1
    If $alterpositiononeone > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositiononeone = $alterpositiononeone - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 2 then
    While 1
    If $alterpositiontwotwo > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositiontwotwo = $alterpositiontwotwo - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 3 then
    While 1
    If $alterpositionthreethree > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionthreethree = $alterpositionthreethree - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 4 then
    While 1
    If $alterpositionfourfour > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionfourfour = $alterpositionfourfour - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 5 then
    While 1
    If $alterpositionfivefive > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionfivefive = $alterpositionfivefive - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 6 then
    While 1
    If $alterpositionsixsix > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionsixsix = $alterpositionsixsix - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 7 then
    While 1
    If $alterpositionsevenseven > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionsevenseven = $alterpositionsevenseven - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    Endif
    EndFunc
    
    
    Func ExitgameAlts()
    ToolTip('Backing out to Main Menu...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(Random(2000, 5000, 1))
    
    ToolTip('Exiting Game...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(100)
    WaitingAlts()
    EndFunc
    
    Func WaitingAlts()
    $timeleft = Random(60, 75, 1)
    While 1 
    If $timeleft > 0 Then
    ToolTip("The bot will wait "&$timeleft& " minute(s) before Trick or Treating",0 ,0)
    $timeleft = $timeleft-1
    Sleep(60000)
    Else
    GetonAlts()
    EndIf
    WEnd
    EndFunc
    
    
    Func GetonAlts()
    $alt = 0
    
    ToolTip('Starting WoW...',0,0)
    Run($Path, "")
    Sleep(15000)
    
    ToolTip('Entering Password',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , $yourpass)
    Sleep(2000)
    
    ToolTip('Logging In...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(15000)
    
    ToolTip('Switching to first alt',0,0)
    Sleep(3000)
    $totalpop = $totalpos
    While 1
    If $totalpop > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{UP}")
    Sleep(500)
    $totalpop = $totalpop - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    EndFunc
    
    Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Paused, F5 to resume.',0,0)
    Wend
    EndFunc

    Let me get the $yourpass out of the way first. The bot will now ask you for your password. Again just like before you can inspect the code and see that it is not sending information over the web except entering it into WoW. I have colored everywhere $yourpass shows up. If you feel uncomfortable or just don't want to enter your password in the prompt every time you start the bot up, then you can delete $yourpass = inputbox... all together and replace in the three places that $yourpass appears ...."YourPasswordHere", 1).

    Next up, the bot does something different, it will start WoW up in order to continue the initial setup. For this to work, WoW should be run in Windowed mode (doesn't matter if it's in Full Screen Windowed or just Windowed). You will get a prompt telling you to chose either the main character(if only one) or the top most alt that you want the bot to trick or treat on. The the top most alt would be alt number 1 colored in red in the picture bellow. Now you will be prompted whether you want the bot to trick or treat with one toon or with multiple toons. If you chose just one toon, it will run the same exact process as in version 1.3. If you chose multiple toons you will have to enter just a few more options and the bot is almost setup!



    The first question you will be asked is: "How many alts, EXCLUDING the top most alt, would you like the bot to trick or treat with? (Remember, 7 is the maximum!)." This is pretty straightforward. If you want the bot to trick or treat on 3 toons in total, you already picked the top most alt in a previous step and so excluding that one, you'd enter 2 into the prompt-box.

    Next you will be asked about relative positions from one alt to the next. Let's continue using the example we used above. So our top most alt in this scenario is number 1 in red. Our second alt that we want to use will be number 5 and the third and last alt will be number 8. The first question asked is: "What is the position of the second alt compared to the top most alt? (How many slots down?)." So the second alt is in position 5 and the first alt is in position 1. From position 1 down to position 5, we have to go down 4 times (5-1=4). 4 is the number you will enter in the prompt box. Now the next question asked will be: "What is the position of the third alt compared to the second alt? (How many slots down?)." The third alt like we said is in position 8 while the second alt is in position 5. From position 5 down to position 8, we have to go down 3 times (8-5=3). 3 is the number you will enter in this prompt box. Now you are done! While doing this setup you should not have changed anything in WoW, it should still be clicked on the top most alt. From here on the bot will trick or treat on the toons you've set up. The reason I've made WoW start up while the setup is still going on is for you to easily see which alts you want to use and in which positions they are in relative to each other.

    NOTE!: Make sure you setup the SAME macros, key bindings and turn on auto-loot for all your alts. If you have chosen 7 alts in a previous prompt (thus being 8 toons in total), the bot automatically knows that each toon is down only one space every time from one another so you will not be asked any of these questions.

    ****IMPORTANT SUPER NOTE****: Version 2.0 is FULLY tested however as there is only 1 week left on Hallow's End I'm rushing to share it. UNLESS OTHERWISE STATED if you hit cancel or you type gibberish in the prompt box the bot will crash and you will have to restart the whole setup. The bot CANNOT verify that you chose the right alts, please pay attention and be careful during the initial setup. Once the bot is starting up, keep an eye on it and make sure everything works perfectly the first time around. If the first run is flawless the rest of the runs will be flawless too.

    Side-note: As in Version 1.X everything is customizable. The same instructions work for Version 2.0 and I have colored the txt in for easy reference. I have tried to simplify the code as much as possible. If you can simplify it further or if you have any other suggestions on how something could be done differently please feel free to share, I'd love to hear it!

    V2.1 - It's starting to take a lot of time to write up a guide and color everything so for this version I will simply post the code up. This version adds the feature of remembering your settings and then using them the next time the bot logs back on! It will create a file wherever you save the bot called botsettings.ini. Do not delete this file if you want your settings remembered. You can open it with notepad and see that the only thing it does is store your settings. Every time the bot is started up afterwords it will ask you if you want to use previous settings. I haven't had much time to test this or to attempt to simplify the code so again if you find something wrong or if you know how to simplify some things further please share!

    Code:
    Opt("SendKeyDelay", 100)
    $Path = "C:\Program Files\World of Warcraft\WoW.exe"
    Global $alt = 0
    
    HotKeySet("{F5}", "TogglePause")
    
    Global $Paused
    TogglePause()
    
    ToolTip('',0,0)
    MsgBox(0, "Warning!", "IMPORTANT!!! This bot does NOT work if you have an Authenticator tied to your account!" &@CRLF& "It is also recomended that you have started and exited WoW before running this bot.", "", "")
    Sleep(1000)
    
    $previoussets = InputBox("Previous", "Would you like the bot to use previous settings that you have used? Y - Yes, N/Cancell - No" &@CRLF& "If you have not previously set any settings chose any option.", "", "")
    If $previoussets = "Y" then
    $location = "botsettings.ini"
    ElseIf @error = 1 Then
    	$location = "43resddsea.ini"
    	Sleep (100)
    Else
    	$location = "43resddsea.ini"
    	Sleep (100)
    EndIf
    
    $screenshot = IniRead ($location, "", "$screenshot", "E")
    If $screenshot = "E" then
    $screenshot = InputBox("Screenshot", "Would you like the bot to take a Screenshot everytime it opens the bag? Type in Y for Yes or anything else/hit cancell for No.", "", "")
    IniWrite ("botsettings.ini", "", "$screenshot", $screenshot)
    Else
    Sleep(100)
    EndIf
    
    $yourpass = IniRead ($location, "", "$yourpass", "E")
    If $yourpass = "E" then
    $yourpass = InputBox("Password", "Please enter your password:" &@CRLF& "I am not out to hack you, please see my forum post and if you are not convinced, edit the script and only put your password there.", "", "")
    IniWrite ("botsettings.ini", "", "$yourpass", $yourpass)
    Else
    Sleep(100)
    EndIf
    
    MsgBox(0, "Warning!", "The bot will now start WoW for the final part of setup!" &@CRLF& "Please do not go afk just yet!", "", "")
    Sleep(1000)
    
    ToolTip('Starting WoW, please do not go afk just yet!',0,0)
    Run($Path, "")
    Sleep(15000)
    
    ToolTip('Entering Password',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , $yourpass)
    Sleep(2000)
    
    ToolTip('Logging In...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(10000)
    
    ToolTip('',0,0)
    MsgBox(0, "Warning!", "Please select the main toon or the top most alt you want the bot to log in on RIGHT NOW and then hit OK" &@CRLF& "", "", "")
    Sleep(1000)
    
    $alterns = IniRead ($location, "", "$alterns", "E")
    If $alterns = "E" then
    $alterns = InputBox("Alts", "Would you like the bot to log onto multiple alts? Type in Y for Yes or anything else/hit cancell for No.", "", "")
    IniWrite ("botsettings.ini", "", "$alterns", $alterns)
    Else
    Sleep(100)
    EndIf
    
    
    If $alterns = "Y" Then
    
    $alternumber = IniRead ($location, "", "$alternumber", "E")
    If $alternumber = "E" then
    $alternumber = InputBox("Alts", "How many alts, EXCLUDING the top most alt, would you like the bot to trick or treat with? (Remember, 7 is the maximum!)", "", "")
    IniWrite ("botsettings.ini", "", "$alternumber", $alternumber)
    Else
    Sleep(100)
    EndIf
    
    
    If $alternumber = 1 then
    
    $alterpositionone = IniRead ($location, "", "$alterpositionone", "E")
    If $alterpositionone = "E" then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionone", $alterpositionone)
    Else
    Sleep(100)
    EndIf
    
    $alterpositiontwo = 0
    $alterpositionthree = 0
    $alterpositionfour = 0
    $alterpositionfive = 0
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    If $alternumber = 2 then
    
    $alterpositionone = IniRead ($location, "", "$alterpositionone", "E")
    If $alterpositionone = "E" then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionone", $alterpositionone)
    Else
    Sleep(100)
    EndIf
    
    $alterpositiontwo = IniRead ($location, "", "$alterpositiontwo", "E")
    If $alterpositiontwo = "E" then
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositiontwo", $alterpositiontwo)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionthree = 0
    $alterpositionfour = 0
    $alterpositionfive = 0
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    If $alternumber = 3 then
    
    $alterpositionone = IniRead ($location, "", "$alterpositionone", "E")
    If $alterpositionone = "E" then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionone", $alterpositionone)
    Else
    Sleep(100)
    EndIf
    
    $alterpositiontwo = IniRead ($location, "", "$alterpositiontwo", "E")
    If $alterpositiontwo = "E" then
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositiontwo", $alterpositiontwo)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionthree = IniRead ($location, "", "$alterpositionthree", "E")
    If $alterpositionthree = "E" then
    $alterpositionthree = InputBox("Alts", "What is the position of the fourth alt compared to the third alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionthree", $alterpositionthree)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionfour = 0
    $alterpositionfive = 0
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    
    If $alternumber = 4 then
    
    
    $alterpositionone = IniRead ($location, "", "$alterpositionone", "E")
    If $alterpositionone = "E" then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionone", $alterpositionone)
    Else
    Sleep(100)
    EndIf
    
    $alterpositiontwo = IniRead ($location, "", "$alterpositiontwo", "E")
    If $alterpositiontwo = "E" then
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositiontwo", $alterpositiontwo)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionthree = IniRead ($location, "", "$alterpositionthree", "E")
    If $alterpositionthree = "E" then
    $alterpositionthree = InputBox("Alts", "What is the position of the fourth alt compared to the third alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionthree", $alterpositionthree)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionfour = IniRead ($location, "", "$alterpositionfour", "E")
    If $alterpositionfour = "E" then
    $alterpositionfour = InputBox("Alts", "What is the position of the fifth alt compared to the fourth alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionfour", $alterpositionfour)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionfive = 0
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    If $alternumber = 5 then
    
    $alterpositionone = IniRead ($location, "", "$alterpositionone", "E")
    If $alterpositionone = "E" then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionone", $alterpositionone)
    Else
    Sleep(100)
    EndIf
    
    $alterpositiontwo = IniRead ($location, "", "$alterpositiontwo", "E")
    If $alterpositiontwo = "E" then
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositiontwo", $alterpositiontwo)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionthree = IniRead ($location, "", "$alterpositionthree", "E")
    If $alterpositionthree = "E" then
    $alterpositionthree = InputBox("Alts", "What is the position of the fourth alt compared to the third alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionthree", $alterpositionthree)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionfour = IniRead ($location, "", "$alterpositionfour", "E")
    If $alterpositionfour = "E" then
    $alterpositionfour = InputBox("Alts", "What is the position of the fifth alt compared to the fourth alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionfour", $alterpositionfour)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionfive = IniRead ($location, "", "$alterpositionfive", "E")
    If $alterpositionfive = "E" then
    $alterpositionfive = InputBox("Alts", "What is the position of the sixth alt compared to the fifth alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionfive", $alterpositionfive)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionsix = 0
    $alterpositionseven = 0
    EndIf
    
    
    If $alternumber = 6 then
    
    $alterpositionone = IniRead ($location, "", "$alterpositionone", "E")
    If $alterpositionone = "E" then
    $alterpositionone = InputBox("Alts", "What is the position of the second alt compared to the top most alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionone", $alterpositionone)
    Else
    Sleep(100)
    EndIf
    
    $alterpositiontwo = IniRead ($location, "", "$alterpositiontwo", "E")
    If $alterpositiontwo = "E" then
    $alterpositiontwo = InputBox("Alts", "What is the position of the third alt compared to the second alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositiontwo", $alterpositiontwo)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionthree = IniRead ($location, "", "$alterpositionthree", "E")
    If $alterpositionthree = "E" then
    $alterpositionthree = InputBox("Alts", "What is the position of the fourth alt compared to the third alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionthree", $alterpositionthree)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionfour = IniRead ($location, "", "$alterpositionfour", "E")
    If $alterpositionfour = "E" then
    $alterpositionfour = InputBox("Alts", "What is the position of the fifth alt compared to the fourth alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionfour", $alterpositionfour)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionfive = IniRead ($location, "", "$alterpositionfive", "E")
    If $alterpositionfive = "E" then
    $alterpositionfive = InputBox("Alts", "What is the position of the sixth alt compared to the fifth alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionfive", $alterpositionfive)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionsix = IniRead ($location, "", "$alterpositionsix", "E")
    If $alterpositionsix = "E" then
    $alterpositionsix = InputBox("Alts", "What is the position of the seventh alt compared to the sixth alt? (How many slots down?)", "", "")
    IniWrite ("botsettings.ini", "", "$alterpositionsix", $alterpositionsix)
    Else
    Sleep(100)
    EndIf
    
    $alterpositionseven = 0
    EndIf
    
    If $alternumber = 7 then
    $alterpositionone = 1
    $alterpositiontwo = 1
    $alterpositionthree = 1
    $alterpositionfour = 1
    $alterpositionfive = 1
    $alterpositionsix = 1
    $alterpositionseven = 1
    EndIf
    
    ElseIf @error = 1 Then
    	Treat()
    	Sleep (100)
    Else
    	Treat()
    	Sleep (100)
    EndIf
    
    $totalpos = $alterpositionone + $alterpositiontwo + $alterpositionthree + $alterpositionfour + $alterpositionfive + $alterpositionsix + $alterpositionseven
    
    Treat()   
    
    Func Treat()
    
    ToolTip('Entering World...',0,0)
    Sleep(3000)    
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(30000)
    
    ToolTip('Switching to next action bar...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "k", 1)
    Sleep(2000)
    
    ToolTip('Targetting Innkeeper...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "1", 1)
    Sleep(Random(2000, 10000, 1))
    
    ToolTip('Interacting with Innkeeper...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "j", 1)
    Sleep(Random(2000, 10000, 1))
    
    ToolTip('Trick or Treat!',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "2", 1)
    Sleep(Random(2000, 10000, 1))
    
    ToolTip('Opening Bag...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "3", 1)
    Sleep(Random(1000, 4000, 1))
    
    If $screenshot = "Y" Then
    	ToolTip('Taking Screenshot, smile!',0,0)
    	Sleep (1000)
    	ControlSend ("World of Warcraft", "" , "" , "{PRINTSCREEN}")
    	Sleep (1000)
    ElseIf @error = 1 Then
    	Sleep (100)
    Else
    	Sleep (100)
    EndIf
    
    ToolTip('Logging out...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "4", 1)
    Sleep(Random(2000, 12000, 1))
    
    
    If $alterns = "Y" Then
    	If $alt < $alternumber then
    	$alt = $alt + 1
    	Secondalt()
    	Else
    	ExitgameAlts()
    	EndIf
    ElseIf @error = 1 Then
    	Exitgame()
    	Sleep (100)
    Else
    	Exitgame()
    	Sleep (100)
    EndIf
    EndFunc
    
    Func Exitgame()
    
    ToolTip('Backing out to Main Menu...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(Random(2000, 5000, 1))
    
    ToolTip('Exiting Game...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(100)
    Waiting()
    EndFunc
    
    Func Waiting()
    $timeleft = Random(60, 75, 1)
    While 1 
    If $timeleft > 0 Then
    ToolTip("The bot will wait "&$timeleft& " minute(s) before Trick or Treating",0 ,0)
    $timeleft = $timeleft-1
    Sleep(60000)
    Else
    Geton()
    EndIf
    WEnd
    EndFunc
    
    Func Geton()
    
    ToolTip('Starting WoW...',0,0)
    Run($Path, "")
    Sleep(15000)
    
    ToolTip('Entering Password',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , $yourpass)
    Sleep(2000)
    
    ToolTip('Logging In...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(15000)
    
    Treat()
    EndFunc
    
    Func Secondalt()
    
    ToolTip('Switching alts',0,0)
    Sleep(3000)
    
    $alterpositiononeone = $alterpositionone
    $alterpositiontwotwo = $alterpositiontwo
    $alterpositionthreethree = $alterpositionthree
    $alterpositionfourfour = $alterpositionfour
    $alterpositionfivefive = $alterpositionfive
    $alterpositionsixsix = $alterpositionsix
    $alterpositionsevenseven = $alterpositionseven
    
    If $alt = 1 then
    While 1
    If $alterpositiononeone > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositiononeone = $alterpositiononeone - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 2 then
    While 1
    If $alterpositiontwotwo > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositiontwotwo = $alterpositiontwotwo - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 3 then
    While 1
    If $alterpositionthreethree > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionthreethree = $alterpositionthreethree - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 4 then
    While 1
    If $alterpositionfourfour > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionfourfour = $alterpositionfourfour - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 5 then
    While 1
    If $alterpositionfivefive > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionfivefive = $alterpositionfivefive - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 6 then
    While 1
    If $alterpositionsixsix > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionsixsix = $alterpositionsixsix - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    ElseIf $alt = 7 then
    While 1
    If $alterpositionsevenseven > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{DOWN}")
    Sleep(500)
    $alterpositionsevenseven = $alterpositionsevenseven - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    Endif
    EndFunc
    
    
    Func ExitgameAlts()
    ToolTip('Backing out to Main Menu...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(Random(2000, 5000, 1))
    
    ToolTip('Exiting Game...',0,0)
    Sleep(1000)
    ControlSend ("World of Warcraft", "" , "" , "{ESC}")
    Sleep(100)
    WaitingAlts()
    EndFunc
    
    Func WaitingAlts()
    $timeleft = Random(60, 75, 1)
    While 1 
    If $timeleft > 0 Then
    ToolTip("The bot will wait "&$timeleft& " minute(s) before Trick or Treating",0 ,0)
    $timeleft = $timeleft-1
    Sleep(60000)
    Else
    GetonAlts()
    EndIf
    WEnd
    EndFunc
    
    
    Func GetonAlts()
    $alt = 0
    
    ToolTip('Starting WoW...',0,0)
    Run($Path, "")
    Sleep(15000)
    
    ToolTip('Entering Password',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , $yourpass)
    Sleep(2000)
    
    ToolTip('Logging In...',0,0)
    Sleep(3000)
    ControlSend ("World of Warcraft", "" , "" , "{ENTER}")
    Sleep(15000)
    
    ToolTip('Switching to first alt',0,0)
    Sleep(3000)
    $totalpop = $totalpos
    While 1
    If $totalpop > 0 then
    ControlSend ("World of Warcraft", "" , "" , "{UP}")
    Sleep(500)
    $totalpop = $totalpop - 1
    Else
    Sleep(100)
    Treat()
    Endif
    Wend
    
    EndFunc
    
    Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Paused, F5 to resume.',0,0)
    Wend
    EndFunc
    Last edited by bulathefirst; 10-24-2010 at 07:05 PM.

    Hallow's End Trick or Treat
  2. #2
    TwistedFerret's Avatar Member
    Reputation
    2
    Join Date
    Apr 2007
    Posts
    40
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    lol, great guide! Even if i dont think its worth it . +rep for being in-depth and creative . I was also thinking, if you dont want to waste time logging out and are already botting, cant something like gatherbuddy work? instead of mines or herbs, make it diff. innkeepers, like say traveling to sw inn and then to gs inn and so forth and so on.

  3. #3
    1337pyro's Avatar Contributor CoreCoins Purchaser
    Reputation
    267
    Join Date
    Apr 2009
    Posts
    495
    Thanks G/R
    9/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    very good

    02/02/2011 01:52 <Jackie Moon> I might just go whack off all this talk about man boobs is making me frisky

  4. #4
    Scoops's Avatar Contributor
    Reputation
    109
    Join Date
    Jun 2007
    Posts
    283
    Thanks G/R
    1/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Exactly what I've been looking for! Awesome, thanks!

  5. #5
    Slexxx's Avatar Member
    Reputation
    1
    Join Date
    Aug 2010
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Amazing! you deserve a cookie

  6. #6
    1337pyro's Avatar Contributor CoreCoins Purchaser
    Reputation
    267
    Join Date
    Apr 2009
    Posts
    495
    Thanks G/R
    9/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I have an improvement for you tooltip.
    Code:
    ToolTip('Depending on what random time was chosen, 1-15 more minutes wait...',0,0)
    Sleep(Random(60000, 900000, 1))
    can be exchanged with
    Code:
    $randomsleep=Random(60000, 900000, 1)
    $randomminutes=Round($randomsleep/60000)
    $msg = StringFormat("The bot will wait at least %s additional minutes.", $randomminutes)
    ToolTip($msg,0 ,0)
    Sleep($randomsleep)
    to show the exact additional random time the bot waits
    Last edited by 1337pyro; 10-21-2010 at 09:03 AM.

    02/02/2011 01:52 <Jackie Moon> I might just go whack off all this talk about man boobs is making me frisky

  7. #7
    EvilDemon's Avatar Member
    Reputation
    1
    Join Date
    Oct 2009
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks so much for this, it was exactly what I was looking for.

  8. #8
    bulathefirst's Avatar Member
    Reputation
    29
    Join Date
    May 2008
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by 1337pyro View Post
    I have an improvement for you tooltip.
    Code:
    ToolTip('Depending on what random time was chosen, 1-15 more minutes wait...',0,0)
    Sleep(Random(60000, 900000, 1))
    can be exchanged with
    Code:
    $randomsleep=Random(60000, 900000, 1)
    $randomminutes=Round($randomsleep/60000)
    $msg = StringFormat("The bot will wait at least %s additional minutes.", $randomminutes)
    ToolTip($msg,0 ,0)
    Sleep($randomsleep)
    to show the exact additional random time the bot waits
    Nice! Yeah I can definitely see this work. I was actually thinking about trying this but I didn't get enough time to research it. I won't get home until later tonight but when I do, I'll add this into the code and test it out and then edit it into my original post (if that's ok with you, I'll of course credit you). I didn't know this method before and I can actually see it making the code a lot better. I can simply remove the whole waiting time from 1h 'till it starts up and replace it by exactly what you wrote. Instead of (60000, 900000, 1) (1min-15min), I'd change it to (3600000, 4500000, 1) (1h-1h15m) and like this time would be able to be displayed at all times and it would all belong to just one variable. Definitely +rep for helping me improve this.

  9. #9
    1337pyro's Avatar Contributor CoreCoins Purchaser
    Reputation
    267
    Join Date
    Apr 2009
    Posts
    495
    Thanks G/R
    9/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    yeah had a little search how to put variables into a tooltip/msgbox(especially in the middle of a text)

    you can of course use it! i will now work on a countdown in the tooltip... i have the idea but only have to script and test it now i will share it also, if done

    02/02/2011 01:52 <Jackie Moon> I might just go whack off all this talk about man boobs is making me frisky

  10. #10
    bulathefirst's Avatar Member
    Reputation
    29
    Join Date
    May 2008
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by 1337pyro View Post
    yeah had a little search how to put variables into a tooltip/msgbox(especially in the middle of a text)

    you can of course use it! i will now work on a countdown in the tooltip... i have the idea but only have to script and test it now i will share it also, if done
    Well I actually was able to sneak in a bit of scripting and I have the countdown script written and tested! I'm gonna work on implementing it into the bot and testing if it works. Mine looks something like this (times are not calibrated for the bot, I will work on getting those done now). Let me know how it compares with what you've got!

    At the same time, I'm trying to add in an option that will allow the user to choose whether they want the bot to take a Screen Shot every time it opens up a bag, kinda like a log of some sorts, so they can keep track of the items they've received if they have a very clunky bag(aka someone like me :P). If anyone else has any other suggestions please reply or send me a PM! I love working on improving this bot and at the same time my Autoit skills. Again, thanks 1337pyro for all the input!

    Implemented both features in the newest version!
    Last edited by bulathefirst; 10-21-2010 at 06:37 PM.

  11. #11
    1337pyro's Avatar Contributor CoreCoins Purchaser
    Reputation
    267
    Join Date
    Apr 2009
    Posts
    495
    Thanks G/R
    9/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    Func Waiting()
    $timeleft = Random(60, 75, 1) ;$timeleft in minutes :) no need to round and divide 
    While 1 
    If $timeleft > 0 Then
    ToolTip("The bot will wait "&$timeleft& " minutes until next 'Trick or Treat'",0 ,0)  ;found an easier way fitting the variable into tooltip
    $timeleft = $timeleft-1  ;you can use normal numbers, when calculating with variables
    Sleep(60000)
    Else
    Geton()
    EndIf
    WEnd
    EndFunc
    simpelized your countdown
    and commented (things behind a ; do nothing to the script)
    Last edited by 1337pyro; 10-21-2010 at 07:09 PM.

    02/02/2011 01:52 <Jackie Moon> I might just go whack off all this talk about man boobs is making me frisky

  12. #12
    bulathefirst's Avatar Member
    Reputation
    29
    Join Date
    May 2008
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Awesome job! That looks much better now Thank you!!

  13. #13
    1337pyro's Avatar Contributor CoreCoins Purchaser
    Reputation
    267
    Join Date
    Apr 2009
    Posts
    495
    Thanks G/R
    9/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    now working on background mode and check if the wow started...

    look into this and with the help of the help file you will find what i have done

    Code:
    $error = 0
    Geton()
    Func Geton()
    If $error>3 Then
    MsgBox(0, "Error", "World of Warcraft window was not found.")    
    Else
    Run("C:\Program Files\World of Warcraft\WoW.exe")
    sleep(5000)
    WinSetState ( "World of Warcraft", "", @SW_MINIMIZE )
    Sleep(5000)
    WinGetState ( "World of Warcraft" )
    If @error Then
    $error=$error+1
    Geton()
    Else
    ControlSend ( "World of Warcraft", "" , "" , "password" )
    sleep(1000)
    ControlSend ( "World of Warcraft", "" , "" , "{ENTER}" )
    EndIf
    EndIf
    EndFunc
    hope you can finish full background mode with this start, as i am absent the weekend

    as you can see it stops after login
    Last edited by 1337pyro; 10-21-2010 at 08:17 PM.

    02/02/2011 01:52 <Jackie Moon> I might just go whack off all this talk about man boobs is making me frisky

  14. #14
    bulathefirst's Avatar Member
    Reputation
    29
    Join Date
    May 2008
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you read my Edit 2, I have tried to make it all in background mode but I stumbled upon a big problem when the password had to be entered. Either way I did it, any password with multiple characters such as #$% would not work. Also, background mode really is only useful for grinding bots since then WoW is constantly running in the background. This bot is mostly designed to be used when you're afk. If you are at the computer, it only takes like 3-4 minutes for it to trick or treat and then you can resume what you were previously doing.

    For checking to see if WoW has started... I advise watching the bot do a full run-through every time you turn it on. If it works the first time, it will work anytime after that. If you entered the path wrong, it just won't work. I don't think it's too useful adding the this feature in.

  15. #15
    1337pyro's Avatar Contributor CoreCoins Purchaser
    Reputation
    267
    Join Date
    Apr 2009
    Posts
    495
    Thanks G/R
    9/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i got the bot to enter my password and log me in in background mode but background mode is not the most important thing.
    but i consider the window check important as there is always a chance that something wierd happens.

    most important that the bot trys to relog if opening of wow failed

    02/02/2011 01:52 <Jackie Moon> I might just go whack off all this talk about man boobs is making me frisky

Page 1 of 3 123 LastLast

Similar Threads

  1. [Guide] [Hallow's End] Farm Treat Bags with auto-click macro
    By Bazra in forum World of Warcraft Guides
    Replies: 30
    Last Post: 10-22-2010, 12:19 AM
  2. Easy Hallow's End Treats for Jesper! Next Year
    By xmagusx in forum World of Warcraft Exploits
    Replies: 7
    Last Post: 10-24-2009, 11:51 PM
  3. Get More trick-or-treats during hallow's end 3-min cd
    By Profane in forum World of Warcraft Exploits
    Replies: 12
    Last Post: 10-26-2008, 02:07 PM
  4. Hallows End TRICK debuff exploit!
    By Excesum in forum World of Warcraft Exploits
    Replies: 16
    Last Post: 10-22-2008, 03:03 PM
  5. Tricks with the Hallow's End Pumpkin Treat
    By Platos in forum World of Warcraft General
    Replies: 0
    Last Post: 10-31-2007, 03:40 PM
All times are GMT -5. The time now is 11:43 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search