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 - Qwerry

Pages: 1 2 [3] 4 5 ... 8
31
Общие вопросы / Re: Привязка к окну
« on: September 23, 2018, 09:09:07 AM »
1. Полагаю, если пишет в чат, может быть активировано окно чата, а не игровое (самый простой и наивный вариант, но вдруг?). Если добавить клик по основному окну перед нажатием клавиши или вовсе свернуть чат(если возможно), что-то меняется? Если нет, то может быть и правда защита или нужно экспериментировать с режимом #ps2_keyboard, или  пробовать применять вот эту тему http://crapware.aidf.org/forum/index.php?topic=3252.0 .  Если ничего не сработает, остается ждать помощи метров форума  или отказываться от идеи горячих клавиш.
2. Графика не обновляется в свернутом окне, так что если в скрипте она анализируется (а игровые боты обычно и построены на поиске и ожидании картинок/пикселей), то ничего работать и не должно. При привязке для автономной работы кликера обычно просто задвигают окно с игрой за край экрана вправо/вниз. (Кроме того не забываем, что при привязке все координаты смещаются, т.е. надо делать их либо специально под работу с привязкой и лучше прописывать размеры окна, либо координаты можно указывать относительно какой-то уникальной картинки).

32
У сейфов могут быть или них постоянные и известные уже координаты или они ищутся через scanpicture. Предположим, что мы каждый раз их ищем по картинке, а значит, они оказываются в массиве в последовательности х1,у1,х2,у2,х3,у3.

Code: (clickermann) [Select]
$safe_x= 3 // вынесено наверх/ 1,2,3 - это выбранный вами вариант. Включение рандома - 0, отключение вообще поиска сейфов - 4 (или любое число больше 3).

If($safe_x=0) //если ничего на выбрано
$safe_x=rnd(1,3)
End_if
If($safe_x<4)
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)
lclick ($ARR_SCAN[2*($safe_x-1)], $ARR_SCAN[2*($safe_x-1)+1]  ) // т.к. не знаю размер сейфов, то смешение, чтоб кликал ближе к центру, делаете сами (либо слегка обрезаете картинку сейфа слева сверху - еще и быстрее искать будет)
End_if

halt
Если координаты уже есть  и хочется всегда использовать рандом, то можно было бы просто в клике прописать все возможные координаты х (считаем, что сейфы в ряд поставлены, т.е. по у не отличаются):
Code: [Select]
lclick (RNDFROM (x1,x2,x3), y)

33
ДД. Чтобы кликнуть чуть левее (на пару пикселей ниже) чем найденный пиксель, совсем не обязательно искать меч.
Достаточно просто уточнить координаты клика. Т.к. поиск идет слева направо и сверху вниз, первым будет найден левый верхний угол буквы М (заменяете стандартную строчку на LCLICK($_return1-15, $_return2+3) - так клик будет на 15 пикселей левее и 3 ниже - ровно по мечу).

Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(100,100, 200,400, 8917019)
   LCLICK($_return1-15, $_return2+3)
   WAITMS(100)
   Else
   print("no blue")
END_IF     
 halt

Для точной области поиска и правильного цвета, полагаю лучше всего воспользоваться лупой кликермана и вставкой координат и цвета (обычно через alt+Q). Print используется во время налаживания скриптов, чтобы понять что и где идет не так. После или закомментировать (// поставить перед лишними строчками), или стереть можно.


А для двойных условий (где меч может появляться в этом месте, а может и нет) можно вкладывать if-ы друг в друга:
Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 8917019)
print("blue") 
   IF_PIXEL_IN($_return1-20, $_return2, $_return1, $_return2+8, 0)
print("black")       
      LCLICK($_return1, $_return2)
      WAITMS(100)
   END_IF
Else
   print("no blue")     
END_IF
halt

34
Использование / Re: Gods and glory
« on: August 08, 2018, 07:44:22 PM »
Здравствуйте.
Вопрос трудности использования строчек #define с разным (и неправильным с т.з. программы) количеством открывающих и закрывающих скобок в версии Clickermann v4.13 уже как-то обсуждался.
Для решения проблемы надо поменять настройки конфигурации, убрав проверку синтаксиса  (Clickermann v4.13 x32\data\config.ini):

есть такое. варианты обхода:

1) config.ini:
Code: [Select]
[core]
...
; Проверка синтаксиса
syntax_check = 0


Либо можно использовать чуть более раннюю версию Clickermann v4.12, где нет проверки на скобки.

