Minion leveler bot

02/01/2015 07:10 wowwzzer010#1
Is anyone interested in a bot that sends your minions out on 1 minute adventures so you can level them up...if so ill release it and work on making it function for 5 and 15min adventures.
02/25/2015 08:21 Nicey#2
i know its been a while...... but if you're still watching this thread i'd be interested so by all means release it if you've got it :)
02/26/2015 04:16 login2me#3
I'm interested too
03/05/2015 18:40 feedoffmyentrails#4
I'm interested!
09/14/2015 16:07 Odlid Tubpu#5
I don't actually use minions in Rift so I don't really know what all people would want this bot to do. I made the following 'simple' minion leveller that will do the same activity for every minion in your list.

List out the features you'd like to have in the bot and maybe I'll add them.

Enjoy!

Odlid Tubpu



1. Install Autoit. Save the following to a file.

2. Fire Up Rift. Hit "V" to bring up your minion page. Change the sort order to be 'Stamina'

3. Run that file you saved from Autoit.

4. The Autoit console asks you to manually run one minion upgrade by hitting the Adventure, then selecting a minion, then hitting the "Send Now" button. You do not need to wait for it to finish the adventure...just click on the 'Hurry' button then click on the 'Cancel' when it asks you to spend RL $$ to speed up the minion levelling.

5. The bot doesn't know when you are done levelling - that is when all your minions are out of stamina. Just go outside (that place where there is sunshine) and have some fun for a while. When you come back your minions will have levelled or whatever you sent them on.

6. Press 'ESC' to stop the program from running

Programming notes:

1. As requested in a post above this does 1 minute quests (i.e. levelling quests). If you want to do 5 minute or 15 minute or 8h or whatever quests then you'll need to adjust a clearly marked parameter in the code.

Code:
#include <Misc.au3>
#include <Date.au3>
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>



Local $pos[2]
Local $i, $j
Local $timer
Local $minionLevelCount
Global $g_AdventureCardLoc[2]
Global $g_MinionLoc[2]
Global $g_SendButtonLoc[2]
Global $g_AdventureClaimLoc[2]
Global $g_AdventureTime=60000 ; minion adventure time in milliseconds.  Change to 300000 for 5mins, 900000 for 15mins, 2880000 for 8hour, etc.

HotKeySet("{esc}","Terminate")

Setup()

While 1
	; set minion reward card
	MouseClick("left",$g_AdventureCardLoc[0],$g_AdventureCardLoc[1])
	Sleep(200)
	; select minion
	MouseClick("left",$g_MinionLoc[0],$g_MinionLoc[1])
	Sleep(200)
	;Send the minion
	MouseClick("left",$g_SendButtonLoc[0],$g_SendButtonLoc[1])
	Sleep(200)
	; now wait until the adventure is done
	Sleep($g_AdventureTime+500)
	; click the reward!
	MouseClick("left",$g_AdventureClaimLoc[0],$g_AdventureClaimLoc[1])
	Sleep(200)

	; write out to the Autoit console the results
	$minionLevelCount=$minionLevelCount+1
	ConsoleWrite(_NowTime(5)&" Minion Level "&$minionLevelCount&@LF)


	Sleep(100)

WEnd

Func Setup()
	Local $mousePos

	$mousePos=GetMouseClickPosition('Adventure Card')
	$g_AdventureCardLoc[0] = $mousePos[0]
	$g_AdventureCardLoc[1] = $mousePos[1]

	$mousePos=GetMouseClickPosition('Minion Card')
	$g_MinionLoc[0] = $mousePos[0]
	$g_MinionLoc[1] = $mousePos[1]

	$mousePos=GetMouseClickPosition('Send Now Button')
	$g_SendButtonLoc[0] = $mousePos[0]
	$g_SendButtonLoc[1] = $mousePos[1]

	$mousePos=GetMouseClickPosition('Hurry Button, wait a second, then click Cancel')
	$g_AdventureClaimLoc[0] = $mousePos[0]
	$g_AdventureClaimLoc[1] = $mousePos[1]
	Sleep($g_AdventureTime+250)
	; click the reward!
	MouseClick("left",$g_AdventureClaimLoc[0],$g_AdventureClaimLoc[1])
	Sleep(200)
EndFunc

Func GetMouseClickPosition($clickPrompt)
	; handle for _isPressed
	Local $hDLL = DllOpen("user32.dll")
	Local $clicked
	Local $mousePos
	ConsoleWrite(_NowTime(5)&" ******************** Left Click "&$clickPrompt&" ***************"&$minionLevelCount&@LF)
	$clicked = False
	While Not $clicked
		If _IsPressed("01", $hDLL) Then
			; you clicked on the screen, get the position on the screen where the click was
			$mousePos=MouseGetPos()
			; now wait until the click is completed
			While _IsPressed("01", $hDLL) > 1
				Sleep(10)
			WEnd
			$clicked=True
		EndIf
		Sleep(10)
	WEnd
	Sleep(250)
	DllClose($hDLL)
	Return $mousePos
EndFunc

Func Terminate()
	Exit
EndFunc