This moveset is slower but apparently more reliable, can't say for sure.
Code: Select all
#NoEnv
#Warn
#SingleInstance Force
Process, priority, , high
SendMode Input
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode, 2
#MaxThreadsperHotkey 2
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
CoordMode, Tooltip, Screen
WinGetPos, WinX, WinY, WinW, WinH, ELDEN RING™
if (WinX !=0)
Winmove, ELDEN RING™, , 0, 0
SetBatchLines, -1
WinActivate ELDEN RING™
#IfWinActive, ELDEN RING™
Send, {w up}{a up}{s up}{r up}{e up}{f up}{g up}{d up}{space up}
xposList:= [[1750, 1771], [1761, 1782], [1772, 1793], [1783, 1805], [1794, 1816]
,[1806, 1827] , [1817, 1840], [1830, 1850], [1843, 1865]]
F8::ExitApp
F9::Pause
F6::reload
F7::
score := 0
score0 := 0
score0reload := 0
loopindex := 0
completionindex := 0
pos1fail := 0
pos2fail := 0
alignment := 0
sessiontotal := 0
deathindex := 0
deathtoggle := 0
starttime := A_Now
starttimems := A_TickCount
loop {
loop{
SetTimer, RemoveToolTip4, -60
Send, {w up}{a up}{s up}{r up}{e up}{f up}{g up}{d up}{space up}
if deathtoggle
deathindex += 1
deathtoggle := 1
pos2alignmentsum := 0
pos2alignmentavg := 0
pos1alignment := 0
pos2alignment := 0
previousscore := score
loopindex += 1
deaths := alignment - completionindex
Sleep 50
Send, {w up}{a up}{r up}{e up}{f up}{g up}{d up}{o up}{space up}
Sleep 50
Send, {g down}
Sleep 50
Send, {g up}
Sleep 200
loop, 300 {
PixelSearch, , , 1813, 100, 1815, 103, 0xB8BDBF, 30, Fast
if (ErrorLevel = 0)
break
if (ErrorLevel = 2)
break, 2
if (A_Index = 300)
break, 2
Sleep 50
}
Sleep 50
Send, {f down}
Sleep 50
Send, {f up}
Sleep 50
loop,20 {
Imagesearch, , , 52, 150, 116, 970, *95 *transblack Lenne'sGrace.png
if (ErrorLevel = 0)
break
if (A_Index = 20) {
Sleep 50
Send, {f down}
Sleep 50
Send, {f up}
Sleep 50
break
}
Sleep 50
}
Send, {e down}
Sleep 50
Send, {e up}
Sleep 50
Loop, 20 {
Imagesearch, , , 1151, 582, 1162, 592, *75 *Transblack TravelCancel.png
if (ErrorLevel = 0) {
Send, {e down}
Sleep 50
Send, {e up}
break
}
if (A_Index = 20) {
Sleep 50
Send, {e down}
Sleep 50
Send, {e up}
Sleep 50
}
Sleep 50
}
Send, {e down}
Sleep 50
Send, {e up}
Sleep 1900
loop, 10000 {
Imagesearch, , , 148, 1018, 382, 1034, *105 *Transblack Next.png
if (ErrorLevel = 1) {
if (A_Index = 1) {
Sleep 150
Send, {e down}
Sleep 50
}
break
}
if (A_Index = 10000) and (ErrorLevel = 0) {
run, MohgwinFarmTSch
ExitApp
}
Sleep 50
}
Sleep 750
Sleep 1450
Loopindexdivisor := loopindex - 1
completion := completionindex / loopindexdivisor
if (completionindex = 0)
completion := 0
completion := round(completion, 2)
completionpercentage := round(completion * 100)
alignmentpct := alignment / loopindexdivisor
if (alignment = 0)
alignmentpct := 0
alignmentpct := round(alignmentpct, 2)
alignmentpercentage := round(alignmentpct * 100)
alignmentfails := pos1fail + pos2fail
Tooltip, farm attempts: %Loopindexdivisor%`ncomplete farms = %completionindex%`ndeaths = %deaths%`nalignmentfails = %alignmentfails%`npos1fail = %pos1fail%`npos2fail = %pos2fail%`ntotal alignments = %alignment%`nalignment `% = %alignmentpercentage% `%`ndeathindex = %deathindex%`ncompletion `%= %completionpercentage% `%, 0, 1080, 3
loop, 400 {
ImageSearch, , , 1685, 1026, 1705, 1045, *25 *transblack RuneIcon.png
if (ErrorLevel = 0) {
Sleep 150
Send, {e up}
Sleep, 1700
score =
For each, xpos in xposList {
Loop, 11 {
digit := A_Index - 1
image :="Digit" digit ".png"
Tooltip,., xpos.1, 1080,4
SetTimer, RemoveToolTip4, -100
ImageSearch,,, xpos.1, 1025, xpos.2, 1047, *115 *transblack %image%
err := ErrorLevel
if (digit = 10)
digit:= 0
} Until !err
score .= err ? "_" : digit
}
score := round(score)
sessionscore := score - previousscore
if (loopindex = 1)
sessionscore := 0
sessiontotal += sessionscore
elapsedtime := A_Now
elapsedtimess := elapsedtime
elapsedtimemm := elapsedtime
elapsedtimehh := elapsedtime
elapsedtimedd := elapsedtime
elapsedtimems := A_TickCount - starttimems
elapsedtimedd -= starttime, days
elapsedtimehh -= starttime, hours
elapsedtimemm -= starttime, minutes
elapsedtimess -= starttime, seconds
elapsedtimess -= elapsedtimemm * 60
elapsedtimemm -= elapsedtimehh * 60
elapsedtimehh -= elapsedtimedd * 24
scorerates := round(sessiontotal / elapsedtimems * 1000)
scoreratem := round(sessiontotal / elapsedtimems * 60, 2)
scorerateh := round(sessiontotal / elapsedtimems * 3.6, 2)
if (sessionscore = 0)
scorerate := 0
Tooltip, score = %score%`nsession score = %sessionscore%`nrun time = %elapsedtimedd%d %elapsedtimehh%h%elapsedtimemm%m%elapsedtimess%s`nsession total = %sessiontotal%`naverage score/s= %scorerates% runes/s`naverage score/m = %scoreratem%k runes/m`naverage score/h = %scorerateh%M runes/h, 191, 995, 4
SetTimer, RemoveToolTip4, -60000
if (score0 = 0) {
Tooltip, score0reload = %score0reload%`nscore0 = %score0%, 191, 753, 5
SetTimer, RemoveToolTip5, -7000
break
}
if (score0 = 1) {
Tooltip, ErrorLevel = %ErrorLevel%`nscore0 = %score0%, 400, 100
SetTimer, RemoveToolTip, -4000
if (score = 0) {
Score0 += 1
Tooltip, ErrorLevel = %ErrorLevel%`nscore0 = %score0%`nscore0reload = %score0reload%`nscore = 0`n"Break", 800, 500, 2
SetTimer, RemoveToolTip2, -4000
break
}
}
}
if (ErrorLevel = 1) {
if (A_Index = 10) {
if (score0 = 2) {
Tooltip, ErrorLevel = %ErrorLevel%`nscore0 = %score0%`nscore0reload = %score0reload%`n"exitApp", 900, 600, 2
SetTimer, RemoveToolTip2, -4000
ExitApp
}
if (score0reload > 0) {
Tooltip, ErrorLevel = %ErrorLevel%`nscore0 = %score0%`nscore0reload = %score0reload%`n"Continue", 1000, 700, 2
SetTimer, RemoveToolTip2, -4000
continue
}
{
if loopindex > 1
score0 += 1
Tooltip, ErrorLevel = %ErrorLevel%`nscore0 = %score0%`nscore0reload = %score0reload%`n"A_Index = 10", 1100, 800, 2
SetTimer, RemoveToolTip2, -4000
break
}
}
}
}
Sleep 60
Send, {e up}
Sleep 1600
Send, {r down}
Sleep 60
Send, {r up}
Sleep 50
Send, {d down}{s down}
Sleep 900
Send, {d up}{s up}
Sleep 600
Send, {w down}
Sleep 2400
Send, {d down}
Sleep 700
Send, {d up}
sleep 7700
Send, {f down}
Sleep 30
Send, {f Up}
Sleep 600
Send, {f down}
Sleep 30
Send, {f Up}
sleep, 1600
Send, {a down}
Sleep 300
Send, {a up}{w up}
Sleep 2000
if (score0 > 0) or (loopindex = 1) {
Sleep 1000
ImageSearch, , , 862, 908, 927, 920, *75 *transblack YRetrieve.png
if (ErrorLevel = 0) {
Sleep 550
Send, {e down}
Sleep 50
Send, {e up}
Sleep 50
if (score0 > 0) {
score0reload := 0
score0 := 0
}
}
}
sleep, 100
loop {
pos1alignment := 0
pos1alignmentsum := 0
pos1alignmentavg := 0
pos1alignmentfail := 0
loop {
ImageSearch, BallPosCheck1x, BallPosCheck1y, 900, 117, 993, 127, *40 *transblack BallPosCheck1.png
if (ErrorLevel = 0) {
pos1alignmentsum += BallPosCheck1x
pos1alignment += 1
Tooltipindex:= 2 + A_Index
Tooltipindex2:= 30 * A_Index
tooltipindex3 := 0
if (tooltipindex > 20) {
tooltipindex3 += 50
tooltipindex := 3
}
tooltip, %BallPosCheck1x%x, BallPosCheck1x + tooltipindex3, BallPosCheck1y + Tooltipindex2, %tooltipindex%
SetTimer, RemoveToolTip%tooltipindex%, -3500
if (pos1alignment = 18) {
pos1alignmentavg := pos1alignmentsum / 18
alignment += 1
break, 2
}
}
if (ErrorLevel) {
BallPosCheck1x :=
BallPosCheck1y :=
pos1alignmentfail += 1
if (pos1alignmentfail = 18) {
deathtoggle := !deathtoggle
pos1fail += 1
if (score0 > 0)
score0reload += 1
break, 3
}
}
Sleep 30
}
Sleep 30
}
Sleep 30
Send, {w down}
sleep 500
Send, {a down}
Sleep 500
Send,{w up}{d down}{a up}
Sleep 200
Send, {s down}
Sleep 500
send, {w down}{s up}{space down}
sleep 100
Send, {d down}
sleep 2300
Send, {w up}{d up}{space up}
sleep 4000
ImageSearch, , , 1685, 1026, 1705, 1045, *55 *transblack RuneIcon.png
if (ErrorLevel = 0) {
deathtoggle := !deathtoggle
completionindex += 1
}
}
}
return
RemoveToolTip:
ToolTip
return
RemoveToolTip2:
ToolTip,,,, 2
return
RemoveToolTip3:
ToolTip,,,,3
return
RemoveToolTip4:
ToolTip,,,,4
return
RemoveToolTip5:
ToolTip,,,,5
return
RemoveToolTip6:
ToolTip,,,,6
return
RemoveToolTip7:
ToolTip,,,,7
return
RemoveToolTip8:
ToolTip,,,,8
return
RemoveToolTip9:
ToolTip,,,,9
return
RemoveToolTip10:
ToolTip,,,,10
return
RemoveToolTip11:
ToolTip,,,,11
return
RemoveToolTip12:
ToolTip,,,,12
return
RemoveToolTip13:
ToolTip,,,,13
return
RemoveToolTip14:
ToolTip,,,,14
return
RemoveToolTip15:
ToolTip,,,,15
return
RemoveToolTip16:
ToolTip,,,,16
return
RemoveToolTip17:
ToolTip,,,,17
return
RemoveToolTip18:
ToolTip,,,,18
return
RemoveToolTip19:
ToolTip,,,,19
return
RemoveToolTip20:
ToolTip,,,,20
return