Skip to content

Полное руководство по моддингу DayZ

Исчерпывающая документация по моддингу DayZ — 92 главы, от нуля до опубликованного мода.

EnglishPortuguesDeutschRusskiEspanolFrancaisNihongoJiantizi ZhongwenCestinaPolskiMagyarItaliano


Полный указатель страниц

Часть 1: Язык Enforce Script (13 глав)

#ГлаваОписание
1.1Переменные и типыПримитивные типы, объявление переменных, преобразования и значения по умолчанию
1.2Массивы, Map и SetКоллекции данных: array, map, set — итерация, поиск, сортировка
1.3Классы и наследованиеОпределение классов, наследование, конструкторы, полиморфизм
1.4Modded-классыСистема modded class, переопределение методов, вызовы super
1.5Управление потокомIf/else, switch, циклы while/for, break, continue
1.6Операции со строкамиМанипуляции со строками, форматирование, поиск, сравнение
1.7Математика и векторыМатематические функции, 3D-векторы, расстояния, направления
1.8Управление памятьюПодсчёт ссылок, ref, предотвращение утечек, циклы ссылок
1.9Приведение типов и рефлексияПриведение типов, Class.CastTo, проверка типа во время выполнения
1.10Перечисления и препроцессорПеречисления, #ifdef, #define, условная компиляция
1.11Обработка ошибокПаттерны обработки ошибок без try/catch, guard clauses
1.12Чего НЕ существует30+ подводных камней и ограничений языка Enforce Script
1.13Функции и методыОбъявление функций, параметры, возвращаемые значения, static, proto

Часть 2: Структура мода (6 глав)

#ГлаваОписание
2.15-уровневая иерархия5 уровней скриптов DayZ и порядок компиляции
2.2config.cpp подробноПолная структура config.cpp, CfgPatches, CfgMods
2.3mod.cpp и WorkshopФайл mod.cpp, публикация в Steam Workshop
2.4Ваш первый модМинимальный жизнеспособный мод — необходимые файлы и структура
2.5Организация файловСоглашения об именовании, рекомендуемая структура папок
2.6Архитектура сервер/клиентРазделение серверного и клиентского кода, безопасность

Часть 3: Система GUI и Layout (10 глав)

#ГлаваОписание
3.1Типы виджетовВсе доступные типы виджетов: текст, изображение, кнопка и т.д.
3.2Формат файлов LayoutСтруктура XML-файлов .layout для интерфейсов
3.3Размеры и позиционированиеСистема координат, флаги размеров, привязка
3.4КонтейнерыВиджеты-контейнеры: WrapSpacer, GridSpacer, ScrollWidget
3.5Программное созданиеСоздание виджетов из кода, GetWidgetUnderCursor, SetHandler
3.6Обработка событийUI-колбэки: OnClick, OnChange, OnMouseEnter
3.7Стили, шрифты и изображенияДоступные шрифты, стили, загрузка изображений
3.8Диалоги и модальные окнаСоздание диалогов, модальные меню, подтверждения
3.9Реальные UI-паттерныПаттерны UI из COT, VPP, Expansion, Dabs Framework
3.10Продвинутые виджетыMapWidget, RenderTargetWidget, специализированные виджеты

Часть 4: Форматы файлов и инструменты (8 глав)

#ГлаваОписание
4.1ТекстурыФорматы .paa, .edds, .tga — конвертация и использование
4.23D-моделиФормат .p3d, LOD, геометрия, memory-точки
4.3МатериалыФайлы .rvmat, шейдеры, свойства поверхности
4.4АудиоФорматы .ogg и .wss, настройка звука
4.5DayZ ToolsРабочий процесс с официальными DayZ Tools
4.6Упаковка PBOСоздание и извлечение файлов PBO
4.7Руководство по WorkbenchИспользование Workbench для редактирования скриптов и ассетов
4.8Моделирование зданийМоделирование зданий с дверями и лестницами

Часть 5: Файлы конфигурации (6 глав)

#ГлаваОписание
5.1stringtable.csvЛокализация с stringtable.csv на 13 языков
5.2inputs.xmlНастройка клавиш и пользовательские привязки
5.3credits.jsonФайл титров мода
5.4ImageSetsФормат ImageSet для иконок и спрайтов
5.5Конфигурация сервераФайлы конфигурации сервера DayZ
5.6Конфигурация спавнаНастройка начального снаряжения и точек спавна

Часть 6: Справочник API движка (23 главы)

