UPDATED!!!! V1.2.5 Beta 24th June
Added a new script i havn't tested much, No more random click, will just rejoin game if adria is not found, If your next to leah it will try click on adria. Cleared up code to make it easier and more usable.
This is for 2 computers, for people who wish to help powerlevel other people!
Before you start:
1. Must run AutoHotKey as admin!
2. Diablo must be in WINDOWED (FULLSCREEN)
3. Check numlock :P
U CAN MOVE THE MESSAGE BOXES, only hit enter when ur mouse is in position and leave it there as there is a delay
This first script is the host script and should be run first as follows:
Start the Host Script on the Resume Game Screen, once you hit enter where resume game is, the script will click it for you and send u in game, now the leecher has to join, once the leecher has joined, mouse over the RED health bar at the TOP LEFT (Leechers works best) and then follow the prompts until the script is done, it will proceed to leave the game and create a new one and wait for the leecher.
Since the leecher has already joined the game and the host has left, start the leecher script on the other computer. Select the white glare on the health globe down the bottom, it will always be white. move the message box if needed to select players bottom. next hover over the BOTTOM of adrias dress still hovering over the PURPLE color (reason being is resolution settings) and just keep following the settings
HOST CODE:
Code:
WaitPixelColor(p_DesiredColor,p_PosX,p_PosY,p_TimeOut=0,p_GetMode="",p_ReturnColor=0)
{
l_Start := A_TickCount
Loop
{
PixelGetColor, l_RetrievedColor, %p_PosX%, %p_PosY%, %p_GetMode%
If ErrorLevel
{
If !p_ReturnColor
Return 1
Break
}
If ( l_RetrievedColor = p_DesiredColor )
{
If !p_ReturnColor
Return 0
Break
}
If ( p_TimeOut ) && ( A_TickCount - l_Start >= p_TimeOut )
{
If !p_ReturnColor
Return 2
Break
}
}
Return l_RetrievedColor
}
Numpad3::
;Start this in-game and it will quit once and resume game then wait for the new player
MsgBox, make sure you are in windowed fullscreen! Hover your cursor over Resume Game and hit enter (dont click ok yet! hover your mouse over and use the enter on your keyboard to hit ok, this applies to all future boxes!!)
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, RGx, RGy
}
MouseClick, Left, %RGx%, %RGy%
sleep, 500
MsgBox, Please get the leecher to join the game, then hover your mouse over their red health bar, the hit Enter. (their red bar top left)
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 200
MouseGetPos, HBx, HBy
Sleep, 200
PixelGetColor, color, %HBx%, %HBy%
}
Sleep, 500
Send, {ESC}
MsgBox, Hover your cursor over Leave Game
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, LGx, LGy
}
Sleep, 500
MouseClick, Left, %LGx%, %LGy%
Sleep, 500
MsgBox Hover your cursor over OK and hit enter
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, Cx, Cy
}
Sleep, 500
Send, {ESC}
Sleep, 500
Send, {ESC}
Sleep, 500
Loop
{
;Start this in-game and it will quit once and resume game then wait for the new player
Sleep, 100
Send, {ESC} ;Open up options menu
Sleep, 500
MouseClick, left, %LGx%, %LGy% ;Click on Leave Game
Sleep, 500
MouseClick, left, %Cx%, %Cy% ;Confirm leave party
Sleep, 5000 ;Wait for leave game and main menu, also a little time before client registers as left party, increase if too little
MouseClick, left, %RGx%, %RGy% ;Resume game
Sleep, 100
WaitPixelColor(color, HBx, HBy)
}
return
Numpad2::
pause
return
This is the leecher code, start it when you are ingame, at spawn spot when you first join game best to have the host code already running
Code:
;UPDATED!!!! V1.2.4 by DeadlyDragon
Xmult = 3 ;Lower this for Lower resolution, 3 is default for 1920 x 1080
Ymult = 3 ;Loser this for Lower resolution, 3 is default for 1920 x 1080
WaitPixelColor(p_DesiredColor,p_PosX,p_PosY,p_TimeOut=0,p_GetMode="",p_ReturnColor=0)
{
l_Start := A_TickCount
Loop
{
PixelGetColor, l_RetrievedColor, %p_PosX%, %p_PosY%, %p_GetMode%
If ErrorLevel
{
If !p_ReturnColor
Return 1
Break
}
If ( l_RetrievedColor = p_DesiredColor )
{
If !p_ReturnColor
Return 0
Break
}
If ( p_TimeOut ) && ( A_TickCount - l_Start >= p_TimeOut )
{
If !p_ReturnColor
Return 2
Break
}
}
Return l_RetrievedColor
}
Numpad3::
MsgBox Please hover your mouse over white glare on health globe (Pure white) and press enter
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, Gx, Gy
Sleep, 200
PixelGetColor, globe, %Gx%, %Gy%
}
MsgBox Please hover your mouse over your characters bum and press enter
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, CBx, CBy
}
MsgBox Please hover you mouse over unique colour on adira (purple?) and press enter, get the bottom of the dress.
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, Ax, Ay
Sleep, 200
PixelGetColor, color, %Ax%, %Ay%
}
Sleep, 500
MouseClick, left , Ax, Ay
Sleep, 3000
MsgBox Please hover you mouse over the black corner of quest text (top left above char avatar) and hit ok
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, Chatx, Chaty
}
Sleep, 500
Send, o
MsgBox Please hover you mouse over your host friend and hit ok
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, Hostx, Hosty
}
Sleep, 200
MouseClick, right, Hostx, Hosty ; Right click on top friend
MsgBox Please hover you mouse over Join Game/Request Invite (Request invite turns into Join Game)
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 200
MouseGetPos, JGx, JGy
}
Sleep, 200
MouseClick, left , JGx, JGy
Sleep 1500
Ax2 = %Ax%
Ay2 = %Ay%
Ax -= (Xmult*40)
Ax2 += (Xmult*40)
Ay2 += (Ymult*30)
CBx2 = %CBx%
CBy2 = %CBy%
CBx -= (Xmult*18)
CBx2 -= (Xmult*55)
CBy2 -= (Ymult*35)
Sleep, 5000
Loop
{
Sleep, 200
if WaitPixelColor(globe, Gx, Gy) = 0 ;White blip on health globe
{
Sleep, 1000
Pixelsearch, Px, Py, Ax, 8, Ax2, Ay2, color, 3, fast ;Searches for adria, change color is needed
Sleep, 500
MouseClick, left, %Px%, %Py% ;Click on adria
if % WaitPixelColor(0, Chatx, Chaty, 5000) = 2 ;Waits for the black background of the chat box that pops up
{
Pixelsearch, Px, Py, CBx2, CBy2, CBx, CBy,color, 4, fast
Sleep, 200
MouseClick, left, %Px%, %Py%
WaitPixelColor(0, Chatx, Chaty, 5000)
Send, {ESC} ;Skips the chat
Sleep, 2500
Send, o ;Open friends
Sleep, 3500 ;Increase this depending on how long it takes host to create his game and "Join game" come available
MouseClick, right, Hostx, Hosty ; Right click on top friend
Sleep, 1000
MouseClick, left , JGx, JGy ; Left click on join game and repeat;
Sleep, 7000
}
else
{
Send, {ESC} ;Skips the chat
Sleep, 2500
Send, o ;Open friends
Sleep, 4500 ;Increase this depending on how long it takes host to create his game and "Join game" come available
MouseClick, right, Hostx, Hosty ; Right click on top friend
Sleep, 1000
MouseClick, left , JGx, JGy ; Left click on join game and repeat;
Sleep, 7000
}
}
}
return
Numpad2::
pause
return
BETA LEECHER!! I have not had a good chance to test this one. Would you guys prefer to set your own search box for adria??
Code:
;DeadlyDragon V1.2.5 BETA
mult = 3 ;Loser this for Lower resolution, 3 is default for 1920 x 1080
JoinGameAvailable = 3500 ;Inscrease this if it is clicking on join game too early
AdriaLoad = 1000 ;Increase this if it isnt finding adria at the beginning because she has not loaded.o
Numpad3::
GetGlobe()
GetLeaveGame()
MsgBox Please hover your mouse over your characters bum and press enter
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, CBx, CBy
}
MsgBox Please hover you mouse over unique colour on adira (purple? lowest part possible.) and press enter, get the bottom of the dress.
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, Ax, Ay
Sleep, 200
PixelGetColor, color, %Ax%, %Ay%
}
Sleep, 500
MouseClick, left , Ax, Ay
Sleep, 3000
MsgBox Please hover you mouse over the black corner of quest text (top left above char avatar) and hit ok
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 500
MouseGetPos, Chatx, Chaty
}
GetHost()
GetJoin()
Sleep, 200
MouseClick, left , JGx, JGy
Sleep 1500
Ax2 = %Ax%
Ay2 = %Ay%
Ax -= (mult*60)
Ax2 += (mult*40)
Ay2 += (mult*70)
CBx2 = %CBx%
CBy2 = %CBy%
CBx -= (mult*25)
CBx2 -= (mult*80)
CBy2 -= (mult*35)
while InGame()
sleep, 100
Loop
{
Sleep, %AdriaLoad%
While InGame() ;White blip on health globe
{
if !InGame()
continue
Pixelsearch, Px, Py, Ax, 8, Ax2, Ay2, color, 3, fast ;Searches for adria
if ErrorLevel
{
if !InGame()
continue
Sleep, 10000
JoinGame()
continue
}
else
{
Sleep, 200
MouseClick, left, %Px%, %Py% ;Click on adria
if % WaitPixelColor(0, Chatx, Chaty, 5000) = 2 ;Waits for the black background of the chat box that pops up for 5 seconds
{
Pixelsearch, Px, Py, CBx2, CBy2, CBx, CBy, color, 4, fast
if ErrorLevel
{
JoinGame()
continue
}
else
{
Sleep, 200
MouseClick, left, %Px%, %Py%
if % WaitPixelColor(0, Chatx, Chaty, 5000) = 2
{
JoinGame()
continue
}
}
}
else
{
Send, {ESC}
JoinGame()
}
}
}
}
return
Numpad2::
pause
return
GetJoin()
{
global Hostx, Hosty, JGx, JGy
MouseClick, right, Hostx, Hosty ; Right click on top friend
MsgBox Please hover you mouse over Join Game/Request Invite (Request invite turns into Join Game)
IfMsgBox Ok
{
global JGx, JGy
WinActivate Diablo III
Sleep, 200
MouseGetPos, JGx, JGy
}
}
GetHost()
{
Send, o
MsgBox Please hover you mouse over your host friend and hit ok
IfMsgBox Ok
{
global Hostx, Hosty
WinActivate Diablo III
Sleep, 500
MouseGetPos, Hostx, Hosty
}
}
JoinGame()
{
global Hostx, Hosty, JGx, JGy
if IsMenuUp()
Send, {ESC}
Send, o ; Open friends
Sleep, %JoinGameAvailable% ; Increase this depending on how long it takes host to create his game and "Join game" come available
MouseClick, right, Hostx, Hosty ; Right click on top friend
Sleep, 1000
MouseClick, left , JGx, JGy ; Left click on join game and repeat;
while InGame()
Sleep, 100
Sleep, 3000
}
GetGlobe()
{
global G, Gx, Gy
MsgBox Please hover your mouse over white glare on health globe (Pure white) and press enter
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 100
MouseGetPos, Gx, Gy
Sleep, 200
PixelGetColor, G, %Gx%, %Gy%
}
}
InGame()
{
global G, G2, Gx, Gy
Pixelsearch, Px, Py, Gx, Gy, Gx, Gy, G, 4, fast
Result1 := ErrorLevel
Pixelsearch, Px, Py, Gx, Gy, Gx, Gy, G2, 4, fast
Result2 := ErrorLevel
if !Result1 or !Result2
{
return 1
}
else
{
return 0
}
}
IsMenuUp()
{
global LG1, LG2, LGx, LGy
PixelSearch, Px, Py, LGx, LGy, LGx, LGy, LG1, 0, Fast
Result1 := ErrorLevel
PixelSearch, Px, Py, LGx, LGy, LGx, LGy, LG2, 0, Fast
Result2 := ErrorLevel
if !Result1 or !Result2
{
return 1
}
else
{
return 0
}
}
GetLeaveGame()
{
global G2, Gx, Gy,LG1, LG2, LGx, LGy
Send, {ESC}
MsgBox, Hover your cursor over Leave Game
IfMsgBox Ok
{
WinActivate Diablo III
Sleep, 100
MouseGetPos, LGx, LGy
Sleep, 50
PixelGetColor, LG1, %LGx%, %LGy%
MouseMove, 10, 10
Sleep, 50
PixelGetColor, LG2, %LGx%, %LGy%
Sleep, 50
PixelGetColor, G2, %Gx%, %Gy%
}
Send, {ESC}
Sleep, 100
}
WaitPixelColor(p_DesiredColor,p_PosX,p_PosY,p_TimeOut=0,p_GetMode="",p_ReturnColor=0)
{
l_Start := A_TickCount
Loop
{
PixelGetColor, l_RetrievedColor, %p_PosX%, %p_PosY%, %p_GetMode%
If ErrorLevel
{
If !p_ReturnColor
Return 1
Break
}
If ( l_RetrievedColor = p_DesiredColor )
{
If !p_ReturnColor
Return 0
Break
}
If ( p_TimeOut ) && ( A_TickCount - l_Start >= p_TimeOut )
{
If !p_ReturnColor
Return 2
Break
}
}
Return l_RetrievedColor
}
credits go to who ever created the waitforpixel as it was not me!