Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Uopilot + другая программа
31ost
сообщение 14.3.2018, 11:47
Сообщение #1


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Здравствуйте.
Что-то очень тяжко мне научится искать цифру в своей игре и решил воспользоваться альтернативным вариантом, который спёр у человека который в ahk сделал этот поиск через программу, которая называется Capture2Text, которая шикарно распознает текст и цифры и записывает их в лог.тхт вот только столкнулся с проблемой, что когда в Пилоте выполняет скрипт в котором идёт нажатие кнопки, на которую забинден запуск поиска текста в Capture2Tex и Capture2Tex не реагирует на это.. и в общем-то даже ещё не знаю как написать скрипт, чтобы он читал из этого лога эти цифры и выполнял действия, если там будут нужные мне цифры.
Вот ещё мне это непонятно зачем это
Код
TempFile := A_Temp . "\temp_capture.txt"
FileDelete, %TempFile%
RunWait, C:\Users\NoName\Desktop\tr\all\MarketPlace Helper V1.1_\Capture2Text_v4.5.1_64bit/Capture2Text_CLI.exe -d -s "727 373 804 385" -o %TempFile%,,Hide
FileRead, CaptureText, %TempFile%
FileDelete, %TempFile%

В общем хочу понять как написать скрипт, который будет использовать другую программу, которая пишет допустим цифру 4 в текстовый документ и если эта 4 мне нужна то выполнить действие.
(Скрипт пишется на аукцион в котором он обновляет страницу и с помощью Capture2Tex в нужных координатах смотрит цену, которая записывается в .тхт и если там появляется товар с нужной мне ценой то скрипт выполняет действие на покупку этого товара)
Написал на скорую руку как-то скомкано, надеюсь кто-то поймёт и подскажет как быть. Буду рад, если напишите хотя бы просто что нужно изучить на Wiki (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 14.3.2018, 11:52
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26691
Пользователь №: 16.971
Возраст: 29



Цитата
которая пишет допустим цифру 4 в текстовый документ

Файл содержит только 1 цифру и что-то ещё?
Вообще потребуется Load_array
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 14.3.2018, 14:48
Сообщение #3


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Цитата(cirus @ 14.3.2018, 11:52) *

Файл содержит только 1 цифру и что-то ещё?
Вообще потребуется Load_array

Там будет так 1,000 забыл о запятой. Есть вариант, что бы брать в учёт только вторую цифру, которая будет от 0 до 9
Спасибо это решает одну проблему (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 14.3.2018, 14:55
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26691
Пользователь №: 16.971
Возраст: 29



Код
load_array %arr "C:\temp_capture.txt"   // указать путь к файлу
log %arr [1]   // первая строка из файла
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 14.3.2018, 18:05
Сообщение #5


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Ещё такой вопрос - у меня вроде иногда срабатывает поиск цвета в перекрытом окне и после нескольких переключений на другое - перестает находить. Как с этим боротся или есть ли другая программа, которая стабильно работает?
У меня запущено допустим 5 одинаковых игр в оконном режиме и каждая наложена друг на друга, там есть один цвет пикселя, который не меняется и находится в одних и тех же координатах.
Хотелось бы чтобы в каждом окне мониторило, но вот только хотя бы с 1 окном проблема.

Код
set workwindow 263608
set #handle findwindow (111)
set #a findcolor (1000, 431 1000, 431 (1608764) %close %arr #handle)
if #a > 0
  msg 1
end_if
wait 111
set workwindow 591322
set #handle findwindow (111)
set #a findcolor (1000, 431 1000, 431 (1608764) %close %arr #handle)
if #a > 0
  msg 2
end_if
wait 111


или так делал

Код
set workwindow 263608
set #handle findwindow 263608
set #a findcolor (1000, 431 1000, 431 (1608764) %close %arr #handle)
if #a > 0
  msg 1
end_if
wait 111
set workwindow 591322
set #handle findwindow 263608
set #a findcolor (1000, 431 1000, 431 (1608764) %close %arr #handle)
if #a > 0
  msg 2
end_if
wait 111
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 14.3.2018, 18:25
Сообщение #6


***********

Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27679
Пользователь №: 11.279



Цитата
Ещё такой вопрос - у меня вроде иногда срабатывает поиск цвета в перекрытом окне и после нескольких переключений на другое - перестает находить.

Скорее всего сворачиваете окно либо сама игра подвисает по части отработки графики. Зажмите альт таб, отпустите таб и посмотрите продолжаетлся ли анимация в том окне на превьюшке (на окно не переключаться).


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 15.3.2018, 1:49
Сообщение #7


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26691
Пользователь №: 16.971
Возраст: 29



Ошибка синтаксиса:
Цитата
%close %arr #handle

Массив должен быть один, т. е. в данном случае %close или %arr.
Вообще можно сделать так:
Код
set %handle findwindow (111)  // вписать имя окна/игры
hint Найдено окон size(%handle)
// %handle[1 1] - это будет последнее активное окно с указанным именем
// %handle[2 1] - предпоследнее активное окно с указанным именем
// и т. д.
set #a findcolor (1000, 431 1000, 431 (1608764) %close %handle[1 1])  // проверит цвет в последнем активном окне
if #a > 0
    log 1111
end_if
set #a findcolor (1000, 431 1000, 431 (1608764) %close %handle[2 1])  // проверит цвет в предпоследнем активном окне
if #a > 0
    log 2222
end_if
end_script

Либо в цикле, если действия для всех окон одинаковые.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 15.3.2018, 7:57
Сообщение #8


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Спасибо.
Вот только сам не понял прикол, но он находит только при одном условии - %arr %close %handle и никак больше (IMG:style_emoticons/default/biggrin.gif) поэтому написал так, сейчас перепроверил и всё так же, если нет arr - не находит в любом случае, если нету close не находит в любом случае.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 15.3.2018, 8:10
Сообщение #9


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Спасибо.
Вот только сам не понял прикол, но он находит только при одном условии - %arr %close %handle и никак больше (IMG:style_emoticons/default/biggrin.gif) поэтому написал так, сейчас перепроверил и всё так же, если нет arr - не находит в любом случае, если нету close не находит в любом случае.

DarkMaster
Не подвисает. Сейчас снова находило находило и перестало и только при таких %arr %close %handle
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 15.3.2018, 11:19
Сообщение #10


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26691
Пользователь №: 16.971
Возраст: 29



Цитата
но он находит только при одном условии - %arr %close %handle

Синтаксис findcolor:
Цитата
set #a FindColor (StartX StartY EndX EndY ShiftX ShiftY (RequiredColor) ResultArray [type [count [deviation]]] [abs])

(RequiredColor) - цвет
ResultArray - массив, в который запишутся координаты
type - тип поиска, 2 или workwindow
count - максимальное количество цветов для поиска.
Т. е. при вашем указании параметров:
%arr - массив, в который запишутся координаты.
%close - отсутствуют индексы, параметр не будет распознан, скорее всего будет принят по умолчанию 2, т. е. поиск в активном окне
%handle - отсутствуют индексы, параметр не будет распознан, по умолчанию -1.
Поэтому ваше: set #a findcolor (1000, 431 1000, 431 (1608764) %arr %close %handle)
Равно:
Код
set #a findcolor (1000, 431 1000, 431 (1608764) %arr)  // поиск в активном окне

Перекройте окно, например блокнотом и цвета не найдутся.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 18.4.2024, 10:14
Designed by Nickostyle