Добавлен SomeFire,
опубликован
Раздел:
Общее
Казалось бы, стоит начать с малого: создать одного юнита, потом ещё парочку, запилить из них фракцию, повторить нужное кол-во раз и сделать эру. Если вы в ладах с английским и любите пораскинуть мозгами, то можете почитать официальную документацию. Но ведь вы здесь не для того, чтобы думать, верно? В этой статье я расскажу, как сделать свою играбельную эру с блекджеком и эльфийками.
Итак, приступим: открываем папку Веснота (или где у вас там userdata) и проходим сюда userdata\data\add-ons. Здесь хранятся все аддоны, и здесь же мы создадим свой. В качестве примера я буду использовать наш аддон по варкрафту.
Создаём папку с названием аддона. userdata\data\add-ons\WarCraft_Era.
По сути своей аддон может содержать несколько эр, кучу кампаний и прочего. Сперва создадим структуру аддона (папки и базисные файлы).
- _main.cfg
- era
- era\era.cfg
- images
- images\attaсks
- images\portraits
- images\projectiles
- images\units
- macros
- units
Описания файлов и папок
_main.cfg - самый главный файл аддона. Это точка входа. Содержит пути ко всем файлам. Если что-то используется, но не прописано тут, то аддон будет глючить, если вообще запустится.
era - содержит файлы с данными об эре и фракциях.
era\era.cfg - данные об эре. Все cfg-файлы пишутся в формате языка разметки WML, однако не бойтесь - он примитивен как html.
images - все нестандартные картинки. Тут всё как в варике: сначала игра ищет нужные файлы в папке аддона, а если не находит - в стандартной.
images\attaсks - иконки для нестандартных типов атаки.
images\portraits - портреты (спасибо, кеп). Используются в энциклопедии, сюжетных диалогах и тому подобном.
images\projectiles - спрайты снарядов. Вы же знаете, что стрелковые атаки происходят с использованием снарядов?
images\units - спрайты юнитов, и этим всё сказано.
macros - понятия не имею, почему она так называется. Сюда кидают способности, типы движения, словом, все полезные штуки, которые нам сейчас не понадобятся.
units - тут хранятся файлы с данными о юнитах. Вообще, всех юнитов можно прописать в одном файле, но гораздо удобнее их редактировать, когда юнит лежит в отдельном файле.
era - содержит файлы с данными об эре и фракциях.
era\era.cfg - данные об эре. Все cfg-файлы пишутся в формате языка разметки WML, однако не бойтесь - он примитивен как html.
images - все нестандартные картинки. Тут всё как в варике: сначала игра ищет нужные файлы в папке аддона, а если не находит - в стандартной.
images\attaсks - иконки для нестандартных типов атаки.
images\portraits - портреты (спасибо, кеп). Используются в энциклопедии, сюжетных диалогах и тому подобном.
images\projectiles - спрайты снарядов. Вы же знаете, что стрелковые атаки происходят с использованием снарядов?
images\units - спрайты юнитов, и этим всё сказано.
macros - понятия не имею, почему она так называется. Сюда кидают способности, типы движения, словом, все полезные штуки, которые нам сейчас не понадобятся.
units - тут хранятся файлы с данными о юнитах. Вообще, всех юнитов можно прописать в одном файле, но гораздо удобнее их редактировать, когда юнит лежит в отдельном файле.
Для удобства написания своего первого аддона, я рекомендую отложить активные действия и сначала дочитать статью, дабы понять что и как связано. А затем уже начать работу с конца статьи.
Файл аддона
Теперь откроем текстовым редактором файл userdata\data\add-ons\WarCraft_Era\_main.cfg и пропишем некоторые вещи:
#ifdef MULTIPLAYER
[binary_path]
path=data/add-ons/WarCraft_Era/
[/binary_path]
{~add-ons/WarCraft_Era/era/era.cfg}
[+units]
{~add-ons/WarCraft_Era/units/alliance}
{~add-ons/WarCraft_Era/units/horde}
[/units]
#endif
Что же они означают?
#ifdef MULTIPLAYER
#endif
Блок описания мультиплеера. Есть ещё блоки кампании и редактора. В этих блоках описывается содержимое, которое подключается при запуске мультплеера/кампании/редактора.
Формально эти блоки можно разделить на 3 части:
Часть первая - путь.
[binary_path]
path=data/add-ons/WarCraft_Era/
[/binary_path]
Указывает игре путь к содержимому аддона.
Вторая часть содержит прочие файлы, за исключением юнитов:
{~add-ons/WarCraft_Era/era/era.cfg}
Данная строка говорит игре о существовании такого файла. Он будет прочитан и из него будет взята информация об эре.
И третья часть - юниты.
[+units]
{~add-ons/WarCraft_Era/units/alliance}
{~add-ons/WarCraft_Era/units/horde}
[/units]
Если не писать папки с файлами юнитов в блоке [+units][/units], то игра не будет их воспринимать вообще. Ну, разве что там помимо юнита ещё что-то записано.
Файл эры
Теперь напишем свою эру. Открываем файл era/era.cfg и пишем:
[era]
id=WarCraft Era
name= _ "WarCraft Era"
description= _ "This era contain races from WarCraft."
require_era=yes
{RANDOM_SIDE}
{~add-ons/WarCraft_Era/era/wc-alliance.cfg}
{~add-ons/WarCraft_Era/era/wc-horde.cfg}
{QUICK_4MP_LEADERS}
{TURNS_OVER_ADVANTAGE}
[/era]
Значения строк
id - айди он и в Весноте айди. Уникальный идентификатор. Не должен повторяться.
name - название эры. Будет отображаться в списке выбора эр. Шаблон _ "..." означает, что это эту строку можно перевести.
description - описание, отображаемое при выборе эры.
require_era - говорит о том, что в сетевой игре эра должна быть установлена у всех игроков.
{RANDOM_SIDE} - скрипт. Прописан в файлах игры. Без него не будет случайного выбора фракции и лидера.
{~add-ons/WarCraft_Era/era/wc-alliance.cfg} и {~add-ons/WarCraft_Era/era/wc-horde.cfg} - ссылки на файлы фракций.
{QUICK_4MP_LEADERS} - скрипт, дающий лидерам с дальностью хода в 4 гекса черту "быстрый".
{TURNS_OVER_ADVANTAGE} - скрипт. Необязателен. Понятия не имею, зачем он. Кому интересно, почитайте файл Wesnoth\data\multiplayer\eras.cfg
Полный перечень параметров эры тут.
Если вы хотите добавить в свою эру стандартные фракции, то используйте скрипт {ERA_DEFAULT} или пропишите нужные расы вручную {multiplayer/factions/undead-default.cfg}.
name - название эры. Будет отображаться в списке выбора эр. Шаблон _ "..." означает, что это эту строку можно перевести.
description - описание, отображаемое при выборе эры.
require_era - говорит о том, что в сетевой игре эра должна быть установлена у всех игроков.
{RANDOM_SIDE} - скрипт. Прописан в файлах игры. Без него не будет случайного выбора фракции и лидера.
{~add-ons/WarCraft_Era/era/wc-alliance.cfg} и {~add-ons/WarCraft_Era/era/wc-horde.cfg} - ссылки на файлы фракций.
{QUICK_4MP_LEADERS} - скрипт, дающий лидерам с дальностью хода в 4 гекса черту "быстрый".
{TURNS_OVER_ADVANTAGE} - скрипт. Необязателен. Понятия не имею, зачем он. Кому интересно, почитайте файл Wesnoth\data\multiplayer\eras.cfg
Полный перечень параметров эры тут.
Если вы хотите добавить в свою эру стандартные фракции, то используйте скрипт {ERA_DEFAULT} или пропишите нужные расы вручную {multiplayer/factions/undead-default.cfg}.
Файл фракции
Далее создадим файлы фракций, указанные в эре.
Файл era/wc-alliance.cfg:
Файл era/wc-alliance.cfg:
[multiplayer_side]
id=wc-Alliance
name= _ "Alliance"
image=units/human-loyalists/general.png
{MAGENTA_IS_THE_TEAM_COLOR}
leader=wc-Paladin, wc-ArchMage, wc-MountainKing, wc-BloodMage
recruit=wc-Peasant, wc-Militia, wc-Footman, wc-Knight, wc-Rifleman, wc-MortarTeam, wc-Helicopter, wc-GryphonRider, wc-Priest, wc-Sorceress, wc-WarWagon, wc-SpellBreaker, wc-DragonHawk
[ai]
recruitment_pattern=fighter,fighter,scout,mixed_fighter
[/ai]
[/multiplayer_side]
Значения строк
id и name имеют аналогичное значение, что и в эре.
image - спрайт юнита, отображаемый в лобби игры при выборе фракции. Спрайт может находиться как в изображениях игры, так и в изображениях аддона. Спрайты аддона перекрывают спрайты игры, имеющие такое же название и относительный путь.
{MAGENTA_IS_THE_TEAM_COLOR} - скрипт, задающий цвет magenta тимколором. Используется на спрайтах, поэтому соблюдайте стандарты спрайтов Веснота и оставьте этот в качестве тимколора. Иначе у вас могут возникнуть графические артефакты.
leader - список id юнитов, из которых будет выбираться лидер фракции.
recruit - список id нанимаемых юнитов.
recruitment_pattern - шаблон ролей, по которому искусственный интеллект будет нанимать юнитов.
image - спрайт юнита, отображаемый в лобби игры при выборе фракции. Спрайт может находиться как в изображениях игры, так и в изображениях аддона. Спрайты аддона перекрывают спрайты игры, имеющие такое же название и относительный путь.
{MAGENTA_IS_THE_TEAM_COLOR} - скрипт, задающий цвет magenta тимколором. Используется на спрайтах, поэтому соблюдайте стандарты спрайтов Веснота и оставьте этот в качестве тимколора. Иначе у вас могут возникнуть графические артефакты.
leader - список id юнитов, из которых будет выбираться лидер фракции.
recruit - список id нанимаемых юнитов.
recruitment_pattern - шаблон ролей, по которому искусственный интеллект будет нанимать юнитов.
Содержимое файла орды аналогичное.
Файл юнита
Завершающий на сегодня файл - файл юнита units\alliance\wc-Footman.cfg.
Собственно, пройдите в Wesnoth\data\core\units и скомуниздите оттуда наиболее подходящего юнита для переработки в нужного вам.
Скопировали? Переименовали? Отлично, открываем. Видим кучу текста.
Нас, разумеется, интересует не всё.
Собственно, пройдите в Wesnoth\data\core\units и скомуниздите оттуда наиболее подходящего юнита для переработки в нужного вам.
Скопировали? Переименовали? Отлично, открываем. Видим кучу текста.
Нас, разумеется, интересует не всё.
Параметры первостепенной важности
id, name и description - всё как в предыдущих файлах.
gender - пол. Советую не мудрить и выбирать между male и female. Некоторые спрайты имеют обе версии.
image - спрайт вашего юнита в положении "стоит". Также отображается при выборе лидера и покупке юнитов. Если вы знакомы со спрайтами и у вас уже есть все спрайты вашего юнита - можете скопировать спрайты в изображения аддона и заменить пути спрайтов (используется относительный путь из папки images).
profile - портрет юнита, его изображение "в HD формате". Используется в энциклопедии, сюжетных диалогах и тому подобных вещах.
movement_type - тип передвижения (пешком, верхом, на крыльях любви). От этого параметра также зависит сопротивляемость урону, но сопротивляемость можно прописать для каждого юнита отдельно.
movement - дальность передвижения в гексах.
hitpoints - здоровье юнита. (Кеп снова в деле)
experience - сколько опыта должен набрать юнит, чтобы проапгрейдиться.
level - уровень юнита.
alignment - Добропорядочность юнита. Может быть lawful/neutral/chaotic/liminal.
advances_to - список id юнитов, в которых может быть улучшен юнит.
cost - стоимость в золоте.
usage - роль юнита. Используется ИИ для закупки юнитов.
Блок атаки
gender - пол. Советую не мудрить и выбирать между male и female. Некоторые спрайты имеют обе версии.
image - спрайт вашего юнита в положении "стоит". Также отображается при выборе лидера и покупке юнитов. Если вы знакомы со спрайтами и у вас уже есть все спрайты вашего юнита - можете скопировать спрайты в изображения аддона и заменить пути спрайтов (используется относительный путь из папки images).
profile - портрет юнита, его изображение "в HD формате". Используется в энциклопедии, сюжетных диалогах и тому подобных вещах.
movement_type - тип передвижения (пешком, верхом, на крыльях любви). От этого параметра также зависит сопротивляемость урону, но сопротивляемость можно прописать для каждого юнита отдельно.
movement - дальность передвижения в гексах.
hitpoints - здоровье юнита. (Кеп снова в деле)
experience - сколько опыта должен набрать юнит, чтобы проапгрейдиться.
level - уровень юнита.
alignment - Добропорядочность юнита. Может быть lawful/neutral/chaotic/liminal.
advances_to - список id юнитов, в которых может быть улучшен юнит.
cost - стоимость в золоте.
usage - роль юнита. Используется ИИ для закупки юнитов.
Блок атаки
[attack]
name=pike
description=_"pike"
type=pierce
range=melee
damage=10
number=3
[specials]
{WEAPON_SPECIAL_FIRSTSTRIKE}
[/specials]
[/attack]
Думаю, нет смысла что-то объяснять? Ну, разве что блок [specials]. Он отвечает за атакующие способности юнита.
Поменять характеристики юнитов, добавить абилок по вкусу. Повторить нужное кол-во раз.
Заключение
Если вы прислушались к моему совету не делать всё сразу, то можете начать творить юнитов (вы ведь уже придумали себе юнитов для эры?), затем объедините их в файлах фракций, а их пропишите в файле эры. И не забудьте прописать использованные файлы в _main.cfg!
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
screenshot.su/show.php?img=ef18a2d2347a9c84356e274d024579c0.jpg
Отредактирован Airat