Skip to content

Engine API Quick Reference

Home | Engine API Quick Reference


Содержание


Методы сущностей

Полный справочник: Глава 6.1: Система сущностей

Позиция и ориентация (Object)

МетодСигнатураОписание
GetPositionvector GetPosition()Позиция в мире
SetPositionvoid SetPosition(vector pos)Установить позицию в мире
GetOrientationvector GetOrientation()Yaw, pitch, roll в градусах
SetOrientationvoid SetOrientation(vector ori)Установить yaw, pitch, roll
GetDirectionvector GetDirection()Вектор направления вперёд
SetDirectionvoid SetDirection(vector dir)Установить направление вперёд
GetScalefloat GetScale()Текущий масштаб
SetScalevoid SetScale(float scale)Установить масштаб

Трансформация (IEntity)

МетодСигнатураОписание
GetOriginvector GetOrigin()Позиция в мире (уровень движка)
SetOriginvoid SetOrigin(vector orig)Установить позицию в мире (уровень движка)
GetYawPitchRollvector GetYawPitchRoll()Вращение как yaw/pitch/roll
GetTransformvoid GetTransform(out vector mat[4])Полная матрица трансформации 4x3
SetTransformvoid SetTransform(vector mat[4])Установить полную трансформацию
VectorToParentvector VectorToParent(vector vec)Локальное направление в мировое
CoordToParentvector CoordToParent(vector coord)Локальная точка в мировую
VectorToLocalvector VectorToLocal(vector vec)Мировое направление в локальное
CoordToLocalvector CoordToLocal(vector coord)Мировая точка в локальную

Иерархия (IEntity)

МетодСигнатураОписание
AddChildvoid AddChild(IEntity child, int pivot, bool posOnly = false)Прикрепить дочернюю сущность к кости
RemoveChildvoid RemoveChild(IEntity child, bool keepTransform = false)Открепить дочернюю сущность
GetParentIEntity GetParent()Родительская сущность или null
GetChildrenIEntity GetChildren()Первая дочерняя сущность
GetSiblingIEntity GetSibling()Следующая сущность-сиблинг

Информация для отображения (Object)

МетодСигнатураОписание
GetTypestring GetType()Имя класса конфига (напр., "AKM")
GetDisplayNamestring GetDisplayName()Локализованное отображаемое имя
IsKindOfbool IsKindOf(string type)Проверка наследования конфига

Позиции костей (Object)

МетодСигнатураОписание
GetBonePositionLSvector GetBonePositionLS(int pivot)Позиция кости в локальном пространстве
GetBonePositionMSvector GetBonePositionMS(int pivot)Позиция кости в пространстве модели
GetBonePositionWSvector GetBonePositionWS(int pivot)Позиция кости в мировом пространстве

Доступ к конфигу (Object)

МетодСигнатураОписание
ConfigGetBoolbool ConfigGetBool(string entry)Прочитать bool из конфига
ConfigGetIntint ConfigGetInt(string entry)Прочитать int из конфига
ConfigGetFloatfloat ConfigGetFloat(string entry)Прочитать float из конфига
ConfigGetStringstring ConfigGetString(string entry)Прочитать строку из конфига
ConfigGetTextArrayvoid ConfigGetTextArray(string entry, out TStringArray values)Прочитать массив строк
ConfigIsExistingbool ConfigIsExisting(string entry)Проверить, существует ли запись конфига

Здоровье и урон

Полный справочник: Глава 6.1: Система сущностей

