Zireael |
Отправлено: 18 Мая, 2019 - 21:15:17
|
Эксперт
Покинул форум
Сообщений всего: 4463
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Примерно так (код не проверял, в теории должно работать):
code (Отобразить)CODE:function find_image(int timeout)
{
int t=gettime()+timeout;
// ждать пока полоска не появится
while(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY2, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1)==0)
{
textbkcolor(65280, 255);
textout(1, coord2[0], coord2[1]-40, "Полоска не найдена", 1); //если не нашлась полоска
sleep(1);
if(t<gettime())return; // если вышло время для ожидания, то вернуться
}
PosX1=PosX2-1;
textbkcolor(255, 65280);
textout(1, PosX2+coord2[0], PosY2+20+coord2[1], format(PosX2), 1); // выведет координату X полоски
while(PosX1<PosX2) // пока шар не дойдёт до полоски
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY1, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
textbkcolor(255, 65280);
textout(0, PosX1+coord2[0], PosY1-20+coord2[1], format(PosX1), 1); // выведет координату X шара
}
else
{
textbkcolor(65280, 255);
textout(0, coord2[0],coord2[1]-60, "Шар не найден", 1); //если не нашёлся шар
}
if(t<gettime())return; // если вышло время для ожидания, то вернуться
sleep(1);
}
// тут нажатие клавиши
}
Все textout можно убрать если не нужны. |
|
|
Limbaugh |
Отправлено: 18 Мая, 2019 - 21:58:49
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Примерно так (код не проверял, в теории должно работать):
code (Отобразить)CODE:function find_image(int timeout)
{
int t=gettime()+timeout;
// ждать пока полоска не появится
while(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY2, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1)==0)
{
textbkcolor(65280, 255);
textout(1, coord2[0], coord2[1]-40, "Полоска не найдена", 1); //если не нашлась полоска
sleep(1);
if(t<gettime())return; // если вышло время для ожидания, то вернуться
}
PosX1=PosX2-1;
textbkcolor(255, 65280);
textout(1, PosX2+coord2[0], PosY2+20+coord2[1], format(PosX2), 1); // выведет координату X полоски
while(PosX1<PosX2) // пока шар не дойдёт до полоски
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY1, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
textbkcolor(255, 65280);
textout(0, PosX1+coord2[0], PosY1-20+coord2[1], format(PosX1), 1); // выведет координату X шара
}
else
{
textbkcolor(65280, 255);
textout(0, coord2[0],coord2[1]-60, "Шар не найден", 1); //если не нашёлся шар
}
if(t<gettime())return; // если вышло время для ожидания, то вернуться
sleep(1);
}
// тут нажатие клавиши
}
Все textout можно убрать если не нужны.
Он жмет, но постоянно на оценку Cool , мне нужно что бы жал Perfect
(Добавление)
Limbaugh пишет: Zireael пишет: Примерно так (код не проверял, в теории должно работать):
code (Отобразить)CODE:function find_image(int timeout)
{
int t=gettime()+timeout;
// ждать пока полоска не появится
while(findimage(1, #Image_1[0][0], -1, #PosX2, #PosY2, coord2[0], coord2[1], coord2[2], coord2[3], r2,r2,r2,r2,r2,r2,100,1, -1)==0)
{
textbkcolor(65280, 255);
textout(1, coord2[0], coord2[1]-40, "Полоска не найдена", 1); //если не нашлась полоска
sleep(1);
if(t<gettime())return; // если вышло время для ожидания, то вернуться
}
PosX1=PosX2-1;
textbkcolor(255, 65280);
textout(1, PosX2+coord2[0], PosY2+20+coord2[1], format(PosX2), 1); // выведет координату X полоски
while(PosX1<PosX2) // пока шар не дойдёт до полоски
{
if(findimage(1, #Image_0[0][0], -1, #PosX1, #PosY1, coord2[0], coord2[1], coord2[2], coord2[3], r1,r1,r1,r1,r1,r1,100,1, -1))
{
textbkcolor(255, 65280);
textout(0, PosX1+coord2[0], PosY1-20+coord2[1], format(PosX1), 1); // выведет координату X шара
}
else
{
textbkcolor(65280, 255);
textout(0, coord2[0],coord2[1]-60, "Шар не найден", 1); //если не нашёлся шар
}
if(t<gettime())return; // если вышло время для ожидания, то вернуться
sleep(1);
}
// тут нажатие клавиши
}
Все textout можно убрать если не нужны.
Он жмет, но постоянно на оценку Cool , мне нужно что бы жал Perfect
Нажимает за полоской почему то постоянно |
|
|
Zireael |
Отправлено: 18 Мая, 2019 - 22:14:04
|
Эксперт
Покинул форум
Сообщений всего: 4463
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Нажимает за полоской почему то постоянно
Потому что нажимать надо чуть заранее.
Тут подобрать значение:
Цитата: while(PosX1+5<PosX2) // пока шар не дойдёт до полоски |
|
|
Limbaugh |
Отправлено: 18 Мая, 2019 - 22:20:29
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: Нажимает за полоской почему то постоянно
Потому что нажимать надо чуть заранее.
Тут подобрать значение:
Цитата: while(PosX1+5<PosX2) // пока шар не дойдёт до полоски
Поставил +5 он нажимает заранее на много и в конце когда шар уже уходит что бы заново пойти, то тоже жмет, странно, попробовал с +1 до +20, он все время одинаково жмет, заранее и в конце еще раз |
|
|
vugayage |
Отправлено: 19 Мая, 2019 - 02:57:06
|
Прохожий
Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2019
Репутация: 0
|
Как будет выглядеть команда, когда при нахождении определенной координаты, к примеру координаты 41, ставится пробел? Именно такой принцип
+учесть, что ставиться он должен в том случае, когда полоса перекрывает шар или наоборот, а не постоянно
игра touch 3 claws, жмет постоянно на идеал и great
хочу поставить координату после перекрытия, для четкого идеала.
как выглядит данная команда?
Dantes3000 пишет: Limbaugh , блин...простейший кликер, а сколько мороки. Что за игра? где потестить можно? [/quote](Отредактировано автором: 19 Мая, 2019 - 03:02:55) |
|
|
Limbaugh |
Отправлено: 22 Мая, 2019 - 04:35:38
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: Нажимает за полоской почему то постоянно
Потому что нажимать надо чуть заранее.
Тут подобрать значение:
Цитата: while(PosX1+5<PosX2) // пока шар не дойдёт до полоски
Так что с этим делать? когда ставишь как ты сказал, то он вообще жмет не доходя до полоски, причем пробовал разные значения и всегда одно и тоже, жмет 1 раз не доходя до полоски, причем далеко от неё, выходит оценка мисс, и под конец, когда шарик уже прошел полоску и начал заново идти почти, то он снова жмет и пишет снова мисс |
|
|
vugayage |
Отправлено: 26 Мая, 2019 - 01:23:38
|
Прохожий
Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2019
Репутация: 0
|
Сделал я смещение координат поиска. Т.е правый нижний угол поставил другие коорд. около полоски, чуть правее.
Всегда ставит ровно. Иногда, когда лагает сама игра, прожимает раньше.
Может в твоей игрушке тоже поможет, пробуй
Limbaugh пишет: Zireael пишет: Цитата: Нажимает за полоской почему то постоянно
Потому что нажимать надо чуть заранее.
Тут подобрать значение:
Цитата: while(PosX1+5<PosX2) // пока шар не дойдёт до полоски
Так что с этим делать? когда ставишь как ты сказал, то он вообще жмет не доходя до полоски, причем пробовал разные значения и всегда одно и тоже, жмет 1 раз не доходя до полоски, причем далеко от неё, выходит оценка мисс, и под конец, когда шарик уже прошел полоску и начал заново идти почти, то он снова жмет и пишет снова мисс |
|
|
007wan |
Отправлено: 26 Мая, 2019 - 14:10:13
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Помогите не могу решить один нюанс:
Есть одна игра, в которой нужно запрограммировать передвижение камеры по карте по заданной траектории.
т.е: НА примере игры Зомби Ферма. Там вид игры сверху, у меня в игре тоже. суть такова: я в игре ищу кнопку, что бы уменьшить масштаб карты дабы захватить всю площадь карты в один прямоугольник - окно игры, но это не выходит, т.к карта еще больше. Как я решаю эту проблему: ищу точку отсчета таким образом( делаю передвижение с зажатой кнопкой мыши в левый верхний угол, т.к карта тоже квадратная и имеет определенный угол(уголы) слепые, которые совмещают x и y отрезки, т.е другими словами я ищу углы карты и заганяю туда камеру так, что бы она не двигалась в разные стороны). Но проблема не в этом, а в том что если я начинаю двигать мышью от точки отсчета по какой-то системе, которая потом в итоги вернется в начало точки отсчета, то невозможно рассчитать последнюю координату куда вернется в начало, т.к потом будут смещения и цикл пойдет по кривой, что приведет к плохой работе бота.
(Добавление)
А, всё нашел способ: я попробую передвигаться не от одной точки отсчета, а сразу по 4. и каждый раз, когда от них отступать и делать то, что нужно, то буду переходить на следующую и снова отступать и переходит к следующей.... |
|
|
|