Пьяная походка - Drunked walking / вычисление точки встречи
Модератор: 4epT
Если ещё надо - вот примерная реализация алгоритма поиска точки встречи. Прога на дельфях + исходники
- Вложения
-
- RO walk calc.rar
- (180.34 КБ) 225 скачиваний
Внимательно прочитал тему и заинтересовался, могу попробовать выложить свои идеи насчет атаки в ближайшее время, не обещаю, что это очень скоро, но как допишу тоже програмку для тестов собственную, то выложу тут.
Хотелось бы все же довести хорошую идею до реализации.
P.S. Учитывалось ли при отнимании дистанции атаки от отрезка АВ, что в этот момент моб еще не в точке В и надо вносить поправку более сложную, чем просто вычитание длины?
Хотелось бы все же довести хорошую идею до реализации.
P.S. Учитывалось ли при отнимании дистанции атаки от отрезка АВ, что в этот момент моб еще не в точке В и надо вносить поправку более сложную, чем просто вычитание длины?
Cooot
В принципе, алгоритм прямо наследовал поведение клиента.
Собственно мобы, не могут прервать свой путь ранее пришедший соответствующим пакетом, кроме вариантов когда их атакуют (тогда движение прерывается и вектор изменяется).
Собственно новый алгоритм вычисления точки соприкосновения должен работать во время, когда моб находится в движении. Вне зависимости от того, что он идёт прямо на нас или возле нас.
В случае если моб стоит, тогда вычисляется ближайшая точка в которую нам нужно стать.
Есть два варианта реализации:
1) Перебор точек с учётом дистанции которую нам нужно держать. Отсортировать время (разницу) когда мы подойдём на дистанцию атаки, и выбрать точку в которой мы наверняка подойдём к мобу на дистанцию атаки в кратчайший срок.
2) Использовать несложные математические условия для более точного нахождения точки соприкосновения.
Самое главное реализовать систему которая будет выдавать одинаковый результат в случае преждевренной остановки моба.
В принципе, алгоритм прямо наследовал поведение клиента.
Собственно мобы, не могут прервать свой путь ранее пришедший соответствующим пакетом, кроме вариантов когда их атакуют (тогда движение прерывается и вектор изменяется).
Собственно новый алгоритм вычисления точки соприкосновения должен работать во время, когда моб находится в движении. Вне зависимости от того, что он идёт прямо на нас или возле нас.
В случае если моб стоит, тогда вычисляется ближайшая точка в которую нам нужно стать.
Есть два варианта реализации:
1) Перебор точек с учётом дистанции которую нам нужно держать. Отсортировать время (разницу) когда мы подойдём на дистанцию атаки, и выбрать точку в которой мы наверняка подойдём к мобу на дистанцию атаки в кратчайший срок.
2) Использовать несложные математические условия для более точного нахождения точки соприкосновения.
Самое главное реализовать систему которая будет выдавать одинаковый результат в случае преждевренной остановки моба.
Пробую второй способ, математический. Учел сообщения MFBeaST и картинку, что была нарисована в предыдущих постах, так же попробовав построить все формулы заново учитывая только координаты точек А, В и С и скорости движения (угол В рассчитывался заново через теорему косинусов). Вот для будущих выкладок образец обозначений, которые я принял в формулах:
т. А - положение бота на начало движения
т. В - положение моба на начало движения
т. С - точка назначения движения моба
т. D - точка предполагаемой встречи [пока что без учета дистанции атаки, поправку внесу позднее]
т. К, M, N, L - вспомогательные точки

т. А - положение бота на начало движения
т. В - положение моба на начало движения
т. С - точка назначения движения моба
т. D - точка предполагаемой встречи [пока что без учета дистанции атаки, поправку внесу позднее]
т. К, M, N, L - вспомогательные точки

Расчеты останутся верны, если для координат точки В использовать не {pos}, а realMonsterPos. Это надеюсь реализуемо?
Последний раз редактировалось Cooot Ср июл 16, 2008 2:06 pm, всего редактировалось 2 раза.