МетодСигнатураОписание
GetHealthfloat GetHealth(string zone, string type)Получить значение здоровья
GetMaxHealthfloat GetMaxHealth(string zone, string type)Получить максимальное здоровье
SetHealthvoid SetHealth(string zone, string type, float value)Установить здоровье
SetHealthMaxvoid SetHealthMax(string zone, string type)Установить на максимум
AddHealthvoid AddHealth(string zone, string type, float value)Добавить здоровье
DecreaseHealthvoid DecreaseHealth(string zone, string type, float value, bool auto_delete = false)Уменьшить здоровье
SetAllowDamagevoid SetAllowDamage(bool val)Включить/отключить урон
GetAllowDamagebool GetAllowDamage()Проверить, разрешён ли урон
IsAlivebool IsAlive()Проверка жив ли (использовать на EntityAI)
ProcessDirectDamagevoid ProcessDirectDamage(int dmgType, EntityAI source, string component, string ammoType, vector modelPos, float coef = 1.0, int flags = 0)Применить урон (EntityAI)

Типичные пары зона/тип: ("", "Health") глобальное, ("", "Blood") кровь игрока, ("", "Shock") шок игрока, ("Engine", "Health") двигатель транспорта.


Проверка типов

МетодКлассОписание
IsMan()ObjectЭто игрок?
IsBuilding()ObjectЭто здание?
IsTransport()ObjectЭто транспорт?
IsDayZCreature()ObjectЭто существо (зомби/животное)?
IsKindOf(string)ObjectПроверка наследования конфига
IsItemBase()EntityAIЭто предмет инвентаря?
IsWeapon()EntityAIЭто оружие?
IsMagazine()EntityAIЭто магазин?
IsClothing()EntityAIЭто одежда?
IsFood()EntityAIЭто еда?
Class.CastTo(out, obj)ClassБезопасное приведение типа (возвращает bool)
ClassName.Cast(obj)ClassПриведение в строке (возвращает null при неудаче)

Инвентарь

Полный справочник: Глава 6.1: Система сущностей

МетодСигнатураОписание
GetInventoryGameInventory GetInventory()Получить компонент инвентаря (EntityAI)
CreateInInventoryEntityAI CreateInInventory(string type)Создать предмет в грузе
CreateEntityInCargoEntityAI CreateEntityInCargo(string type)Создать предмет в грузе
CreateAttachmentEntityAI CreateAttachment(string type)Создать предмет как вложение
EnumerateInventoryvoid EnumerateInventory(int traversal, out array<EntityAI> items)Перечислить все предметы
CountInventoryint CountInventory()Подсчитать предметы
HasEntityInInventorybool HasEntityInInventory(EntityAI item)Проверить наличие предмета
AttachmentCountint AttachmentCount()Количество вложений
GetAttachmentFromIndexEntityAI GetAttachmentFromIndex(int idx)Получить вложение по индексу
FindAttachmentByNameEntityAI FindAttachmentByName(string slot)Получить вложение по слоту

Создание и удаление сущностей

Полный справочник: Глава 6.1: Система сущностей

МетодСигнатураОписание
CreateObjectObject GetGame().CreateObject(string type, vector pos, bool local = false, bool ai = false, bool physics = true)Создать сущность
CreateObjectExObject GetGame().CreateObjectEx(string type, vector pos, int flags, int rotation = RF_DEFAULT)Создать с флагами ECE
ObjectDeletevoid GetGame().ObjectDelete(Object obj)Немедленное удаление на сервере
ObjectDeleteOnClientvoid GetGame().ObjectDeleteOnClient(Object obj)Удаление только на клиенте
Deletevoid obj.Delete()Отложенное удаление (следующий кадр)

Распространённые флаги ECE

ФлагЗначениеОписание
ECE_NONE0Без специального поведения
ECE_CREATEPHYSICS1024Создать коллизию
ECE_INITAI2048Инициализировать ИИ
ECE_EQUIP24576Создать с вложениями + грузом
ECE_PLACE_ON_SURFACEкомбинированныйФизика + путь + трассировка
ECE_LOCAL1073741824Только на клиенте (не реплицируется)
ECE_NOLIFETIME4194304Не исчезнет
ECE_KEEPHEIGHT524288Сохранять позицию Y

Методы игрока

Полный справочник: Глава 6.1: Система сущностей

