Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - novhome

Pages: [1] 2 3
1
У меня три компа без мониторов стоят и все работает.
Вот и расскажи как всё работает. На этих компах работает кликер? Скрипты с анализом графики?
Рассказывать особо нечего. 3 компа (Win7, Win10), на каждом по десятку окон Bluestacks, на каждом кликер. Скрипты с анализом графики. Часть скриптов запускается при перезагрузке, часть - командами через telegram. В компы включены только кабель питания и сеть. На каждом стоит Radmin Server, к которым подключаемся через Radmin Viewer.
Стандартный виндовый Rdp работает криво. Подгоняет разрешение под монитор компа, с которого подключаешься. Если на целевой машине разрешение другое, то все сыпется.

2
У меня три компа без мониторов стоят и все работает.

3
Я пользуюсь "Radmin", если из локалки и "AnyDesk" из внешней сети.

4
Координаты лучше через переменные задать (изменятся размеры окна и все поплывет), тем более они у тебя одинаковые везде. Если придется изменить, то возни много. И нажатия срабатывать будут в активном окне, т. е. ты нажал, например, запуск скрипта на кликере, он тебе нашел пиксель и нажал стрелку, но не в том окне, где искал, а в активном.

5
Code: (Clickermann) [Select]
getscreen
WAITMS(20)
 
if_pixel_in(776, 802, 776, 802, 4194303)   //ищет первый цвет
print("Нашли первый цвет")
waitms(10)
KEYPRESS(40)
else
print("Не нашли первый цвет")
waitms(20)
end_if
if_pixel_in(776, 802, 776, 802, 16777023) //ищет второй цвет
print("Нашли второй цвет")
waitms(10)
KEYPRESS(37)
else
print("Не нашли второй цвет")
waitms(20)
end_if
if_pixel_in(776, 802, 776, 802, 12550143) //ищет третий цвет
print("Нашли третий цвет")
waitms(10)
KEYPRESS(39)
else
print("Не нашли третий цвет")
waitms(20)
end_if
if_pixel_in(776, 802, 776, 802, 4177919) //ищет четвертый цвет
print("Нашли четвертый цвет")
waitms(10)
KEYPRESS(38)
else
print("Не нашли четвертый цвет")
waitms(20)
end_if
HALT

6
Он выполняет свою задачу и выключается. У тебя не пописано ничего, что делать, если ничего не нашлось. Colormode убери.

7
А что не работает?
Я думаю, как минимум, colormode здесь не нужен.

8
Общие вопросы / Оптимизация кода
« on: August 27, 2021, 02:49:06 PM »
Подскажите, есть ли возможность оптимизировать такой код. Когда вложенность небольшая, то все норм. Когда уровней становится много, то сложно не запутаться.

Code: (Clickermann) [Select]
program1()
SWITCH($st1)
CASE(0)
program2()
SWITCH($st2)
CASE(0)
program3()
SWITCH($st3)
CASE(0)
program4()
SWITCH($st4)
CASE(0)
program5()
SWITCH($st5)
CASE(0)
// И так далее
CASE(1)
exit()
END_SWITCH // $st5
CASE(1)
exit()
END_SWITCH // $st4
CASE(1)
exit()
END_SWITCH // $st3
CASE(1)
exit()
END_SWITCH // $st2
CASE(1)
exit()
END_SWITCH //$st1

9
Спасибо, работает. Теперь немного усложню  :). На основе предыдущей задачи нужно часть аккаунтов не пропустить, а прогнать их через другой код.

Code: (Clickermann) [Select]
$script1_ignore = ",3,7,8,12,15," //Список аккаунтов, которые пропускаются
$script2_ignore = ",2,11,30,44,47," // Список аккаунтов, к которым применяется другой код

$acc_start = 1 // Стартовый номер аккаунта
$acc_end = 50 // Конечный номер аккаунта
$acc_number = $acc_start
WHILE($acc_number <= $acc_end)
IF(STRPOS($script1_ignore, STRCONCAT(",", $acc_number, ",")) = 0)
$status = 1
END_IF

IF(Здесь условие, при котором срабатывают из списка $script2_ignore)
$status = 2
END_IF

WAITMS(30)

SWITCH($status)
CASE(1)
$login=INIREAD("config.ini", STRCONCAT("account", $acc_number, "ACCOUNT"))
// Далее код 1
CASE(2)
$login=INIREAD("config.ini", STRCONCAT("account", $acc_number, "ACCOUNT"))
// Далее код 2
END_SWITCH