35
Доброго времени суток.
А как именно планируется делать базу? записать сами вопросы в txt? тогда вам в тему http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571 . там рабочий скрипт, вам лишь надо сделать базу букв, он всё распознает.
Есть и другой вариант - поиском картинок, а если всегда можно угадать точные координаты места вопроса, а фон и т.д. никогда не отличаются (хотя бы при цветокоррекции), то и сами картинки можно хранить в виде хеш-сумм ($h_sum=PXLXOR (x, y, x2, y2) или  PXLCRC (x, y, x2, y2)).  В таком случае можно ещё и базу в ini-файл поместить. (и, допустим, незнакомые вопросы сохранять под именем их хеша, чтоб упростить вам ввод их в базу).

36
Общие вопросы / Re: Цвет - 0
« on: July 13, 2018, 07:43:43 PM »
Соглашусь с вышеответившими - следует попытаться сделать как-то иначе (другой браузер или искать другое место для привязки)

Касательно chromium, в целом к Google Chrome привязываться можно, если вручную кликнуть по вкладке (где название и крестик).  Ну или программно привязывать по названию вкладки. (Возможно в Яндекс.Браузере так же).
Картинку (браузерная игра) анализирует как обычно, единственное, моргает в моменты кликов и пытается на передний план выползти, но можно за край монитора задвинуть, чтоб не мешал работать (а можно просто взять мозиллу, конечно, но кто же ищет легкие пути? + если выбран какой-то браузер, возможно на то были причины).

Сворачивать/двигать/менять размеры при привязке к вкладке также получается нормально.

https://prnt.sc/k649av

37
Привет. Не стесняйся выкладывать свой скрипт - даже если "глупо написан", никто не осудит, просто помогут сделать лучше)
В чем именно проблема из поста не очень понятно. Если раньше работало, а после перестало, возможно что-то изменилось. А вариантов немало, гадать смысла нет.
И еще - кликер настроен работать с привязкой к окну или без неё?

38
Общие вопросы / Re: работа с текстом
« on: June 15, 2018, 06:41:16 PM »
на PHP эта задача кстати решалась бы довольно просто.

Не могу сказать, что в кликерманне эта задачка вызывает особые проблемы. По крайней мере для всех, кто помнит, как хранятся результаты поиска в SCANPICTURE.
Правда, если будет больше параметров и не во всех случаях укажут все значения, то пихать всё в один массив - тот еще мазохизм (особенно для не очень внимательных людей или тех, кто вынужден разбираться в чужом коде). Так что идею беру на заметку))

Quote from: Oraven
$str = ""
FOR($i=0,$i<ARRSIZE($arr1))
   //   LOGWRITE ($arr1[$i], " - ", $arr3[$i])
   $str = STRCONCAT($str,$arr1[$i], " - ", $arr3[$i],char(13),char(10))
END_CYC
$dialog = DIALOGBOX($str, 0, 0)
Так вот это как делается) Ну я догадывалась о том, что возможно несколько строк писать. Oraven, спасибо, буду пользоваться.
 Ну и реализация через буфер и параллельные массивы интересна.
у меня есть список в блокноте в котором около 10-20 различных наименований повторяющихся много раз
список весьма длинный там около 100 различных названий повторяющихся около 1000 раз

Такс, попробую помочь, пока вариантов наименований не стало около 10 тысяч, а список не расширился до миллионов))
Вы сохраняете скрипт в папку, рядом создаете блокнот с названием gamelog.txt, в него сохраняете ваши логи. Запускаете скрипт. Рядом возникнет другой блокнот - Unique names.txt с датой и результатами. Та же информация продублируется в логах.
У меня работает нормально. Если что, то как убирать случайно вклинившиеся в название хреновин кавычки ("") пока не знаю точно, так что будем считать, что их там не бывает. Вернее уже возникла мысль - не зря же МудрогоКота за напоминание про коды символов благодарю. Но что-то не очень хочется мучиться с ними.
Code: (Clickermann) [Select]
LOGCLEAR
Print("all logs: ",TFCOUNT("gamelog.txt")) //выводит в лог количество строк в блокноте
Print("")
FOR($a=0,$a<TFCOUNT("gamelog.txt"))
   $str=STRFILTER (TFREAD("gamelog.txt", $a+1), "1234567890 []-=+!№;%:?*()@#$^&{}",0) // не указанные мусорные символы можно дополнить
   For($b=0,$b<ARRSIZE ($arr),2)
      If($arr[$b]=$str)
         $arr[$b+1]= $arr[$b+1]+1
         $b=9999
      End_if
   END_CYC
   If($b<9999)
      $arr[$b]=$str
      $arr[$b+1]=1
   end_if
