Что нового

[Автоматизация] Звуковой сигнал при НПС

Автор
A

argusv

Новичок
Сообщения
14
Репутация
0
работает, только не в игре. если скрин с игры - работает, а если игру запускаешь - нет.
 

Fever

Скриптер
Сообщения
308
Репутация
112
argusv [?]
а если игру запускаешь - нет.
если в игре, пробуй с помощью:
Код:
#include <Sound.au3>
_SoundPlay ( $aSnd_id [, $iWait ] )

детальней все подробно описано в справке
 
Автор
A

argusv

Новичок
Сообщения
14
Репутация
0
Сейчас нет возможности испытать. Вот так правильнее будет?
Код:
#NoTrayIcon
Opt('MustDeclareVars', 1)
;Opt('TrayMenuMode', 1)

Global $aSearch, $iColor = 0xC11414 ;Цвет неписи
HotKeySet('{Esc}', '_Exit');Esc - выход
While 1
	WinActivate("EVE") ;Активировать окно евы
    $aSearch = PixelSearch(960, 200, 1020, 560, $iColor, 5);Координаты области скана и отклонение в цвете
    If Not @error Then ;проверяем на совпадение цвета правее на 1 и на 2 пикселя.
        If PixelGetColor($aSearch[0] + 1, $aSearch[1]) = $iColor And _
                PixelGetColor($aSearch[0] + 2, $aSearch[1]) = $iColor Then
            SoundPlay(@ScriptDir & "\22.wav", 1);Файл 22.wav должен лежать в папке со скриптом.
        EndIf
    EndIf
    Sleep(500)
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit


Добавил отклонение в цвете (5) и "Активировать окно Евы" -подумал, что он не сканит Еву пока не активен на неё.
 

hikki

Продвинутый
Сообщения
233
Репутация
99
Тут скоре частая ошибка пользователей AutoIt Window Info, при наведении на обьект, цвет обьекта меняется, поэтому стоит поискать возможность найти цвет без наведения мыши на обьект.
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
hikki [?]
Тут скоре частая ошибка пользователей AutoIt Window Info, при наведении на обьект, цвет обьекта меняется, поэтому стоит поискать возможность найти цвет без наведения мыши на обьект.

В таком случае, я узнаю координаты нужные, а потом тестовым скриптом узнаю и вывожу цвет, без наведения и изменения оного.

А ещё ошибка может быть в том, что координаты в скрипте отсчитываются от одного (к примеру от активной части клиента), а юзер после установки автоита в настройки ау3инфо не лазил, и у него выдаёт координаты к примеру от края окна. Отсюда и расхождения.
 
Автор
A

argusv

Новичок
Сообщения
14
Репутация
0
Цвет узнал из скриншота без наведения. А тестил с координатами всего экрана.
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Имхо - скриншот - плохой советчик. Лучше узнать координаты в ау3инфо, как следует, а потом просто гетколором вывести цвет в игре.
 
Автор
A

argusv

Новичок
Сообщения
14
Репутация
0
каким кодом гетколор выдаст номер цвета?
:scratch:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
argusv,
Код:
HotKeySet('{Esc}', '_Exit')
While 1
	$aMouse = MouseGetPos()
	$iColor = PixelGetColor($aMouse[0], $aMouse[1])
	ToolTip('X: ' & $aMouse[0] & @LF & 'Y: ' & $aMouse[1] & @LF & 'Color: 0x' & Hex($iColor, 6), 0, 0)
	Sleep(100)
WEnd
Func _Exit()
	Exit
EndFunc   ;==>_Exit


Или так попробуйте:
Код:
Opt('PixelCoordMode', 0)

HotKeySet('{Esc}', '_Exit')

$sTitle = '[Title:Мои документы;Class:CabinetWClass]'
$hWin = WinWait($sTitle, '', 10)
If $hWin Then
	While WinExists($hWin)
		$aPos = WinGetPos($hWin)
		$aMouse = MouseGetPos()
		$iColor = PixelGetColor($aMouse[0] - $aPos[0], $aMouse[1] - $aPos[1], $hWin)
		$sMessage = 'X: ' & $aMouse[0] - $aPos[0] & @LF & 'Y: ' & $aMouse[1] - $aPos[1] & @LF & _
				'Color: 0x' & Hex($iColor, 6)
		ToolTip($sMessage, 0, 0, 'Относительно окна', 1)
		Sleep(100)
	WEnd
Else
	MsgBox(16, 'Error', 'Нет окна :(')
EndIf
Func _Exit()
	Exit
EndFunc   ;==>_Exit
 

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
1. Используем относительные координаты
2. Делаем скриншот, открываем фотошоп, ставим режим сетки по 5 пикселей, приближаем и смотрим координаты и цвет.

пысы. для определения цвета используем инструмент пипетка и формат вывода хтмл (вроде так)
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
madmasles
Не-не-не, у тебя как раз мышку наводить нужно. А это может поменять цвет. (Кто-то видимо просто не читает темы с начала :smile:)

Код:
$x= ; нужный X
    $y= ; нужный Y
    $iColor = PixelGetColor($x, $y)
    ToolTip('X: ' & $x & @LF & 'Y: ' & $y & @LF & 'Color: 0x' & Hex($iColor, 6), 0, 0)
    sleep(3000) ; 3 сек показывать. ну или сколько надо поправить.
 

Belfigor

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

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
OffTopic:
Belfigor [?]
Он просто не играет в еву и не в курсе сей заморочки, что цвет может аж 3 раза поменяться в зависимости от положения мыши
Круто у Вас в играх. :smile:
 
Автор
A

argusv

Новичок
Сообщения
14
Репутация
0
тему можно закрыть. вопрос решён.
 
Верх