Добавлен Sergant1000,
опубликован
Раздел:
Работа с MPQ и импортом
Вступление
Каждый из нас хоть раз хотел сделать свой В3, но не знал как это
сделать. Или импортировать в карту больше 8ми метров моделей.
Радуйтесь теперь все просто. Описываю как импортировать.
сделать. Или импортировать в карту больше 8ми метров моделей.
Радуйтесь теперь все просто. Описываю как импортировать.
Первое нужно:
прога распаковки MPQ в моем случае MPQmaster
прога просмотра моделей в моем случае War3ModelEditor 1.05 Rus
Microsoft EXEL
Блокнот
Руки
мозг
World Editor
Куча, ну просто прорва времени.
прога распаковки MPQ в моем случае MPQmaster
прога просмотра моделей в моем случае War3ModelEditor 1.05 Rus
Microsoft EXEL
Блокнот
Руки
мозг
World Editor
Куча, ну просто прорва времени.
И так начнем, в директории игры есть war3.mpq war3x.mpq war3patch.mpq и war3xlocal.mpq. Из всех нам нужен
war3patch.mpq т.к. в нем файлы имеют приоритет перед остальными. Создаем папку в которой будем
импортировать\экспортировать.
.Открываем war3patch.mpq MPQmaster*ом находим папку Units нам нужны
все .slx и .txt файлы. Сохраняем их в папку.
все .slx и .txt файлы. Сохраняем их в папку.
Так же если вы незнаете что означают величины в файлах, открываем WE редактор объектов *вид показывать названия переменных* ставим галочку и теперь все названия предметов, способностей, юнитов, характеристик, и т.д. станут как в файлах.
I. Операции с предметами
Нам для этого потребуются следующие файлы:
ItemData.sl - содержит инфу о предметах какие способности и какая модель.
ItemFunc.txt - содержит иконку предмета и ее положение
ItemStrings.txt - содержит название и описание предмета
ItemAbilityFunc.txt - содержит инфу о иконке способности чем стреляет, где находится эффект, куда попадает эффект.
ItemAbilityStrings.txt - содержит описание предмета.
=== 1. Импорт нового предмета
- 1.1. Запускаем MPQmaster открываем war3patch.mpq находим папку Objects создаем
модель предмета допустим HorseRidish в итоге путь выглядит
так: Objects\Items\HorseRidish.mdx запоминаем.
- 1.2. Импортируем иконки:
затенённую ПО пути - ReplaceableTextures\CommandButtonsDisabled\DISBTNxxx,
Где xxx название картинки.
- 1.3. Открываем предварительно сохраненный на жестком, файл ItemData.sl
itemID | - порядковый номер предмета(не должен повторяться) |
comment | - название предмета |
scriptname | - скриптовое название (должно быть такое же как и в comment но без пробелов) |
class | - клас предмета. «артефакт», «только для компании» или «прочее», и т.д |
Level | - уровень предмета |
abilList | - способность предмета |
cooldownID | - время отката |
uses | - используется ли как книга или зелье |
usable | - используется ли вообще, если нет то в uses ничего не ставить. |
droppable | - выпадает ли |
sellable | - можно ли продать |
drop | - падает |
stockMax | - кол-во зарядов |
stockRegen | - откат после покупки |
stockStart | - откат после начала игры |
goldcost | - стоит золота |
lumbercost | - стоит дерева |
HP | - жизни |
file | - путь к файлу |
scale | - размер |
colorR | - цвет предмета красный |
colorG | - цвет предмета зеленый |
colorB | - цвет предмета синий |
- 1.4. Делаем наш предмет поставим ему индентификатор допустим puki и называете его допустим *Demon
нашего предмета, сохраняем.
- 1.5. Открываем ItemFunc.txt мы должны вставить конструкцию:
[puki] - в скобках наш ID предмета
Art=ReplaceableTextures\CommandButtons\BTNxxx - путь к нашей иконке
- 1.6. Возвращаемся к ItemData.sl а конкретно к столбику abilList, в него надо вставить
AbilityBuffData.slk. если непонятно что за непонятные буквы то запускаем WE открываем редактор
объектов, выбираем вкладыш способности, теперь под шапкой есть меню, нас интересует вид\показать
название переменных. Ставим галочку и вуаля теперь нам все понятно. Выбираем понравившуюся
способность в нашем случае это AIob. Вставляем, сохраняем.
- 1.7. Открываем ItemStrings.txt опять идем в низ и вставляем такую конструкцию.
[puki]
Name=Демон Фига | - название предмета | ||||||
Hotkey=R | - горячая клавиша | ||||||
Tip=Демон Фига ( | cffffcc00R | r) | - название предмета в краткой подсказке подсказке |
Ubertip="При каждой атаке герой замораживает
противника, нанося ему <AIf2,DataA1> ед. урона
и снижая скорость его перемещения и боя. Кроме
того, герой получает возможность атаковать
воздушные цели." - описание
Description=При атаке герой замораживает - подсказка подробная
противников.
противника, нанося ему <AIf2,DataA1> ед. урона
и снижая скорость его перемещения и боя. Кроме
того, герой получает возможность атаковать
воздушные цели." - описание
Description=При атаке герой замораживает - подсказка подробная
противников.
- 1.8. Сохраняем, импортируем все измененные файлы в war3patch.mpq. И сидим наслаждаемся своим
2. Замена модели предмета
- 2.1. Повторяем пункт 1.1.
- 2.2. Открываем ItemData.sl идем до столбика file. Заменяем путь. Сохраняем.
- 2.3. импортируем измененный ItemData.sl обратно в war3patch.mpq. и наслаждаемся изменением.
Аналогично с изменение Способности, Характеристики, Иконкой и т.д.
II. операции с юнитом
Нам потребуются следующие файлы:
unitUI.sl - содержит инфу о модели юнита.
UnitData.sl - содержит инфу о юнитах.
UnitWeapons.slk - содержит инфу о оружии юнита(тип, дамаг, каст)
UnitBalance.slk - содержит инфу скока юнит стоит его хп мп а для героев какие характеристики
и на скока повышаются.
UnitAbilities.slk - содержит инфу о какие абилки имеет юнит
XXXUnitFunc.txt - иконка вашего юнита, чем стреляет как, и как дохнет
XXXUnitStrings.txt - описание юнита
(где ХХХ название рассы)
=== 1. Импорт нового юнита
=== 1. Импорт нового юнита
- 1.1. Запускаем MPQmaster открываем war3patch.mpq и импортируем модель юнита Например *Torchok.mdx* и
тут 2 варианта:
Первый:
если у вас модель при загрузки ее в карту, не отображается со стандартным путем то, импортируем
модель в корень мпкушника. И запоминаем название модели.
Второй:
если отображается нормально то открываем папку Units и создаем там путь вида:
Units\ХХХ\Torchok\Torchok.mdx где ХХХ название рассы.
(оба описания нужны только для удобства манипулировании моделями, в первом для отображения модели в
(оба описания нужны только для удобства манипулировании моделями, в первом для отображения модели в
эдиторе, второй чтоб не запутаться в файлах)
И запоминаем путь
И запоминаем путь
- 1.2. Импортируем иконки:
затененну ПО пути - ReplaceableTextures\CommandButtonsDisabled\DISBTNxxx,
Где xxx название иконки.
- 1.3. Открываем предварительно сохраненный на жестком, фаил unitUI.sl
unitUIID - порядковый номер юнита(не должен повторяться. первый символ кода соответствует расе, а
именно h - люди, o - орки, e – ночные эльфы, u - нежить, n – «нейтралы», z – остальные. Также важным
моментом является то, что порядковый номер всех героев начинаются с большой буквы.)
именно h - люди, o - орки, e – ночные эльфы, u - нежить, n – «нейтралы», z – остальные. Также важным
моментом является то, что порядковый номер всех героев начинаются с большой буквы.)
sortUI - столбец категорий. Там вы увидите такие значения, как a1, a2, a3, b1, b2 и т.д.
Всех, как видно, три категории. К категории l1 (l – это первая буква) относятся герои, к категории l2
– обычные юниты, а к категории l3 – здания. Для юнитов из других игр предусмотрена категория z9.
Всех, как видно, три категории. К категории l1 (l – это первая буква) относятся герои, к категории l2
– обычные юниты, а к категории l3 – здания. Для юнитов из других игр предусмотрена категория z9.
file | - путь к модели юнита | ||
unitSound | - звук юнита | ||
name | - название юнита | ||
unitClass | - класс юнита | ||
special | - является специальным юнитом (будет отображаться в эдиторе как созданный вами) | ||
campaign | - является юнитом компании(будет отображаться в эдиторе как юнит компании) | ||
inEditor | - показывается ли в WE | ||
dropItems | - падают ли предметы | ||
walk | - ходи | ||
run | - бегает | ||
modelScale | - размер модели | ||
red | - цвет юнита красный | ||
green | - цвет юнита зеленый | ||
blue | - цвет юнита синий |
- 1.4. Делаем нашего юнита поставим ему порядковый номер (порядковый номер всех героев начинаются с большой буквы, порядковый номер обычных юнитов с маленькой) para и назовем его Torchok запоминаем его индентификатор Идем до столбика file и вставляем ранее запомненный путь к модели нашего юнита, сохраняем.
- 1.5. Откройте сохранённый файл UnitBalance.slk.
В первом столбце порядковый номер юнита. Аналогично с unitUI.sl.
Второй столбец – столбец категорий. Там вы увидите такие значения, как a1, a2, a3, b1, b2 и т.д.
Всех, как видно, три категории. К категории l1 (l – это первая буква) относятся герои, к категории l2
– обычные юниты, а к категории l3 – здания. Для юнитов из других игр предусмотрена категория z9.
Второй столбец – столбец категорий. Там вы увидите такие значения, как a1, a2, a3, b1, b2 и т.д.
Всех, как видно, три категории. К категории l1 (l – это первая буква) относятся герои, к категории l2
– обычные юниты, а к категории l3 – здания. Для юнитов из других игр предусмотрена категория z9.
Третий столбец
uher – юнит является героем
xbui – юнит является зданием
sum – юнит является вызванным
art – юнит относится к классу артиллерии
tow – юнит является башней
fly1 – юнит является летающим, и не имеет наездника (исключение – вертолёт)
fly2 – юнит является летающим и управляется наездником
peo – юнит является работником
zz – другое
zzz – юнит взят из другой игры
cas – юнит относится к классу магов
me1 и me2 – к первому классу относятся обычные слабые воины, а ко второму – сильные.
uher – юнит является героем
xbui – юнит является зданием
sum – юнит является вызванным
art – юнит относится к классу артиллерии
tow – юнит является башней
fly1 – юнит является летающим, и не имеет наездника (исключение – вертолёт)
fly2 – юнит является летающим и управляется наездником
peo – юнит является работником
zz – другое
zzz – юнит взят из другой игры
cas – юнит относится к классу магов
me1 и me2 – к первому классу относятся обычные слабые воины, а ко второму – сильные.
Четвёртый столбец – это уровень юнита. Если он равен 5 и больше, то юнит считается сильным существом
и его нельзя захватить заклинанием «Обладание» у привидения. Как ни странно, башни тоже имеют
уровень, равный одному.
и его нельзя захватить заклинанием «Обладание» у привидения. Как ни странно, башни тоже имеют
уровень, равный одному.
- 1.6. Откройте сохранённые файлы UnitWeapons.slk и UnitData.sl, и отредактируйте их по анологии.
- 1.7. откройте UnitAbilities.slk
unitAbilID | - порядковый номер юнита |
sortAbil | - категория юнита |
comment(s) | - название юнита |
auto | - автокаст(если стоит то юнит будет кастовать спел постоянно как хиллер у людей или как шаман у орды) |
abilList | - способность юнита (постоянная абилка) |
heroAbilList | - способность героя (прокачивающяяся абилка, макс 5) |
(название способности смотрим в AbilityData.slk и AbilityBuffData.slk )
ставим сохраняем
ставим сохраняем
1,8.открываем XXXUnitFunc.txt
вставляем конструкцию:
[para]
Builds=unpl,uzig,usep,ugrv,uaod,utod,uslh,ubon,usap,ugol,utom- тут пишется что юнит может построить (необязательно)
Art=ReplaceableTextures\CommandButtons\BTNххх.blp- ставим иконку юнита(обязательно)
Specialart=- спецэфект смерти необязательно)
Requires=- требования(необязательно)
Missileart=- снаряд(необязательно)
Missilearc=- дуга снаряда(необязательно)
Missilespeed= - скорость снаряда(необязательно)
MissileHoming=- самонаводящийся\не самонаводящийся (необязательно)
Art=ReplaceableTextures\CommandButtons\BTNххх.blp- ставим иконку юнита(обязательно)
Specialart=- спецэфект смерти необязательно)
Requires=- требования(необязательно)
Missileart=- снаряд(необязательно)
Missilearc=- дуга снаряда(необязательно)
Missilespeed= - скорость снаряда(необязательно)
MissileHoming=- самонаводящийся\не самонаводящийся (необязательно)
сохраняем.
- 1.9. открываем XXXAbilityStrings.txt
вставляем конструкцию:
[para] - id-код юнита
Name=Торчок - название юнита
Propernames=Фебис-Ра,Тигрис-Атон,Эхнамо - имена героя(если юнит, герой то добавляем строчку если нет то нет)
Tip=Торчок - название юнита в краткой подсказке
Hotkey=C - горячая клавиша
Ubertip="Мега юнит дохнущий от ломки" - описание юнита
Revivetip=Воскресить Торчок
Awakentip=Воскресить Торчок
Propernames=Фебис-Ра,Тигрис-Атон,Эхнамо - имена героя(если юнит, герой то добавляем строчку если нет то нет)
Tip=Торчок - название юнита в краткой подсказке
Hotkey=C - горячая клавиша
Ubertip="Мега юнит дохнущий от ломки" - описание юнита
Revivetip=Воскресить Торчок
Awakentip=Воскресить Торчок
сохраняем.
- 1.10. Сохраняем, импортируем все измененные файлы в war3patch.mpq. И сидим наслаждаемся своим Персом.
2. Замена модели юнита
2.1 выполняем пункт 1.1
2.2 выполняем пункт 1.3
2.3 открываем WE ставим галку на *показывать названия переменных* и смотрим id-юнита запоминаем, ищем
его в unitUI.sl, ставим путь импортированной модели. Сохраняем.
готово. Аналогично с абилками, иконками, описанием, характеристиками и т.д.
IV Операции со зданиями
Здания импортируются либо заменяются также как и юниты.
V Операции со способностями
Нам для этого потребуются следующие файлы:
AbilitisData.sl - содержит инфу о способностях.
AbilityBuffData- содержит инфу о данных.
XXXAbilityFunc.txt- содержит инфу о иконке способности чем стреляет, где находится эффект, куда попадает эфект.
XXXAbilityStrings.txt- описание способности
XXXAbilityFunc.txt- содержит инфу о иконке способности чем стреляет, где находится эффект, куда попадает эфект.
XXXAbilityStrings.txt- описание способности
(где ХХХ название рассы)
1. Импорт новой способности
1.1 Запускаем MPQmaster открываем war3patch.mpq находим папку Abilities создаем
в ней папку и назовем ее (как угодно) допустим MySpell импортируем будущую
модель спелла, допустим HevenAndHell в итоге путь выглядит
так: Abilities\MySpell\HevenAndHell.mdx запоминаем.
в ней папку и назовем ее (как угодно) допустим MySpell импортируем будущую
модель спелла, допустим HevenAndHell в итоге путь выглядит
так: Abilities\MySpell\HevenAndHell.mdx запоминаем.
- 1.2. Импортируем иконки:
затенённую ПО пути - ReplaceableTextures\CommandButtonsDisabled\DISBTNxxx,
Где xxx название иконки.
- 1.3. Открываем предварительно сохраненный на жестком, файл AbilitisData.sl
alias | - ID нашего спела |
code | - сюда вставляется 4х значный ID из AbilityBuffData |
comments | - название спела |
useInEditor | - используется в редакторе |
hero | - спел принадлежит герою |
item | - Спел принадлежит предмету |
sort | - тут вставляется либо item, либо unit, либо hero. В зависимости от выбранной принадлежности спелла |
race | - расса спела |
levels | - уровни прокачки спелла |
reqLevel | - требуемый уровень для исп спела |
levelSkip | - через сколько уровней герой может повысить лвл спела |
дальше описываются характеристики спела, описывать их не буду посмотрите в редакторе, но
за место (х) надо вставлять число. Т.е. для первого лвла это будет 1, для второго те же характеристики
но с цифрой 2 и так далее.
за место (х) надо вставлять число. Т.е. для первого лвла это будет 1, для второго те же характеристики
но с цифрой 2 и так далее.
targsх
Castх
Durх
HeroDurх
Coolх
Costх
Areaх
Rngх
DataAх
DataBх
DataCх
DataDх
DataEх
DataFх
DataGх
DataHх
DataIх
UnitIDх
BuffIDх
EfctIDх
Castх
Durх
HeroDurх
Coolх
Costх
Areaх
Rngх
DataAх
DataBх
DataCх
DataDх
DataEх
DataFх
DataGх
DataHх
DataIх
UnitIDх
BuffIDх
EfctIDх
Делаем спел, сохраняем.
- 1.4. открываем XXXAbilityFunc.txt
[ЧЧЧЧ] - ID спела
Art=- иконка спела
Unart= - иконка неиспользуемого\заблокированного спела
Researchart= - иконка спела исследования
Buttonpos=2,2- положение иконки используется
Unbuttonpos=2,2- положение иконки не используется
Researchbuttonpos=2,0- положение иконки исследуется
CasterArt=- модель спела на кастующим юните
Targetattach= - положение модели на юните
TargetArt=- модель спела на атакуемом юните
EffectArt=- Модель спела на области
Animnames= - Анимация юнита при применении спела
Missileart=- снаряд спела
Missilespeed= - скорость снаряда
MissileHoming=- самонаводящийся да\нет
Missilearc=- дуга снаряда
Unart= - иконка неиспользуемого\заблокированного спела
Researchart= - иконка спела исследования
Buttonpos=2,2- положение иконки используется
Unbuttonpos=2,2- положение иконки не используется
Researchbuttonpos=2,0- положение иконки исследуется
CasterArt=- модель спела на кастующим юните
Targetattach= - положение модели на юните
TargetArt=- модель спела на атакуемом юните
EffectArt=- Модель спела на области
Animnames= - Анимация юнита при применении спела
Missileart=- снаряд спела
Missilespeed= - скорость снаряда
MissileHoming=- самонаводящийся да\нет
Missilearc=- дуга снаряда
Заполняем, сохраняем.
- 1.4. открываем XXXAbilityStrings.txt
[ANic]
Name=- название спела
Tip=- подсказка названия
Researchtip= - подсказка исследования
Ubertip= - подробное описание спела
Hotkey=- горячая клавиша использования спела
Researchhotkey=- горячая клавиша изучения спела
Tip=- подсказка названия
Researchtip= - подсказка исследования
Ubertip= - подробное описание спела
Hotkey=- горячая клавиша использования спела
Researchhotkey=- горячая клавиша изучения спела
Заполняем, сохраняем. Импортируем И наслаждаемся спелом
2. Замена\изменение спела
сначала определимся что мы хотим заменить, ЕСЛИ:
хар-ки то открываем AbilitisData.sl
графику то открываем XXXAbilityFunc.txt
Описание то открываем XXXAbilityStrings.txt
хар-ки то открываем AbilitisData.sl
графику то открываем XXXAbilityFunc.txt
Описание то открываем XXXAbilityStrings.txt
VI Операции с Объектами.
нам потребуется файл Doodads.slk, находится в папке Doodads. Содержит всю инфу о Объектах.
и WorldEditGameStrings.txt, находящийся в UI, содержит название объекта в редакторе.
и WorldEditGameStrings.txt, находящийся в UI, содержит название объекта в редакторе.
1. Новый Объект
1.1 Запускаем MPQmaster открываем war3patch.mpq находим папку Doodads создаем
в ней папку и назовем ее (как угодно) допустим MyDoodads импортируем будущую
модель Объекта, допустим shit в итоге путь выглядит
так: Doodads\MyDoodads\shit.mdx запоминаем.
в ней папку и назовем ее (как угодно) допустим MyDoodads импортируем будущую
модель Объекта, допустим shit в итоге путь выглядит
так: Doodads\MyDoodads\shit.mdx запоминаем.
- 1.2. Открываем предварительно сохраненный на жестком, файл Doodads.slk
doodID | - ID объекта |
category | - категория |
tilesets | - тип ландшафта |
tilesetSpecific | - особые данные по типу ландшафта |
file | - путь к модели объекта |
comment | - свое название объекта |
Name | - название предмет должен выглядеть так: WESTRING_DOOD_чччч где чччч ID обьекта заглавными буквами |
pathTex | - пути. |
остальное тупым копипастом.
- 1.3. открываем WorldEditGameStrings.txt идем в конец строчек
сохраняем. Импортируем И наслаждаемся объектом.
Большинство переменных небыли учтены в написании статьи из-за того что: их можно посмотреть в
редакторе, их необязательности, и копипаста.
редакторе, их необязательности, и копипаста.
Теперь САМОЕ интересное. Импортировали все файлы нормально, А В ИГРЕ НИЧЕГО НЕ ИЗМЕНИЛОСЬ ИЛИ НЕТУ НОВЫХ МОДЕЛЕЙ. Во всем виноваты режимы игры, чтобы все работало корректно нам потребуются заменить файлы по путям:
'Custom_V0\Units\'
'Custom_V1\Units\'
'Melee_V0\Units\'
'Custom_V0\Units\'
'Custom_V1\Units\'
'Melee_V0\Units\'
ВАЖНО: Заменять только файлы которые есть в выше названых папках, только если файл с таким названием там
есть(например фаил ItemData.slk есть в папке Custom_V0\Units, Custom_V1\Units и Melee_V0\Units, удаляем их и импортируем измененный во все папки. И ТАК СО ВСЕМИ ФАЙЛАМИ), *НЕДОБАВЛЯТЬ ЛИШНИЕ*.
есть(например фаил ItemData.slk есть в папке Custom_V0\Units, Custom_V1\Units и Melee_V0\Units, удаляем их и импортируем измененный во все папки. И ТАК СО ВСЕМИ ФАЙЛАМИ), *НЕДОБАВЛЯТЬ ЛИШНИЕ*.
Все Вопросы по статье Sergant1000
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Тимур
Где найти модели в формате slk в РО выбор модели Дополнительно?
Sergant1000, форум закрыли
хотя с такими вопросами ему на форуме самое место