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

Pages: [1]
1
можно досрочно прекращать дальнейший поиск символов, если окажется, что нужное число символов уже найдено и всё поле имени заполнено.
Можно подобрать порядок проверки символов в зависимости от частоты их использования, чтоб сразу находить те которые чаше используются и уменьшать сектор поиска оставшихся.
можно вообще разделять сектора поиска после нахождения каждого знако вычитая из поиска их позиции.
можно разгрузить комп, закрыв все фоновые приложения и  некоторые процессы
можно принять меры к резкому увеличению эффективности охлаждения процессора.

Спасибо за идеи, на выходных попробую первые 3 реализовать, посмотрим какой прирост дадут. Хотя прирост больше, чем при переходе с 4.12 на 4.11 трудно будет получить))
Насчет остального - комп достаточно мощный, оперативы хватает, проц особо не грузится даже при масштабных проектах с потоками, не говоря уже о том, чтобы перегреваться.


Если ты там нарезал все заготовки, хоть кинь их сюда. А то как пробовать? Всех символов нет, время перебора будет не то. У меня поиск одного символа вместе с гетскрином выдаёт 1 мс.


Кстати, где колормод в примере?


Колормод в примере не нужен был, там уже отколормоденные изображения использовались)

Заготовки во вложении, но там только цифры и буквы, остальные символы не нарезал пока.

2
Область поиска намного больше картинки, дело не в этом.
Ради интереса провел эксперимент:
Ищу изображение 1.bmp (буква "с" - палка слева 3 пикселя, палки наверху и внизу по 2 пикселя, картинка сохранена с белыми полями в один пиксель со всех сторон) на картинке 3.bmp. Т.е. открываю картинку в графическом редакторе и на ней ищу изображение 1.bmp. Изображение находится 4 раза - на 1,2,3 и 6 вариантах.
Затем ищу изображение 2.bmp таким же макаром. Находится 1 раз на 1 варианте.
В общем функция scanpicture каким-то образом обрезает картинку, которую ищет. Но это не просто столбец из крайних правых пикселей, иначе изображение находилось бы на последнем варианте...

Code: (clickermann) [Select]
getscreen(933,502,984,531)
scanpicture($var,933,502,984,531,"1.bmp",-1,100)

for($i=0,$i<arrsize($var),1)
print($var[$i])
end_cyc

halt

Интересно, что если размер букв увеличить, то такой проблемы уже не возникает. И если 1.bmp сохранить с 2 белыми полями справа, то все работает исправно.

3
Дык, в том то и дело, что ищу я его с черным полем справа... Может быть я неправильно понимаю как задается параметр bgcolor... Если -1, то цвет фона НЕ игнорируется, т.е. картинка ищется с 100% соответствием всех пикселей. Если будет например 0, то игнорируется черный цвет. Правильно?

Про getscreen - спасибо, иногда забываю область указать :)

4
Получилось уменьшить время выполнения скрипта в 6-7 раз.
Перешел с версии 4.12 на 4.11  :P
Теперь через scanpicture время выполнения  200-250мс, не идеально но уже близко  :)

Еще вот проблемка появилась, не пойму в чем дело. На месте символа "o" находится символ "с". Поиск задан с 100% совпадением и фон не должен игнорироваться.

Code: (clickermann) [Select]
getscreen
scanpicture($var,932,502,986,530,"с.bmp",-1,100)

for($i=0,$i<arrsize($var),1)
print($var[$i])
end_cyc

halt

 

5
Суть в том, что бот должен очень быстро реагировать на то, что происходит в игре, а происходит там все очень быстро. Помимо прочего, для определения того что именно должен сделать бот, нужно определить имена игроков. Во время одной сессии игроки могут меняться по сути бесконечное число раз, т.е. уникальных имен может быть очень много. Если бот будет тратить секунду на определение имени, то он не успеет отреагировать на происходящее в игре.

6
Такой подход будет работать быстро только для 2 и далее распознования, а первое останется долгим, что есть очень не хорошо.
И к тому же относительно большая база соберется очень быстро. В день будет примерно 200-300 уникальных имен. Через пару недель в половине случаев придется проверять почти все или все символы.
Я думал насчет идеи для распознаных имен записывать еще контрольную сумму пикселей и сначала проверять ее, но это опять же поможет только для повторного распознования. Уникальных имен слишком много, поэтому надо, чтобы имя определялось быстро сразу.

7
99 раз отвечали по поводу этой игры, ищи ответы на форуме, научись пользоваться поиском. Совершенно ничего сложного или особенного там нет.
После того как отвечали много воды утекло и это было еще до защиты GameGuard. Напомню что первоначально защита была HackShield. С GameGuard Clickermann на данный момент работать не будет какую версию не подставляй.

Уж не знаю поможет ли с АА, но в других играх с GameGuard помогал запуск кликера в песочнице. Правда помню, что с настройкой песочницы повозиться приходилось, чтобы кликер из нее мог работать с приложениями, которые  запущены вне её.

8
Есть имена игроков в виде картинок.
Требуется распознать имя и сохранить в виде текста за максимально короткое время. В идеале около 100мс. Кроме времени выполнения - еще важное условие, чтобы в 100% случаев имя распозновалось верно.
Имена находятся в заранее известных местах. Шрифт и цвет символов всегда одинаковые. Ширина одного символа может быть разная. В имени могут использоваться латинские буквы, цифры и любые символы. 
Пробовал сохранить отдельно каждый символ в картинке и через scanpicture определять какие символы есть в имени, а затем расставлять их в правильном порядке. Такой подход в большинстве случаев работает, но очень медленно - слишком много возможных символов приходится искать.

9
Предложения / Re: [Alpha/Beta Testing]
« on: May 03, 2016, 04:53:43 AM »
GETDIRLIST и GETFILELIST так и не работают. И в справке в содержании на них нет ссылок.
совпадение? не думаю!

Функции так до конца и не работают или я что-то делаю неправильно?

getfilelist($arr, "C:\*.*") - работает
getfilelist($arr, "C:\test\*.*") - не работает


10
Большое спасибо за оперативный ответ :)
А не подскажите где можно полный ченджлог почитать?

11
Суть проблемы в следующем:
есть программа, которая автоматически генерирует текстовые файлы. Имена файлов генерируются определенным образом: знак $, текущая дата, имя пользователя ну и дальше еще пара параметров. Например "$201552 SilentCat EsheKakie-toParametri.txt".
Я хочу записать имя файла в переменную, чтобы дальше можно было через нее работать с файлом:

Code: [Select]
$ImyaFaila=strconcat("$",$_date_y,$_date_m,$_date_d," ","SilentCat"," ","AbraKadabra",".txt")
print($ImyaFaila)
halt

Но данный скрипт выдает ошибку. Как оказалось, дело в знаке $ в начале. Скрипт без него выполняется отлично:

Code: [Select]
$ImyaFaila=strconcat($_date_y,$_date_m,$_date_d," ","SilentCat"," ","AbraKadabra",".txt")
print($ImyaFaila)
halt

Т.е. невозможно создать текстовую переменную сложением нескольких строк, если в одной из строк есть знак $. Есть идеи как обойти это ограничение?

Pages: [1]