INC($acc_number)

END_CYC

10
Как сам не сообразил. Это же просто ))) Спасибо.
С задержкой да, промахнулся, подразумевалось 50, но как-то нолик добавился.

11
Поправил.
"Некоторые аккаунты" известны. Например, для второго сценария нужно исключить 3, 7, 8, 12, 15, а для третьего, например, 2, 11, 30, 44, 47. Можно, наверное, номера в файлы запихнуть и оттуда выдергивать или в массивы. Но как применить не соображу.

12
Есть список аккаунтов в файле .ini в виде account1="login1", account2="login2".....accountn="loginn" . В одном сценарии скрипт проходится по всем аккаунтам циклом и проблем не возникает. Во втором сценарии из списка необходимо исключить некоторые аккаунты, в третьем сценарии нужно исключить из списка какие-то другие. Подскажите как реализовать.
Code: (Clickermann) [Select]
$acc_number = 1 // Стартовый номер аккаунта
$acc_end = 50 // Конечный номер аккаунта
WHILE($acc_number <= $acc_end)
       
      $login=INIREAD("config.ini", STRCONCAT("account", $acc_number, "ACCOUNT"))
     
       // Здесь какой-то код

       INC($acc_number)
END_CYC

13
В игре при запуске выскакивает окно с меняющей свой цвет кнопкой. Чтобы найти кнопку, создал скрины с разным ее состоянием. Запихнул их в массив и прохожусь циклом. Оно как бы работает, кнопка находится, но поиск идет относительно долго и не заканчивается пока весь цикл не пройдет. По факту находится несколько совпадений. Вопрос - как заставить скрипт прерывать цикл при первом нахождении картинки. Или может не стоит заморачиваться с массивом?
Code: (Clickermann) [Select]
SUB(reklamapb)
IF($log = 1)
LOGWRITE(STRCONCAT($name, " - Ищем Рекламу ПБ"))
END_IF
WAITMS(100)
GETFILELIST($buy_arr, "Screen\buy\*.bmp") // Помещаем образцы рекламы в массив
$time = $_time_t + 120
WHILE($time > $_time_t)
GETSCREEN ($x1_buy, $y1_buy, $x2_buy, $y2_buy)
COLORMODE(4)
FOR($buy_num=0,$buy_num<ARRSIZE($buy_arr))
IF_PICTURE_IN ($x1_buy, $y1_buy, $x2_buy, $y2_buy, STRCONCAT("Screen\buy\", $buy_arr[$buy_num]), -1, 90)
$time = 0
$st_rekpb = 0
IF($log = 1)
LOGWRITE(STRCONCAT($name, " - Нашли Рекламу ПБ"))
END_IF
WAITMS(100)
ELSE
WAITMS(500)
END_IF
END_CYC
END_CYC
IF($time ! 0)
IF($log = 1)
LOGWRITE(STRCONCAT($name, " - Не нашли Рекламу ПБ"))
END_IF
$st_rekpb = 1
END_IF
END_SUB

14
Спасибо за наводку.
Получилось через curl, но немного пришлось поправить код. HTTPGET не нужен, с ним curl выдает ошибку.
Сделал так:
Code: (Clickermann) [Select]
$url = "https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id>&text="
$text = "Hoba!"
 
EXECUTE("cmd.exe", STRCONCAT("/C curl ", CHAR(34), $url, $text, CHAR(34)))
 
HALT
[size=78%]В процессе отладки выяснилось, что через curl не отправляется текст на кириллице (выдает ошибку, что текст не UTF-8). Возможно, это настраивается, но я не нашел.[/size]
[/size][size=78%]В скрипте требуется отправка сообщений на кириллице.[/size]


15
Наверное, я неправильно описал ситуацию.
Пытаюсь отправить сообщение telegram-боту через HTTPGET
Code: [Select]
HTTPGET("https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id>&text=Test")В errorlog.txt получаю ошибку HTTPGET Error.
Если в качестве ссылки вставить, например, "https://yandex.ru", то ошибки нет.
Windows 7x64. Clickermann v.4.13.014x32. Рядом с экзешником лежат libeay32.dll и ssleay32.dll.
Если вставить ссылку в браузер, то все срабатывает и боту приходит текст.
Куда копать никак не пойму.

Pages: [1] 2 3