Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Pronin on February 21, 2016, 08:31:46 AM
-
Доброго времени суток.
Опыт в программировании у меня закончился ещё на Бейсике (то есть линейное исполнение программ, нет переменных Итак далее), но желание научится есть давно],а вот сейчас по прошествии лет так 30 понадобилось написать бота для игрушки (браузерка).
Начал думать как это сделать но возник вопрос по принципу работы логики.
Так вот после прочтения кучи тем понял что принцип построения программы такой :
1) Есть ядро которое постоянно висит и мониторит состояние игры
2) В зависимости от происходящего начинают выполнятся какие либо действия.
3) После выполнения подпрограмм состояние возвращается в п.1
Состояния которые надо постоянно мониторить (например потеря соединения) надо включать в пункт 1, но тут же вопрос, а что если это состояние наступит при выполнении любой подпрограммы пункта 2? Значит надо добавлять проверку и в п.2? Или п.1 постоянно мониторит не зависимо от того что выполняется в данный момент и может отменить выполнение п.2?
P.S. Как то сумбурно получилось, но тяжело сформулировать свои мысли когда не занимался ООП даже Паскаль в руках не держал:)
P.S.S А что происходит с проектом в данный момент ?
-
да уж, сумбурно.
ну как бы да. это принцип работы любой резидентной программы. она висит, мониторит и реагирует.
ты программируешь то на что она регарирует (анализ экрана, нажатие клавиш, ...) и каким образом.
ну или в простейших случаях даже без проверки условий, программа тупо лупит по кнопкам в заданном порядке.
на самом деле тут не нужно изучать никаких жутких трактатов (да, я видел книги по которым раньше учили программистов в этой стране), сейчас все максимально дружелюбно.
у нас программируют и те кто вообще этим никогда не занимался. достаточно просто изучить типовые решения, их немного.
ты спросить то что хотел? ))
-
P.S.S А что происходит с проектом в данный момент ?
вялотекущее развитие, направленное скорее на подчищение хвостов, чем какие то революционные решения.
я повторюсь, сейчас функционал позволяет решить наверное 90% задач пользователя, поэтому особого смысла что то радикально курочить нет.
из следующих обозримых целей - выпуск 64 битной версии. изза ограничений ОС, взаимодействие 32 и 64 битных приложений друг с другом весьма ограничено.
-
да уж, сумбурно.
ну как бы да. это принцип работы любой резидентной программы. она висит, мониторит и реагирует.
ты программируешь то на что она регарирует (анализ экрана, нажатие клавиш, ...) и каким образом.
ну или в простейших случаях даже без проверки условий, программа тупо лупит по кнопкам в заданном порядке.
Нет, мне не надо тупо лупить по кнопкам:) Это можно сделать и на матросах к мышке и клаве.
Мне нужна логика в действиях:)
Ну значит будем изучать с нуля.
P.S Вопрос был в том что правильно ли я понимаю принцип построения программы
-
есть основное тело скрипта, есть дочерние(потоки)
Можешь дочерними потоками проверять сбои, менять флаги, которые будут выключать выполнение скрипта, переходя на исправление сбоев
-
Так как мою тему посетил САМ Джонни то это судьба, и надо начинать осваивать данную программу:)
Итак, так как Hello World в бейсике я написал ещё лет 30 назад то решено было начать с другого, а именно с GETSCREEN и дальнейшем сохранением скриншота в папочку:)
Вот он мой эпохальный первый код:
1 GETSCREEN(1,155,1602,1035)
2 SCREENSHOT
3 print ("ОМГ получилось")
4 HALT
Далее я наслаждался свежесделанной картинкой минут 5.
Ну думаю с почином:)
Теперь задача сложнее:
Есть 8 мест (жестко привязанных по координатам) где может появится 1 из цветов пикселя и в зависимости от цвета мне нужно выполнить разные действия.
Логику я же правильно понимаю:
В основном теле программы делаем GETSCREEN , далее смотрим по координатам цвет пикселя и если он (допустим) 100 то выполняется действие LCLICK по этим координатам, а если (допустим) 200 то надо загрузить подпрограмму со скриптом.
При этом надо проводить проверку на потерю соединения путём сравнения картинки или подсчёт пикселей в определённой зоне на экране (ну это я думаю можно вывести в ядро программы и при совпадении прерывать скрипт)
-
Итак появилось время на продолжение
попыток работ по созданию мегасупербота.
Прочитал про массивы и примерно понял как они работают и решил попробовать использовать их в программе:
GETSCREEN (0,153,1602,1035)
COLORMODE(8)
SCANPICTURE($var, 164,853,1447,1023, "take.bmp",5026082,95)
while (arrsize($var) > 0)
$y = arrpop($var)
$x = arrpop($var)
PRINT(""$x,":"$y)
end_cyc
WAIT(5)
На выходе я получил 4 координаты из 4 возможных:) Это был кусок из нужного мне ядра..
Теперь вопрос знатокам:
GETSCREEN глобальная команда и доступна в из любого места программы,потока,подпрограммы?
-
А как мне модифицировать мой код что бы по одному скану можно было просканировать 3 области и с разными картинками?
-
Пока смотрел телевизор придумал как можно такое осуществить.
GETSCREEN (0,153,1602,1035)
COLORMODE(8)
SCANPICTURE($var1, 100,100,100,100, "take1.bmp",5026082,95)
SCANPICTURE($var2, 200,200,200,200, "take2.bmp",5026082,95)
SCANPICTURE($var3, 300,300,300,300, "take3.bmp",5026082,95)
while (arrsize($var1) > 0)
$y = arrpop($var1)
$x = arrpop($var1)
PRINT("Найдено совпадений:", arrsize($var1))
end_cyc
waitms(50)
while (arrsize($var2) > 0)
$y = arrpop($var2)
$x = arrpop($var2)
PRINT("Найдено совпадений:", arrsize($var2))
end_cyc
while (arrsize($var3) > 0)
$y = arrpop($var3)
$x = arrpop($var3)
PRINT("Найдено совпадений:", arrsize($var3))
end_cyc
WAIT(5)
Будет работать?
И есть ли какие то более продуктивные способы сделать эти действия?
-
SUB(способ, ($par0, $par1, $par2, $par3, $par4, $par5, $par6, $par7) // подпрограмма с параметрами
GETSCREEN ($par1, $par2, $par3, $par4) // сканируется только сектор поиска, это быстрее чем сканировать большой общий сектор
COLORMODE(8)
SCANPICTURE($par0, $par1, $par2, $par3, $par4, $par5, $par6, $par7)
while (arrsize($par0) > 0)
$y = arrpop($par0)
$x = arrpop($par0)
PRINT("Найдено совпадений:", arrsize($par0))
end_cyc
waitms(50)
END_SUB
способ($var1, 100,100,100,100, "take1.bmp",5026082,95) // вызов подпрограммы (обязательно ниже подпрограммы)
способ($var2, 200,200,200,200, "take2.bmp",5026082,96) // число вызовов с различными параметрами, число используемых параметров должно соответствовать описанным в подпрограмме.
способ($var2, 300,300,300,300, "take2.bmp",5026082,97)
Уважаемый Кирилл, объясните мне как Ваш код работает по пунктам... просто у меня опыта совсем нет и смотрю на него как баран на новые ворота:) Понять не могу....
Да кстати а как вставлять код как у вас с подсветкой лексики?
-
SUB(способ, ($par0, $par1, $par2, $par3, $par4, $par5, $par6, $par7) <---- Эта строчка означает что мы создаём подпрограмму с именем "способ" и параметрами в виде переменных?
А значения значения переменных где объявляются?
Вернее даже как мне присвоить им значения?
$par0=100 <-- так?
P.S. Вы меня извините что приходится разжёвывать такие простые для Вас вещи...
-
SUB(способ, ($par0, $par1, $par2, $par3, $par4, $par5, $par6, $par7) <---- Эта строчка означает что мы создаём подпрограмму с именем "способ" и параметрами в виде переменных?
А значения значения переменных где объявляются?
Вернее даже как мне присвоить им значения?
$par0=100 <-- так?
способ($var1, 100,100,100,100, "take1.bmp",5026082,95) // вызов подпрограммы (обязательно ниже подпрограммы)
вот здесь мы передаем координаты
-
SUB(способ, ($par0, $par1, $par2, $par3, $par4, $par5, $par6, $par7) <---- Эта строчка означает что мы создаём подпрограмму с именем "способ" и параметрами в виде переменных?
А значения значения переменных где объявляются?
Вернее даже как мне присвоить им значения?
$par0=100 <-- так?
способ($var1, 100,100,100,100, "take1.bmp",5026082,95) // вызов подпрограммы (обязательно ниже подпрограммы)
вот здесь мы передаем координаты
То есть после вызова подпрограммы переменным в ней будут присвоены такие данные: $par0 = $var1 , $par1 = 100, $par2 = 100, $par3 = 100, $par4 = 100, $par5 = "take1.bmp" , $par6 = 5026082, $par7 = 95
Вот это поворот:)
-
Хмммм выдаёт ошибку ( не найден 0)
Сделал логирование после каждого пункта и получилось что ошибка в передачи имени файла.. то есть он передаёт в подпрограмму вместо take1.bmp --> 0
-
ну значит картинки с таким названием, в папке в которой сохранён скрипт ненайдено.
Не не не .. Сделал вывод лога значений переменных ... он вернул 0 на все
SUB(get_items,($get0, $get1, $get2, $get3, $get4, $get5, $get6, $get7))
LOGWRITE ("Ïåðåìåííûå ïîëó÷èíû:", $get0, $get1, $get2, $get3, $get4, $get5, $get6, $get7)
GETSCREEN( $get1, $get2, $get3, $get4)
LOGWRITE ("Êàðòèíêà ïîëó÷åíà")
COLORMODE(8)
LOGWRITE ("Êàðòèíêà îáðàáîòàíà")
WAITMS(50)
SCANPICTURE($get0, $get1, $get2, $get3, $get4, $get5, $get6, $get7)
LOGWRITE ("Ñêàíèðîâàíèå îáëàñòè âûïîëíåíî")
WHILE (arrsize($get0) > 0)
PRINT ("Íàéäåíî ñâîáîäíûõ ñëîòîâ :", arrsize($get0)/2)
END_CYC
END_SUB
LOGWRITE ("Ïîäïðîãðàììà Çàïóñêàåòñÿ")
get_items( $var, 168, 867, 1437, 1015, "take.bmp", 5026082, 99)
LOGWRITE ("Ïîäïðîãðàììà Çàâåðøåíà")
WAIT(10)
Что то тут не так....
-
На кой ляд ты в параметрах лишние скобки приписал? Массив не может участвовать в параметрах подпрограммы
SUB(get_items,$get, $get1, $get2, $get3, $get4, $get5, $get6, $get7)
LOGWRITE ("Переменные получины:", $get0, $get1, $get2, $get3, $get4, $get5, $get6, $get7)
GETSCREEN($get1, $get2, $get3, $get4)
LOGWRITE ("Картинка получена")
COLORMODE(8)
LOGWRITE ("Картинка обработана")
SCANPICTURE($get0, $get1, $get2, $get3, $get4, $get5, $get6, $get7)
LOGWRITE ("Сканирование области выполнено")
WHILE (arrsize($get0) > 0)
PRINT ("Найдено свободных слотов :", arrsize($get0)/2)
END_CYC
END_SUB
LOGWRITE ("Подпрограмма Запускается")
get_items($var, 168, 867, 1437, 1015, "take.bmp", 5026082, 99)
LOGWRITE ("Подпрограмма Завершена")
WAIT(10)
-
Ура, я сделал наполовину то что хотел:
SUB(get_items,$get, $get1, $get2, $get3, $get4, $get5, $get6, $get7)
GETSCREEN( $get1, $get2, $get3, $get4)
LOGWRITE ("Êàðòèíêà ïîëó÷åíà")
COLORMODE(8)
LOGWRITE ("Êàðòèíêà îáðàáîòàíà")
WAITMS(50)
SCANPICTURE($get0, $get1, $get2, $get3, $get4, $get5, $get6, $get7)
LOGWRITE ("Ñêàíèðîâàíèå îáëàñòè âûïîëíåíî")
WHILE (arrsize($get0) > 0)
$y = arrpop($get0)
$x = arrpop($get0)
LCLICK( $x, $y)
WAIT(3)
LCLICK(598,1030)
WAIT(3)
PRINT ("Íàéäåíî çàâåðø¸ííûõ ïðåäìåòîâ :" , $x , ":" , $y)
END_CYC
END_SUB
SUB(craft_items,$cre, $cre1, $cre2, $cre3, $cre4, $cre5, $cre6, $cre7)
GETSCREEN( $cre1, $cre2, $cre3, $cre4)
LOGWRITE ("Êàðòèíêà êðàôòà ïîëó÷åíà")
COLORMODE(8)
LOGWRITE ("Êàðòèíêà êðàôòà îáðàáîòàíà")
WAITMS(50)
SCANPICTURE($cre0, $cre1, $cre2, $cre3, $cre4, $cre5, $cre6, $cre7)
LOGWRITE ("Ñêàíèðîâàíèå îáëàñòè êðàôòà")
WHILE (arrsize($cre0) > 0)
$y = arrpop($cre0)
$x = arrpop($cre0)
LCLICK( $x, $y)
WAIT(3)
LCLICK(1513,907)
WAIT(3)
LCLICK(129,599)
SETTHREAD (take_res, 1)
WAIT(30)
SETTHREAD (take_res, 0)
PRINT ("Íàéäåíî ñâîáîäíûõ ñëîòîâ äëÿ êðàôòà :" , $x , ":" , $y)
END_CYC
END_SUB
LOGWRITE ("Ïîäïðîãðàììà Çàïóñêàåòñÿ")
SETTHREAD (take_res, 0)
get_items( $var, 168, 867, 1243, 1015, "take.bmp", 5026082, 95)
WAITMS(50)
craft_items( $var1, 168, 867, 1243, 1015, "create.bmp", 5026082, 94)
LOGWRITE ("Ïîäïðîãðàììà Çàâåðøåíà")
SETTHREAD (take_res, 1)
WAIT(10)
Но тут появилась проблема :
Иногда не хватает ресурсов на крафт какой либо вещи и бот встаёт так как нет проверки на достаточность материалов. Есть ли алгоритм как мне определять кол-во ресурсов (цифры в виде картинок) или искать другие пути?
-
вот - http://crapware.aidf.org/forum/index.php?topic=33.msg8320#msg8320 .
если цифры на непрозрачном статичном фоне и без сглаживания, то можно использовать вот это http://crapware.aidf.org/forum/index.php?topic=33.msg8335#msg8335
-
Только не 'вот', а вот:
http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571
Там версия 1.5 с блэкджеком колормодом и процентами
-
:D беспорядок, добавь ссылку в шапку "типовые алгоритмы, вводные статьи".
-
Только не 'вот', а вот:
http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571
Там версия 1.5 с блэкджеком колормодом и процентами
Во общем решил не считывать циферки а проверить появление окна о том что не хватает ресурсов.
Получилось вот что:
THREAD(take_res, 0)
lDown(1573,309)
waitms(200)
move(1573,311)
waitms(6)
move(1572,313)
waitms(6)
move(1572,315)
waitms(6)
move(1571,320)
waitms(6)
move(1571,325)
waitms(8)
move(1570,328)
waitms(8)
move(1570,332)
waitms(8)
move(1569,336)
waitms(8)
move(1569,339)
waitms(8)
move(1568,342)
waitms(8)
move(1568,345)
waitms(6)
move(1567,348)
waitms(8)
move(1567,350)
waitms(8)
move(1567,353)
waitms(8)
move(1566,357)
waitms(8)
move(1566,359)
waitms(8)
move(1565,362)
waitms(8)
move(1565,364)
waitms(6)
move(1565,366)
waitms(8)
move(1564,368)
waitms(8)
move(1564,370)
waitms(8)
move(1564,372)
waitms(8)
move(1564,374)
waitms(8)
move(1563,378)
waitms(8)
move(1563,380)
waitms(8)
move(1563,383)
waitms(6)
move(1562,386)
waitms(8)
move(1562,389)
waitms(10)
move(1562,392)
waitms(6)
move(1562,394)
waitms(8)
move(1562,397)
waitms(8)
move(1562,400)
waitms(8)
move(1561,402)
waitms(8)
move(1561,406)
waitms(6)
move(1561,409)
waitms(8)
move(1561,412)
waitms(8)
move(1561,415)
waitms(8)
move(1561,417)
waitms(8)
move(1561,420)
waitms(8)
move(1561,423)
waitms(8)
move(1561,426)
waitms(8)
move(1560,429)
waitms(6)
move(1560,432)
waitms(8)
move(1560,435)
waitms(8)
move(1560,438)
waitms(8)
move(1560,440)
waitms(8)
move(1560,443)
waitms(8)
move(1560,447)
waitms(6)
move(1560,450)
waitms(8)
move(1560,452)
waitms(8)
move(1560,455)
waitms(8)
move(1559,458)
waitms(8)
move(1559,462)
waitms(8)
move(1559,465)
waitms(12)
move(1559,468)
waitms(10)
move(1559,474)
waitms(8)
move(1559,477)
waitms(8)
move(1559,481)
waitms(8)
move(1559,484)
waitms(8)
move(1559,488)
waitms(8)
move(1559,491)
waitms(8)
move(1559,496)
waitms(6)
move(1559,500)
waitms(8)
move(1558,503)
waitms(8)
move(1558,506)
waitms(8)
move(1558,509)
waitms(8)
move(1558,512)
waitms(8)
move(1558,515)
waitms(8)
move(1558,518)
waitms(6)
move(1558,521)
waitms(8)
move(1557,525)
waitms(10)
move(1557,527)
waitms(6)
move(1557,530)
waitms(8)
move(1557,533)
waitms(8)
move(1557,535)
waitms(8)
move(1556,537)
waitms(8)
move(1556,540)
waitms(6)
move(1556,543)
waitms(8)
move(1556,545)
waitms(8)
move(1556,548)
waitms(8)
move(1556,552)
waitms(8)
move(1556,555)
waitms(8)
move(1556,557)
waitms(8)
move(1555,560)
waitms(6)
move(1555,562)
waitms(8)
move(1555,565)
waitms(8)
move(1555,567)
waitms(8)
move(1555,570)
waitms(8)
move(1555,573)
waitms(8)
move(1555,577)
waitms(8)
move(1555,580)
waitms(6)
move(1554,582)
waitms(8)
move(1554,585)
waitms(10)
move(1554,587)
waitms(6)
move(1554,590)
waitms(8)
move(1554,593)
waitms(8)
move(1554,595)
waitms(8)
move(1554,598)
waitms(6)
move(1554,600)
waitms(8)
move(1554,604)
waitms(8)
move(1554,606)
waitms(8)
move(1554,609)
waitms(8)
move(1554,611)
waitms(8)
move(1554,614)
waitms(8)
move(1554,616)
waitms(8)
move(1554,618)
waitms(10)
move(1554,621)
waitms(12)
move(1554,625)
waitms(8)
move(1554,628)
waitms(8)
move(1554,630)
waitms(8)
move(1554,632)
waitms(8)
move(1554,634)
waitms(6)
move(1554,636)
waitms(8)
move(1554,639)
waitms(8)
move(1554,641)
waitms(8)
move(1554,644)
waitms(8)
move(1554,646)
waitms(8)
move(1554,649)
waitms(8)
move(1554,651)
waitms(8)
move(1554,653)
waitms(6)
move(1554,655)
waitms(8)
move(1554,656)
waitms(8)
move(1554,658)
waitms(10)
move(1554,659)
waitms(6)
move(1554,660)
waitms(8)
move(1554,662)
waitms(8)
move(1554,663)
waitms(8)
move(1554,664)
waitms(6)
move(1554,666)
waitms(8)
move(1554,667)
waitms(8)
move(1554,668)
waitms(8)
move(1554,669)
waitms(8)
move(1554,671)
waitms(8)
move(1555,673)
waitms(8)
move(1555,674)
waitms(6)
move(1555,676)
waitms(8)
move(1555,678)
waitms(10)
move(1555,680)
waitms(6)
move(1555,682)
waitms(8)
move(1556,684)
waitms(8)
move(1556,686)
waitms(8)
move(1556,688)
waitms(6)
move(1556,690)
waitms(8)
move(1557,692)
waitms(8)
move(1557,695)
waitms(10)
move(1557,697)
waitms(6)
move(1558,701)
waitms(8)
move(1558,703)
waitms(8)
move(1558,705)
waitms(7)
move(1559,708)
waitms(7)
move(1559,710)
waitms(8)
move(1559,712)
waitms(8)
move(1560,715)
waitms(8)
move(1560,717)
waitms(8)
move(1560,719)
waitms(8)
move(1561,721)
waitms(6)
move(1561,722)
waitms(8)
move(1561,724)
waitms(12)
move(1561,725)
waitms(4)
move(1561,726)
waitms(8)
move(1562,727)
waitms(8)
move(1562,729)
waitms(8)
move(1562,730)
waitms(8)
move(1562,732)
waitms(6)
move(1562,734)
waitms(10)
move(1562,737)
waitms(6)
move(1562,738)
waitms(8)
move(1562,740)
waitms(8)
move(1562,742)
waitms(8)
move(1562,744)
waitms(8)
move(1562,746)
waitms(6)
move(1562,748)
waitms(8)
move(1563,750)
waitms(8)
move(1563,752)
waitms(8)
move(1563,755)
waitms(8)
move(1563,759)
waitms(8)
move(1563,761)
waitms(8)
move(1563,763)
waitms(6)
move(1563,765)
waitms(8)
move(1563,766)
waitms(10)
move(1563,768)
waitms(6)
move(1563,769)
waitms(8)
move(1563,770)
waitms(10)
move(1564,771)
waitms(6)
move(1564,773)
waitms(8)
move(1564,775)
waitms(6)
move(1564,776)
waitms(16)
move(1564,777)
waitms(8)
move(1564,778)
waitms(8)
move(1564,779)
waitms(8)
move(1564,780)
waitms(8)
move(1565,780)
waitms(6)
move(1565,781)
waitms(8)
move(1565,782)
waitms(8)
move(1565,783)
waitms(8)
move(1565,785)
waitms(8)
move(1565,786)
waitms(10)
move(1565,787)
waitms(6)
move(1565,788)
waitms(8)
move(1565,789)
waitms(6)
move(1565,790)
waitms(8)
move(1565,791)
waitms(8)
move(1565,792)
waitms(8)
move(1566,793)
waitms(8)
move(1566,794)
waitms(16)
move(1566,795)
waitms(200)
move(1566,796)
waitms(8)
move(1567,797)
waitms(8)
move(1567,798)
waitms(8)
move(1567,799)
waitms(8)
move(1567,800)
waitms(6)
move(1567,801)
waitms(8)
move(1568,802)
waitms(8)
move(1568,803)
waitms(8)
move(1568,804)
waitms(8)
lUp(1568,804)
WAIT(15)
LOGWRITE ("Задание выполнено")
END_THREAD
SUB(get_items,$get, $get1, $get2, $get3, $get4, $get5, $get6, $get7)
GETSCREEN( $get1, $get2, $get3, $get4)
LOGWRITE ("Картинка получена")
COLORMODE(8)
LOGWRITE ("Картинка обработана")
WAITMS(50)
SCANPICTURE($get0, $get1, $get2, $get3, $get4, $get5, $get6, $get7)
LOGWRITE ("Сканирование области выполнено")
WHILE (arrsize($get0) > 0)
$y = arrpop($get0)
$x = arrpop($get0)
If ($get5 = take.bmp)
LCLICK( $x, $y)
WAIT(3)
LCLICK(598,1030)
WAIT(3)
PRINT ("Найдено завершённых предметов :" , $x , ":" , $y)
ELSE
LCLICK(56,710)
WAIT(2)
LCLICK(1513,988)
WAIT(2)
LCLICK(572,705)
WAIT(2)
LCLICK(617,773)
WAIT(2)
LCLICK(1152,399)
WAIT(2)
LCLICK(784,703)
WAIT(2)
LCLICK(624,762)
WAIT(2)
LCLICK(624,762)
WAIT(2)
LCLICK(1153,400)
WAIT(2)
LCLICK(1549,255)
WAIT(2)
LCLICK(624,762)
WAIT(5)
stop:
LCLICK( $x, $y)
WAIT(2)
LCLICK(1513,907)
WAIT(2)
LCLICK(129,599)
WAIT(2)
GETSCREEN( 833, 262, 894, 321)
COLORMODE(8)
IF_PICTURE_IN( 833, 262, 894, 321, "error.bmp", 5026082, 99) // проверка на ресурсы
LOGWRITE ("Ресурсов недостаточно..")
WAIT(2)
LCLICK(1424,295)
WAIT(2)
LCLICK(1539,163)
WAIT(2)
SETTHREAD (take_res, 1)
WAIT(30)
SETTHREAD (take_res, 0)
GOTO(stop)
ELSE
END_IF
PRINT ("Найдено свободных слотов для крафта :" , $x , ":" , $y)
END_IF
END_CYC
END_SUB
LOGWRITE ("Подпрограмма Запускается")
SETTHREAD (take_res, 0)
get_items( $var, 168, 867, 1243, 1015, "take.bmp", 5026082, 95)
WAITMS(50)
get_items( $var1, 168, 867, 1243, 1022, "create.bmp", 5026082, 94)
LOGWRITE ("Подпрограмма Завершена")
SETTHREAD (take_res, 1)
WAIT(10)
Помогите оптимизировать
-
Стоки надо вставлять в кавычки
If ($get5 = "take.bmp")