Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » findimage не ищет изображение

Страниц (3): [1] 2 3 »
 

1. LSTAlex - 16 Февраля, 2021 - 08:31:35 - перейти к сообщению
Доброго времени суток всем читающим.
Пользуюсь бесплатной версией Кибор.
Логика моего бота проста, хотел написать бота для рыбалки.
Игра Lineage 2 , а конкретно для сервера https://asterios.tm/index.php?js=1.
Я сделал снимки для поиска определенных изображений (когда рыба клюет, там показывает какой скилл нажимать).
Логика такая:
1.Закинуть удочку
2. Если найдена иконка подсечки, то нажать соответствующую кнопку
3. Если найдена иконка отпустить, то нажать соответствующую кнопку
4.Сканировать окно на появление окна "Рыбалка", если его нет, то закинуть удочку.

Идея хорошая, как по мне, но реализовываться не хочет совсем...
Подскажите, пожалуйста, в чём ошибка может быть?

Мой код

CODE:

win w = window ("Asterios");
if(w == 0){messagebox("Window not found"); goto exit;}
activate(w);

int Подсечка[40][40];
int Отпустить[40][40];
int Окно[260][20];

if(load_images()==-1){messagebox("Images not found"); goto exit;}
pause(1000);
S:;
StartFishing(); //забросить удочку
P:;
Fishing();






exit:;



function StartFishing(){key (F1);}

function Fishing()
{
while(w !=0)
{
Podceka();
Otrysk();
Windows();
}

}

