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

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

1. Dymobidge - 16 Февраля, 2021 - 16:25:18 - перейти к сообщению
Доброго времени суток! Начала осваивать Кибор бот с визуального редактора, моей целью было написание бота для фарма опыта в игре мобильная русская рыбалка. Запустила я её на экономичном, в плане потребления ресурсов, андройд эмуляторе - KOplayer и начала творить, а точнее вытворять...

Нажмите для увеличения

Учла все основные факторы, такие как голод, поломавшуюся снасть и тому подобное, но механика выуживания рыбы была очень деревянной (3 секунды зажимает кнопку "тянуть", затем передаёт управление в блок "логики" и, если не было обнаружено каких либо факторов, к примеру не увидел кнопки "отпустить" при поимке рыбы, то вновь зажимает кнопку "тянуть" и так по кругу) и, в связи с этим, я решила доработать эту часть бота, вдохновившись работой Владимира по написанию бота для русской рыбалки 3, взяв оттуда функцию "Лов" и подставив свои параметры.
Именно тут у меня всё пошло не так... Не получается реализовать корректную работу таймера совместно с заимствованной функцией выуживания рыбы "Лов".
Проблема заключается в том, что, при включении таймера (независимо от того, в какой именно момент он был включен) цикл обрывается, оставив зажатой кнопку "тянуть".

Нажмите для увеличения

Мне необходимо, чтобы во время работы цикла "loop()" в функции "fishing" происходил опрос экрана на наличие кнопки "Отпустить" (либо отсутствие надписи "см" на эхолоте) и в случае нахождения управление передавалось в функцию "dismiss", затем выключало таймер, а его включение происходило лишь в функции "fishing".
2. Ilya001 - 16 Февраля, 2021 - 16:47:46 - перейти к сообщению
 Dymobidge пишет:
Доброго времени суток! Начала осваивать Кибор бот с визуального редактора, моей целью было написание бота для фарма опыта в игре мобильная русская рыбалка. Запустила я её на экономичном, в плане потребления ресурсов, андройд эмуляторе - KOplayer и начала творить, а точнее вытворять...

Нажмите для увеличения

Учла все основные факторы, такие как голод, поломавшуюся снасть и тому подобное, но механика выуживания рыбы была очень деревянной (3 секунды зажимает кнопку "тянуть", затем передаёт управление в блок "логики" и, если не было обнаружено каких либо факторов, к примеру не увидел кнопки "отпустить" при поимке рыбы, то вновь зажимает кнопку "тянуть" и так по кругу) и, в связи с этим, я решила доработать эту часть бота, вдохновившись работой Владимира по написанию бота для русской рыбалки 3, взяв оттуда функцию "Лов" и подставив свои параметры.
Именно тут у меня всё пошло не так... Не получается реализовать корректную работу таймера совместно с заимствованной функцией выуживания рыбы "Лов".
Проблема заключается в том, что, при включении таймера (независимо от того, в какой именно момент он был включен) цикл обрывается, оставив зажатой кнопку "тянуть".

Нажмите для увеличения

Мне необходимо, чтобы во время работы цикла "loop()" в функции "fishing" происходил опрос экрана на наличие кнопки "Отпустить" (либо отсутствие надписи "см" на эхолоте) и в случае нахождения управление передавалось в функцию "dismiss", затем выключало таймер, а его включение происходило лишь в функции "fishing".

А без блока логики не как реализовать то что вы хотите? Опишите что хотите точно по порядку. Я сам не кодер и не мастер но уже давно работаю с виз.редактор.кодом, могу подсказать что знаю.
3. Dymobidge - 16 Февраля, 2021 - 16:57:41 - перейти к сообщению
 Ilya001 пишет:

А без блока логики не как реализовать то что вы хотите? Опишите что хотите точно по порядку. Я сам не кодер и не мастер но уже давно работаю с виз.редактор.кодом, могу подсказать что знаю.