МетодСигнатураОписание
GetIdentityPlayerIdentity GetIdentity()Объект идентификации игрока
GetIdentity().GetName()string GetName()Отображаемое имя Steam/платформы
GetIdentity().GetId()string GetId()Уникальный ID BI
GetIdentity().GetPlainId()string GetPlainId()ID Steam64
GetIdentity().GetPlayerId()int GetPlayerId()ID игрока сессии
GetHumanInventory().GetEntityInHands()EntityAI GetEntityInHands()Предмет в руках
GetDrivingVehicleEntityAI GetDrivingVehicle()Управляемый транспорт
IsAlivebool IsAlive()Проверка жив ли
IsUnconsciousbool IsUnconscious()Проверка без сознания
IsRestrainedbool IsRestrained()Проверка связан ли
IsInVehiclebool IsInVehicle()Проверка в транспорте
SpawnEntityOnGroundOnCursorDirEntityAI SpawnEntityOnGroundOnCursorDir(string type, float dist)Создать перед игроком

Методы транспорта

Полный справочник: Глава 6.2: Система транспорта

Экипаж (Transport)

МетодСигнатураОписание
CrewSizeint CrewSize()Общее количество мест
CrewMemberHuman CrewMember(int idx)Получить человека на месте
CrewMemberIndexint CrewMemberIndex(Human member)Получить место человека
CrewGetOutvoid CrewGetOut(int idx)Принудительно высадить с места
CrewDeathvoid CrewDeath(int idx)Убить члена экипажа

Двигатель (Car)

МетодСигнатураОписание
EngineIsOnbool EngineIsOn()Двигатель работает?
EngineStartvoid EngineStart()Запустить двигатель
EngineОстановитьvoid EngineОстановить()Остановить двигатель
EngineGetRPMfloat EngineGetRPM()Текущие обороты
EngineGetRPMRedlinefloat EngineGetRPMRedline()Обороты красной зоны
GetGearint GetGear()Текущая передача
GetSpeedometerfloat GetSpeedometer()Скорость в км/ч

Жидкости (Car)

МетодСигнатураОписание
GetFluidCapacityfloat GetFluidCapacity(CarFluid fluid)Максимальная ёмкость
GetFluidFractionfloat GetFluidFraction(CarFluid fluid)Уровень заполнения 0.0-1.0
Fillvoid Fill(CarFluid fluid, float amount)Добавить жидкость
Leakvoid Leak(CarFluid fluid, float amount)Убрать жидкость
LeakAllvoid LeakAll(CarFluid fluid)Слить всю жидкость

Перечисление CarFluid: FUEL, OIL, BRAKE, COOLANT

Управление (Car)

МетодСигнатураОписание
SetBrakevoid SetBrake(float value, int wheel = -1)0.0-1.0, -1 = все
SetHandbrakevoid SetHandbrake(float value)0.0-1.0
SetSteeringvoid SetSteering(float value, bool analog = true)Ввод руля
SetThrustvoid SetThrust(float value, int wheel = -1)0.0-1.0 газ

Методы погоды

Полный справочник: Глава 6.3: Система погоды

Доступ

МетодСигнатураОписание
GetGame().GetWeather()Weather GetWeather()Получить синглтон погоды

Явления (Weather)

МетодСигнатураОписание
GetOvercastWeatherPhenomenon GetOvercast()Облачность
GetRainWeatherPhenomenon GetRain()Дождь
GetFogWeatherPhenomenon GetFog()Туман
GetSnowfallWeatherPhenomenon GetSnowfall()Снег
GetWindMagnitudeWeatherPhenomenon GetWindMagnitude()Сила ветра
GetWindDirectionWeatherPhenomenon GetWindDirection()Направление ветра
GetWindvector GetWind()Вектор направления ветра
GetWindSpeedfloat GetWindSpeed()Скорость ветра м/с
SetStormvoid SetStorm(float density, float threshold, float timeout)Настройка молний

WeatherPhenomenon

