» Функционал проекта
» Пользователи
» Компании
» Статистика
» FAQ
Valverave 41 бросил вызов DeoKristal 37 и победил
1 месяц назад
Нам понадобятся следующие файлы:
Skills.txt Skilldesc.txt States.txt String.tbl
Сначала надо создать сам навык. Для этого урока мы создадим Паладину навык, который будет давать ему «crushing blow». Назовем этот навык просто - Crush.
Открываем skills.txt, ищем строку 147 (навык «Iron Skin»), копируем целую строку, и вставляем как новую в самом низу файла.
Изменяем поля skill, skilldesc и passivestate на что хотите, в нашем случае - Crush. Очень важно помнить, что то у вас записано в этих полях должно соответствовать и в других файлах – код в поле skilldesc должен соответствовать коду в файле skilldesc.txt, а поле passivestate должно соответствовать коду в файле states.txt.
Измените Id на следующий номер по списку, а в поле charclass укажите, кто будет использовать скил.
Коды персонажей: ama -> Amazon ass -> Assassin bar -> Barbarian dru -> Druid nec -> Necromancer pal -> Paladin sor -> Sorceress
Идем дальше к полю passivestat1, где мы указываем, на что именно влияет навык. Эти коды находятся в файле Properties.txt в колонке stat1, и они отличаются от кодов, которые мы используем для статов в вещах. Колонки stat отсылаются на itemstatcost.txt, и для некоторых бонусов, напиример «+ ко всем резистам (res-all)» требуется больше чем один пассивный passivestat. Если взглянуть на навык Варвара Natural Resistance, который дает бонусы ко всем резистам, мы увидим, что у него заняты четыре из пяти возможный слотов passivestat, и у каждого стата применяестя одинаковый расчет (более детально дальше).
passivestat1 -> poisonresist passivecalc1 -> dm12 passivestat2 -> fireresist passivecalc2 -> dm12 passivestat3 -> coldresist passivecalc3 -> dm12 passivestat4 -> lightresist passivecalc4 -> dm12
Итак, здесь мы пропишем item_crushingblow
Далее, в колонке passivecalc1 нам надо указать, как бонус будет рассчитываться с каждым уровнем.
Два самых простых способа, которых можно здесь использовать это ln12 и dm12. Есть и другие более сложные расчеты (их можно найти в файле skillcalc.txt), и вы можете создавать свои собственные формулы. Также здесь можно указывать просто число (например «20») если ваш навык имеет один уровень (как у меня в моде).
Когда вы используете расчет ln12, то в колонке param1 вы задаете начальный бонус на первом уровне навыка, а в param2 число на которое будет повышаться бонус на каждом уровне. То есть, одинаковый бонус на каждом уровне. Это выглядит так:
lv 1 - 10% Crushing Blow lv 2 - 12% Crushing Blow lv 3 - 14% Crushing Blow
Когда вы используете расчет « dm12 », то в колонке param1 вы задаете начальный бонус на первом уровне, а в param2 максимальное число бонуса, к которому навык может дойти. При таком расчете на первых уровнях бонусы будут большие, а потому немного будут уменьшаться.
lv 1 - 10% Crushing Blow lv 2 - 18% Crushing Blow lv 3 - 22% Crushing Blow lv 4 - 23% Crushing Blow
Далее, идем к колонке reqlevel, и указываем требования уровня персонажа для использования навыка. Рядом, колонка maxlvl указывает на максимальный уровень навыка.
Теперь ищем колонку Param1, о которой я вспоминал раньше, и ставим число, которое желаем назначить начальным бонусом навыка. Param1 Description просто поле для комментариев. В колонке Param2 ставим число, на которое повышается наш навык (если мы используем ln12), или максимальное число к которому навык моет дойти (если мы используем dm12).
Мы закончили с skills.txt, сохраняем и закрываем.
Теперь нам надо сделать стэйт («state»).
Открываем States.txt, просто добавляем внизу новую строку и в поле state укажите название которые вы написали в поле passivestate в файле skills.txt. У меня это Crush. Не забудьте поставить «0» в конце, в колонке Eol.
Сохраняем и выходим.
Открываем skilldesc.txt.
Копируем строку Ironskin и вставляем внизу, переименовываем на то, что вы указали в поле skilldesc в файле skills.txt. У меня это Crush.
Колонка «Skillpage» решает, на какой странице навыков будет находиться навык (1, 2 или 3). Счет идет снизу, то есть нижняя страница это первая.
Колонка Skillrow решает, в каком ряду будет навык. Всего есть 6 рядов.
Далее, Skillcolumn решает в какой колонке будет навык: в правой (1), по центру (2), или в левой (3).
ListRow не имеет значения для пасивок, потому что мы их не можем выбрать в панели быстрого выбора навыков.
IconCel это число картинки для навыка. Можно использовать классические иконки, а можно и добавлять свои с помощью DC6 Creator.
Четыре клонки Str name, Str short, str long и str alt это описания навыков. Здесь нужно ввести коды с учитыванием последнего числа (то есть если в последнем навыке стоит Skillname281, мы пишем Skillname282). И так для всех четырех колонок.
Str name это само название навыка. Str short это краткое описание навыка, когда мы наводим на него в быстрой панели. Str long это длинное описание навыка в дереве. Str alt это название навыка на экране персонажа. Помните, что здесь мы вводим только коды, а сам текст будем вводить позже в .tbl файлах.
Двигаемся дальше, к колонке descline1. Здесь надо указать код, как именно игра будет отображать текстовую информацию. Этих кодов всего 75! В следующих гайдах я расскажу про них более детально. Пока поставьте здесь 2.
В ячейке desctextb1 мы пишем код-строку символа, который игра показывает после числа. Здесь пишем StrSkill23 – этот код выводит в игре символ процентов «%».
В ячейке desctexta1 мы пишем код-строку характеристики (я создам свою, но можно использовать и уже существующие). Я напишу здесь «crush», чтобы потом добавить эту код-строку в .tbl файл.
В ячейке desccalca1 пишем то же что и в ячейке Passivecalc1 в skills.txt.
Текст, который выводится в игре: +25% Crushing blow
+25
%
Crushing blow
Формула в desccalca1
«StrSkill23» код в desctextb1
«Crush» код в desctexta1
Теперь время заняться кодами-строками. Откройте string.tbl и добавьте следующие коды-сроки и их описания.
Код
Описание
str name
Название вашего навыка
str short
Краткое описание вашего навыка
str long
Длинное описание вашего навыка
str alt
Crush (код из desctexta1)
Crushing blow (с пробелом после слова)
Помните, что у всех персонажей должно быть одинаковое количество навыков, иначе будет работать только тот у которого наибольше.
Архив с готовыми файлами Skills.txt, Skilldesc.txt, States.txt, String.tbl из данного руководства.
Эти три файла есть частями одного большого файла, который генерируется при запуске игры. Сума строк всех трёх файлов не должна превышать 65536 строк (но на всякий случай не превышайте 32768)
Анимация персонажей, монстров и НПС находится в файлах формата .dcc. Вся анимация монстров находится в папке Monsters. Каждая папка имеет название, которое соответствует названию Токена или Кода монстра (этот код можно найти в файле monstats.txt в колонке CODE). Например, токен фаллена это «fa». Внутри папки с именем токена, лежат еще папки с названиями части тел (hd – head, tr – torso, lh – left hand, rh – right hand, ra – right arm, la – left arm, lg – legs, sh – shield, s1 – first overlay). Если вы загляните, например, в папку таких монстров как Corrupted Rogues то увидите что их «ra» и «la» анимации содержат различные типы оружия. Таким образом, игра генерирует разновидности монстров, с разным оружием, доспехами шлемами и тд. Но не все монстры состоят из разных частей, некоторые состоят из только одной. Поэтому, с этого момента мы будем разделять два понятия: много-компонентные (multi-part) и одно-компонентные (one-part). Также в папке монстра есть папка cof, где лежат контрольные файлы анимации. Очень важно указывать правильное название файлов, потому что от этого зависит все. Рассмотрим пример опять таки на Фалленах.
Fatrlita1hth.dcc – это название одного из файлов анимации. За что же он отвечает? Если разбить название на части мы увидим: Fa – это название токена Фаллена, tr – указывает что это Тело (Torso), lit – значит Легкий вариант брони (light), a1 – указывает тип анимации (Атака 1), hth – указывает класс оружия (hth – hand to hand, то есть ручной бой). Что мы должны помнить всегда? Что, создавая новых монстров мы будем использовать только часть тела “tr”, только класс брони “lit” и только класс оружия “hth”. Потому что на самом деле не важно, что у нашего нового монстра будет в руках топор или меч, мы сейчас говорим о коде игры, а не о то, что изображено на анимации. Теперь пару слов про .cof файлы. Это контрольные файлы, которые указывают игре, сколько кадров есть в .dcc файлах, сколько направлений у юнита, какой кадр является действием и тд. Название .cof файлов должно состоять из токена монстра, типа анимации и класса оружия (FAA1HTH.cof).
В Diablo 2, монстры имеют 8 направлений. Направления нужно указывать только в таком порядке как на картинке. В каждом направлении должно быть одинаковое количество кадров.
Допустим у вас уже есть кадры из которых можно создать гифку подходящую для конвертации в Д2. Но этого мало. Нужно еще обработать эти кадры и подготовить гифку для конвертации в .dcc. Для этого вам понадобиться Gamani Gif Movie Gear. Первое что надо это сделать фон прозрачным. Нажимаем Frame > Global Properties ставим галочку возле слова Transparent и назначаем фоновый цвет прозрачным. Далее внизу надо установить Restore to background. Переходим на следующую вкладку Animation и нажимаем на кнопку возле GIF Bk Color – это цвет фона гифки. Здесь необходимо назначить тот же цвет, который мы сделали прозрачным. Теперь нажмите на кнопку Edit возле слов Global Palette и посмотрите на коды красок – здесь наша задача избавиться от красок с кодом 0,1,2 и 3, потому что игра их не читает. Все просто – если увидите где-то 0,1,2 или 3, просто поменяйте его на 4. От этого цвет не изменится, но будет читаться игрой. И последний штрих, надо продублировать первый кадр. Просто скопируйте первый кадр и вставьте его перед вторым (правая кнопка мышки > Paste before). Если все сделали, нажимаем File > Save Gif animation as…, укажите имя, типа файла .Gif и стиль Animation.
Когда гифка готова, можно конвертировать ее в .dcc. Для этого нам надо программку CV5. Откройте программу, найдите свою гифку, установите Frame from = 1, и нажимайте Save. Выберите тип файла .dcc и укажите имя. Перед вами откроется DCC save settings.
Сверху указываем, что у нашего монстра 8 направлений, а внизу надо поставить палитру Units. А теперь самое сложное и самое главное – это могучие Офсеты. Офсеты нужно вводить со знаком минус «-». Картинка с боку позволяет нам подобрать правильные офсеты на глаз. Чтобы понять какие-именно офсеты вводить вот несколько советов:
С помощью CV5 откройте .dcc файлы монстров из Д2 и пересохраните их как .dcc. Вы увидите, как расположены офсеты у стандартных мобов. Не смотрите на числа – смотрите на место, где линии пересекаются.
Почти всегда место пересечения линий – это возле ног юнита.
Включите 3д мышление – моб крутится вокруг одной точки. Эта точка и есть ваша цель. Эта точка, где у Паладина стоит Аура. Вы можете назначить своему мобу Ауру в игре, чтобы сразу увидеть правильно ли вы ввели офсеты. После нескольких попыток вы сможете вводить более-менее правильные офсеты.
Для создания .cof файла нам понадобится Сof Editor. У этой программы нет интерфейса поэтому придется работать в DOS’е. Для начала откроем файл new.cof.ini и разберемся с функциями:
И дальше все оставляем как есть:
Теперь открываем DOS и прописываем путь к программе. Когда оказались в папке с файлом .exe, прописываем команду cofedit.exe –generate new.cof.ini
Таким образом, вы создали файл .cof. Перенесите его в папку «cof» своего нового монстра.
Файл Animdata.d2 хранит в себе всю информацию об анимации в игре. Сам файл находится в папке data\global. Для его модификации нам надо скачать программку Animdata_edit_v2.1. Скачайте и скопируйте содержимое в любую папку. Запустите файл Extract.bat. У вас появится файл AnimData.txt. Этот файл нам и надо модифицировать. В этом гайде мы учимся создавать новых монстров с новыми токенами, поэтому мы не будем модифицировать уже существующую информацию, а будем добавлять новую. Теперь рассмотрим, что означают названия колонок:
CofName – надо указать, как называется ваш Cof файл.
FramesPerDirection – количество кадров в одном направлении.
AnimationSpeed – скорость анимации.
FrameData000-FrameData143 – это инфомация о кадрах. Помните мы говорили про кадр, в котором происходит действие? Если данный Cof файл является действием (атака или каст), нужно указать в каком кадре происходит действие. Если при создании Cof файла вы указали что действие происходит, например, в кадре 8, то здесь найдите колонку FrameData008 и поставьте там «1». Все остальное должно быть «0». Нельзя ставить единицы в файлах, где действие не происходит, и нельзя ставить единицы в двух кадрах. Если закончили, сохраняйте файл, и запустите файл Pack.bat в папке с программой. Теперь найдите файл AnimData.d2 в той же папке и скопируйте его с заменой в data\global. Все, вы создали новый токен для монстра.
Есть еще одна полезная программка COFTXT, которая извлекает информацию из ваших Cof файлов и генерирует строки для файла AnimData.txt. Я ней не особо пользуюсь, но полезно ее иметь при себе и знать, как она работает.
Откроем monstats.txt и создадим новую строку внизу. Всегда лучше копировать какую-нибудь строку из уже готовых и вставить внизу. Здесь главное указать в колонке Code токен вашего нового монстра. Функции остальных строк можно найти в полном описании файла monstats.txt, но пару советов все же дам.
Теперь откройте monstats2.txt. Id должно соответствовать имени в колонке MonStatsEx в файле monstats.txt. Скопируйте первую строку и вставьте внизу как новую. Нас интересуют только следующие колонки:
MeleeRng – дистанция, из которой монстр сможет вас атаковать;
TRv = «lit» (остальные пустые)
TR = 1 (остальные пустые)
TotalPieces =1
Колонки mDT mNU mWL mGH mA1 mA2 mBL mSC mS1 mS2 mS3 mS4 mDD mKB mSQ mRN – это типы анимации вашего монстра. Я же не знаю, сколько их у вас будет. Если например, у вашего монстра есть анимация ходьбы, то поставьте «1» в колонке mWL. И так далее.
Restore – всегда «1»!!! (О, Боже, сколько проблем мне доставила эта колонка).
isSel – позволяет навести на монстра мышкой.
corpseSel – позволяет навести на труп мышкой.
isAtt – позволяет атаковать.
Revive – позволяет оживить.
Если все готово, откройте файл levels.txt, найдите строку Act 1 - Wilderness 1, найдите колонки mon1-25 и вставьте здесь имя своего нового монстра. Он должен появиться на Кровавом Болоте. Пойдите, посмотрите что получилось.
В данном архиве вы сможете найти кадры анимации юнита из игры Златогорье 2. Вы можете испольовать их чтобы потренироваться использовать советы в гайде на практике.
Здесь находятся актуальные руководства по созданию своих модов для Diablo 2, написанные в 2015-2018 годах человеком, который сам увлекается моддингом и делает свой мод.
Автор: Zelibobo
О том, что такое txt-файлы и как с ними работать читайте в первом и втором гайде по созданию своих модов для Diablo 2. Файл Misc.txt отвечает за свойства и параметры всех предметов, кроме оружия и брони.
Часть брони
Номер
Head
HD #00
Torso
TR #01
Legs
LG #02
RightArm
RA #03
LeftArm
LA #04
RightHand
RH #05
LeftHand
LH #06
Shield
SH #07
Special1
S1 #08
Special2
S2 #09
Special3
S3 #10
Special4
S4 #11
Special5
S5 #12
Special6
S6 #13
Special7
S7 #14
Special8
S8 #15
Везде вместо слова Vendors ставим имя продавца.
Привет. Меня зовут JetaMan и в этой статье я попытаюсь рассказать вам про основные программы, которые используются в создании модов для Diablo 2. Нормальных статей на эту тему нет на русском языке, а те, что есть уже давно не актуальны. Это мой первый гайд поэтому он будет постоянно редактироваться, и будет добавляться новая информация. Итак начнем.
В прошлом, для того чтобы внести изменения в игру модмейкерам приходилось извлекать файлы из архивов, изменять их по своему усмотрению, а потом запихать снова в архив. Потом умные люди придумали команды –direct –txt, с помощью которых игра читала файлы не с архива, а с самих txt файлов в папке с игрой. Но это тоже было не очень удобно, так как не все знали, где и как правильно их прописывать. Сегодня я вам расскажу, как легко начать создавать мод, без выше перечислимых сложностей.
Для начала скачайте программу D2SE Modmanager v2.2.0. Это наш основной инструмент, через который мы получаем доступ к оригинальному Diablo 2, чужим модам и к своему моду одновременно. Я думаю уже многие слышали про эту программу по этому не буду рассказывать как она работает (если не знаете – вам сюда). Скачиваем программу и устанавливаем. Далее переходим по этой ссылке и скачиваем архив. В архиве есть папка под названием “MyMod”. Эту папку кидаем в папку MODS, в каталоге с игрой. Что в папке? Это плагин, который работает, так же как и остальные моды в D2SE Modmanager. Это чистые, не измененные .txt и .tbl файлы, которые находятся в папке DATA\Global\Excel. Когда вы запустите D2SE Modmanager и увидите синюю иконку “MyMod” это означает что вы все сделали правильно.
В правом нижнем угле вы видите две строчки:
Это как раз и есть те самые команды –direct –txt но уже встроены в плагин. Первая команда –direct позволяет сначала считывать информацию с папки DATA а потом уже с архивов .mpq.
Вторя команда создает .bin файлы из .txt файлов при запуске игры.
Чтобы запустить плагин нажмите Start Plugin в правом верхнем углу.
Вот и все. Вы можете спокойно изменять .txt и .tbl файлы и сразу видеть изменения в игре.
Итак, мы получили возможность работать с .txt файлами. Здесь хранятся наиболее редактируемые данные игры. Ни в коем случае не открывайте эти файлы в блокноте, потому что вы рискуете повредить информацию. Существует немало разных программ, которые вы можете использовать для работы с .txt файлами. Я расскажу несколько слов о той программе, которую использую я, а ниже перейдя по ссылке, вы можете посмотреть на другие программы и выбрать, что вам нравится больше.
Я использую программу AFJ Sheet Edit 0.61b.
Преимущества:
Если когда вы открываете .txt файл все ячейки появляются с минимальным размером, просто в опциях поставьте «Resize Column On Load», и при запуске ячейки будут нормального размера.
Здесь вы можете ознакомиться с другими редакторами.
У нас уже имеются распакованные txt и .tbl файлы, но в .mpq архивах все еще содержатся файлы, которые могут нам понадобится в работе, например файлы карт, тайлсэтов, анимация, звуковые эффекты и тд. Лично я использовал MPQView, но опять-таки вы можете выбрать себе по вкусу любую другу. Для того чтобы программа смогла найти и распаковать файлы вам надо иметь List File или другими словами Data File, который указывает где лежат нужные нам файлы. Сначала запустите программу, нажмите Open Data File и выберите Data File который вы скачали, после этого нажмите Open Archive и выберите тот архив, который хотите распаковать.
Все Data File'ы и другие программы для распаковки mpq архивов – здесь.
Также к слову, в MPQView есть полезная фича в правом нижнем углу – это фильтр форматов файлов. Если вам нужно распаковать не все а некоторые конкретные файлы выберите формат который вам нужен и программа выдаст файлы только с этим форматом.
Работая с .txt файлами вы можете обратить внимание, что очень часто там присутствует слово “strings” или сокращенно “str”. Это коды, которые передают информацию в .tbl файлы которые используются игрой для вывода текста. Здесь находятся тексты NPC, тексты квестов, названия уровней, предметов, название скилов и их описание, короче весь весь текст который мы видим в игре. Это надо помнить, когда вы работаете с .txt файлами. Тxt файлы не выводят текст в игре – это делают .tbl файлы, которые находятся в data\local\LNG\ENG\. Для работы я использую AFJ Table Edit 1.11u. Вы можете посмотреть на другие программы за этой ссылкой. Работа с .tbl файлами довольно проста и не требует больших усилий. В левом окошке расположены коды, а в правом – текст который они выдают. Нажмите «+» чтобы добавить код, «-» чтобы удалить код. Когда вы добавляете код, в большом окне вводите текст, который надо отобразить в игре.
На этом первая часть закончена. Работая с .TXT и .TBL файлами можно добиться огромных результатов. Даже великий Brother Laz, автор, по моему мнению, лучшего мода Median XL, почти все свои идеи воплотил именно так. Пожалуйста, пишите в комментариях, что бы вы хотели увидеть в последующих гайдах.
В предыдущем гайде, мы узнали, как распаковать файлы из архивов .mpq. В этой части я расскажу, где какие файлы лежат и чем их редактировать. Часть этой информации уже была опубликована в одной теме, но я решил также написать про это здесь для удобства.
Далее речь пойдет о трёх наиболее обширных сферах моддинга, это редактирование изображений, анимации и карт. Эта статья будет дольше предыдущей, потому, что здесь есть много, о чем рассказать.
Програма для просмотра и создания файлов изображений в формате .dc6
Один из первых аспектов игры, которые люди начинают изменять – это предметы. Вернее изображения предметов. Это неверное самое легкое дело в создании мода. Я использую DC6 Creator для этого. Эта программа имеет удобный интерфейс и много хороших функций. Например:
Можно легко выбрать палитру для изображения (все изображения предметов должны быть в палитре “units”)
Можно устанавливать свои офсеты (местоположение изображения в окне);
А также эта программа может открыть и разбить на кадры файлы анимации .gif, что позволяет нам… внимание… создавать анимированные предметы инвентаря!!!
Недостаток это программы в том, что она не поддерживает массовую конвертацию изображений в .dc6. Но это не есть беда, потому что для массовой конвертации есть другая программа CellConv. У нее менее удобный интерфейс, потому как надо прописывать нужные нам параметры в .ini файле.
Программы для просмотра и редактирования файлов анимации в формате .dcc
Просматривать и извлекать файлы анимации можно программами SixDice и CV5 (скачайте также аддон для CV5). Обе программы имеют плюсы и минусы. CV5 имеет очень много багов, и вылетает почти после каждого сохранения. SixDice имеет работает стабильнее, но у нее отсутствуют некоторые функции. Я лично работаю с CV5, а SixDice мне не нравится. В общем, через CV5 можно сохранить файл в формате .gif а для работы с .gif файлами есть отличная программа Gamani Gif Movie Gear.
Когда откроете CV5, вы увидите два окна: Верхнее – это панель для работы с анимацией, а нижняя это браузер по папкам. Также в верхней панели есть отдельный раздел «Аниматор», где расположены инструменты для работы с анимацией: можно выбирать из какого кадра начать сохранять файл, скорость просмотра анимации, «Играть» и «Сохранить».
Нижняя панель как я уже сказал это браузер. Он тоже делится на две части – слева вид папок, справа кадры анимации. Выберите файл анимации в формате .gif и вы увидите все его кадры. Затем нажмите «Save» в панели «Аниматор», в появившееся окне выберите формат файла для сохранения .dcc и нажмите «Сохранить». Перед вами появится новое окно, которое называется «DCC Save Settings». Другими словами здесь нам надо выставить офсеты для правильного отображения анимации. Офсеты нужно вводить со знаком минус «-». Картинка с боку позволяет нам подобрать правильные офсеты на глаз. Внизу в графе “Trasform to Palette” можно выбрать цветовую палитру для анимации. К слову, все монстры и персонажи должны быть в палитре “Units”.
Программа для просмотра и редактирования карт в формате .ds1
Для редактирования карт у нас имеется несколько программ, но я расскажу только об одной, по моему мнению, лучшей из всех, так как остальные уже устарели. Она называется win_ds1edit. Для полноценной и удобной работы нам надо скачать два архива – саму программу и GUI интерфейс для нее. Скачайте все и скиньте в одну папку. Запускается программа через ds1edit_loader.exe. Когда вы ее запустите вам скажут что программа не настроена и предложат настроить вручную. Нам нужно настроить загрузчик (loader) и редактор (editor). Если вы настройку пропустили, можно потом еще раз запустить через Options -> Configure Loader и Configure Editor. В окне Configure Editor вам нужно указать папки, где хранятся архивы .mpq (d2char.mpq, d2data.mpq, d2exp.mpq) а в графе Patch_D2 укажите путь на файл на Patch_D2.mpq вашего мода. Графа Mod_dir это путь к вашей папке с модом. Во вкладке Screen можно включить или выключить полный экран. И очень важно – в графе Depth установите 32, это глубина цвета. Если оставить как есть, картинка будет искажена. Также, в вкладке Misc поставьте галочку в графе Allow type 2 objects of higher acts – это позволит вам использовать объекты из высших актов (например из Пятого в Первом), потому что по умолчанию это запрещено.
Далее, нам нужно настроить Загрузчик (loader). Нажмите Options -> Configure Loader. В открывшемся окне вам нужно указать путь к файлу редактора.
Теперь нажмите Options -> Register Extension. Эта функция позволяет ассоциировать .ds1 файлы с этой программой и сразу открывать их в редакторе.
Запуск
Запускать программу можно с файла .exe в папке или двойным нажатием на файл .ds1.
Добавить или Удалить файлы в списке
Вы можете использовать функцию File -> Add или перетащить файл в список вручную. Также ели в списке уже имеется одна карта, двойное нажатие на другой файл автоматически добавит второй файл в список к первому. Если несколько карт имеют одинаковое имя, откроется окно, где вам предложат выбор. Чтобы удалить карты из списка выделите файл или файлы, которые желаете удалить и нажмите File -> Remove.
Параметры редактора
Ели выберите View -> Show Parameters вы увидите список дополнительных параметров запуска для редактора.
Список всех карт, которые Редактор может открыть находится в файле maplist.txt в папке с редактором. Чтобы добавить новые карты в список нажмите Settings -> Configure Loader и потом внизу увидите кнопки Add/Modify/Duplicate/Remove. Нажмите Add чтобы начать процесс добавления новой карты, Modify для изменения данных в уже существующем файле.
Нужно заполнить следующие поля:
Для запуска редактора нажмите File -> Run
О том, что такое txt-файлы и как с ними работать читайте в первом и втором гайде по созданию своих модов для Diablo 2. Armor.txt отвечает за все параметры и свойства брони.
Числа приведенные ниже это процентное отношение (если конечно у вас в Noratio стоит «0»). Игра сначала проверяет уровень монстра а потом использует эти проценты чтобы вычислить реальные статы из «общих статов», которые занесены в Monlvl.txt. Это происходит обычным процентным обчислением, т.е. S/100*P, где S=стат, P=процент. Например, если ваш монстр 50 уровня имеет минимальный показатель жизни 200, а «общий стат» для Жизни на уровне 50 это 100, тогда происходит следующие обчисление: 100/100*200, в результате получается 200 ХР.
Из-за новой системы Наградкласса в версии 1.10 эти данные имеют малую значимость по отношению к тому какой наградкласс выбирается, разве что вы измените систему редактирую TreasureClassEx.txt.
Примечание: о том, редактировать файлы, читайте в первом гайде
Сначала откройте pettype.txt, скопируйте целую строку golem и поместите ее внизу списка как три новых строки, и переименуйте их в bloodgolem, irongolem и firegolem. Теперь, в той строке, которую вы копировали (та что под «Валкирией»), переименуйте слово golem в столбце “pettype” на claygolem, «idx» оставьте как есть. Теперь, найдите столбец “mclass1” и впишите число 289, а в столбце “micon1” впишите earthgolumicon. После этого удалите все содержимое других столбцов mclass и micon.
Теперь, перейдем к нашим новым строкам. В строке bloodgolem измените idx на 20. В столбце baseicon измените на bloodgolumicon. Теперь, найдите столбец “mclass1” и впишите число 290, а в столбце “micon1” впишите bloodgolumicon. После этого удалите все содержимое других столбцов mclass и micon.
В строке irongolem измените idx на 21. В столбце baseicon измените на metalgolumicon. Теперь, найдите столбец “mclass1” и впишите число 291, а в столбце “micon1” впишите metalgolumicon. После этого удалите все содержимое других столбцов mclass и micon.
В строке firegolem измените idx на 22. В столбце baseicon измените на firegolumicon. Теперь, найдите столбец “mclass1” и впишите число 292, а в столбце “micon1” впишите firegolumicon. После этого удалите все содержимое других столбцов mclass и micon.
Если вы хотите изменить еще и имена големов в игре, вам надо заменить столбец name. Там указаны коды-строки из файла strings.tbl. То есть впишите какоето слово (например «blood» для Кровавого голема) и потом внесите код blood в strings.tbl и в описании напишите Blood Golem или что хотите.
Сохраните Pettype.txt и откройте Skills.txt.
А теперь идите, призывайте свою армию Големов и надерите задницу Диабло!
О том, что такое txt-файлы и как с ними работать читайте в первом и втором гайде по созданию своих модов для Diablo 2. Как не сложно понять из названия файла, Weapons.txt отвечает за все параметры и свойства оружия.
Всем привет. С вами снова Jetaman. На этот раз хочу вам представить результаты моих исследований в области .dt1 и .ds1 (другими словами тайлсеты и карты).
Во первых, уже существует статья Paul Siramy которая описывает формат .dt1 с точки зрения программиста. Однако эта статья не полная и содержит некоторую неверную информацию. Данная статья, с другой стороны, не описывает код, а нацелена на мэпмейкеров которым нравиться создавать новые карты, локации и тайлсеты. Эта статья поможет вам разобраться со всем, что относиться к картам и тайлсетам.
Когда вы откроете свой редактор карт, и нажмете правой кнопкой мышки на тайле, вы увидите что каждый тайл имеет три индекса которые делают его уникальным и распределяют его в ту или иную категорию.
1-Основной индекс (Main Index) 2-Ориентация (Orientation) 3-Саб индекс (Sub index)
Ориентация 0 – Пол Ориентация 1 – Левая стена Ориентация 2 – Правая стена Ориентация 3 – Правая часть северного угла Ориентация 4 – Левая часть северного угла Ориентация 5 – Левая крайняя стена Ориентация 6 – Правая крайняя стена Ориентация 7 – Южный угол Ориентация 8 – Левая стена проход Ориентация 9 – Правая стена проход Ориентация 10, 11 – Специальные тайлы Ориентация 12 – Единичные объекты, колонны и тд Ориентация 13 – Тени Ориентация 14 – Деревья (с собственной тенью) Ориентация 15 – Крыши Ориентация 16 – Левая нижняя стена (эквивалент Ориентации 1) Ориентация 17 – Правая нижняя стена (эквивалент Ориентации 2) Ориентация 18 – Северный угол нижней стены Ориентация 19 – Южный угол нижней стены
Есть еще один очень важный индекс, который не распределяет тайл по категориям и не отображается в редакторе. Это «Направление» (Direction). «Направление» решает, как свет будет падать на тайл. Это очень важно, если вы создаете новые тайлсеты. Paul Siramy в своей статье говорит что он нашел 5 индексов Направления и заявляет что они ни на что не влияют, однако я нашел целых 9. «Направление» работает совместно с «Ориентацией». Нужно всегда использовать индекс Ориентации с подходящим индексом Направления. Ниже приведена таблица как нужно их использовать.
Direction 1
Orientation 1, 5, 8
Direction 2
Orientation 2, 6, 9
Direction 3
Orientation 0, 3, 4, 12, 14
Direction 4
Orientation 7
Direction 5
Orientation 15
Direction 6
Orientation 16
Direction 7
Orientation 17
Direction 8
Orientation 18
Direction 9
Orientation 19
В этом разделе я предлагаю вам ознакомиться со структурой некоторых зданий в Д2. Я делал это в основном для себя, но позже решил поделиться со всеми. Это поможет вам понять как устроены элементы стен в Д2, если вы захотите создавать новые карты или тайлсеты. После анализа и изучения эти примеров я многому научился, и рекомендую вам. Я немерено не представил здесь все здания Д2, потому что эти примеры демонстрируют все важные аспекты и интересные комбинации.
*** Числа на картинках обозначают Индекс Ориентации.
Акт 1 – Дом + Крыша *** Это базовая структура стен. Здесь использованы все базовые типы Ориентаций.
Акт 1 – Повозка Гида
Акт 1 – Кузница Чарси *** Первый тайл справа стоит выше над землей по сравнению с остальными тайлами стен.
Акт 1 – Палатка Акары * Палатка Акары состоит из двух тайлов Ориентации 12 Странно не так ли? Почему на 1 или 2?
Акт 1 – Длинная Палатка + Крыша
Акт 1 – Мавзолей *Часть лестницы сделана как пол, чтобы игрок мог подойти к входу.
Акт 1 – Крипта **** Часть лестницы сделана как пол, чтобы игрок мог подойти к входу.
Акт 1 – Башня Графини *** Это здание состоит из двух слоев стен. Когда вы заходите внутрь, верхний слой исчезает. По неизвестной нам причине южная угловая стена имеет ориентацию 2 вместо 7.
Акт 3 – Дом Ашеары *** Левая крайняя стена с Ориентацией 6 вдвое дольше обычного, поэтому занимает два квадрата. ***Внутри дома есть стена с изображением дракона, по какой-то причине она имеет ориентацию 6 вместо 1. *** В этом здании используется специальные тайлы чтобы убрать верхний слой стен, открывая интерьер дома.
Акт 3 – Пирамида *** Я был очень удивлен когда я понял насколько просто сделано это здание. Зад пирамиды сделан непроходимым, поэтому игрок не видит этого. Также, на пирамиде есть прозрачные пиксели и если бы игрок бегал сзади пирамиды, то его было бы видно, а это не очень красиво.
Акт 2 - Таверна *** Перед этого здания состоит из двух слоев стен + крыша. Чтобы убрать верхний слой стен и крышу используется Специальный Тайл #49. Это здание интересно тем что верхний слой стены стоит выше нижнего, таким образом создавая эффект двойной высоты стен.
Вам когда ни будь было интересно, почему статуи Рыцарей Смерти в Огненной Реке поворачивают головы, когда вы проходите мимо них? Это закодированное поведение? Анимированый объект? Темная магия? Нет. Это тот же самый механизм, который в первом акте заставляет крышу исчезать, когда вы заходите в дом. Это делается с помощью Специальных Тайлов – они убирают один слой и открывают другой. В случай со статуями – 2 статуи стоят поверх друг друга, когда игрок подбегает к ним, одна исчезает, другая появляется. Вот так просто.
Специальные Тайлы это тайлы которые находятся во вкладке «Special» в редакторе карт. Они выполняют разные функции. Вот список их функций.
#00-46, #82, #83 Vis (тайлы которые позволяют переходить с одной зоны в другую) #47-74 Area (тайлы которые позволяют убирать стены и крыши) #75 Место появления в городе #76 Место появления на локации #77 Место появления в городе 2 #78 Место появления трупа #79 Место появления портала #80 Неизвестно
Мы будем говорить о Специальных Тайлах #47-74 более детально. Но сначала нужно понять что такое «Крыши».
Крыши это те же саме тайлы пола, но с индексом Направления 5 и Ориентацией 15. Крыши должны стоять выше по оси Y, как бы над землей. Для этого, в параметрах тайлсета (в .ini файле) есть строка “roof_y = ”. Обычно “roof_y = 80”, но другие числа тоже возможны, например 160, 240, 320, 400. Но всегда на 80 пикселей вверх.
Пара Специальных Тайлов определяет зону в которой исчезают тайлы. Нужно поставить два идентичных Специальных Тайла так чтобы они сформировали квадрат или прямоугольник над той зоной, которую вы хотите убрать. Как вы видите на примере ниже, если поставить Специальные Тайлы таким образом, красная линия определяет зону где тайлы исчезают.
В файле Lvlprest.txt есть два столбца которые имеют отношение к этому:
Pops – число «исчезаемых зон» которые вы используете на карте. Например, в домике в Акте 1 используется 2 зоны, а в Башня Графини 1 зона.
PopPads – регулирует линию триггера исчезаемой зоны. Другими словами это оффсеты которые измеряются в саб-тайлах
PopPads не определяет размер исчезаемой зоны. Он определяет, где игра приведет в действие механизм исчезания. Если ввести здесь 0, исчезаемость будет точно по линии Специальных Тайлов (красные границы). Если например ввести число 3, тогда зона тригера увеличится на три саб-тайла (синие границы). Если использовать негативное число -3, зона тригера уменьшится на три саб-тайла (зеленые границы).
Очень важно помнить, что зона триггера увеличивается или уменьшается только в двух направлениях: Юг и Восток. Итак, как мы видим на этом изображении, тайлы которые находятся в красной зоне исчезают, когда вы проходите по зеленой или синей границе (в зависимости от числа в PopPads).
Если вы хотите сделать собственные исчезаемые крыши или стены, помните одну очень важную вещь: каждый Специальный Тайл работает со своим собственным Основным индексом. Например, если мы взглянем на крышу дома в Акте 1, мы увидим что крыши имеет Основной Индекс 46, и используются Специальные Тайлы #59 и #62. Это означает что эти два Специальных Тайла не будут работать з другими Основными Индексами. А если Специальный Тайл убирает крышу и стены одновременно (как #47 в городе Акт 4), тогда крыша и стены должны иметь одинаковый Основной Индекс. Если вы посмотрите в городе Акт 4, стены и крыша которые исчезают, имеют Основной Индекс 2 а стены которые остаются, имеют Основной Индекс 4. Детальнее о Специальных Тайлах ниже.
Почти все что было известно о Специальных Тайлах до сейчас было частично неверно. Наши знания основывались на двух предположениях взятых с единственной темы на форуме
1. Специальные Тайлы работают только в одном акте (тайлы из акта 4 не работают в акте 1) 2. Специальные Тайлы убирают конкретный слой стен.
Оба этих предположения оказались неправильными. Акты и слои не имеют значения. Любой Специальный Тайл может использоваться в любом акте и убирать любой слой стен. Единственное что имеет значение это Основной Индекс. Специальные Тайлы проверяет только Основной Индекс тайлов которые стоят в их зоне.
Одна из вечных проблем моддеров была поставить в городе два дома рядом и сделать так чтобы их крыши исчезали отдельно. Всегда они исчезали или вместе или исчезала только одна а вторая вообще никогда не исчезала. Это возможно? – Да. И не только два. Вы можете иметь до 4-ех отдельно исчезаемых зон одновременно.
В редакторе карт специальные тайлы #47-74 распределены по Основному Индексу 8, 9, 10, 12, 13, 16 и 20.
Все эти тайлы нужно разделить на 4 группы:
1. Группа 1 – Специальные Тайлы с Основным индексом 8, 9, и 10. 2. Группа 2 – Специальные Тайлы с Основным индексом 12 и 13. 3. Группа 3 – Специальные Тайлы с Основным индексом 16. 4. Группа 4 – Специальные Тайлы с Основным индексом 20.
Но как нам знать какой Основной индекс убирают Специальные Тайлы? Вот это очень интересно. Саб индекс Специального тайла равняется Основному Индексу которые он убирает. Например, Саб индекс Специального Тайла #47 это 2. Это означает Специальный Тайл #47 убирает все тайлы в которые имеют Основной Индекс 2. Специальный Тайл #48 убирает тайлы с Основным Индексом 7. Специальный Тайл #49 убирает тайлы с Основным Индексом 8 и тд. Теперь, взгяните на Специальные Тайлы #54, #60 и #63 – у них одинаковый Саб Индекс 23. Это означает что все они убирают тайлы с Основным индексом 23. Но зачем нам аж три специальных тайлы с одинаковой функцией? Ответ: для того чтобы иметь возмоножсть формировать сложные фигуры которые нельзя сделать с помощью одного Специального Тайла. С этими тремя Специальными тайлами вы можете создать абсолютно любые сложные фигуры для своих исчезаемых крыш или стен. Эти три Специальных Тайла находятся в одной группе, поэтому они будут убирать все одновременно.
А теперь взгляните на Специальные Тайлы #66 и #74. У них тоже одинаковый Саб индекс 23. Но они принадлежать к разных группам (#54, #60 и #63 из Группы 1, #66 из Группы 2, #74 из Группы 4). Это означает что они будут убирать тайлы отдельно.
Но помните: не используйте Специальные тайлы с одинаковым Основным Индексом вместе (например #47 и #48). Будут глюки!
Подведем итог: если вы будете использовать Специальные Тайлы из 4 разных групп, вы можете иметь 4 исчезаемые зоны одновременно. Вам лишь нужно выставить подходящий Основной индекс для соответствующего Специального Тайла.
В таблице ниже вы можете найти всю информацию о Специальных тайлах #47-74.
Группа
Основной индекс
№ Специального Тайла
Убирает Основной Индекс
Группа 1
8
#47
2
#49
#50
12
#51
14
#52
16
#53
22
#54
23
#55
31
#56
40
#57
41
#58
42
#59
46
9
#60
#61
#62
10
#63
Группа 2
#64
13
#65
#66
#67
24
#68
#69
Группа 3
#70
25
#71
#72
#73
Группа 4
20
#74
Далее, я расскажу об одной вещи которая оставалась в тайне несмотря на 10 с лишним лет Д2 моддинга. Я имею ввиду прозрачность стен. Это происходит когда персонаж стоит за высокой стеной и стена стает немного прозрачной чтобы вы видели своего персонажа за стеной. Для большинства Д2 моддеров это может показаться несущественным, но для тех кто интенсивно работает с картами это очень важно. А также, очень легко пропустить сундук или монстра если его не видно за стеной, а если вы играете не хардкоре то это вообще очень опасно.
Теперь объясним, как это работает на примере карты Inner Cloister. Весь секрет состоит в том, что прозрачность происходит только тогда когда стены соединены в одну непрерывную цепочку. Если удалить один тайл стены и прервать цепочку – прозрачность исчезает.
Цепочка может иметь любой размер. На одной карте можно иметь несколько цепочек.
В файле Lvlprest.txt, есть один важный параметр, столбец Logicals. 0-отключить прозрачност для этого уровня, 1- включить прозрачность для этого уровня.
Также мой знакомый Ogodei узнал что для того чтобы стены исчезали еще нужно чтобы параметр «Tile Sound» в настройках .ini файла имел значение 0. Если у вас что-то другое кроме 0, стены не будут исчезать.
На сегодня все. Надеюсь вам та информация будет полезной.
На этих видео вы можете наглядно увидеть демонстрацию всего, что я описал в статье.
*** кстати я выпустил плагин с этими домами. Его можно скачать и вставить в игру. Ссылка
4 отдельно исчезаемые зоны одновременно:
Демонстрация нового города с исчаземой крышей:
Дополнительные ресурсы: