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

Pages: 1 2 [3] 4 5 ... 7
31
Использование / Re: Gods and glory
« on: September 16, 2018, 08:31:15 PM »
Здравствуйте.
Сначала попытался разобраться в логике представленного скрипта, забросил... Начал с нуля, столкнулся с проблемой распознавания. Не мог бы автор скрипта выложить пару изображений по которым идет проверка шахт.
Подбирается похоже индивидуально, под конкретный комп и разрешение. Не факт что заработает на ином компе, поэтому хотя вначале пытался сделать с пересчетом размеров на иные разрешения - потом эту идею забросил

32
Использование / Re: Gods and glory
« on: September 16, 2018, 08:28:51 PM »
После запуска такого бота прилетело предупреждение о использовании бота
и удалили мне все материалы в кузне
может поможет кто реализовать как то подругому что бы бан не словить )
1.Количество времени работы бота должно быть аналогично времени фарма человеком. Иначе действительно в кузне все зачищается, вплоть до бож.материалов, не имеющих отношения к подземке...
2.Имхо первичный вариант с равномерным рандомом или кликом в одной и той же области тоже не верен. У людей что-то более близкое к распределению гаусса. Соответственно, изложенные выше скрипты - надо брать за основу, но не как готовый инструмент.
3.Судя по некоторым признакам, представители игры в курсе про Кликерман и данную тему. Поэтому концепты обсуждать можно, но окончательную реализацию я бы тут не выкладывал...

33
Использование / Re: Gods and glory
« on: August 20, 2018, 04:13:38 PM »
Приветствую
А наглостью будет просить необходимые скриншоты ?
при запуске выдаёт ошибку по строкам 5,6,7,8 ввиду того что я использую Nox и не совпадают координаты и разрешение ?
Пробовал в какой-то момент пересчитывать на Нокс, но оказалось проще подобрать экран Нокса так, чтобы размер видимой части совпал с Блюстаковым, под который все и писалось. Но особо направление "под Нокс" не развивал.
Либо все точки перепроверять. Тем более что все равно разрабы понемногу игру меняют, и изображение сдвигается, т.е. надо все время отслеживать изменения.

34
Я в итоге пошел чуть по иному пути, чтобы не связываться с наращиваем нумерации - уникальность сделал через текущее время