#ГлаваОписание
6.1Система сущностейИерархия сущностей, EntityAI, ItemBase, Object
6.2Система транспортаAPI транспорта, двигатели, жидкости, физическая симуляция
6.3Система погодыУправление погодой, дождь, туман, облачность
6.4Система камерПользовательские камеры, позиция, вращение, переходы
6.5Эффекты постобработкиPPE: размытие, хроматическая аберрация, цветокоррекция
6.6Система уведомленийУведомления на экране, сообщения игрокам
6.7Таймеры и CallQueueТаймеры, отложенные вызовы, повторения
6.8Файловый ввод-вывод и JSONЧтение/запись файлов, парсинг JSON
6.9Сеть и RPCСетевое взаимодействие, RPC, синхронизация клиент-сервер
6.10Центральная экономикаСистема лута, категории, флаги, min/max
6.11Хуки миссийХуки миссий, MissionBase, MissionServer
6.12Система действийДействия игрока, ActionBase, цели, условия
6.13Система вводаЗахват клавиш, маппинг, UAInput
6.14Система игрокаPlayerBase, инвентарь, здоровье, выносливость, статистика
6.15Звуковая системаВоспроизведение аудио, SoundOnVehicle, окружение
6.16Система крафтингаРецепты крафтинга, ингредиенты, результаты
6.17Система строительстваСтроительство баз, детали, состояния
6.18Система анимацииАнимация игрока, ID команд, колбэки
6.19Запросы к рельефуРейкасты, позиция на рельефе, поверхности
6.20Эффекты частицСистема частиц, эмиттеры, визуальные эффекты
6.21Система зомби и ИИZombieBase, ИИ заражённых, поведение
6.22Админ и серверУправление сервером, баны, кики, RCON
6.23Мировые системыВремя суток, дата, функции мира

Часть 7: Паттерны и лучшие практики (7 глав)

#ГлаваОписание
7.1Паттерн SingletonЕдинственные экземпляры, глобальный доступ, инициализация
7.2Системы модулейРегистрация модулей, жизненный цикл, CF-модули
7.3RPC-коммуникацияПаттерны для безопасных и эффективных RPC
7.4Сохранение конфигурацииСохранение/загрузка JSON-конфигов, версионирование
7.5Системы прав доступаИерархические права, wildcards, группы
7.6Событийная архитектураEvent bus, publish/subscribe, развязка
7.7Оптимизация производительностиПрофилирование, кэш, пулинг, сокращение RPC

Часть 8: Уроки (13 глав)

#ГлаваОписание
8.1Ваш первый мод (Hello World)Пошаговое руководство: создание и загрузка мода
8.2Создание пользовательского предметаСоздание предмета с моделью, текстурой и конфигом
8.3Создание админ-панелиАдмин-UI с телепортом, спавном, управлением
8.4Добавление чат-командПользовательские команды в чате игры
8.5Использование шаблона модаКак использовать официальный шаблон модов DayZ
8.6Отладка и тестированиеЛоги, отладка, диагностические инструменты
8.7Публикация в WorkshopПубликация мода в Steam Workshop
8.8Создание HUD-оверлеяПользовательский HUD-оверлей поверх игры
8.9Профессиональный шаблон модаПолный шаблон, готовый к продакшену
8.10Создание мода транспортаПользовательский транспорт с физикой и конфигом
8.11Создание мода одеждыПользовательская одежда с текстурами и слотами
8.12Создание торговой системыСистема торговли между игроками/NPC
8.13Справка по Diag MenuДиагностические меню для разработки

Быстрая справка

СтраницаОписание
ШпаргалкаКраткий обзор синтаксиса Enforce Script
Быстрая справка по APIНаиболее используемые методы API движка
ГлоссарийОпределения терминов моддинга DayZ
FAQЧасто задаваемые вопросы о моддинге
Устранение неполадок91 распространённая проблема с решениями

Авторы

РазработчикПроектыОсновные вклады
Jacob_MangoCommunity Framework, COTСистема модулей, RPC, права доступа, ESP
InclementDabDabs Framework, DayZ Editor, Mod TemplateMVC, ViewBinding, UI редактора
saluteshDayZ ExpansionМаркет, группы, маркеры карты, транспорт
ArkensorDayZ ExpansionЦентральная экономика, версионирование настроек
DaOneVPP Admin ToolsУправление игроками, вебхуки, ESP
GravityWolfVPP Admin ToolsПрава доступа, управление сервером
Brian Orr (DrkDevil)Colorful UIЦветовые темы, паттерны modded class UI
lothsunColorful UIЦветовые системы UI, визуальные улучшения
Bohemia InteractiveDayZ Engine & SamplesEnforce Script, ванильные скрипты, DayZ Tools
StarDZ TeamЭта викиДокументация, перевод и организация

Лицензия

Документация лицензирована под CC BY-SA 4.0. Примеры кода лицензированы под MIT.

Released under CC BY-SA 4.0 | Code examples under MIT License