Если вы имеете в виду функцию "logics", то нет, эта функция смотрит на сообщения, которые могли появится после заброса удочки, вроде голода или не собранной удочки и лишь после определения того, что всё в порядке, управление переходит в функцию "fishing".

Мне же надо, чтобы при переходе к функции "fishing" включался параллельный опрос на наличие появления какого-либо окна на экране (о поимке рыбы, о том, что рыба сорвалась и т.п.) и в случае появления данного окна завершалась работа функции "fishing" передав управление функции "dismiss".
4. Zireael - 16 Февраля, 2021 - 17:01:16 - перейти к сообщению
 Цитата:
Мне же надо, чтобы при переходе к функции "fishing" включался параллельный опрос на наличие появления какого-либо окна на экране

Включайте таймер при вызове этой функций, в таймере можно выполнить любой код, когда нужно выключайте его.
5. Dymobidge - 16 Февраля, 2021 - 17:06:43 - перейти к сообщению
 Zireael пишет:

Включайте таймер при вызове этой функций, в таймере можно выполнить любой код, когда нужно выключайте его.

Включаю таймер, вот только толку 0, т.к. при включении таймера прекращается распознавание критических точек напряжения удилища и остаётся зажатой кнопка "тянуть" (другими словами ЛКМ)
Именно поэтому и решила искать помощи на форуме
(Добавление)
Возможно ли как-то в цикл "loop()" вставить контрольные точки, чтобы на каждом этапе раз, например, в 10мс опрашивалась логика "if (getcolor(где-тоX, где-тоY)==какой-то_цветZ)" и при правде управление переходило к функции dismiss();, завершая функцию fishing();, а при лжи возвращалась к той точке, с которой произошло обращение к логике "if (getcolor)"?
Этого было бы достаточно, т.к. при появлении какого-либо окна с сообщением происходит затемнение всего фона.
Функция fishing(); (Отобразить)
6. Zireael - 16 Февраля, 2021 - 17:22:16 - перейти к сообщению
Таймер не влияет на работу бота, если конечно в нём нет цикла.
 Цитата:
Возможно ли как-то в цикл "loop()" вставить контрольные точки, чтобы на каждом этапе раз, например, в 10мс опрашивалась логика "if (getcolor

В таймере проверяйте что нужно if (getcolor...
7. Dymobidge - 16 Февраля, 2021 - 17:25:54 - перейти к сообщению
 Zireael пишет:
Таймер не влияет на работу бота, если конечно в нём нет цикла.

Распознавание критических точек как раз и происходит в цикле, но если опрос не производить, то в любой момент может выловиться или сойти рыба, а цикл так и будет ждать свой чёрный пиксель.
8. Dantes3000 - 16 Февраля, 2021 - 17:31:17 - перейти к сообщению
Dymobidge , ну то в этом цикле можно сколько угодно проверок делать, хоть черный пиксель искать, хоть белый. Для этого таймер вообще не нужен. Лично я его использую только лишь когда проверяю не отвалился ли интернет
9. Dymobidge - 16 Февраля, 2021 - 17:35:16 - перейти к сообщению
 Dantes3000 пишет:
Dymobidge , ну то в этом цикле можно сколько угодно проверок делать, хоть черный пиксель искать, хоть белый. Для этого таймер вообще не нужен. Лично я его использую только лишь когда проверяю не отвалился ли интернет

Подскажите пожалуйста, как это реализовать не нарушая цикла в коде функции, изложенном мной выше? Чтобы на любом из этапов происходил опрос getcolor, приостанавливая цикл лишь кратковременно и возвращаясь на ту же строчку цикла в случае лжи.
10. Zireael - 16 Февраля, 2021 - 17:51:07 - перейти к сообщению
CODE:
loop()
{
if (Z==1)
{
if (getcolor(730, 934)==0)
{
mouseup(LEFT, 1170, 950);
Z=0;
}
}

if (Z==0)
{
if (getcolor(695, 934)!=0)
{
mousedown(LEFT, 1170, 950);
Z=1;
}
}
// тут проверять что нужно
sleep(10);
}

Powered by ExBB FM 1.0 Final