МетодСигнатураОписание
GetActualfloat GetActual()Текущее интерполированное значение
GetForecastfloat GetForecast()Целевое значение
GetDurationfloat GetDuration()Оставшаяся продолжительность (секунды)
Setvoid Set(float forecast, float time = 0, float minDuration = 0)Установить цель (только сервер)
SetLimitsvoid SetLimits(float min, float max)Ограничения диапазона значений
SetTimeLimitsvoid SetTimeLimits(float min, float max)Ограничения скорости изменения
SetChangeLimitsvoid SetChangeLimits(float min, float max)Ограничения величины изменения

Методы файлового ввода-вывода

Полный справочник: Глава 6.8: Файловый ввод-вывод и JSON

Префиксы путей

ПрефиксРасположениеДоступен для записи
$profile:Каталог профиля сервера/клиентаДа
$saves:Каталог сохраненийДа
$mission:Папка текущей миссииОбычно только чтение
$CurrentDir:Рабочий каталогЗависит от обстоятельств

Операции с файлами

МетодСигнатураОписание
FileExistbool FileExist(string path)Проверить, существует ли файл
MakeDirectorybool MakeDirectory(string path)Создать каталог
OpenFileFileHandle OpenFile(string path, FileMode mode)Открыть файл (0 = неудача)
CloseFilevoid CloseFile(FileHandle fh)Закрыть файл
FPrintvoid FPrint(FileHandle fh, string text)Записать текст (без перевода строки)
FPrintlnvoid FPrintln(FileHandle fh, string text)Записать текст + перевод строки
FGetsint FGets(FileHandle fh, string line)Прочитать одну строку
ReadFilestring ReadFile(FileHandle fh)Прочитать весь файл
DeleteFilebool DeleteFile(string path)Удалить файл
CopyFilebool CopyFile(string src, string dst)Копировать файл

JSON (JsonFileLoader)

МетодСигнатураОписание
JsonLoadFilevoid JsonFileLoader<T>.JsonLoadFile(string path, T obj)Загрузить JSON в объект (возвращает void)
JsonСохранитьFilevoid JsonFileLoader<T>.JsonСохранитьFile(string path, T obj)Сохранить объект как JSON

Перечисление FileMode

ЗначениеОписание
FileMode.READОткрыть для чтения
FileMode.WRITEОткрыть для записи (создаёт/перезаписывает)
FileMode.APPENDОткрыть для дозаписи

Методы таймеров и CallQueue

Полный справочник: Глава 6.7: Таймеры и CallQueue

Доступ

ВыражениеВозвращаетОписание
GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY)ScriptCallQueueОчередь вызовов геймплея
GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM)ScriptCallQueueСистемная очередь вызовов
GetGame().GetCallQueue(CALL_CATEGORY_GUI)ScriptCallQueueОчередь вызовов GUI
GetGame().GetUpdateQueue(CALL_CATEGORY_GAMEPLAY)ScriptInvokerПокадровая очередь обновления

ScriptCallQueue

МетодСигнатураОписание
CallLatervoid CallLater(func fn, int delay = 0, bool repeat = false, param1..4)Запланировать отложенный/повторяющийся вызов
Callvoid Call(func fn, param1..4)Выполнить на следующем кадре
CallByNamevoid CallByName(Class obj, string fnName, int delay = 0, bool repeat = false, Param par = null)Вызвать метод по имени строкой
Removevoid Remove(func fn)Отменить запланированный вызов
RemoveByNamevoid RemoveByName(Class obj, string fnName)Отменить по имени строкой
GetRemainingTimefloat GetRemainingTime(Class obj, string fnName)Получить оставшееся время CallLater

Класс Timer

МетодСигнатураОписание
Timer()void Timer(int category = CALL_CATEGORY_SYSTEM)Конструктор
Runvoid Run(float duration, Class obj, string fnName, Param params = null, bool loop = false)Запустить таймер
Остановитьvoid Остановить()Остановить таймер
Pausevoid Pause()Приостановить таймер
Продолжитьvoid Продолжить()Возобновить таймер
IsPausedbool IsPaused()Таймер приостановлен?
IsRunningbool IsRunning()Таймер активен?
GetRemainingfloat GetRemaining()Оставшиеся секунды

