Что нового

Вычисление локального положения чара к монстру

mini

нинзя-черепангел
Сообщения
44
Репутация
1
UPD* Алгоритм применим ко всем играм где мы можем узнать положение героя и моба в двухмерной/трехмерной координатной осях, тоесть без разницы, получаем мы координаты путем программного лича их из игры или же графическим способом, работает как для клиентских онлайн игр так и для браузерных *UPD (c) Belfigor

Подкиньте хотябы одну идею как реализовать подход к мобу в одной игрухе. Скрин ниже:
Левый персонаж должен подойти к правому. Подход делается по две "соты"(как у пчёл).
Это врятли Вам поможет, но при нажатии на миникарте(правый верхний угол на поле боя) возле точки обозначающей положение персонажа на карте, поле боя централизуется на месте клика. Например, нажали справа от синей точки и мы уже видим не всё поле, а только правую часть, но масштаб не меняется. Карта съезжает вправо.

P.S. 1)Незнаю где создать тему, потому тут и создал, хоть и вродебы чтото похожее на бота для игры.
2) Название вроде бы приличное.но на всякий, не наказывайте. Я исправлю. просто ничего лучше не придумал.


картинка персонажей не меняется, а карта боя меняется. тоесть, как вариант, можно по кол-ву пикселей кликать...(х+10, у+10; ну или както так...)

UPD* Когда тема будет подведена к логическому концу, прошу автора отметить ее решенной *UPD (c) Belfigor
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: Как реализовать подход?(подкиньте хотябы одну идею)

Предупреждение
Переименуй тему. Ее название не несет абсолютно никакой информации


mini [?]
Незнаю где создать тему
Однозначно тут
http://autoit-script.ru/index.php/board,22.0.html
Тему переношу
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
Re: Как реализовать подход к монстру?(скрин прилагается)

тему переназвал
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Как реализовать подход к монстру?(скрин прилагается)

Алгоритм прост: узнаем относительное положение неписи к чару и тыкаем на наилучшую соту в направлении неписи.
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
Re: Как реализовать подход к монстру?(скрин прилагается)

Belfigor сказал(а):
Алгоритм прост: узнаем относительное положение неписи к чару и тыкаем на наилучшую соту в направлении неписи.
типо ищем в правой части поля пиксель из монстра, потом слева пиксель перса, затем подхожу на определённое кол-во координат?
Буду пробовать...
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Как реализовать подход к монстру?(скрин прилагается)

Графическая часть в игре очень примитивная, тобишь при создании графического бота есть где развернуться
37.gif
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
Re: Как реализовать подход к монстру?(скрин прилагается)

Подкинь хоть парочку идей. Кстати, там ещё нужно обходить препятствия, но они обычно на одну такую "соту", как на скрине.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Как реализовать подход к монстру?(скрин прилагается)

В смысле идей? Код штоле?
55.gif
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
Re: Как реализовать подход к монстру?(скрин прилагается)

можно без кода(просто словами). Просто у меня покачто мозги не понимают как это можно реализовать...
Например: обходилку можешь попробовать сделать через такое-то или такое-то, а просто ходилку через такое-то...
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Как реализовать подход к монстру?(скрин прилагается)

Разбиваешь свою миникарту на мнимую координатную сеть, найдя на ней непись и чара будешь знать расстояние и угол в направлении которого надо идти, в твоем случае их всего несколько: 0/30/60/90/120/150/180/210/240/270/300/330/360.

Узнал относительное положение неписи к чару, далее тыц на ячейку и ффпиред. Незнаю как выглядят ячейки когда на них нельзя ходить, но полагаю они отличаются по цвету, тоесть посмотрел во все ли можно ходить ячейки, если не во все, нашел непись, посмотрел стоит ли препятствие на пути или же где-то сбоку, если на пути то ткнул на ближайшую к мобу ячейку, так же дабы не ткнуть вследующий раз на ту ячейку из которой ты пришел (ибо хз какие там препятствия) надо запоминать в каких ячейках ты уже был с момента начала движения до момента встречи с мобом.
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
Re: Как реализовать подход к монстру?(скрин прилагается)

Насчёт разбивания карта на мнимую сеть координат и как делать углы направление я не знаю как делать. Пpидумал сделать по другому - если Yцели равен Yчара, то иду прямо. Если меньше то иду наверх вправо, а если больше то вниз вправо, но это только 3 направления, а надо 5, а то и все 7 .


Кстати, на скрине, между ячейкой номер 5 и чаром, препятствие
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Как реализовать подход к монстру?(скрин прилагается)

3-й класс, прямоугольные треугольники
4.gif
 
Автор
M

mini

нинзя-черепангел
Сообщения
44
Репутация
1
1)
Код:
$left=609 ;Левая координата области для поиска
$top=6 ;Верхняя
$right=793 ;Правая
$bottom=190 ;нижняя
$color=0x66CCC2 ;Цвет пиксела синий
$color1=0xff5229 ;Цвет пиксела красный
Global $A
WinWaitActive("Adobe Flash Player 9") 
$pos = PixelSearch ( $left, $top, $right, $bottom, $color)
$pos1 = PixelSearch ( $left, $top, $right, $bottom, $color1)

If $pos[0] > $pos1[0] Then
    $ProtKat=$pos[0]- $pos1[0] 
Else
    $ProtKat=$pos1[0]- $pos[0] 
EndIf
if $pos[1] > $pos1[1] Then
	$PrilKat=$pos[1]- $pos1[1]	
Else
	$PrilKat=$pos1[1]- $pos[1]
EndIf

$A=Atan($ProtKat / $PrilKat)

MsgBox(0,"угол равен ", $A)
всё работает нормально, но мне выдаёт значение в численном значении, а не в градусах:smile:(числа, которые выдаются, нашел в таблице брадиса и они в градусы переводятся по таблице нормально). Как сделать, чтобы выдавало в градусах?:smile:
2)А если точки на одной прямой, то это уже не треугольник:smile:. Как скрипт решит эту проблему? выдаст результат что угол равен ноль градусов?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Если точки на одной прямой, используй проверку что if x1 = x2 or y1=y2 then "ориентируемся по направлением выше, ниже, правее, левее". В автоите есть мат операторы. Как пример можешь глянуть тут: http://autoit-script.ru/index.php/topic,81.0.html
 

xamd

AION bot developer
Сообщения
66
Репутация
24
По-моему вы усложняете.

Псевдокод:

1. Обозначаем уникальный пиксель, который привяжем к чару
2. Обозначаем уникальный пиксель, который привяжем к мобу
3. Ищем эти пиксели, получаем X,Y чара и моба
4. Выбираем большее значение Y
5. Select-Case конструкция поможет Вам определить, куда и под каким углом двигаться в зависимости от разности высот по Y
6. Проверяем, получилось ли перейти на сл. соту.
7. Если да, то goto 3, если нет - ссылка на сл. Case.

Вот и все. 7 логических действий.
 

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
А что вам мешает сделать простую нумерацию всех клеток поля, сразу отмечать препятствия и потом делать ходы основываясь просто на числах?
 
Верх