END_CYC

Print("***********")
Print("Unique names: ", ARRSIZE($arr)/2 )  //здесь решится загадка о количестве уникальных имен - неважно 100 их или 10
TFWRITE("Unique names.txt", "")
TFWRITE("Unique names.txt", STRCONCAT($_date_str,"  ",$_time_str)) // файл записи результатов один, но каждый подсчет подписан датой и временем

For($a=0,$a<ARRSIZE($arr),2)
   $res=STRCONCAT($a/2+1, ") ",$arr[$a]," = " ,$arr[$a+1])  // Нумерация со скобками не должна сильно помешать их переставлять в алфавитном порядке, если возникнет необходимость. Но если что сотрёшь символы [$a/2+1, ") ",], и будут просто названия
   TFWRITE("Unique names.txt", $res)
   Print($res)
End_cyc

halt

39
Общие вопросы / Re: работа с текстом
« on: June 11, 2018, 11:59:00 PM »
В кликере есть ведь чудесная команда STRFILTER (str, set, mode).
В вашем варианте при помощи строчки $a=STRFILTER ($str, " []1234567890-=+!№;%:?*()@#$^&{}",0)
все предложенные варианты
$str = "23:05:06 [Венец растления         ],  $str = " 23:15:06 [Венец растления]"? $str = "23:45:06 [Венец растления      %$]"
превратятся в $a="Венецрастления" и смогут быть подсчитаны.
Если какие-то из символов фильтра отсутствуют или лишние, разумеется, можно поменять.

С тем, чтобы кликер построчно анализировал блокнот и записывал результаты, справитесь?

40
А шаблон ожидания пикселя не пробовали?
Code: (clickermann) [Select]
// цикл идет
$check = 0
WHILE($check = 0) // цикл встал и ждет появления цвета
   GETSCREEN
// строчки c IF на выбор:
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255)    //или  указывается область экрана с интересующим нас пикселем и ожидаемый цвет
// If(pxl($_xmouse, $_ymouse) =255 ) //- или, если речь именно про 1 пиксель под курсором, вот так
      $check = 1
      WAIT(5) //Если цвет появился - 5 сек кулдаун
   ELSE
      WAITMS(50) // если нет - стоим ждем дальше
   END_IF
END_CYC

//цикл идет дальше

41
Попробуйте привязать и запустить вот такой код.
Code: [Select]
SCREENSHOT
halt

После запуска рядом со сценарием окажется картинка того, что увидел при привязке кликер (вероятнее всего серый или черный экран). Когда посмотрите/покажете, что там, форумчане смогут делать какие-то выводы.

И да, в любом случае с играми - т.к. там обновление и анализ графики - окно нельзя сворачивать, можно только задвигать за край экрана либо ставить свои окна поверх играемого).

42
Общие вопросы / Re: Написание скрипта
« on: May 29, 2018, 06:32:16 PM »
Может здесь вместо кода лучше подойдет пара картинок? Полагаю, тут случай из тех, когда человеку проще самому написать код, чем объяснить, что, как и зачем надо делать.

Ставите в нужном порядке зажимания, добавляете waitms(1000)  с указанием времени удержания клавиш (здесь 1000мс=1сек), в конце в нужном/любом порядке отпускаете клавиши.

43
Сравнительно недавно была тема "Капча "наперстки"". Задание в принципе похожее - следить за одним из пяти пеньков, игнорируя остальные. Думаю, автор будет не против, если попробуете перестроить скрипт под свои нужды, раз уж вам конфеденциальность так важна.
Сильных проблем с тем, чтобы дополнительно передвинуть мышку на место найденного шарика также не будет (даже если движения мыши не особо плавными будут)

44
Quote from: kiril

да простынка длинноватая, сократил код без изменения работы


Вместо 972 строк получить 232, а после и 159 (т.е. сжатие до 16% от исходного, причем с отступами). Действительно впечатляющая работа! ;) И я ничего не пишу про мазохизм, ничего. Совсем.

45
Предложения / Re: [Alpha/Beta Testing]
« on: May 18, 2018, 09:32:43 PM »
Тоже немножко отпишусь здесь  :)

Цикл FOR() в Шаблонах v. 4.12.014b предлагается с равно, а в Командах он остался как был.

Code: (clickermann) [Select]
/// Шаблоны/циклы,условия/
FOR($a=0,$a<5) 

END_CYC

///Команды/Условия,цикл,подпрограммы/for-цикл с параметром 
FOR($a, $a < 5)

Pages: 1 2 [3] 4 5 ... 8