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

Как добавить своего тренера с бесплатными талантами в trinitycore 3.3.5

Сегодня я покажу как сделать своего тренера с блекджеком и шлюхами с бесплатными талантами и своим приветствием. Для начала немного теории о том, как хранятся тренеры в базе. В определении тренера участвует сразу 6 таблиц: Таблица trainer - хранит в себе определение тренера: Таблица trainer_spell - описывает каким заклинаниям может обучить тренер и сколько они стоят Таблица trainer_locale - описывает приветствие на локалях отличных от английского, те если вы хотите что бы у вашего тренера было приветствие на русском, то вам сюда Далее идет таблица creature_default_trainer. Она связывает описание тренера с описанием существа в таблице creature_template. Таблица лишь представляет словарь: Последняя нужная нам таблица это creature - которая в поле Id имеет ссылку на шаблон существа тренера из creature_template. Теперь чтобы увидеть как все это взаимосвязано я покажу это в виде запроса. На выходе мы увидим несколько тренеров, их тип(тип 1 - равен классу воина), их приветствие в окне о
Оглавление

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

Для начала немного теории о том, как хранятся тренеры в базе. В определении тренера участвует сразу 6 таблиц:

Таблица trainer - хранит в себе определение тренера:

  • Type - тип тренера(тренер или тренеров петов)
  • Requirement - тип тренера по классам(хант, паладин и тд.)
  • Greeting - приветственные слова, что-то вроде: Hello, warrior! Ready for some training?

Таблица trainer_spell - описывает каким заклинаниям может обучить тренер и сколько они стоят

Таблица trainer_locale - описывает приветствие на локалях отличных от английского, те если вы хотите что бы у вашего тренера было приветствие на русском, то вам сюда

Далее идет таблица creature_default_trainer. Она связывает описание тренера с описанием существа в таблице creature_template. Таблица лишь представляет словарь:

  • TrainerId - идентификатор тренера
  • CreatureId - идентификатор creature_template

Последняя нужная нам таблица это creature - которая в поле Id имеет ссылку на шаблон существа тренера из creature_template.

Теперь чтобы увидеть как все это взаимосвязано я покажу это в виде запроса.

На выходе мы увидим несколько тренеров, их тип(тип 1 - равен классу воина), их приветствие в окне обучения и где стоят реальные тренеры по координатам:

Теперь давайте решим задачу из описания:

  1. Нам нужен собственный тренер со своим приветственными текстом
  2. Мы хотим чтобы на русском и англ. клиенте были свои приветствия
  3. Пусть это будет тренер паладинов
  4. Должен стоять на входе Штормграда
  5. Его внешний будет как у Сильваны
  6. Все талы бесплатные

Погнали!

Добавляем сначала новое описание тренера в таблицу trainer

Далее нам хочется задать разную локализацию текста для разных клиентов. Тут нужна таблица trainer_locale. Она хранит варианты приветствия для всех тренеров на разных языках

Делаем так:

Теперь нам нужно сделать шаблон существа. Мы выбираем то существо, которое нам нравится внешне, я выбрал Сильвану.

Вариантов как это сделать масса я предложу один из них.

Сначала выбираем любой id из creature_template, который уже является тренером и сделаем его копию.

что мы тут делаем?

  1. Берем за основу шаблон тренера паладинов с именем Aurelon(мне так захотелось)
  2. Выставляем новый идентификатор entry
  3. В modelid1 прописываем модель сильваны (идентификатор самой сильваны я нашел на wowohead = 10181)
  4. Задаем новое имя я задал MySuperTrainer

Попробуем добавить наше существо. Зайдем в игру gm акаунтом и выполним команду у входа в штормграда .npc add <entry нового существа из запроса выше> и вот что мы получили:

-2

Вид Сильваны есть, имя правильное но это не тренер. И понятно почему.

Мы сейчас:

  • Добавили новое описание тренера
  • Просто добавили существо похожее на сильвану.

Теперь надо связать их через таблицу creature_default_trainer

Теперь у нас появилось стандартное меню тренера.

-3

Если же открыть меню там не будет вообще никаких спелов

-4

Все потому, что нам надо указать, каким заклинаниям наш тренер может обучать. Для этого надо заполнить таблицу trainer_spell

Давайте сделаем так, что наш тренер будет обучать таким же талантам как тренер Brother Wilhelm, но все они будут бесплатные.

И наконец мы добились чего хотели! У нас появился тренер с видом Сильваны и бесплатными талантами у шторма + собственная надпись "Обними меня воин света!"

-5

Резюме:

Еще раз по пунктам что мы сделали:

  1. Добавили в таблицу trainer новое описание тренера
  2. Добавили описание на русском в таблицу trainer_locale
  3. Добавили в creature_template шаблон существа нашего будущего тренера и заменили ему идентификатор модели на ту, которую нам хочется
  4. Связали шаблон существа и тренера через таблицу creature_default_trainer
  5. Добавили нашему тренеры спелы в таблицу trainer_spell, которым он будет учить и выставили им стоимость 0

Спасибо всем кто прочитал сей опус.