ScriptInvoker

МетодСигнатураОписание
Insertvoid Insert(func fn)Зарегистрировать коллбэк
Removevoid Remove(func fn)Отменить регистрацию коллбэка
Invokevoid Invoke(params...)Вызвать все коллбэки
Countint Count()Количество зарегистрированных коллбэков
Clearvoid Clear()Удалить все коллбэки

Методы создания виджетов

Полный справочник: Глава 3.5: Программное создание

МетодСигнатураОписание
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()Получить рабочее пространство UI
CreateWidgetsWidget CreateWidgets(string layout, Widget parent = null)Загрузить файл .layout
FindAnyWidgetWidget FindAnyWidget(string name)Найти дочерний виджет по имени (рекурсивно)
Showvoid Show(bool show)Показать/скрыть виджет
SetTextvoid TextWidget.SetText(string text)Установить текстовое содержимое
SetImagevoid ImageWidget.SetImage(int index)Установить индекс изображения
SetColorvoid SetColor(int color)Установить цвет виджета (ARGB)
SetAlphavoid SetAlpha(float alpha)Установить прозрачность 0.0-1.0
SetSizevoid SetSize(float x, float y, bool relative = false)Установить размер виджета
SetPosvoid SetPos(float x, float y, bool relative = false)Установить позицию виджета
GetScreenSizevoid GetScreenSize(out float x, out float y)Разрешение экрана
Destroyvoid Widget.Destroy()Удалить и уничтожить виджет

Вспомогательные функции цвета ARGB

ФункцияСигнатураОписание
ARGBint ARGB(int a, int r, int g, int b)Создать целое число цвета (0-255 каждый)
ARGBFint ARGBF(float a, float r, float g, float b)Создать целое число цвета (0.0-1.0 каждый)

Методы RPC / Сетевое взаимодействие

Полный справочник: Глава 6.9: Сетевое взаимодействие и RPC

Проверки окружения

МетодСигнатураОписание
GetGame().IsServer()bool IsServer()True на сервере / хосте listen-сервера
GetGame().IsClient()bool IsClient()True на клиенте
GetGame().IsMultiplayer()bool IsMultiplayer()True в мультиплеере
GetGame().IsDedicatedServer()bool IsDedicatedServer()True только на выделенном сервере

ScriptRPC

МетодСигнатураОписание
ScriptRPC()void ScriptRPC()Конструктор
Writebool Write(void value)Сериализовать значение (int, float, bool, string, vector, array)
Sendvoid Send(Object target, int rpc_type, bool guaranteed, PlayerIdentity recipient = null)Отправить RPC
Resetvoid Reset()Очистить записанные данные

Приём (Override на Object)

МетодСигнатураОписание
OnRPCvoid OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)Обработчик приёма RPC

ParamsReadContext

МетодСигнатураОписание
Readbool Read(out void value)Десериализовать значение (те же типы, что и Write)

Устаревший RPC (CGame)

МетодСигнатураОписание
RPCSingleParamvoid GetGame().RPCSingleParam(Object target, int rpc, Param param, bool guaranteed, PlayerIdentity recipient = null)Отправить один объект Param
RPCvoid GetGame().RPC(Object target, int rpc, array<Param> params, bool guaranteed, PlayerIdentity recipient = null)Отправить несколько Param

ScriptInputUserData (Проверенный вводом)

МетодСигнатураОписание
CanStoreInputUserDatabool ScriptInputUserData.CanStoreInputUserData()Проверить, есть ли место в очереди
Writebool Write(void value)Сериализовать значение
Sendvoid Send()Отправить на сервер (только клиент)

Математические константы и методы

Полный справочник: Глава 1.7: Математика и векторы

Константы

КонстантаЗначениеОписание
Math.PI3.14159...Число Пи
Math.PI26.28318...2 * Пи
Math.PI_HALF1.57079...Пи / 2
Math.DEG2RAD0.01745...Множитель градусов в радианы
Math.RAD2DEG57.2957...Множитель радианов в градусы
int.MAX2147483647Максимальный int
int.MIN-2147483648Минимальный int
float.MAX3.4028e+38Максимальный float
float.MIN1.175e-38Минимальный положительный float

Случайные числа

МетодСигнатураОписание
Math.RandomIntint RandomInt(int min, int max)Случайный int [min, max)
Math.RandomIntInclusiveint RandomIntInclusive(int min, int max)Случайный int [min, max]
Math.RandomFloat01float RandomFloat01()Случайный float [0, 1]
Math.RandomBoolbool RandomBool()Случайный true/false

Округление

МетодСигнатураОписание
Math.Roundfloat Round(float f)Округлить до ближайшего
Math.Floorfloat Floor(float f)Округлить вниз
Math.Ceilfloat Ceil(float f)Округлить вверх

Ограничение и интерполяция

МетодСигнатураОписание
Math.Clampfloat Clamp(float val, float min, float max)Ограничить диапазоном
Math.Minfloat Min(float a, float b)Минимум из двух
Math.Maxfloat Max(float a, float b)Максимум из двух
Math.Lerpfloat Lerp(float a, float b, float t)Линейная интерполяция
Math.InverseLerpfloat InverseLerp(float a, float b, float val)Обратная линейная интерполяция

Абсолютное значение и степень

МетодСигнатураОписание
Math.AbsFloatfloat AbsFloat(float f)Абсолютное значение (float)
Math.AbsIntint AbsInt(int i)Абсолютное значение (int)
Math.Powfloat Pow(float base, float exp)Степень
Math.Sqrtfloat Sqrt(float f)Квадратный корень
Math.SqrFloatfloat SqrFloat(float f)Квадрат (f * f)

Тригонометрия (радианы)

МетодСигнатураОписание
Math.Sinfloat Sin(float rad)Синус
Math.Cosfloat Cos(float rad)Косинус
Math.Tanfloat Tan(float rad)Тангенс
Math.Asinfloat Asin(float val)Арксинус
Math.Acosfloat Acos(float val)Арккосинус
Math.Atan2float Atan2(float y, float x)Угол по компонентам

Плавное демпфирование

МетодСигнатураОписание
Math.SmoothCDfloat SmoothCD(float val, float target, inout float velocity, float smoothTime, float maxSpeed, float dt)Плавное приближение к цели (аналог SmoothDamp в Unity)
c
// Использование плавного демпфирования
// val: текущее значение, target: целевое значение, velocity: ref скорость (сохраняется между вызовами)
// smoothTime: время сглаживания, maxSpeed: ограничение скорости, dt: дельта времени
float m_Velocity = 0;
float result = Math.SmoothCD(current, target, m_Velocity, 0.3, 1000.0, dt);

Угол

МетодСигнатураОписание
Math.NormalizeAnglefloat NormalizeAngle(float deg)Нормализовать к 0-360

Методы работы с векторами

МетодСигнатураОписание
vector.Distancefloat Distance(vector a, vector b)Расстояние между точками
vector.DistanceSqfloat DistanceSq(vector a, vector b)Квадрат расстояния (быстрее)
vector.Directionvector Direction(vector from, vector to)Вектор направления
vector.Dotfloat Dot(vector a, vector b)Скалярное произведение
vector.Lerpvector Lerp(vector a, vector b, float t)Интерполяция позиций
v.Length()float Length()Длина вектора
v.LengthSq()float LengthSq()Квадрат длины (быстрее)
v.Normalized()vector Normalized()Единичный вектор
v.VectorToAngles()vector VectorToAngles()Направление в yaw/pitch
v.AnglesToVector()vector AnglesToVector()Yaw/pitch в направление
v.Multiply3vector Multiply3(vector mat[3])Умножение на матрицу
v.InvMultiply3vector InvMultiply3(vector mat[3])Обратное умножение на матрицу
Vector(x, y, z)vector Vector(float x, float y, float z)Создать вектор

