MOD / Lua API
Руководство по созданию MOD и Lua API
Узнайте, как создать MOD, писать конфигурационные скрипты на Lua, настраивать параметры существ и понимать правила приоритета и песочницы.
1. Быстрый старт
1.1 Создайте папку MOD
Создайте новую папку в каталоге игры Mods/. Имя папки станет именем вашего MOD:
| Платформа | Путь к каталогу Mods |
|---|---|
| Windows | GameDirectory/MesozoicDawn_Data/StreamingAssets/Mods/ |
| Сервер Linux | GameDirectory/MesozoicDawn_Data/StreamingAssets/Mods/ |
| Android | InternalStorage/Android/data/com.../files/Mods/ |
| iOS | AppSandbox/Documents/Mods/ |
Mods/
└── MyFirstMod/ ← Корневая папка вашего MOD
├── mod.json ← Манифест MOD (рекомендуется)
└── CharacterAsset/ ← Размещайте Lua-скрипты здесь
└── allo.txt ← Конфигурация аллозавра 1.2 Создайте mod.json (рекомендуется)
{
"Name": "MyFirstMod",
"Author": "Ваше имя",
"Version": "1.0",
"SupportedVersion": "0.6.*",
"Priority": 0,
"Description": "Мой первый MOD"
} 1.3 Напишите свой первый Lua-скрипт
Поместите следующий код в CharacterAsset/allo.txt:
-- Настройка здоровья и урона аллозавра
CharacterAsset = {
race = "allo", -- Тег расы (должен совпадать с существующей расой в игре)
health = 30000.0, -- Очки здоровья
damage = 350.0, -- Базовый урон
speed = 30.0, -- Скорость передвижения (км/ч)
} 1.4 Включение MOD в игре
- Запустите игру и откройте Управление MOD на экране входа.
- Нажмите Load MOD, чтобы просканировать локальные MOD.
- Найдите свой MOD и нажмите Enable.
- Нажмите Save, чтобы выйти из менеджера MOD.
- Подключитесь к серверу, и изменённые значения вступят в силу сразу же.
2. Изменение параметров существа
Конфигурация параметров существа позволяет изменять характеристики существ. Все поддерживаемые поля должны быть указаны в таблице CharacterAsset Lua-скрипта. Любое пропущенное поле сохранит исходное значение игры.
Базовые и категориальные настройки
| Поле | Описание |
|---|---|
race | Обязательно. Тег расы, которую нужно изменить. |
name | Отображаемое имя существа. |
volume | Классификация размера существа от 0 до 5. |
habit | Тип среды обитания от 0 до 5 (0 = наземный, 1 = околоводный, 3 = водный...). |
type | Категория существа от 0 до 5 (0 = хищник, 1 = травоядный...). |
Параметры выживания и боя
| Поле | Описание |
|---|---|
health | Максимальный предел здоровья. |
stamina | Максимальный запас выносливости. Когда он исчерпан, спринт и тяжёлые атаки недоступны. |
hunger / water | Максимальные запасы голода и воды. |
attack / defend | Базовый наносимый урон и базовая защита корпуса. |
pen / ten | Уровень пробития атаки и уровень защитной стойкости. |
3. Изменение навыков и хитбоксов
3.1 Шаблон настройки навыка
CharacterSkill = {
bite = {
Race = "allo", -- Обязательный тег расы
AttackName = "Укус", -- Название атаки
AttackOrder = 1, -- Индекс порядка атаки
AttackType = 0, -- 0 = пасть, 1 = хвост, 2 = топот
DamageMode = 0, -- 0 = одиночная цель, 1 = AOE
AttackRange = 1.5, -- Радиус столкновения (метры)
Modify = 1.5, -- Множитель урона
}
} 3.2 Переопределение хитбокса
Используйте CharacterHitGroup, чтобы изменить уязвимость головы аллозавра:
CharacterHitGroup = {
head = {
Race = "allo",
PartType = 0, -- 0 = голова
PenetrationRate = 0.6, -- Множитель пробития брони
DamageMultiplier = 1.5, -- Множитель входящего урона
}
} 4. Дополнительно: окружение и управление
Механизм приоритета
Когда несколько MOD изменяют одно и то же поле одной и той же расы, большее значение Priority выполняется позже и поэтому побеждает. Значение по умолчанию равно 0.
Безопасность песочницы Lua
os,io: системные команды и файловый ввод-вывод заблокированы.dofile,package: запуск произвольных локальных файлов и внешних динамических библиотек заблокирован.
Управление сервером
Администраторы могут использовать /modReload для перезагрузки числовых значений, навыков и настроек скинов из текущих файлов MOD. Добавление новых рас всё ещё требует перезапуска.