Code: [Select]
$papka= "d:\_tmp_screens\"  // указываем папку для скриншотов по умолчанию, а если и нужно - то путь к ней
SCREENSHOTFIX(0,0,440,820,STRCONCAT($papka,"\","Название_файла_сохранения","_",$_date_d,"-",$_time_h , "-", $_time_m, "-", $_time_s ,".bmp"))

35
День добрый.
У меня в скрипте есть строки для пересчета формул координат

Code: [Select]
#define xmul(:$x_gr_new+INT((
#define )xmul:-$x_gr_ish)*$x_peresch)
#define ymul(:$y_gr_new+INT((
#define )ymul:-$y_gr_ish)*$y_peresch)

В "настройки интерпретатора" стоит "игнорировать ошибки". Но в новой версии Кликерман постоянно мне на эти строчки тыкает, говоря что число скобок не соответствует. Но я же ему сказал "Игнорировать ошибки"! В 4.12 он отлично все игнорировал и на нервы не действовал... А тут нехорошо поступает...

36
Выкладываю весь блок, имеющий отношение к сдвигу экрана. Может тут что-то можно иное подкрутить, чтобы в Nox заработало? Впечатление, что при сдвиге - "не запоминает" что нажата кнопка мышки... Но именно в Nox, в Блюстаке все работает...

Code: [Select]
////////////////////////////////////////////////////////////////////////////////
///     подпрограмма замедленного передвижения                              ////
////////////////////////////////////////////////////////////////////////////////

SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
   $MOVE_SPEED = 3  // множитель скорости
   
   $MOVE_Start_X = $_xmouse
   $MOVE_Start_Y = $_ymouse
   $MOVE_X = $MOVE_Start_X
   $MOVE_Y = $MOVE_Start_Y
   
   $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
   
   $MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
   
   IF($MOVE_SPEEDVAR < 1)
      $MOVE_SPEEDVAR = 1
   END_IF
   
   $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
   $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
   $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
   
   FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
      $MOVE_X = $MOVE_X + $MOVE_X_step
      $MOVE_Y = $MOVE_Y + $MOVE_Y_step
      MOVE(ROUND($MOVE_X,0)+RND(-2,2), ROUND($MOVE_Y,0)+RND(-2,2)) // добавляем рандом
      WAITMS($rnwait) // задержка при движении по точкам
   END_CYC
   
END_SUB

SUB(m_move,$M_X,$M_Y)
   $rnwait = RND(6,15) // случайная скорость
   $MOVE_MID_X = ($_xmouse+$M_X)/2
   $MOVE_MID_Y = ($_ymouse+$M_Y)/2
   mouse_move($MOVE_MID_X+RND(-30,30),$MOVE_MID_Y+RND(-30,30))
   mouse_move($M_X,$M_Y)
   MOVE($M_X,$M_Y) //передвинуть окончательно в заданную точку
END_SUB


/////////////////////////////////////////
// а это вырезка из основного кода:
 
//---получить куда хотим идти
$x_boi_map=INT(rnd(0, ABS($x_tetraedr*$x_mashtab-$x_zone_pxl-$x_pogreshn)))
$y_boi_map=INT(rnd(0, ABS($y_tetraedr*$y_mashtab-$y_zone_pxl-2*$y_pogreshn)))

//---переезд на новое место
while ((ABS($x_boi_map-$x_tekush_abs) > 3)|(ABS($y_boi_map-$y_tekush_abs) > 3))
   
   // расчеты точек сдвига
   if (ABS($x_boi_map-$x_tekush_abs) > (INT(3/4*$x_zone_pxl)))
      if ($x_boi_map-$x_tekush_abs > 0)
         $x_move_fict=INT(3/4*$y_zone_pxl)
      else
         $x_move_fict=(-1)*INT(3/4*$y_zone_pxl)
      end_if
   else
      $x_move_fict=$x_boi_map-$x_tekush_abs
   end_if
   
   if (ABS($x_move_fict/2)>INT(ABS($x_move_fict/2))) //уменьшение до четного числа
      if ($x_move_fict>0)
         $x_move_fict = $x_move_fict-1
      else
         $x_move_fict = $x_move_fict+1
      end_if
   end_if
   //      print("текущее $x_move_fict = ", $x_move_fict)
   
   if (ABS($y_boi_map-$y_tekush_abs) > (INT(3/4*$y_zone_pxl)))
      if ($y_boi_map-$y_tekush_abs > 0)
         $y_move_fict=INT(3/4*$y_zone_pxl)
      else
         $y_move_fict=(-1)*INT(3/4*$y_zone_pxl)
      end_if
   else
      $y_move_fict=$y_boi_map-$y_tekush_abs
   end_if
   
   if (ABS($y_move_fict/2)>INT(ABS($y_move_fict/2))) //уменьшение до четного числа
      if ($y_move_fict>0)
         $y_move_fict = $y_move_fict-1
      else
         $y_move_fict = $y_move_fict+1
      end_if
   end_if
   //      print("текущее $y_move_fict = ", $y_move_fict)
   
   // собственно начало сдвига
   if($emulator_vybor=1)  // для Блюстака
      ldown(INT($x_pxl_lev_verh+$x_zone_pxl/2+$x_move_fict/2),INT($y_pxl_lev_verh+$y_zone_pxl/2+$y_move_fict/2))
   else   // для Нокса, экспериментировал по разному :(
      $x_nox=INT($x_pxl_lev_verh+$x_zone_pxl/2+$x_move_fict/2)
      $y_nox=INT($y_pxl_lev_verh+$y_zone_pxl/2+$y_move_fict/2)
     
      move($x_nox,$y_nox)  // просто поставили мышь на начальную точку
      print("переместили мышь на ", $_xmouse, " ", $_ymouse)
      POSTMESSAGE($hwnd1,0x0201,0x0001,$x_nox+($y_nox*65536))   //LDOWN
      //   ldown($x_nox,$y_nox)
      waitms(1250+rnd(0,50))
     
   end_if
   print("---кликнули на ", $_xmouse, " ", $_ymouse)
   waitms(250+rnd(0,50))
   m_move(INT($x_pxl_lev_verh+$x_zone_pxl/2-$x_move_fict/2), INT($y_pxl_lev_verh+$y_zone_pxl/2-$y_move_fict/2))
   //      print("---Передвинулись на дальность", $x_move_fict, " и ", $y_move_fict)
   waitms(900+rnd(0,100))
   if($emulator_vybor=1)  // для Блюстака
      lup($_xmouse, $_ymouse)
   else   // для Нокса
      POSTMESSAGE($hwnd1,0x0202,0x0000,$_xmouse+($_ymouse*65536))   //LUP
   end_if
   print("---Отжали мышь на ", $_xmouse, " ", $_ymouse)
   waitms(900+rnd(0,150))
   
   $x_tekush_abs=$x_tekush_abs+$x_move_fict
   $y_tekush_abs=$y_tekush_abs+$y_move_fict
   //      print("Координаты новой карты для боя (пиксели относит.лев.верхн.края Города):")
   //      print("сдвинули карту, =", $x_tekush_abs, " и ", $y_tekush_abs)
end_cyc

//   print("...приехали =", $x_tekush_abs, " и ", $y_tekush_abs)



37
Пробуй mover вместо move.
Опробовал - увы, вообще никак... По описанию в хэлпах - mover  в оконном режиме не работает вообще :(

38
Доброго времени суток.
Задача: сдвинуть экран в эмуляторе, для чего зажать левую кнопку мышки, сдвинуть и отпустить.
Скрипт отлично работал в Блюстаксе. Сейчас потребовалось применить в Нокс - все прочее работает отлично, в т.ч. обычные клики, а вот при сдвиге экрана - мышка как будто не нажимается, а просто по экрану перемещается.
Не подскажете, в чем тут может быть подвох? Попробовал уже ldown заменить на POSTMESSAGE - результат не изменился :(

Code: [Select]
if($emulator_vybor=0)  // для Блюстака
   ldown(INT($x_pxl_lev_verh+$x_zone_pxl/2+$x_move_fict/2),INT($y_pxl_lev_verh+$y_zone_pxl/2+$y_move_fict/2))
else   // для Нокса
   $x_nox=INT($x_pxl_lev_verh+$x_zone_pxl/2+$x_move_fict/2)
   $y_nox=INT($y_pxl_lev_verh+$y_zone_pxl/2+$y_move_fict/2)
   POSTMESSAGE($hwnd1,0x0201,0x0001,$x_nox+($y_nox*65536))   //LDOWN
end_if
         print ("---кликнули на ", 70+284+$x_move_fict/2, " на ", 400+284+$y_move_fict/2)
   waitms(800+rnd(0,100))
   m_move(INT($x_pxl_lev_verh+$x_zone_pxl/2-$x_move_fict/2), INT($y_pxl_lev_verh+$y_zone_pxl/2-$y_move_fict/2))
   //      print("---Передвинулись на дальность", $x_move_fict, " и ", $y_move_fict)
   waitms(900+rnd(0,100))
if($emulator_vybor=0)  // для Блюстака
   lup($_xmouse, $_ymouse)
else   // для Нокса
   POSTMESSAGE($hwnd1,0x0202,0x0000,$_xmouse+($_ymouse*65536))   //LUP
end_if

39
Наверное сильно торможу в воскресенье :)
Спасибо!

40
День добрый.
Нужно обнаружить, когда при применении colormode в нужной части экрана появляются пиксели, отличных от черно-белых.
Можно конечно перебором попроовать в PXLCOUNT, но цветов разных может быть много. Можно ли как-то проще посчитать число пикселей с цветом, отличных от черного или белого?
(поиском по форуму увы не нашел)

41
А так чтобы в иную папку, и файл не перезаписывался, а добавлялся новый?
Т.е. было "..и ему присваивается имя вида pref0000.bmp. При этом номер 0000 будет наращиваться по мере необходимости.." ?

42
День добрый.
По ряду причин хочу все текущие скриншоты сохранять не в папке Кликермана, а в иной.
Если указывать такой внешний адрес, SCREENSHOT("d:\_tmp_screens\_my_analiz_")
то просто ничего не сохраняет и все

Обходной вариант с сохранением и последующим переносом работает, но это лишнее действие:
SCREENSHOT("_my_analiz_")
EXECUTE("cmd.exe", "/c move /Y screens\*.*, d:\_tmp_screens")

Можно ли как-то сразу сохранить в нужную папку?

43
Да, идея красивая. Но если выводить не интервалами, а точными значениями, и строить график получаемого распределения, то
(а) распределение получается достаточно "острым" (см скрин).
(б) относительно равномерным распределение получается если центр распределения равноудален от краев. А если распределение (интервал Х2-Х4 на рисунке) должно быть сильно сдвинуто к одному из краев? У меня тогда получается неравномерная капля, вместо того чтобы получить равномерное распределение :(
...хотя, по (б) можно ввести фиктивное продолжение распределения и потом обнулять выходящие за его границы результаты, так наверное и сделаю..
...а по поводу (а) надо подумать, как перевести распределение в достаточно равномерное плато в интервале Х2-Х4, вместо острого пика в середине...

44
Общие вопросы / Поиск гомотетичных фигур
« on: February 28, 2018, 03:11:18 PM »
День добрый.
Во многих приложениях сейчас изображения имеют разный размер, в зависимости от того, в какой части экрана они находятся (например, внизу экрана - больше, типа как "рядом", а вверху экрана меньше, типа "далеко"). В остальном изображения подобны, точнее, гомотетичны между собой.
За счет таких плавающих размеров искать по стандартному совпадению пиксел - почти не вариант, только если делать скрины в разных частях экрана и последовательно каждый из них искать.
Может быть есть алгоритмы, как находить такие гомотетически изменяющиеся картинки?

45
Вот вариант
...
Красивое решение! ))

Вот результаты частоты выпадания на 1000 рандомизаций
...
Эту часть не понял, что за "1: 433" и т.д.?
...наверное это промежуточные результаты? Но не итоговые?

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