• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Форум » TrinityCore » [TrinityCore] Help » Движение группы мобов по кругу (С++ OregonCore)
Движение группы мобов по кругу
Stormtrooper
Командир
Привет всем
Есть такая задача:

Есть 3 моба
1) Необходимо чтобы 1 из них стал лидером а 2 других следовали за ним как сопровождающие
2) Полученная группа должна двигаться строго по вейпоинтам
3) эти вейпоинты должны быть зациклены - тоесть чтобы эта группа ходила тупо по кругу
4) Всё это должно быть НЕ на SmartAI! а на С++!

Подскажите пожалуйста как это должно выглядеть?

p.s стандартное перемещение через uint32 NextStep(uint32 uiSteps) не позволяет зациклить движение (ну или я не понял как это сделать)

Помогите плиз разобраться
Если помог, ставь плюсик в репу :)

Сообщение # 1 написано 11.02.2021 в 18:33
Incorrect
Капрал

Код
void MotionMaster::MoveCirclePath(float x, float y, float z, float radius, bool clockwise, uint8 stepCount)

x, y, z - координаты центра окружности
radius - расстояние от центра до самой окружности, по которой будет двигаться юнит
clockwise - направление (true - по часовой стрелке, false - против часовой стрелки)
stepCount - количество генерируемых точек ("вейпоинтов"), чем их больше, тем более округлой будет выглядеть окружность, обычно указывают 16.
Сообщение # 2 написано 12.02.2021 в 01:23
Stormtrooper
Командир
Цитата Incorrect ()
Код
void MotionMaster::MoveCirclePath(float x, float y, float z, float radius, bool clockwise, uint8 stepCount)

x, y, z - координаты центра окружности
radius - расстояние от центра до самой окружности, по которой будет двигаться юнит
clockwise - направление (true - по часовой стрелке, false - против часовой стрелки)
stepCount - количество генерируемых точек ("вейпоинтов"), чем их больше, тем более округлой будет выглядеть окружность, обычно указывают 16.


Было бы круто но на Орегоне такого функционала нет

Добавлено (12.02.2021, 10:27)
---------------------------------------------

Цитата Stormtrooper ()
Код
void MotionMaster::MoveCirclePath(float x, float y, float z, float radius, bool clockwise, uint8 stepCount)

x, y, z - координаты центра окружности
radius - расстояние от центра до самой окружности, по которой будет двигаться юнит
clockwise - направление (true - по часовой стрелке, false - против часовой стрелки)
stepCount - количество генерируемых точек ("вейпоинтов"), чем их больше, тем более округлой будет выглядеть окружность, обычно указывают 16.


Дополню - да такого функционала на Орегоне нет, но я его внедрил
Спасибо мужик - выручил
Ставлю плюсик в репу smile

Добавлено (12.02.2021, 12:11)
---------------------------------------------
Остался второй вопрос - как сделать из мобов группу а-ля Ведущий + 2 Ведомых (чтобы они следовали за ведущим чётко под определённым углом и на определённом расстоянии)
Пытаюсь сделать через таблицу "creature_formations" но ведомые не двигаются с места
что-то я где-то упустил но пока не пойму что и где

Добавлено (12.02.2021, 12:39)
---------------------------------------------
что-то мне подсказывает что данная таблица имеет смысл только если моб движется по вейпоинтам, любое другое движение похоже игнорируется

Если помог, ставь плюсик в репу :)

Сообщение # 3 написано 12.02.2021 в 09:52
Sergey996
Чемпион
Цитата Stormtrooper ()
Остался второй вопрос - как сделать из мобов группу а-ля Ведущий + 2 Ведомых

me->GetMotionMaster()->MoveFollow(target, mFollowDist, mFollowAngle);
где me - ведомый, target - ведущий.
примеры  можно поглядеть в других скриптах.
Продажа готовых сборок cataclysm 4.3.4, draenor (6.2.4), legion (7.2.5), написание скриптов, исправлений. Цена договорная, возможен тест. Пишите в лс, не дорого.
Сообщение # 4 написано 12.02.2021 в 20:40
Stormtrooper
Командир
Цитата Sergey996 ()
me->GetMotionMaster()->MoveFollow(target, mFollowDist, mFollowAngle);где me - ведомый, target - ведущий.
примеры можно поглядеть в других скриптах.

Я так и сделал но проблема в том чтобы мобы держали красивую формацию
Например через таблицу "creature_formations" при условии движения по Waypoints они держат строй (но в случае использования С++ и движения по кругу данная таблица не работает)

При MoveFollow это не получается - строй всё время сбивается, а хочется чтобы эти мобы летели строем (равнобедренный треугольник) (да-да именно летели - это воздушный патруль)
Если помог, ставь плюсик в репу :)

Сообщение # 5 отредактировано Stormtrooper - Суббота, 13.02.2021, 15:23
Sergey996
Чемпион
Цитата Stormtrooper ()
чтобы мобы держали красивую формацию
в  ветке 4.3.4 эта функция была доработана и сделана более опциональной что позволяет реализовывать такие вещи, скорее всего, можно адаптировать под орегон, но переносить нужно много.
в битве за гилнеас удалось с помощью ее реализовать сопровождение мобами ровно один за другим и при этом "один в другого" не входил. Но на орегоне скорее всего очень старый код и в ином случае придется делать костылями.
Продажа готовых сборок cataclysm 4.3.4, draenor (6.2.4), legion (7.2.5), написание скриптов, исправлений. Цена договорная, возможен тест. Пишите в лс, не дорого.
Сообщение # 6 написано 14.02.2021 в 00:22
Форум » TrinityCore » [TrinityCore] Help » Движение группы мобов по кругу (С++ OregonCore)
  • Страница 1 из 1
  • 1
Поиск: