Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: Badimboy on January 25, 2017, 10:11:52 PM

Title: Скрипт для онлайн игры TimeZero
Post by: Badimboy on January 25, 2017, 10:11:52 PM
Есть модифицировать графику самостоятельно и перестроить скрипт под твои размеры игрового окна и модифицированные текстуры, модифицируй, фотошоп в помощь, образец на форуме. Там практически всё превращается в простые цветные шестиугольники и кликер находит и обходит их уверенно.
А можно поподробнее как модифицировать графику,  на каком форуме образец?

Ну а пока, у мобов есть 6 положений и получается громоздко
Code: [Select]
SCANPICTURE($ARR_SCAN, 455, 130, 1355, 525, "Timezero\rat1.bmp", -1, 100) // Крыса 1,3,5,7,9,11 направление движения моба по часам
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $rat[$n] = Dist ($Pers_X, $Pers_Y, $X, $Y)  //Дистанция между персом и крыской
   //   Print("Дистанция до крысы ", $n, " ", $rat[$n])
   inc ($n)
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

SCANPICTURE($ARR_SCAN, 455, 130, 1355, 525, "Timezero\rat3.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $rat[$n] = Dist ($Pers_X, $Pers_Y, $X, $Y)  //Дистанция между персом и крыской
   //   Print("Дистанция до крысы ", $n, " ", $rat[$n])
   inc ($n)
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

SCANPICTURE($ARR_SCAN, 455, 130, 1355, 525, "Timezero\rat5.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $rat[$n] = Dist ($Pers_X, $Pers_Y, $X, $Y)  //Дистанция между персом и крыской
   //   Print("Дистанция до крысы ", $n, " ", $rat[$n])
   inc ($n)
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

SCANPICTURE($ARR_SCAN, 455, 130, 1355, 525, "Timezero\rat7.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $rat[$n] = Dist ($Pers_X, $Pers_Y, $X, $Y)  //Дистанция между персом и крыской
   //   Print("Дистанция до крысы ", $n, " ", $rat[$n])
   inc ($n)
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

SCANPICTURE($ARR_SCAN, 455, 130, 1355, 525, "Timezero\rat9.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $rat[$n] = Dist ($Pers_X, $Pers_Y, $X, $Y)  //Дистанция между персом и крыской
   //   Print("Дистанция до крысы ", $n, " ", $rat[$n])
   inc ($n)
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

SCANPICTURE($ARR_SCAN, 455, 130, 1355, 525, "Timezero\rat11.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $rat[$n] = Dist ($Pers_X, $Pers_Y, $X, $Y)  //Дистанция между персом и крыской
   //   Print("Дистанция до крысы ", $n, " ", $rat[$n])
   inc ($n)
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

И так для каждого моба, + есть ещё цветные. Можно ли как нибудь упростить сие?
Title: Re: Скрипт для онлайн игры TimeZero
Post by: Badimboy on January 28, 2017, 03:40:27 PM
Если пишется слово "ФОРУМ" и нет ни ссылки ни названия, то естественно имеется в виду только тот где это слово написано.
Могли бы Вы дать ссылку? Самостоятельно у меня найти не получилось.

И ещё вопрос. Определяю количество мобов по миникарте
Code: [Select]
GETSCREEN
COLORMODE(6)
SCANPICTURE($ARR_SCAN, $MiniMap_X1,$MiniMap_Y1, $MiniMap_X2,$MiniMap_Y2, "Bmp\Мобы на миникарте.bmp", -1, 100)
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC ($ARR_NUM)
   WAITMS (100)
END_CYC
LOGWRITE ("Количество Мобов в бою ", $ARR_NUM/2, " шт")
UNDEFINE($ARR_SCAN)
И в тех случаях когда мобы стоят раздельно, всё ищется правильно
(http://Image_0005.bmp)
Но стоит мобам сойтись, и находит больше чем есть на самом деле.
(http://Image_0009.bmp)
Как это исправить?


Title: Re: Скрипт для онлайн игры TimeZero
Post by: Oraven on January 28, 2017, 05:09:31 PM
И ещё вопрос. Определяю количество мобов по миникарте
каким то странным способом

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
SCANPICTURE($ARR_SCAN, $MiniMap_X1,$MiniMap_Y1, $MiniMap_X2,$MiniMap_Y2, "Bmp\Мобы на миникарте.bmp", -1, 100)
LOGWRITE ("Количество Мобов в бою ", $ARR_SCAN/2, " шт")
UNDEFINE($ARR_SCAN)
Title: Re: Скрипт для онлайн игры TimeZero
Post by: Badimboy on January 28, 2017, 11:54:21 PM
каким то странным способом

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
SCANPICTURE($ARR_SCAN, $MiniMap_X1,$MiniMap_Y1, $MiniMap_X2,$MiniMap_Y2, "Bmp\Мобы на миникарте.bmp", -1, 100)
LOGWRITE ("Количество Мобов в бою ", $ARR_SCAN/2, " шт")
UNDEFINE($ARR_SCAN)

Да спасибо, просто до этого ещё и координаты были нужны. Только у Вас очепятка  ;)
Code: (clickermann) [Select]
LOGWRITE ("Количество Мобов в бою ", ARRSIZE ($ARR_SCAN)/2, " шт")
А что посоветуете с наложением картинок?
Title: Re: Скрипт для онлайн игры TimeZero
Post by: Oraven on January 29, 2017, 10:36:20 AM
Рассмотрел картинку. Кружки одинаковой формы. Просто нужно задать прозрачность уголков.

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "Image_0009_1.bmp", 65280, 100) // тут указываем цвет прозрачности

$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   LCLICK($X, $Y)   // Клик
   WAITMS(500)
END_CYC
UNDEFINE($ARR_SCAN)

HALT
Title: Re: Скрипт для онлайн игры TimeZero
Post by: Badimboy on January 29, 2017, 12:14:05 PM
Рассмотрел картинку. Кружки одинаковой формы. Просто нужно задать прозрачность уголков.
Не помогло, и с прозрачностью находит больше чем нужно
Title: Re: Скрипт для онлайн игры TimeZero
Post by: Oraven on January 29, 2017, 12:36:21 PM
Тогда воспользуемся смещением описанным в скрипте SCANPXL

найти и прокликать
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "Image_0009_1.bmp", 65280, 100)

$ARR_NUM = 0
$count = 0
$SHIFT_X = 2 // смещение (кол-во игнор пикселов после найденного)
$SHIFT_Y = 2
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   IF(($X > $X2) | ($Y > $Y2))
      $X2 = $X + $SHIFT_X
      $Y2 = $Y + $SHIFT_Y
      LCLICK($X, $Y) // Клик
      WAITMS(50)     
   END_IF
END_CYC
UNDEFINE($ARR_SCAN)

HALT

Просто определить количество
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "Image_0009_1.bmp", 65280, 100)

$ARR_NUM = 0
$count = 0
$SHIFT_X = 2 // смещение (кол-во игнор пикселов после найденного)
$SHIFT_Y = 2
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   IF(($X > $X2) | ($Y > $Y2))
      $X2 = $X + $SHIFT_X
      $Y2 = $Y + $SHIFT_Y 
      INC($count,1)     
   END_IF
END_CYC
UNDEFINE($ARR_SCAN)

LOGWRITE ($count)

HALT
Title: Re: Скрипт для онлайн игры TimeZero
Post by: Badimboy on January 29, 2017, 03:08:15 PM
Oraven
Спасибо! Всё работает.
Code: [Select]
$SHIFT_Y = 2Только по Y плюсовать больше чем 1 чревато пропуском нужной картинки

kiril
игнор нужно отключить, а картинку для поиска сделать игровым маркером вместо жёлтых кругов и всё станет находиться правильно. можно поступить проще в центр кругов добавить пиксель другого цвета, цель манипуляций избавиться от случайного образования новых картинок маркеров при сближении нескольких реальных маркеров.
Можно поподробнее как это сделать? Желательно оба варианта )

Title: Re: Скрипт для онлайн игры TimeZero
Post by: Vint on January 30, 2017, 09:58:53 AM
Можно вопрос. А нафига вообще считать количество мобов? Определяешь ближайшего и к нему топаешь.
Title: Re: Скрипт для онлайн игры TimeZero
Post by: Badimboy on January 30, 2017, 11:39:22 AM
Можно вопрос. А нафига вообще считать количество мобов? Определяешь ближайшего и к нему топаешь.
Title: Re: Скрипт для онлайн игры TimeZero
Post by: Vint on January 30, 2017, 12:26:56 PM
Ну как будешь атаковать на основном поле, там и посчитаешь.