Моддинг World of Warcraft. Создание талантов на TSWoW.

Nyll

New member
Продвинутый пользователь
Регистрация
19.06.2020
Сообщения
55
Реакции
76
Баллы
0
Возраст
32
Местоположение
USA
В предыдущей статье мы научились создавать заклинания. Это руководство научит вас всему, что вам нужно знать о том, как создавать дерево талантов и таланты для вашего пользовательского класса. Хотя таланты — это довольно простая концепция, в этом руководстве предполагается, что вы уже работали с упражнениями из предыдущей статьи .Ну что же, приступим!

Дерево талантов

TSWoW предоставляет API для создания и загрузки деревьев талантов для любого класса. Создайте новый файл с именем Talents.ts и добавьте следующий код:

Код:
import { std } from "wow/wotlk";
import { BARD_CLASS } from "./Bard";

export const INSPIRATION_TREE = BARD_CLASS.TalentTrees
        .addGet('tswow-introduction','bard-talents',0)
        .Name.enGB.set('Inspiration')

Если мы перестроим наши скрипты командой build data и повысим уровень барда до 10 уровня ( .levelup 9), то увидим, что у нас пустое дерево талантов под названием «Inspiration».

1.png

Таланты

Как вы, возможно, помните из последнего урока, мы смогли найти идентификатор заклинания, заглянув прямо на вкладку талантов. Простая причина этого в том, что нет никакой разницы между талантом и заклинанием. Таланты — это просто заклинания, добавленные в дерево талантов. Если в ячейке талантов пять уровней, это просто означает, что в эту ячейку добавлено пять отдельных заклинаний. Заклинания, добавляемые в слот, не обязательно должны быть уровнями одного и того же заклинания, как мы скоро увидим.

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

Добавление произвольных заклинаний в качестве таланта

Чтобы проиллюстрировать приведенный выше раздел, мы создадим очень глупый пример таланта, состоящего из заклинаний Fireball(ID 133), Shadow bolt(ID 686), Auto Attack(ID 6603) и, наконец, Sinister Strike(ID 1752).

Добавьте в свой Talents.ts файл следующий код:

Код:
const SILLY_TALENT = INSPIRATION_TREE.Talents
    .addGet('tswow-introduction','silly-talent')
    .Spells.add([133,686,6603,1752])
    .Position.set(0,0)

Пересоберите код с помощью build data, повысьте уровень барда до 15 и посмотрите на свое дерево талантов. Вы должны увидеть огненный болт в качестве иконки таланта.

2.png

Если мы щелкнем по нему один раз, будет указано, что мы изучили Огненный шар и что иконка остается прежним. Однако если мы щелкнем по нему еще раз, чтобы узнать второй ранг, что-то произойдет.

3.png
Иконка изменилась на стрелу тени, и если мы откроем нашу книгу заклинаний, то увидим, что мы не выучили огненный шар и вместо этого выучили стрелу тени. Если мы щелкнем по нему еще раз, он также изменится на автоматическую атаку, и у нас будет незаученная стрела тени.

Последний щелчок по таланту меняет иконку на Зловещий удар, и если мы откроем нашу книгу заклинаний, мы увидим, что у нас есть невыученная автоатака , несмотря на то, что мы уже знали ее раньше.

Создание собственного таланта

Мы показали, что таланты — это обычные заклинания, и мы действительно можем вставить что угодно в наше дерево талантов, но давайте создадим то, для чего чаще всего используются таланты: изменение поведения других заклинаний. Для этого создадим талант, уменьшающий время произнесения заклинания поганища, которое мы создали в предыдущем разделе.

Начало

Наша стратегия будет такой же, как и при создании заклинаний: найти заклинание, похожее на то, что мы пытаемся создать. У магов есть талант, который сокращает время произнесения их Огненного шара, так что, возможно, мы можем каким-то образом переназначить его, чтобы вместо этого повлиять на Призыв Шитого ужаса?

5.png
Однако мы также должны выяснить, как на самом деле изменить заклинание, чтобы оно воздействовало на наше заклинание призыва вместо огненного шара. Мы знаем, что это заклинание влияет на несколько других заклинаний, так как существует несколько огненных шаров, но оно не просто влияет на каждое отдельное заклинание в игре. Чтобы этот раздел сосредоточился на талантах, мы просто скажем, что эффект заклинания, уменьшающий время произнесения, использует то, что называется ClassMask. Эта маска класса должна совпадать с маской класса заклинания, которое мы пытаемся изменить, и в TSWoW есть довольно простой способ добиться этого.

Добавьте следующий код в свой Talents.ts файл, импортируя SUMMON_ABOMINATION.

Код:
// Загружае заклинание «Улучшенный огненный шар».
const IMPROVED_FIREBALL = std.Spells.load(11069)

export const SUMMON_ABOMINATION =
    std.Spells.create('tswow-introduction','summon-abomination-spell',11069)
SUMMON_ABOMINATION.Name.enGB.set(`Improved Summon Abomination`);

// Обратите внимание, как мы сопоставляем определенный эффект в улучшенном заклинании огненный шар
SUMMON_ABOMINATION.ClassMask.match(IMPROVED_FIREBALL.Effects.get(0))

// Это заклинание сохраняет уменьшение времени каста в поле эффектов "BasePoints"
// Поэтому мы меняем это значение на -9000, чтобы сократить время каста на 9 секунд.
SUMMON_ABOMINATION.Effects.get(0).PointsBase.set(-9000)

const SUMMON_ABOMINATION_TALENT = INSPIRATION_TREE.Talents
    .addGet('tswow-introduction','summon-abomination-talent')
    .Position.set(0,1)
    .Spells.add([SUMMON_ABOMINATION.ID])

Изучение этого таланта и попытка заюзать призыв шитого ужаса сейчас должны убедить вас в том, что талант действительно работает так, как задумано. Маски классов немного сложнее, чем мы показали здесь, но мы думаем, что изучение того, как именно они работают, выходит за рамки этого руководства. Однако вы наверняка столкнетесь с ними снова, если будете делать что-либо, связанное с талантами, и, как правило, достаточно использовать этот метод, чтобы они сработали.

Требования к талантам

Таланты могут зависеть от других талантов. Создать такое требование в TSWoW очень просто:

Код:
SUMMON_ABOMINATION_TALENT.Requirements.add(SILLY_TALENT.ID, 3);

Благодаря этому коду Улучшенный призыв шитого ужаса требует как минимум 3 очка silly-talent, который мы создали ранее для изучения.

Результат

В этом руководстве мы узнали, как:

  • Создавать дерево талантов
  • Создавать таланты из существующих заклинаний
  • Создавать собственное заклинание таланта, которое модифицирует другое заклинание
  • Дделать один талант необходимым для другого


На этой прекрасной ноте мы закончим. В следующей части мы создадим тренера для нашего класса.
 
Последнее редактирование:
Верх Низ