Найти в Дзене
Блуждание в trinitycore

Краткий обзор SmartAI и зачем нужен WoWDatabaseEditor

Начну издалека. Как-то год назад, когда я первый раз собрал и запустил сервер wotlk, я хотел понять, как же работает скриптование мобов. Так как я с++ разработчик, то я сразу полез в кодовую базу нашел скрипты рейдов, конкретных боссов и подумал - ну все понятно. Но потом оказалось, что большая часть игровых объектов и существ скриптуется через базу данных. Так что же такое SmartAI - это система скриптования существ и игровых объектов через базу данных. Какие действия можно добавлять через SmartAI: И многое многое другое Фактически вся система скриптования выстроена вокруг таблицы smart_scripts. Таблица содержит очень много колонок. И изучать скрипты сугубо через базу очень грустно и не интересно. Мне больше нравится использовать WoWDatabaseEditor. Это программа помогает визуализировать скрипт SmartAI из строчек в базе в понятное представление. К примеру, вот представление SmartAI скрипта всем известного кобольда Как видно у Kobold Vermin добавлено всего одно действие - после т

Начну издалека. Как-то год назад, когда я первый раз собрал и запустил сервер wotlk, я хотел понять, как же работает скриптование мобов. Так как я с++ разработчик, то я сразу полез в кодовую базу нашел скрипты рейдов, конкретных боссов и подумал - ну все понятно. Но потом оказалось, что большая часть игровых объектов и существ скриптуется через базу данных.

Так что же такое SmartAI - это система скриптования существ и игровых объектов через базу данных.

Какие действия можно добавлять через SmartAI:

  • действия при входе в бой
  • действия при эвейде
  • по таймеру
  • с условием( к примеру дистанция до объекта)
  • действие когда падает здоровье ниже чем %

И многое многое другое

Фактически вся система скриптования выстроена вокруг таблицы smart_scripts. Таблица содержит очень много колонок. И изучать скрипты сугубо через базу очень грустно и не интересно. Мне больше нравится использовать WoWDatabaseEditor. Это программа помогает визуализировать скрипт SmartAI из строчек в базе в понятное представление.

К примеру, вот представление SmartAI скрипта всем известного кобольда

Как видно у Kobold Vermin добавлено всего одно действие - после того, как он сагрится, он говорит всем известную фразу "You no take candle!". Это очень простой скрипт.

Для примера я добавил чуть более сложные условия для своего собственного монстра.

-2

Для моба с именем TestAI мы добавили:

  • Модную фразу "Only Ally MAN!" при входе в бой
  • Каждые 4 секунды наш моб будет кастовать спел 133(fire ball) на цель
  • Если его хп падает ниже 15% он побежит звать на помощь

Это все намного удобнее через работа через базу. Понятно, что для полного понимания вопроса со времени придется разобраться подробнее и устройстве таблицы, но это сильно ускоряет порог вхождения. Вы уже почти сразу можете править простые скрипты.

Со временем я постараюсь рассказать о более сложных вариантах скриптования. Где присутствуют фазы и более сложные условия.