Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
- ; #Warn ; Enable warnings to assist with detecting common errors.
- SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
- SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
- #Persistent
- SetDefaultMouseSpeed, 5
- SetBatchLines, 20ms
- CoordMode, Pixel, Client
- CoordMode, Mouse, Client
- global Mainstat1 := [2140, 446, 0] ; -1 = infinite points
- global Vitality1 := [2140, 570, -1]
- global Movement1 := [2140, 690, 50]
- global Ressource1 := [2140, 815, 0]
- global Mainstat2 := [2140, 446, -1]
- global Vitality2 := [2140, 570, 0]
- global Movement2 := [2140, 690, 0]
- global Ressource2 := [2140, 815, 0]
- global ParagonMenu := [2323, 1138, 0x000000]
- global ParagonReset := [1720, 980]
- global ParagonAccept := [1550, 1090]
- global ParagonCore := [1250, 140]
- global firstrun := true
- global isFullScreen
- global DiabloWidth
- global DiabloHeight
- If (firstrun = true)
- {
- isFullScreen := isWindowFullScreen( "Diablo III" )
- ConvertCoordinates(Mainstat1)
- ConvertCoordinates(Mainstat2)
- ConvertCoordinates(Vitality1)
- ConvertCoordinates(Vitality2)
- ConvertCoordinates(Ressource1)
- ConvertCoordinates(Ressource2)
- ConvertCoordinates(Movement1)
- ConvertCoordinates(Movement2)
- ConvertCoordinates(ParagonMenu)
- ConvertCoordinates(ParagonReset)
- ConvertCoordinates(ParagonAccept)
- ConvertCoordinates(ParagonCore)
- firstrun := false
- }
- ^1::
- WinActivate, Diablo III
- WinWaitActive, Diablo III
- Send, {p}
- MouseGetPos x, y
- First:
- PixelGetColor, ParagonMenuOpen, ParagonMenu[1], ParagonMenu[2]
- If (ParagonMenuOpen = ParagonMenu[3])
- {
- MouseClick, Left, ParagonCore[1], ParagonCore[2]
- MouseClick, Left, ParagonReset[1], ParagonReset[2]
- Sleep, 150
- If (Movement1[3] != 0)
- MouseClick, Left, Movement1[1], Movement1[2], Movement1[3]
- If (Ressource1[3] != 0)
- MouseClick, Left, Ressource1[1], Ressource1[2], Ressource1[3]
- If (Vitality1[3] != 0)
- If (Vitality1[3] = -1)
- {
- Vitality1:
- Send, {Shift down}
- MouseClick, Left, Vitality1[1], Vitality1[2], 100
- Send, {Shift up}
- PixelSearch, , , Vitality1[1], Vitality1[2], Vitality1[1], Vitality1[2], 0x4AABE4, 5
- If (ErrorLevel = 0)
- GoTo, Vitality1
- }
- Else
- {
- MouseClick, Left, Vitality1[1], Vitality1[2], Vitality1[3]
- }
- If (Mainstat1[3] != 0)
- If (Mainstat1[3] = -1)
- {
- Mainstat1:
- Send, {Shift down}
- MouseClick, Left, Mainstat1[1], Mainstat1[2], 100
- Send, {Shift up}
- PixelSearch, , , Mainstat1[1], Mainstat1[2], Mainstat1[1], Mainstat1[2], 0x4AABE4, 5
- If (ErrorLevel = 0)
- GoTo, Mainstat1
- }
- Else
- {
- MouseClick, Left, Mainstat1[1], Mainstat1[2], Mainstat1[3]
- }
- MouseClick, Left, ParagonAccept[1], ParagonAccept[2]
- }
- Else
- GoTo, First
- Send, {Space}
- MouseMove %x%, %y%
- KeyWait Control
- Return
- ^2::
- WinActivate, Diablo III
- WinWaitActive, Diablo III
- Send, {p}
- MouseGetPos x, y
- Second:
- PixelGetColor, ParagonMenuOpen, ParagonMenu[1], ParagonMenu[2]
- If (ParagonMenuOpen = ParagonMenu[3])
- {
- MouseClick, Left, ParagonCore[1], ParagonCore[2]
- MouseClick, Left, ParagonReset[1], ParagonReset[2]
- Sleep, 150
- If (Movement2[3] != 0)
- MouseClick, Left, Movement2[1], Movement2[2], Movement2[3]
- If (Ressource2[3] != 0)
- MouseClick, Left, Ressource2[1], Ressource2[2], Ressource2[3]
- If (Vitality2[3] != 0)
- If (Vitality2[3] = -1)
- {
- Vitality2:
- Send, {Shift down}
- MouseClick, Left, Vitality2[1], Vitality2[2], 100
- Send, {Shift up}
- PixelSearch, , , Vitality2[1], Vitality2[2], Vitality2[1], Vitality2[2], 0x4AABE4, 5
- If (ErrorLevel = 0)
- GoTo, Vitality2
- }
- Else
- {
- MouseClick, Left, Vitality2[1], Vitality2[2], Vitality2[3]
- }
- If (Mainstat2[3] != 0)
- If (Mainstat2[3] = -1)
- {
- Mainstat2:
- Send, {Shift down}
- MouseClick, Left, Mainstat2[1], Mainstat2[2], 100
- Send, {Shift up}
- PixelSearch, , , Mainstat2[1], Mainstat2[2], Mainstat2[1], Mainstat2[2], 0x4AABE4, 5
- If (ErrorLevel = 0)
- GoTo, Mainstat2
- }
- Else
- {
- MouseClick, Left, Mainstat2[1], Mainstat2[2], Mainstat2[3]
- }
- MouseClick, Left, ParagonAccept[1], ParagonAccept[2]
- }
- Else
- GoTo, Second
- Send, {Space}
- MouseMove %x%, %y%
- KeyWait Control
- Return
- ConvertCoordinates(ByRef Array)
- {
- WinGetPos, , , DiabloWidth, DiabloHeight, Diablo III
- If (isFullScreen = false)
- {
- DiabloWidth := DiabloWidth-16
- DiabloHeight := DiabloHeight-39
- }
- Array[1] := Round(Array[1]*DiabloHeight/1440+(DiabloWidth-3440*DiabloHeight/1440)/2, 0)
- Array[2] := Round(Array[2]*(DiabloHeight/1440), 0)
- }
- isWindowFullScreen( winTitle )
- {
- ;checks if the specified window is full screen
- winID := WinExist( winTitle )
- If ( !winID )
- Return false
- WinGet style, Style, ahk_id %WinID%
- WinGetPos ,,,winW,winH, %winTitle%
- ; 0x800000 is WS_BORDER.
- ; 0x20000000 is WS_MINIMIZE.
- ; no border and not minimized
- Return ((style & 0x20800000) or winH < A_ScreenHeight or winW < A_ScreenWidth) ? false : true
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement