PDA

X Для форума GoHa.Ru теперь доступен мобильный стиль. Подробнее...

Просмотр полной версии : Составление матрицы для облегчения вырезки картинок


Xseven
16.09.2010, 20:25
#SingleInstance force
SetBatchLines, 1ms

Log_File=scan.log

F8::
win1:=ReadIni("Main","win1")
win2:=ReadIni("Main","win2")
XBegin:=ReadIni("Main","XBegin")
YBegin:=ReadIni("Main","YBegin")
XEnd:=ReadIni("Main","XEnd")
YEnd:=ReadIni("Main","YEnd")
current_x:=XBegin-1, current_y:=YBegin-1
scan_current_line=
ColorWin1=
ColorWin2=

; Создаём массив для окна1
Activate_Win(1)
While (current_y!=YEnd)
{
current_y := current_y + 1
While (current_x!=XEnd)
{
current_x := current_x + 1
PixelGetColor, ColorWin1, current_x, current_y
Win1ar%current_y%_%current_x%:=ColorWin1
ToolTip,%current_x% %current_y%
; Write_LogSingle(Win1ar%current_y%_%current_x%)
}
current_x:=XBegin-1
}

current_x:=XBegin-1, current_y:=YBegin-1


; Создаём массив для окна2
Activate_Win(2)
While (current_y!=YEnd)
{
current_y := current_y + 1
While (current_x!=XEnd)
{
current_x := current_x + 1
PixelGetColor, ColorWin2, current_x, current_y
Win2ar%current_y%_%current_x%:=ColorWin2
; Write_LogSingle(Win2ar%current_y%_%current_x%)
}
current_x:=XBegin-1
}


current_x:=XBegin-1,current_y:=YBegin-1
While (current_y!=YEnd)
{
current_y := current_y + 1
While (current_x!=XEnd)
{
current_x:=current_x+1
colorwin1:=Win1ar%current_y%_%current_x%
colorwin2:=Win2ar%current_y%_%current_x%
if (colorwin1!=colorwin2)
{
MouseClick,left,%current_x%,%current_y%
Sleep, 10
; Write_LogSingle(colorwin1)
}
; Write_LogSingle(Win1ar%current_y%_%current_x%)
}
current_x:=XBegin-1
}
return


if (ColorWin2!=Colorwin1)
{
}
return


Write_LogSingle(sText)
{
global Log_File
FormatTime, datetime, YYYYMMDDHH24MISS, dd MMM,HH:mm
Write_Text=[%datetime%] %sText%
FileAppend, %Write_Text% `n, %Log_File%
return
}

; >>>>>>>>>>>>>>>>>>>>>>

Activate_Win(win)
{
global win1, win2
if (win=1)
{
WinActivate, ahk_id %win1%
WinWaitActive ahk_id %win1%, , 0.1
; msgbox 1
}
else
{
WinActivate, ahk_id %win2%
WinWaitActive ahk_id %win2%, , 0.1
; msgbox 2
}



}


; Левый верхний угол
F11::
MouseGetPos, XBegin, YBegin
WriteIni("Main","XBegin",XBegin)
WriteIni("Main","YBegin",YBegin)
return



; Правый нижний угол
F12::
MouseGetPos, XEnd, Yend
WriteIni("Main","XEnd",XEnd)
WriteIni("Main","YEnd",YEnd)
return



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; FUNCTION Записи в ини-файл
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WriteIni(Section,Key,Value)
{
IniWrite,%Value%,%A_WorkingDir%\matrix.ini,%Sectio n%,%Key%
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; FUNCTION чтения инишки
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ReadIni(Section,ReadParam)
{
IniRead, WriteParam, %A_WorkingDir%\matrix.ini,%Section%,%ReadParam%
return WriteParam
}

#F1::
WinGet, okno1, ID, A
WriteIni("main","win1",okno1)
return

#F2::
WinGet, okno2, ID, A
WriteIni("main","win2",okno2)
return

F9::
Reload
return

Добавлено через 18 минут
делаем скриншот1, вставляем в паинт, winkey+f1
делаем скриншот2, вставляем в паинт2, winkey+f2
выбираем во втором окне карандаш и белый цвет
выделяем область по ф11-ф12 (прямоугольником).
запускаем по F8
пиксели которые разнятся на картинках закрасятся белым в окне паинта для последующего поиска части картинки с imagesearch *transFFFFFF (можно *transWhite).
Полезно например для последующего поиска номера открытого хотбара или вырезания баффа

S R G
17.09.2010, 05:17
я чет не догоняю... а чем эта прога плоха? http://www.irfanview.com/

Xseven
17.09.2010, 08:04
Там плугин что-ли есть, который помечает разные пиксели на двух картинках?

S R G
17.09.2010, 08:21
рамочкой обводишь что надо и Ктрл+Y нажимаешь - все вырезано... или я реально не догоняю - че твоя фишка делает :)

Роман Владимирович
17.09.2010, 08:42
Я тоже не догнал, чем она поможет в развитии персонажа

Xseven
17.09.2010, 10:11
Ну нужно вам узнать например есть ли бафф на экране или ещё что-то. Вы аккуратно вырезаете этот бафф и вставляете в файлик. А потом оказывается что вы до кучи ещё и область захватили, которая постоянно изменяется и ваш скрипт по поиску баффа на экране не работает. Мой скрипт закрашивает пиксели белым если они на скриншотах различаются. На деле-то бафф было просто вырезать, а какие части хотбара меняются, а какие нет - было под вопросом.

S R G
17.09.2010, 11:43
терь ясно, как работать должно. нет таких плагинов я не видел.

Рейтинг@Mail.ru