function load_images()
{
if(loadimage (#Отпустить[0][0], "C:\Users\PC\Desktop\mia\Отпустить.bmp")<1){return -1;}
if(loadimage (#Подсечка[0][0], "C:\Users\PC\Desktop\mia\Подсечка.bmp")<1){return -1;}
if(loadimage (#Окно[0][0], "C:\Users\PC\Desktop\mia\Окно.bmp")<1){return -1;}

return 1;
}

function Podceka()
{
int x,y;
while(findimage(-1, #Подсечка[0][0], -1, #x, #y, 0, 0, w.width, w.height, w) ==1)
{
key(F2);
pause(1000);
}
}

function Otrysk()
{
int x,y;
while (findimage(-1, #Отпустить[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==1)
{
key(F3);
pause(1000);
}
}

function Windows()
{
int x,y;
if (findimage(1, #Окно[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==1){goto global P;}
if (findimage(1, #Окно[0][0], -1, #x, #y, 0, 0, w.width, w.height, w)==0){goto global S;}
pause(200);
}


[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
2. Zireael - 16 Февраля, 2021 - 17:19:20 - перейти к сообщению
 Цитата:
findimage не ищет изображение

Именно это изображение на находит, а другие нормально?
 Цитата:
findimage(-1

Не используйте -1. Нужно же только 1 изображение найти.
3. LSTAlex - 17 Февраля, 2021 - 00:13:49 - перейти к сообщению
 Zireael пишет:
Не используйте -1. Нужно же только 1 изображение найти.

После публикации переписал ещё раз код, убрал -1, заново выделил все нужные изображение для поиска и всё заработало.
Сегодня запускаю ту же самую программу, но кибор опять отказывается искать те же изображения.
Не могу понять почему так.
Может быть во вкладке "Графика" для поиска изображений обязательно должен быть скрин окна игры?

При чём он не хочет искать именно это окно, я выделил из окна только место где написано "Рыбалка".
(Добавление)
Вроде работает, но на лоу лвл только, на которых показывает какой скилл юзать.
Теперь думаю как привязаться к полоске здоровья рыбы и в реальном времени отслеживать его Огорчение
4. stasrus - 17 Февраля, 2021 - 01:23:04 - перейти к сообщению
не советую этим заниматься на астериосе. банят очень быстро.
5. LSTAlex - 17 Февраля, 2021 - 02:10:11 - перейти к сообщению
 stasrus пишет:
не советую этим заниматься на астериосе. банят очень быстро.

Другое дело как они узнаю обычный кликер, он не лезет в память игры, не инжектится к ней.
Просто читает с экрана инфу и нажимает кнопки.
Понятное дело если его оставлять на дни напролёт, то и бан прилетит сразу же.
6. Zireael - 17 Февраля, 2021 - 02:57:27 - перейти к сообщению
 Цитата:
Теперь думаю как привязаться к полоске здоровья рыбы и в реальном времени отслеживать его

Используйте findcolor c разбежностью цвета. После поиска он вернёт количество найденных пикселей. Последним будет правый нижний пиксель полоски, записать в переменную координату X, т. е. координата конца полоски. Ждём нужное время, ещё раз поиск, сравнить координату последнего найденного пикселя с той что записали в переменную. Если больше значит полоска увеличилась, если равна, значит полоска не двигалась.
CODE:
int x[9999], y[9999];
int count = findcolor(9999, остальные параметры); // поиск
if (count>0) // если найдено
{
int last_posX = x[count-1]; // записать в переменную последнюю координату X
// дальнейшие действия

}
7. LSTAlex - 17 Февраля, 2021 - 03:01:24 - перейти к сообщению
 Zireael пишет:
 Цитата:
Теперь думаю как привязаться к полоске здоровья рыбы и в реальном времени отслеживать его

Используйте findcolor c разбежностью цвета. После поиска он вернёт количество найденных пикселей. Последним будет правый нижний пиксель полоски, записать в переменную координату X, т. е. координата конца полоски. Ждём нужное время, ещё раз поиск, сравнить координату последнего найденного пикселя с той что записали в переменную. Если больше значит полоска увеличилась, если равна, значит полоска не двигалась.
CODE:
int x[9999], y[9999];
int count = findcolor(9999, остальные параметры); // поиск
if (count>0) // если найдено
{
int last_posX = x[count-1]; // записать в переменную последнюю координату X
// дальнейшие действия

}


Сейчас попробую.
Как раз только что сидел и размышлял на тему (а что если запихнуть все пиксели в массив и с каким-то интервалом его сканировать) в общем вы описали мою следующую мысль. Спасибо Радость
8. Zireael - 17 Февраля, 2021 - 03:12:55 - перейти к сообщению
 Цитата:
и с каким-то интервалом его сканировать

Время между каждым движением полоски. Около 2 сек вроде было. Т. е. если за это время не сдвинулась, значит стоит на месте.
9. stasrus - 17 Февраля, 2021 - 04:09:04 - перейти к сообщению
 LSTAlex пишет:
 stasrus пишет:
не советую этим заниматься на астериосе. банят очень быстро.

Другое дело как они узнаю обычный кликер, он не лезет в память игры, не инжектится к ней.
Просто читает с экрана инфу и нажимает кнопки.
Понятное дело если его оставлять на дни напролёт, то и бан прилетит сразу же.


я тоже так думал. играл на осеннем. банят по хвиду всех кто был запущен с компьютера без возможности разбана. забанили с 2х недельной задержкой после последнего запуска скрипта.
может по сигнатуре кибора, может по петишкам, никто не расскажет как они это вычисляют.
10. LSTAlex - 17 Февраля, 2021 - 04:33:34 - перейти к сообщению
 stasrus пишет:
 LSTAlex пишет:
 stasrus пишет:
не советую этим заниматься на астериосе. банят очень быстро.

Другое дело как они узнаю обычный кликер, он не лезет в память игры, не инжектится к ней.
Просто читает с экрана инфу и нажимает кнопки.
Понятное дело если его оставлять на дни напролёт, то и бан прилетит сразу же.


я тоже так думал. играл на осеннем. банят по хвиду всех кто был запущен с компьютера без возможности разбана. забанили с 2х недельной задержкой после последнего запуска скрипта.
может по сигнатуре кибора, может по петишкам, никто не расскажет как они это вычисляют.


Я просто считаю что если они сканируют мой пк на наличие запущенных программ, то это уже не законно, если, конечно, они не прописали в соглашении что они имею право собирать всю инфу о тебе... Надо будет проверить.
А петиция... ну не знаю. Получается я могу зайти с 10+ аккаунтов и направить петиции на не нравящегося меня человека и его 100% забанят, так?
Забанили после запуска скрипта на Киборе?

Powered by ExBB FM 1.0 Final