Что нового

[Lineage II] Поиск цвета пикселя и его замены на другой

DoBBy

Новичок
Сообщения
4
Репутация
0
Собсно интересует такой вопрос. Можно ли реализовать такую вещь:
Найти пиксиль определенного цвета (цвет 1)
И в момент замены его цвета на другой (цвет 2)
Нажимать клавишу.
И все это, конечно же, для неактивного окна.
 
Автор
D

DoBBy

Новичок
Сообщения
4
Репутация
0
Re: Поиск цвета пикселя и его замены на другой

Если я все правильно понял, то должно быть примерно так:
Код:
Sleep(1000)
ControlSend("Lineage II", '', '', '{F1}')
       Sleep(1000)
$hWnd1 = WinGetHandle('Lineage II')
ControlClick($hWnd1,"","","","1","550","60")
       Sleep(5750)
                        
$hwnd = WinGetHandle("Lineage II")      
    FFsetWnd($hwnd)
#include <FastFind.au3>
AdlibRegister("_chk_loc") 	
Func _chk_loc()           
    $Neutral = FFColorCount(0xff866b, 0, True, 165, 40, 180, 360)

    If $Neutral = FFColorCount(0xc5ecc5 0, True, 165, 40, 180, 360) Then
       ControlSend("Lineage II", '', '', '{Space}')         
    EndIf
EndFunc

Но он не работает и выдает такую ошибку:
Line 172 (File "C:\Program Files\AutoIt3\Scripts\FastFind.au3"):

DllCall($FFDllHandle, "none", "SetHWnd", "HWND", $WindowHandle, "BOOLEAN", $ClientOnly)
DllCall(^ERROR
Error: Variable used without being daclared.
 

lirikmel

Продвинутый
Сообщения
226
Репутация
84
Re: Поиск цвета пикселя и его замены на другой

ну почти -))

Код:
#include <FastFind.au3>
Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
$hWnd = WinGetHandle('Lineage II')
 FFsetWnd($hwnd)
global $x = 550
global $y = 60
  
While 1 ;бесконечный цикл
Sleep(1000)
ControlSend("Lineage II", '', '', '{F1}')
   Sleep(1000)

ControlClick($hWnd,"","","left",$x,$y)
   Sleep(5750)
                        
    
   
FFSnapShot( 165, 40, 180, 360) ;участок экрана где есть считываемый пиксель
 global $Neutral = FFColorCount(0xc5ecc50, True, 165, 40, 180, 360) Then ;ищем нужные пиксели(0xc5ecc50) на этом участке
      If $Neutral >1 ;если находим хоть один то 
ControlSend("Lineage II", '', '', '{Space}')         
    EndIf
wend
 
Автор
D

DoBBy

Новичок
Сообщения
4
Репутация
0
Re: Поиск цвета пикселя и его замены на другой

Или я что то не понимаю или на WinXP x32 не работает, а точнее не может загрузить FastFind.dll :scratch:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Поиск цвета пикселя и его замены на другой

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Поиск цвета пикселя и его замены на другой" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.








Если где-то в теме упоминается название игры. Автор в обязан указать его в названии темы, в соответствии с правилами. Иначе тема будет закрыта, а автору выдано предупреждение.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Попробуй сперва сделать то что хочешь без различных UDF, а стандартными средствами AutoIt. А то чтобы делать оптимизированно, сперва надо сделать хоть как-то. Найти нужный пиксель в заданной области ты сможешь с помощью команды PixelSearch, далее же отследить изменение цвета ты сможешь с помощью команды PixelGetColor.
 
Верх