#NoEnv
#SingleInstance Force
#Persistent
SetKeyDelay,0,1
ProgramName=Siz봇
ProgramVersion=1.02
TotalCount = 0
PassedCount = 0
FailedCount = 0
DiedCount = 0
RepairCount = 0
LogFileName = %a_scriptdir%\log\log1.html
IfNotExist,%a_scriptdir%\log\
FileCreateDir,%a_scriptdir%\log\
First_Start = 0
MagicCount = 0
RareCount = 0
SetCount = 0
LegendCount = 0
;SuccessCount=0
loop,60
{
inven%A_index%=1
}
end::
PostMessage,0x111,65307,,,sub.ahk - AutoHotkey
process,close,sub.exe
exitapp ; END 키 종료
;process,close,sub.exe
return
pause::
pause ; PAUSE : 일시 중지 & 재시작
return
F5:: ; F5 : 시작
run,%A_scriptDir%\sub.exe
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
loop
{
WinWait, 디아블로 III,
IfWinNotActive, 디아블로 III, , WinActivate, 디아블로 III,
WinWaitActive, 디아블로 III,
ResizeWin(1282,944) ;window rezie as 1292 X 850
StartTime := A_TickCount
ElapedTime := 0
gosub, WaitRoom ; 방생성 완료 체크
if res = 1
{
gosub, StartBot
ElapsedTime := A_TickCount - StartTime
}
}
return
ResizeWin(W,H) ; 해상도 셋팅
{
WinMove,디아블로 III,,0,0,%W%,%H%
}
return
WaitRoom:
global count= 0
loop, 40
{
imagesearch,vx,vy,9,130,38,170,*30
%A_scriptDir%\image\방생성확인.bmp
If errorLevel = 0
{
global TotalCount
TotalCount := TotalCount+1
FileAppend, [%A_now%]봇시작<br> ,
%LogFileName%
IniWrite,1,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
res = 1
return
}
else
{
sleep, 1500
imagesearch,vx,vy,549,530,725,588,*30
%A_scriptDir%\image\main_error.bmp
if errorLevel = 0
{
MouseClick, left, 637, 560
Sleep, 500
}
}
}
res = 0
return
;;;;;;;;;;;;;;;;;;;;; [ 전투 함수 ] ;;;;;;;;;;;;;;;;;;;;;;;;;;
StartBot:
IfWinNotActive, 디아블로 III, , WinActivate, 디아블로 III,
WinWaitActive, 디아블로 III,
gosub,비명
if res = 1
{
gosub,동영상
if res = 1
{
gosub,인던안2
if res = 1
{
gosub,전투종료
if res = 1
{
Sleep,1000
send, {Shift Up}
Send,{Click up left}
sleep,500
;gosub,GettingMoney
;gosub,GettingGem
gosub,GettingMagic
gosub,GettingLegend ; Legend Item 줍기
gosub,GettingSetItem ; Set Item 줍기
gosub,GettingRare ; Rare Item줍기
gosub,town
global PassedCount
PassedCount++
;FileAppend, [%A_now%]성공<br> , %LogFileName%
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
;gosub,QuitRoom
}
else if res = 3
{
Sleep,500
Send,{Click up left}
send, {Shift Up}
Sleep,500
global DiedCount
DiedCount++
;FileAppend, [%A_now%]사망<br> , %LogFileName%
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
;gosub,QuitRoom
sleep,12000
}
else
{
Sleep,1000
send, {Shift Up}
Send,{Click up left}
sleep,500
;gosub,GettingMoney
;gosub,GettingGem
gosub,GettingMagic
gosub,GettingLegend ; Legend Item 줍기
gosub,GettingSetItem ; Set Item 줍기
gosub,GettingRare ; Rare Item줍기
gosub,town
global PassedCount
PassedCount++
;FileAppend, [%A_now%]성공<br> , %LogFileName%
;gosub,QuitRoom
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
}
}
else
{
global DiedCount
DiedCount++
FileAppend, [%A_now%]실패<br> , %LogFileName%
;gosub,QuitRoom
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
}
}
else
{
global FailedCount
FailedCount++
FileAppend, [%A_now%]실패<br> , %LogFileName%
;gosub,QuitRoom
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
}
}
return
비명:
loop, 60
{
pixelgetcolor check1, 1121, 39
StringLeft,check1,check1,4
if (check1=0xCD or check1=0xCE)
{
sleep,100
send,4
send,1
send,2
send,3
sleep,2000
mouseclick, right, 985,225
sleep,100
mouseclick, right, 985,225
sleep,100
mouseclick, right, 985,225
sleep,100
mouseclick, right, 985,225
sleep,100
mouseclick, right, 985,225
sleep,100
MouseClick, left, 1161, 389
sleep,1000
MouseClick, left, 1161, 389
sleep,500
MouseClick, left, 582, 371
sleep,500
MouseClick, left, 622, 249
sleep,500
MouseClick, left, 747, 300
IniWrite,1,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
res = 1
return
}
else
{
imagesearch,vx,vy,1140,25,1210,59,*30 %A_scriptDir%\image\마을체크.bmp
if errorLevel = 0
{
chh:=1
}
pixelgetcolor check2, 1172, 36
StringLeft,check2,check2,4
if (check2=0xD1 or check2=0xD2 or check2=0xB3 or check2=0xB4 or check2=0xC2
or check2=0xC3 or check2=0xFF or chh = 1)
{
MouseClick, left, 445, 185
sleep,1500
}
sleep,500
chh:=0
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
}
}
res = 0
return
동영상:
loop, 15
{
pixelgetcolor m1, 74, 913
pixelgetcolor m2, 75, 913
pixelgetcolor m3, 76, 913
pixelgetcolor m4, 77, 913
If (m1=0x000000 and m2=0x000000 and m3=0x000000 and m4=0x000000)
{
sleep,2000
send,{esc}
sleep,500
send,{enter}
sleep,100
res = 1
return
}
else
{
sleep,1000
}
}
res = 0
return
인던안2:
loop, 15
{
imagesearch,vx,vy,1170,25,1230,53,*30 %A_scriptDir%\image\보스방.bmp
If errorLevel = 0
{
MouseClick,left,655,834
sleep,1500
MouseClick,left,655,834
sleep,1500
MouseClick,left,655,834
sleep,1500
send, {Shift Down}
Send,{Click down left}
sleep,100
mousemove, 620,288
res = 1
return
}
else
{
sleep,1000
}
}
res = 0
return
전투종료:
loop
{
imagesearch,vx,vy,479,746,791,850,*30 %A_scriptDir%\image\전투종료.bmp
if ErrorLevel = 0
{
Send, {esc}
sleep,100
res = 1
return
}
else
{
gosub,죽음체크
if res = 1
{
res = 3
return
}
else
{
send,123
}
}
}
res = 0
return
죽음체크:
Sleep, 300
imagesearch,vx,vy,704,727,741,752,*30
%A_scriptDir%\image\죽음체크.bmp
if ErrorLevel
{
res = 0
return
}
else
{
res = 1
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
return
}
return
;;;;;;;;;;;;;;;;;;;;; [ 전투 함수 ] ;;;;;;;;;;;;;;;;;;;;;;;;;;
QuitRoom: ; 방에서 나감
sleep, 1000
MouseClick, left, 888, 900
sleep, 500
RandomClick(640,450,1)
FileAppend, [%A_now%]방나가기<br> , %LogFileName%
return
town:
sleep,500
send,t
;sleep,500
loop, 30
{
imagesearch,vx,vy,1140,25,1210,59,*30 %A_scriptDir%\image\마을체크.bmp
If errorLevel = 0
{
sleep,2500
MouseClick, left, 994,206
sleep,2500
gosub,Inven_First
if res = 1
{
gosub, Inven_Input ;초기 인벤값을 불러와서 저장한다.
}
gosub,CheckRepair
if res = 1
{
gosub, GoToMerchant
gosub, RepairItem
gosub, RepairBack
}
gosub,Inven_clean
if res = 1
{
gosub,GoToSmith ;대장간으로 가서 아이템레벨 62-63을 제외한 아이템을 융해시킨다.
gosub,decomposition ;초기인벤값과 비교후 융해시키기
gosub,BackSmith
gosub,InputStore ;인벤이 가득 찼다면, 창고이용, 인벤을 정리한다.
gosub,BackStore ;창고정리후 복귀
}
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
return
}
else
{
sleep,1000
}
}
IniWrite,2,C:\Documents and Settings\All
Users\Documents\tran.ini,방,확인
return
Inven_First:
Sleep, 300
if First_Start = 0
{
First_Start = 1
res = 1
return
}
else
{
res = 0
return
}
return
Inven_Input:
Sleep, 300
X:=867, Y:=540, pW:=41, pH:=41, C:=1, Ix:=1
loop,60
{
inven%Ix%X:=X, inven%Ix%Y:=Y
X:=X+pW , C:=C+1, Ix:=Ix+1
If ( C > 10 )
X:=867, Y:=Y+pH, C:=1
}
sleep,500
mouseclick,left, 840, 894
sleep,500
gosub,인벤체크
sleep,500
loop,60
{
pX:=inven%A_Index%X
pY:=inven%A_Index%Y
pixelgetcolor inven%A_Index%, %pX%, %pY%
if (inven%A_Index%=0x080C11 or inven%A_Index%=0x080C12 or
inven%A_Index%=0x080C13 or inven%A_Index%=0x080C14 or
inven%A_Index%=0x080C16)
{
F_inven%A_Index% = 0
}
else
{
F_inven%A_Index% = 1
}
}
sleep,1000
send, {esc}
sleep,500
return
인벤체크:
loop, 15
{
imagesearch,vx,vy,1016,44,1085,109,*30 %A_scriptDir%\image\인벤체크.bmp
If errorLevel = 0
{
return
}
else
{
sleep,1000
}
}
return
Inven_clean:
Sleep, 300
imagesearch,vx,vy,970,660,1070,692,*30
%A_scriptDir%\image\full.bmp
if ErrorLevel
{
res = 0
return
}
else
{
MouseClick, left, 1212, 675
sleep,500
res = 1
return
}
return
CheckRepair:
Sleep, 300
PixelSearch, Px, Py, 916, 40, 950,100, 0x00F0FF, 10, Fast
;수리 아이콘 픽셀 체크
if ErrorLevel
{
res = 0
return
}
else
{
res = 1
return
}
return
GoToMerchant: ; 상인에게로...
sleep, 1000
mouseclick, left, 888,58
sleep, 5000
mouseclick, left, 678,370
sleep, 1000
return
RepairItem: ; 수리 -> 모두 수리 버튼 클릭
global RepairCount
sleep, 1000
mouseclick, left, 436,432
sleep, 1000
mouseclick, left, 223,528
Sleep,500
send, {esc}
RepairCount++
FileAppend, [%A_now%]장비를 수리하였습니다.<br>, %LogFileName%
sleep, 200
return
RepairBack:
sleep, 1000
mouseclick, left,496,846
sleep, 5000
mouseclick, left,413,597
sleep, 2000
return
GoToSmith:
sleep, 1000
mouseclick, left, 1184,566
sleep, 3000
mouseclick, left, 743,404
sleep, 1000
mouseclick, left, 440,432
sleep, 1000
mouseclick, left, 227,266
sleep, 1000
return
decomposition:
Sleep, 300
gosub,인벤체크
X:=887, Y:=560, pW:=41, pH:=41, C:=1, Ix:=1
loop,60
{
if (C=2 or C=6)
{
pW=42
}
else
{
pW=41
}
if Y=765
{
Y=764
}
check%Ix%X:=X-3, check%Ix%Y:=Y-2
X:=X+pW , C:=C+1, Ix:=Ix+1
If ( C > 10 )
X:=887, Y:=Y+pH, C:=1
}
loop,60
{
pX:=check%A_Index%X
pY:=check%A_Index%Y
pixelgetcolor check%A_Index%, %pX%, %pY%
}
Bx:=60
loop,60
{
if F_inven%Bx% = 0
{
if (check%Bx% = 0xB9150E or check%Bx% = 0xB7130D or check%Bx% = 0xB4120C or
check%Bx% = 0x5F301F or check%Bx% = 0x592C1D or check%Bx% = 0x53291B or
check%Bx% = 0xF00000 or check%Bx% = 0xF10000 or check%Bx% = 0x040305 or
check%Bx% = 0x030205)
{
global xx
global yy
xx:=check%Bx%X-10
yy:=check%Bx%Y-10
;sleep,100
MouseMove,%xx%,%yy%
sleep,100
gosub,확인
if (rex=0)
{
sleep,500
mouseclick, left
}
sleep,500
}
}
Bx:=Bx-1
}
sleep,300
return
BackSmith: ;창고로 가서 열기
sleep, 1000
send,{esc}
sleep, 1000
mouseclick, left, 311,304
sleep, 3000
mouseclick, left, 269,555
sleep, 2000
mouseclick, left, 437,329
sleep, 1000
return
InputStore:
Sleep, 300
X:=867, Y:=540, pW:=41, pH:=41, C:=1, Ix:=1
loop,60
{
inven%Ix%X:=X, inven%Ix%Y:=Y
X:=X+pW , C:=C+1, Ix:=Ix+1
If ( C > 10 )
X:=867, Y:=Y+pH, C:=1
}
loop,60
{
pX:=inven%A_Index%X
pY:=inven%A_Index%Y
pixelgetcolor C_inven%A_Index%, %pX%, %pY%
if (F_inven%A_Index% = 0)
{
if (C_inven%A_Index%=0x080C11 or C_inven%A_Index%=0x080C12 or
C_inven%A_Index%=0x080C13 or C_inven%A_Index%=0x080C14 or
C_inven%A_Index%=0x080C16)
{
}
else
{
sleep,500
MouseClick, right, %pX%, %pY%
sleep,500
}
}
}
return
BackStore:
sleep, 1000
send,{esc}
;sleep, 1000
return
GettingSetItem:
{
loop 5
{
send, {alt}
PixelSearch, Px, Py, 0, 0, 900,834, 0x00FF00, 10,
Fast
if ErrorLevel = 0
{
global SetCount
sleep 500
send, {alt}
MouseClick, left, Px + 15, Py + 10
;SetCount++
sleep 1500
;FileAppend, [%A_now%]Get a Set
Item..yes!yes!...<br>, C:\Log\Google 드라이브\log1.html
}
}
}
return
GettingRare:
{
loop 5
{
send, {alt}
PixelSearch, Px, Py, 0, 0, 900,834, 0x02F0F0, 6, Fast
if ErrorLevel = 0
{
global RareCount
sleep 500
send, {alt}
MouseClick, left, Px + 15, Py + 10
RareCount++
sleep 1500
;FileAppend, [%A_now%]Get a Rare Item..yes!...<br>,
C:\Log\Google 드라이브\log1.html
}
}
}
return
GettingMagic:
{
loop 30
{
send, {alt}
PixelSearch, Px, Py, 278, 189, 900,834, 0xF06463, 1,
Fast
if ErrorLevel = 0
{
global MagicCount
sleep 500
send, {alt}
MagicCount++
MouseClick, left, Px + 15, Py + 10
sleep 500
;FileAppend, [%A_now%]Get a magic..! %MagicCount%
<br>, C:\Log\Google 드라이브\log1.html
}
}
}
return
GettingLegend:
{
loop 5
{
send, {alt}
PixelSearch, Px, Py, 0, 0, 900,834, 0x2F64BF, 2, Fast
if ErrorLevel = 0
{
global LegendCount
sleep 500
send, {alt}
MouseClick, left, Px + 15, Py + 10
LegendCount++
sleep 1500
;FileAppend, [%A_now%]Get a Legend
Item..yes!yes!...<br>, C:\Log\Google 드라이브\log1.html
}
}
}
return
확인:
rex:=0
loop,2
{
xxx1:=xx+10-422
xxx2:=xx+10
imagesearch,vx,vy,%xxx1%,660,%xxx2%,870,*30
%A_scriptDir%\image\item%A_index%.bmp
If errorLevel = 0
{
rex:=1
}
}
return
;************* 랜덤 함수 A P I **************;0x1000BD
PingDelay(delay)
{
pixelgetcolor pingvlaue, 917,915
if (pingvlaue=0x164823)
{
t_time=250
}
else if (pingvlaue=0x0056AF)
{
t_time=500
}
else
{
t_time=900
}
sleep, delay * 1000 + t_time
}
return
RandomClick(x,y,delay)
{
random,randX, -3, 3
random,randY, -3, 3
x := x + randX
y := y + randY
mouseclick,left, x, y
sleep, delay * 1000
}
return
RandomMove(x,y,delay)
{
random,randX, -3, 3
random,randY, -3, 3
x := x + randX
y := y + randY
mousemove, x, y
send, '
sleep, delay * 1000
}
return
;************* 랜덤 함수 A P I **************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;여기서 부터 보조컴퓨터용 2번째 스크립트 입니다 ;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;적이없는 안전한 위치가 확인되면 파티초대 신청을 합니다 ;;;;;
Loop
{
sleep,100
WinMove,디아블로 III,,0,0,1282,944
gosub,건달
gosub,멀티플레이어체크
gosub,퀘스트확인창
gosub,퀘스트비수락
gosub,초대수락
gosub,초대나가기확인
}
초대수락:
imagesearch,vx,vy,1070,663,1200,854,*30,
%A_scriptDir%\image\초대수락.bmp
If errorLevel = 0
{
MouseClick, left, 1116, 810
return
}
return
초대나가기확인:
imagesearch,vx,vy,472,541,603,577,*30,
%A_scriptDir%\image\초대나가기확인.bmp
If errorLevel = 0
{
MouseClick, left, 546, 559
return
}
return
건달:
imagesearch,vx,vy,562,57,620,97,*30 %A_scriptDir%\image\건달.bmp
If errorLevel = 0
{
MouseClick, left, 573, 304
return
}
return
멀티플레이어체크:
imagesearch,vx,vy,955,663,1060,689,*30
%A_scriptDir%\image\멀티플레이어창.bmp
If errorLevel = 0
{
MouseClick, left, 1211, 677
return
}
return
댓글 없음:
댓글 쓰기