Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Ramzesia on February 12, 2021, 06:33:49 PM
-
Привет всем, помогите создать навигаци по меню. Посоветуйте что использовать, подпрограмму или лучше масив, со вторым не очень лажу. Нужно что то компактное и с легким обращением, типа нажать зеленую кнопку 1,2,3,4 или желтую 1,2,3,4. Есть вариан с зарание прописанными вычислениями но выглядит очень грамозко.
SUB(Сумка)
$Sumka = 0
WHILE($Sumka = 0)
GETSCREEN(130,10, 1700,600)
COLORMODE(7, 130,10, 1700,600)
IF_PICTURE_IN (130,10, 1700,600, "..\Нарезка\Сумка.bmp")
$Sumka = 1
$x = $_return1
$y = $_return2
LOGWRITE ("коры ", $x, " x ", $y)
// = Сейф ==
$KLD_x = $x - 90
$KLD_y = $y + 30
// = Востанов ==
$VOS_x = $x - 10
$VOS_y = $y + 30
// = Разбор ===
$RAZ_x = $x + 15
$RAZ_y = $y + 30
// = Удалить ===
$UDL_x = $x + 35
$UDL_y = $y + 30
// = Экипиров ===
$EKP_x = $x + 210
$EKP_y = $y + 170
// = Зелья ===
$BUT_x = $x + 210
$BUT_y = $y + 205
// = Прочее ===
$YWK_x = $x + 210
$YWK_y = $y + 270
// = Удал/Раз ===
$COM_x = $x - 210
$COM_y = $y + 460
ELSE
KEYPRESS(#a) // Открыть сумку
WAITMS(300)
END_IF
END_CYC
WAITMS(100)
END_SUB
Щас обращение такое
Сумка()
LCLICK($KLD_x,$KLD_y) // Открыть сейф
А хотелось бы, как в подпрограмме, типа вот так:
Сейф (1)
-
Привет!
Вот, так примерно можно сделать удобный вызов нужного действия.
SUB(Сумка)
$Sumka = 0
WHILE($Sumka = 0)
GETSCREEN(130,10, 1700,600)
COLORMODE(7, 130,10, 1700,600)
IF_PICTURE_IN (130,10, 1700,600, "..\Нарезка\Сумка.bmp")
$Sumka = 1
$x = $_return1
$y = $_return2
LOGWRITE ("коры ", $x, " x ", $y)
ELSE
KEYPRESS(#a) // Открыть сумку
WAITMS(300)
END_IF
END_CYC
WAITMS(100)
END_SUB
SUB(Открыть, $n)
Сумка()
SWITCH($n)
CASE("Сейф")
$x = $x - 90
$y = $y + 30
CASE("Востанов")
$x = $x - 10
$y = $y + 30
CASE("Разбор")
$x = $x + 15
$y = $y + 30
CASE("Удалить")
$x = $x + 35
$y = $y + 30
CASE("Экипиров")
$x = $x + 210
$y = $y + 170
CASE("Зелья") =
$x = $x + 210
$y = $y + 205
CASE("Прочее")
$x = $x + 210
$y = $y + 270
CASE("Удал/Раз")
$x = $x - 210
$y = $y + 460
END_SWITCH
LCLICK($x, $y) // Открыть то, что выбрано в параметре $n
LOGWRITE ($x, " - ", $y) // проверка
END_SUB
Открыть ("Сейф")
HALT
А можно всё это вынести в #include, тогда в основном скрипте совсем красиво будет.)
#include "sumka.cms" // где то выше вызова подпрограммы "Открыть"
// ...
Открыть ("Сейф") // вызов подпрограммы "Открыть" в нужном месте и с нужным параметром
-
Твой вариант мне понравился, спасибо большое, красивый и удобный вызов, даже не придется комментировать ::)
Но хотелось бы увидеть, как бы это по другому можно написать, есть меню которое появляется каждый раз по другим координатам. из за этого нужно его все время определять. В меню как видно из скрипта есть кнопочки, которые нужно нажимать, по необходимости, и вот мне, интересно как бы вы это сделали?)
-
Но хотелось бы увидеть, как бы это по другому можно написать, есть меню которое появляется каждый раз по другим координатам. из за этого нужно его все время определять. В меню как видно из скрипта есть кнопочки, которые нужно нажимать, по необходимости, и вот мне, интересно как бы вы это сделали?)
Если этот вопрос ко мне, то я бы так и сделал, как написал выше. Во первых, нужно найти опорную точку на этом меню. Которую можно быстро найти и от координат которой будут вычисляться координаты кнопок. Только непонятно в какой момент меню меняет свое местоположение. И надо ли его искать каждый раз перед очередным нажатием кнопок. Может быть достаточно будет найти его один раз, за всё время работы скрипта, и хранить его координаты в переменных? А в остальном всё тоже самое - запускаем подпрограмму типа Открыть("параметр"), которая пересчитает координаты для каждой кнопки и сделает клик, если нужно.
Ну а насчет того, чтобы написать по другому, то это можно. Можно например объединить две подпрограммы в одну. Можно отслеживать местоположение меню в отдельном потоке, через определенные интервалы времени. Можно использовать для хранения координат переменные, массив, строку, или файл. Если это весь скрипт, а не отдельный его кусок, то подпрограммы вообще можно выкинуть. И так далее...
И еще, я бы:
- кнопки вообще не искал, а назначил бы для них горячие клавиши;
- постарался зафиксировать меню;
- отказался от COLORMODE...
Если конечно всё это возможно. В общем, сначала максимально подготовил бы программу, с которой должен работать скрипт.
Короче, по месту смотреть надо, т.к. сейчас, лично у меня, вопросов больше, чем ответов. ))
-
Меню не вариан зафиксировать, кнопки назначить тоже нельзя, они открываются как вкладки подменю только кликами. Колормод можно попробовать убрать, но что это даст? Обращение идет раз в 10 мин. Мне больше интересно можно ли уменьшить количество строк? Думаю можно уменьшить 6 строк используя первые 4 кнопки общий х и боковые общий у.
-
сделать поменьше, чтобы потом сделать побольше после вызова подпрограммы?)