Sargeras
Лидер "Двух Королевств"
offline
Опыт:
21,363Активность: |
Внедрение собственных юнитов в игру
Предисловие Иногда бывают случаи, когда нам необходимо внедрить своих собственных юнитов в World Editor, то есть сделать так, чтобы они не были в списке «особых», а были в списке стандартных юнитов. В этой статье вы узнаете, как это сделать. Эта статья будет полезна для людей, разрабатывающих свой «собственный» Warcraft, ну а также и для других разумных целей, в частности, для изменения характеристик существующих юнитов (будьте осторожны с этим, так как изменение существующих юнитов может привести к нежелательным последствиям, в частности неработоспособность сетевой игры). Для осуществления внедрения нам понадобится следующее: - Программа для работы с архивами MPQ (MPQ Master, WinMPQ или что-то наподобие); - Microsoft Excel или любой другой редактор, умеющий читать и правильно сохранять файлы в формате slk; - Microsoft Word; - Мозги (свои); Итак, начнём! 1. Откройте файл war3.mpq соответствующей программой, а заодно и World Editor; (а именно редактор объектов); 2. Сохраните все файлы из папки Units на жёстком диске (обратите внимание – файлы, а не папки). 3. Откройте сохранённый файл UnitBalance.slk. 4. Далее нам необходимо добавить своего собственного юнита. Немного о структуре таблицы. В первом столбце выводится так называемые id-коды юнита. Обратите внимания, что в данном файле нет повторяющихся id-кодов, следовательно, будущий id-код вашего юнита должен быть единственным. Кроме того, следует также отметить, что первый символ кода соответствует расе, а именно h - люди, o - орки, e – ночные эльфы, u - нежить, n – «нейтралы», z – вообще непонятно откуда взялся (по некоторым данным, из других игр, в частности, из Starcraft). Также важным моментом является то, что id-коды всех героев начинаются с большой буквы. Второй столбец – столбец категорий. Там вы увидите такие значения, как a1, a2, a3, b1, b2 и т.д. Всех, как видно, три категории. К категории l1 (l – это первая буква) относятся герои, к категории l2 – обычные юниты, а к категории l3 – здания. Для юнитов из других игр предусмотрена категория z9. Третий столбец довольно запутан. В нём уже идёт деление юнитов по другим категориям: uher – юнит является героем xbui – юнит является зданием sum – юнит является вызванным art – юнит относится к классу артиллерии tow – юнит является башней fly1 – юнит является летающим, и не имеет наездника (исключение – вертолёт) fly2 – юнит является летающим и управляется наездником peo – юнит является работником zz – другое zzz – юнит взят из другой игры cas – юнит относится к классу магов me1 и me2 – не очень понятно. По всей видимости, к первому классу относятся обычные слабые воины, а ко второму – сильные. Четвёртый столбец – это уровень юнита. Если он равен 5 и больше, то юнит считается сильным существом и его нельзя захватить заклинанием «Обладание» у привидения. Как ни странно, башни тоже имеют уровень, равный одному. А у других он вообще отсутствует. Ну а дальше, думаю, всё понятно. 5. Добавьте своего юнита в файл. Вот некоторые правила добавления юнитов: I. ID-код должен быть универсальным. Помните, что первая буква есть раса юнита, а для героев она является большой. II. Не нужно делать несоответствия между категориями и классами. То есть, если вы добавляете героя, то нужно обязательно задавать ему категорию l1 (l – это какая-то буква), класс uher. III. Внимательно читайте комментарии, представляющие собой «красные углы» в некоторых ячейках первой строки файла! 6. Сохраните файл и обязательно запомните ID-код вашего юнита. 7. Откройте файл UnitData.slk. 8. Отредактируйте этот файл, добавив в него ID-код вашего юнита и установив необходимые параметры; 9. Сохраните файл; 10. Откройте файл UnitAbilities.slk. В нём содержится информация о способностях юнитов. Проводим ту же самую операцию, как и с предыдущим файлом: добавляем ID-код и устанавливаем параметры. В столбике AbilList располагается информация об обычных способностях юнита, а в столбике heroAbilList находится информация о «геройских» способностях. Естественно, доступно лишь для юнитов-героев. Со всеми способностями и их ID-кодами можно ознакомиться в файле Units\AbilityData.slk архива MPQ. 11. Сохраните файл; 12. Далее открываем файл *UnitStrings.txt, где под * я подразумеваю расу юнита. Что же мы видим? Мы видим смесь английских символов с какими-то другими, не известными нам. Не пугайтесь. Просто эти файлы закодированы. Если у вас английская версия Warcraft’a, то у вас всё будет нормально отображаться, а вот если русская – то «иероглифы» неизбежны. Этот файл необходимо открыть не обычным «Блокнотом», а программой Microsoft Word, которая позволяет декодировать текст в привычный нам язык. Теперь мы понимаем информацию этого файла. В этом файле содержатся тексты для юнитов. Чтобы лучше понять, что означает каждая категория (Hotkey, Tip, Ubertip и др.), вернитесь в редактор объектов. Выберите любого юнита, а затем нажмите Просмотр --- Вывести величины в необработанном виде. Это облегчит вам задачу. Отредактируйте данный файл, добавив в него информацию о своём юните и сохраните его. 13. Следующим файлом для редактирования является *UnitFunc.txt. Здесь ничего декодировать не надо. Необходимо также отредактировать файл, используя «необработанный вид» величин. Сохраните этот файл. 14. Теперь откройте файл Unitweapons.slk. О том, как отредактировать первые 4 столбика, описано в пункте 4. Ну а дальше используете подсказки «красных углов». Сохраните файл. 15. Если ваш юнит является героем и входит в стандартный список какой-либо расы, добавьте его ID-код в файл NeutralUnitFunc.txt в третьей строке. Снова сохраните файл. 16. Для установки внешнего вида отряда, а также звуков, используемых им, необходимо внедрение его ID-кода с соответствующими параметрами в файл UnitUI.slk. Значения столбцов легко понять по описаниям. Сохраните файл. 17. Теперь экспортируйте все файлы в архив MPQ. Если ваш юнит все равно не добавляется, то придётся редактировать все вышеупомянутые файлы в архиве war3x.mpq. На этом всё. Спасибо за внимание! |
20.10.2006, 12:52 | #1
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
Хм, круто, конечно, но, имхо, это геморрой Я обьектами и методами работы с ними занимаюсь уже больше года, твое исследование в области Editor-Only полей хоть и занимательное, но вряд ли необходимо - то поля типа категории и сортировки вообще не нужны игре, они только для редактора и существуют там исключительно для удобства. Первый символ идентификатора никак не влияет на расу, для этого есть отдельное поле race в таблице UnitData.slk, но его регистр влияет на то, будет ли юнит считаться героем или нет Еще если ссылаешься на поле, но называй именно поле, а не его порядковый номер в таблице, ибо я без проблем могу поля переставить Естественно, у башни первый уровень для того чтобы функция GetUnitLevel возвращала именно его, а спелл Баньши проверяет еще и флаг IsBuilding, поэтому с ним проблем нет. По поводу *UnitStrings.txt - вообще не имеет никакого значения в каком именно из этих файлов будет располагаться инфа о твоем юните, абсолютно все равно, близзы делали это для нашего удобства. Класс *UnitFunc.txt тоже входит в этот список - они все грузятся вместе, поэтому без разницы куда ты впишешь своего юнита |
20.10.2006, 13:18 | #2
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Sargeras
Лидер "Двух Королевств"
offline
Опыт:
21,363Активность: |
NETRAT
А для базы как статья после исправления? |
20.10.2006, 13:38 | #3
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
Не обязательно Word, любой текстовый редактор, который поддерживает UTF-8
Чо? Это не в третью строку, а в конкретное поле, конкретную запись, у него есть свое имя, которое ты опять не указал NETRAT добавил: Sargeras это статья вообще из разряда "Вам интересен геморрой с таблицами?" - то есть кроме меня и тебя этим вряд ли кто-то будет заниматься ибо для этих целей есть утилиты типа Widgetizer и Sil Object |
20.10.2006, 13:49 | #4
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Toadcop
offline
Опыт:
53,013Активность: |
Цитата:
|
|
20.10.2006, 13:57 | #5
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
Да, пожалуй, еще ты, но исключительно в качестве извращения =) |
20.10.2006, 14:02 | #6
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Арастиор
Пакон враг безграмотности
offline
Опыт:
52,846Активность: |
Скажем дружно - нафиг нужно |
20.10.2006, 14:09 | #7
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Sargeras
Лидер "Двух Королевств"
offline
Опыт:
21,363Активность: |
Арастиор
На мой взгляд, кому-то нужно, а кому-то нет. |
20.10.2006, 14:18 | #8
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
p01nTT
offline
Опыт:
10,760Активность: |
Да и про меня забыли (( , кстати если не секрет - я не вижу смысла,а есть ли он? Наверно только в кампаниях |
20.10.2006, 14:35 | #9
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Cronus
Nоsfera†um
offline
Опыт:
6,133Активность: |
На мой взгляд это полезно знать, и темболее применить‼
Sargeras молоток |
20.10.2006, 14:42 | #10
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
СТАТЬЯ ФЭЙК |
20.10.2006, 15:25 | #11
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
p01nTT
offline
Опыт:
10,760Активность: |
DioD Согласен с тобой - видгетайзером проще
|
20.10.2006, 15:31 | #12
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Trok-Ferot
Silenced by Trok-Ferot
offline
Опыт:
80,759Активность: |
Цитата:
Тоже согласен с DioD'ом. Цитата:
В рифму, блин... нет, отдельным личностям действительно нужно, чтобы побаловаться с WarCraft'ом, но их очень и очень мало... их даже меньше, чем тех, кому была полезна статья TiM'а про ботов в сети Battle.net... |
||
20.10.2006, 15:51 | #13
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
FoK_KruGer
<3 Vocal Trance
offline
Опыт:
19,540Активность: |
Статья тима ваще жж0ть!
Sargeras - Цитата:
для базы.. ну никак не вписывается. Канеш, я бы добавил в базу, но вот насчет давания за неё опыта... 200-300... |
|
20.10.2006, 16:00 | #14
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
-1000 (минус штука опыта) за такое |
20.10.2006, 16:30 | #15
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
remal
нечто
offline
Опыт:
2,087Активность: |
дурацкий вопрос: ЗАЧЕМ ЧТО-ТО ДОБАВЛЯТЬ В АРХИВЫ ИГРЫ?! |
20.10.2006, 17:20 | #16
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Cronus
Nоsfera†um
offline
Опыт:
6,133Активность: |
Цитата:
remal это конечно странно но хочу подметить что статей уже по вару очень много и уже народ начинает страдать по своему и фсяко издеваться над варом, видели бы Близы что мы с варом сделали они бы ... |
|
20.10.2006, 17:31 | #17
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
NETRAT
offline
Опыт:
83,762Активность: |
remal я думаю(надеюсь) что имеется в виду при создании модов/кампаний и т.п. - то есть при создании патчей или лоадеров
|
20.10.2006, 21:05 | #18
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Цитата:
Тебе - нужно, другим - нет... |
|
21.10.2006, 19:11 | #19
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Кет
offline
Опыт:
111,234Активность: |
Цитата:
...с целью выведывания ценной информации... имхо, статья толковая, но её предназначение для мину туманно... |
|
21.10.2006, 21:18 | #20
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|