Добро пожаловать на форум по игре Torchlight!

Новости: Магазин - Гамазавр, скидки на игры

Автор Тема: [TUTORIAL] Предметы. Изменение характеристик предметов(Items).  (Прочитано 4872 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Abramoff

  • Элита
  • Постоялец
  • *****
  • Автор темы
  • Сообщений: 295
  • Репутация: 55
  • Класс: Алхимик
Каждый уважаемый себя воин Вилдерана должен знать своё оружие и доспехи, из чего оно состоит, уметь его разбирать и конечно собирать, если уж разобрал нечаянно. В этой теме я расскажу, как изменить любой предмет, сделать его лучше или же просто понять из чего он состоит, и как работает система характеристик предметов в игре. Возможно, не удаться затронуть абсолютно все элементы предметов, но постараюсь рассказать про самые основные элементы и характеристики. Тема может показаться большой и очень трудной, ибо предметов в игре море и у каждого свои характеристики, но наберитесь терпения, запасетесь зельями.
Предлагаю начать копаться в Кишках Guts.


Окно Items.

Все основные операции по изменению характеристик любого предмета производятся в окне Items. Окно находится в пункте Data Editors->Units->Items главного меню.



Все основные действия над предметами будут происходить именно в этом окне.

Фильтр и поиск.



Для более быстрого нахождения одного предмета среди 6 тысяч остальных существует раздел Filter (фильтр).  В первом поле данного раздела выбирается Тип предмета (я выбрал тип 1HSWORD - Одноручный меч). Во втором поле, что находится ниже, указывают Name (Имя) и его часть. Третье поле Expression позволяет задать поиск по характеристикам (по уровню, например) используя логические операторы (==,!=, >,< и другие). Все логические операторы для составления выражения в третьем поле приведены в окне, которое вызывается по кнопке со знаком «?».
В качестве подопытного предмета оружия я выбрал одноручный меч «Радость». Расскажу, какие он имеет характеристики в окне Items и попробуем сделать его мощнее, чтобы он действительно приносил всем радость.



Базовый файл.



В поле «Base File» указывается базовый файл. Файл общего предмета, от которого будут наследоваться все заданные в нем характеристики и показатели. Обычно в таких базовых предметах указывают общие характеристики свойственные каждой определенной группе предметов, это может быть - оружие магическое, имеет такой-то радиус действия, диапазон урона и остальное.
В данном примере, мы видим, что наш меч наследует характеристики «уникальных мечей» (BASE_SWORD_UNIQUE.DAT) . Те поля характеристик, что не заполнены в нашем мече, но указаны в базовом предмете будут автоматический наследоваться нашему мечу и помечаться розовым цветом.

Имя и описание предмета.


  • Name – внутреннее имя предмета (консольное имя). Если мы в консоли игры напишем «sword_u02», то нам выпадет наш меч.
  • Display Name – отображаемое имя в игре. Наша радость в английском варианте зовется «Joyous».
  • Unidentified Name  – отображаемое имя предмета, если он не распознан (A Mysterious Sword - «Загадочный меч»).
  • Description – описание предмета (It's good to be alive! -  «Как хорошо жить!»).  Если нажать на галочку, то произойдет проверка на грамматические ошибки.
Тут ничего особенно для нас нет. Можем переименовать имя оружия или изменить его описание.

Иконка.



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

Уровень и тип предмета.


  • Unittype – тип предмета (UNIQUE 1HSWORD - Уникальный одноручный меч);
  • Level – уровень предмета. Наш меч имеет уровень 19;
  • Uses – количество предмета (расходный предмет);
  • Rarity – редкость предмета. Чем выше значение, тем выше вероятность выпадение предмета;
  • Min Level – минимальный уровень подземелья;
  • Max Level – максимальный уровень подземелья.
Характеристики предмета.



Переходим к самому интересному, а именно характеристики предмета (Stats). Поскольку у нас меч, мы обратим внимание на Weapon Stats (характеристики оружия).  Дальше по значениям в полях пойдут не конкретные значения характеристик, а их показатель по графику урона - BASE_WEAPON_DAMAGE, данный график можно увидеть в пункте Data Editors->Graphs (Stat Lines) главного меню Guts. Я не раз буду обращаться к значениям из этих графиков. Изменяя непосредственно графики можно изменить все характеристики предметов одним разом, т.е. задать свой баланс в игре.



Вернемся к окну Items. Раздел Damage (урон) имеет поля Min и Max, в них указывается минимальное и максимальное значение урона по графику (BASE_WEAPON_DAMAGE) . Dmg Modifiers (модификации урона), Speed – показатель скорости, Rarity – дополнительный регулятор.
Вычислим наносимый урон нашего меча.

Формулы вычисления максимального и минимального урона:

DAMAGE_MAX=BASE_WEAPON_DAMAGE*(SPEED_DMG_MOD/100)*(MAX/100)*(RARITY_DMG_MOD/100);
DAMAGE_MIN=BASE_WEAPON_DAMAGE*(SPEED_DMG_MOD/100)*(MIN/100)*(RARITY_DMG_MOD/100);

Уровень меча Level=19, значит по графику значение BASE_ WEAPON_DAMAGE=102. Остальные показатели берем из полей SPEED_DMG_MOD=80, MAX=110, RARITY_DMG_MOD=140, MIN=55.

DAMAGE_MAX=102*(80/100)*(110/100)*(140/100)=102*0.8*1.1*1.4=125,664=125;
DAMAGE_MIN=102*(80/100)*(55/100)*(140/100)=102*0.8*0,55*1.4=62,832=62;
(результаты округляем вниз*)

DAMAGE_MIN и DAMAGE_MAX необходимы для вычисления показателей по типам урона. Наш меч имеет следующие типы урона: Physical=40, Electric=40, Fire=20. Вычислим показатели по каждому типу урона.

Формулы вычисления по типу урона:

MIN_DAMAGE_TYPE=DAMAGE_MIN*(DAMAGE_TYPE/100);
MAX_DAMAGE_TYPE=DAMAGE_MAX*(DAMAGE_TYPE/100).

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

Физический урон
MIN_DAMAGE_PHYSICAL=62*(40/100)=24,8=25;
MAX_DAMAGE_PHYSICAL=125*(40/100)=50;

Электрический урон
MIN_DAMAGE_ELECTRIC=62*(40/100)=24,8=25;
MAX_DAMAGE_ELECTRIC=125*(40/100)=50;

Огненный урон
MIN_DAMAGE_FIRE=62*(20/100)=12,4=13;
MAX_DAMAGE_FIRE=125*(20/100)=25.

(результаты округляем вверх*)

Формула для вычисления DPS:

DPS_TYPE =(MIN_DAMAGE_TYPE +MAX_DAMAGE_TYPE)/(2*SPEED_ITEM)

Если же у нас несколько типов урона, то общий DPS будет суммой DPS_TYPE каждого типа урона.

DPS=DPS_ PHYSICAL+DPS_ ELECTRIC+DPS_ FIRE

DPS=(25+50)/(2*0,64)+ (25+50)/(2*0,64)+(13+25)/(2*0,64)=58,59375+58,59375+29,6875=146,875=147

Взглянем на полученные данные:

Физический урон  25-50
Электрический урон 25-50
Огненный урон 13-25
DPS : 147 урон. в сек.

Вот и научились вычислять урон, а теперь сделаем нашу радость мощнее. Добавим еще урон холодом Ice=20 и увеличим максимальный урон Max=200. Посмотрим на полученный результат.

                           

Скорость нанесения урона заполняется в поле Speed. Вычисляется по формуле:

SPEED_ITEM=(SPEED/100)*DEVIATION_FROM_30FPS

У каждого типа оружия свой DEVIATION_FROM_30FPS, и берется он из базового файла предмета. Для меча DEVIATION_FROM_30FPS=0,8. Значение скорости в поле SPEED=80 для нашего меча. Вычислим скорость:

SPEED_ITEM=(80/100)*0,8=0,64

Следующие характеристики берутся без формул:
  • Range – дальность атаки;
  • Strike Range – диапазон атаки;
  • Weapon Arc  - сектор поражения (градус);
  • Secondary Dmg -% побочного урона;
  • Sockets – количество дырок для вставок;
  • Max Sockets – максимально допустимое количество дырок для вставок;
  • Set – принадлежность предмета к набору;
  • Flags – флаги остальных мелких настроек (определен ли предмет, отдает ли тень, бесконечный запас у торговцев и т.д.).

Характеристики брони.

Описание характеристик предмета было бы не полным, если бы я оставил без внимания характеристики брони. Отложим в сторону наш меч и возьмем броню – щит «Зонтик».





Block Chance - % шанс блокировать удар. В игре отображается без изменений.

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



Уровень щита Level=15, значит ARMOR_PLAYER_BYLEVEL_FORSET=46. Дополнительный регулятор брони RARITY_AMR_MOD=160.

Формулы для вычисления максимальной и минимальной брони:

ARMOR_MAX=ARMOR_PLAYER_BYLEVEL_FORSET*(MAX/100)*(RARITY_ARM_MOD/100);
ARMOR_MIN=ARMOR_PLAYER_BYLEVEL_FORSET*(MIN/100)*(RARITY_ARM_MOD/100);

ARMOR_MAX=46*(35/100)*(160/100)=46*0,35*1,6=25,76=25
ARMOR_MIN=46*(35/100)*(160/100)=46*0,35*1,6=25,76=25
(результаты округляем вниз*)

Показатели защиты по типу брони:

MIN_ARMOR_TYPE=ARMOR_MIN*(ARMOR_TYPE/100);
MAX_ARMOR_TYPE= ARMOR _MAX*(ARMOR _TYPE/100).

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

Физическая броня ARMOR_ PHYSICAL=25*(80/100)=20
Защита от яда ARMOR_POISON=25*(30/100)=7,5=7
(результаты округляем вниз*)

Требования к предмету.

Вернемся к нашему мечу «Радость» и рассмотрим требования необходимые для использования предмета. Откроем вкладку «Requirements» (требования) в окне Items.



Здесь мы можем указать какими требованиями должен обладать персонаж, чтобы использовать данный предмет.
В разделе Player Class Req указываются  требования по классу персонажа.



Если предмет имеет ограничения по классу, то этот класс перебрасывается в левую часть окна. Berserker – берсерк, Embermage – эмберлинг, Outlander – скиталец, Railman –инженер.

В разделе Reqs приведенный остальные требования – уровень, сила, ловкость, фокус и выносливость. Рассмотрим, как мы можем изменить требования, чтобы этот предмет мог использовать, скажем, персонаж 2го уровня с силой 10. А пока наш меч требует 23й уровень, силы 73, без ограничения по классу. Взглянем на то, как вычисляются данные требования, и затем изменим их.



Требуемый уровень указывается в поле Level раздела Reqs. Если он не указан, то требуемый уровень берется из графика ITEM_LEVEL_REQUIREMENTS по уровню предмета, в нашем случае уровень предмета Level=19 и принадлежащий  ему требуемый уровень ITEM_LEVEL_REQUIREMENTS=23.

Рассмотрим вычисление других требуемых характеристик персонажа на примере силы. Требование по силе берутся из графика ITEM_STRENGTH_REQUIREMENTS по уровню.



Формула для вычисления требуемой силы: 

STRENGTH_REQ= ITEM_STRENGTH_REQUIREMENTS*(STRENGTH/100).

Показатель по ограничению силу в поле Strength=116, ITEM_STRENGTH_REQUIREMENTS=63.

STRENGTH_REQ=116*(63/100)=73,08=73.
(результат округляется вниз)

Требования по другим характеристикам вычисляются таким же способом, отличается лишь график.
  • ITEM_DEXTERITY_REQUIREMENTS – график ограничения по ловкости;
  • ITEM_MAGIC_REQUIREMENTS – график ограничения по фокусу;
  • ITEM_DEFENSE_REQUIREMENTS – график ограничения по выносливости;
  • ITEM_LEVEL_REQUIREMENTS_SOCKETABLE – график ограничения по уровню предмета(для вставок).
Приступим к реализации нашей задачи – разрешить использовать наш меч персонажу 2го уровня с силой 10. В разделе Reqs изменим требуемый уровень Level=2 и силу Strength по выведенной формуле из предыдущей формулы для вычисления STRENGTH_REQ .

Strength=(STRENGTH_REQ*100)/ITEM_STRENGTH_REQUIREMENTS;

Strength=(10*100)/63=15,87=16.

Требуемая сила персонажа Strength=16. Взглянем на полученный результат:



Текстовый вид характеристик предмета.



Каждый предмет записан формате .DAT в папке ...\MEDIA\UNITS\ITEMS в виде текстового файла с тегами. Все теги схожи с полями, что мы рассматривали в окне Items. Более подробная информация по тегам в документации по Guts Ссылка. Именно по этой документации начал я изучать свойства предметов в игре.

Остальные характеристики предмета.

Вот мы и подошли к концу темы, остальные характеристики предмета либо мне мало знакомы, либо не относятся к общей теме, лишь укажу их предназначения.
  • Affixes, Effects, Skills  – магические способности, эффекты, навыки предмета (это целая отдельная тема, более-менее подробно рассмотрена в документации по Guts Ссылка);
  • Sounds – звуковые файлы предмета;
  • Wardrobe – гардероб, как данная вещь будет отображаться на том или ином классе;
  • Texture Replace – текстуры материала;
  • Map Data – подземелье, к которому привязан предмет.
Возможно эти и остальные характеристики будут рассмотрены в других темах.

*Некоторые предметы требуют другого округления, пока не смог выявить определенной закономерности, и возможны погрешности на 1-2 единицу.
« Последнее редактирование: 12 Август 2015, 19:02:26 от Abramoff »

Сайт TIDBI - База данных предметов Torchlight 1-2 и SynergiesMOD

Оффлайн S_Kleer

  • Пользователь
  • **
  • Сообщений: 193
  • Репутация: 15
  • Лорд Тьмы
  • Класс: Берсерк
Почитаю на досуге, но меня всё время раздражает надпись CHATED ITEM. Будто вы его каким-то читом в игру добавляете.
В моих предметах почему-то нету такой писанины.

Оффлайн Abramoff

  • Элита
  • Постоялец
  • *****
  • Автор темы
  • Сообщений: 295
  • Репутация: 55
  • Класс: Алхимик
CHATED ITEM
в редакторе через консоль получаю нужный мне предмет.

Сайт TIDBI - База данных предметов Torchlight 1-2 и SynergiesMOD

Оффлайн Kva3imoda

  • Главный Модератор
  • *****
  • Сообщений: 5350
  • Репутация: 162
  • Ломай, круши!
  • Класс: Разрушитель
На моих предметах тоже постоянно такая надпись. ;D Мы с Абрамовым жуткие читаки в ГУТСе. Через консоль предметы удобно создавать, особенно если имя короткое. Но если постоянно и долго приходится 1 предмет тестить, то можно создать кусочек пола и добавить генератор-спаунер предмета - для автоматической генерации предмета при запуске игрового режима.


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

 

Яндекс.Метрика SPRINTHOST.RU: быстрый и надежный хостинг!
SMF 2.0.5 | SMF © 2011, Simple Machines
| Карта сайта | Форум фан-сайта mytorchlight.ru
При использовании материалов гиперссылка на mytorchlight.ru обязательна.