Глобальные функции

ФункцияСигнатураОписание
GetGame()CGame GetGame()Экземпляр игры
GetGame().GetPlayer()Man GetPlayer()Локальный игрок (только КЛИЕНТ)
GetGame().GetPlayers(out arr)void GetPlayers(out array<Man> arr)Все игроки (сервер)
GetGame().GetWorld()World GetWorld()Экземпляр мира
GetGame().GetTickTime()float GetTickTime()Время сервера (секунды)
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()Рабочее пространство UI
GetGame().SurfaceY(x, z)float SurfaceY(float x, float z)Высота местности в точке
GetGame().SurfaceGetType(x, z)string SurfaceGetType(float x, float z)Тип поверхности
GetGame().GetObjectsAtPosition(pos, radius, objects, proxyCargo)void GetObjectsAtPosition(vector pos, float radius, out array<Object> objects, out array<CargoBase> proxyCargo)Найти объекты рядом с позицией
GetScreenSize(w, h)void GetScreenSize(out int w, out int h)Получить разрешение экрана
GetGame().IsServer()bool IsServer()Проверка сервера
GetGame().IsClient()bool IsClient()Проверка клиента
GetGame().IsMultiplayer()bool IsMultiplayer()Проверка мультиплеера
Print(string)void Print(string msg)Запись в лог скриптов
ErrorEx(string)void ErrorEx(string msg, ErrorExSeverity sev = ERROR)Запись ошибки с уровнем серьёзности
DumpStackString()string DumpStackString()Получить стек вызовов как строку
string.Format(fmt, ...)string Format(string fmt, ...)Форматирование строки (%1..%9)

Хуки миссий

Полный справочник: Глава 6.11: Хуки миссий

Серверная сторона (modded MissionServer)

МетодОписание
override void OnInit()Инициализация менеджеров, регистрация RPC
override void OnMissionStart()После загрузки всех модов
override void OnUpdate(float timeslice)Покадрово (используйте аккумулятор!)
override void OnMissionFinish()Очистка синглтонов, отписка от событий
override void OnEvent(EventType eventTypeId, Param params)События чата, голоса
override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)Игрок подключился
override void InvokeOnDisconnect(PlayerBase player)Игрок отключился
override void OnClientReadyEvent(int peerId, PlayerIdentity identity)Клиент готов к приёму данных
override void PlayerRegistered(int peerId)Идентификация зарегистрирована

Клиентская сторона (modded MissionGameplay)

МетодОписание
override void OnInit()Инициализация клиентских менеджеров, создание HUD
override void OnUpdate(float timeslice)Покадровое обновление клиента
override void OnMissionFinish()Очистка
override void OnKeyPress(int key)Клавиша нажата
override void OnKeyRelease(int key)Клавиша отпущена

Система действий

Полный справочник: Глава 6.12: Система действий

Регистрация действий на объекте

c
override void SetActions()
{
    super.SetActions();
    AddAction(MyAction);           // Добавить пользовательское действие
    RemoveAction(ActionEat);       // Удалить ванильное действие
}

Ключевые методы ActionBase

МетодОписание
override void CreateConditionComponents()Установить условия расстояния CCINone/CCTNone
override bool ActionCondition(...)Пользовательская логика валидации
override void OnExecuteServer(ActionData action_data)Выполнение на сервере
override void OnExecuteClient(ActionData action_data)Эффекты на клиенте
override string GetText()Отображаемое имя (поддерживает ключи #STR_)

Полная документация: Главная | Шпаргалка | Система сущностей | Транспорт | Погода | Таймеры | Файловый I/O | Сеть | Хуки миссий | Система действий

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