Skip to content

Szybka referencja API silnika

Strona główna | Szybka referencja API silnika


Skondensowana jednostronicowa referencja najczęściej używanych metod silnika DayZ. Szczegółowe wyjaśnienia i przykłady znajdziesz w pełnych rozdziałach linkowanych w nagłówkach każdej sekcji.


Spis treści


Metody encji

Pełna referencja: Rozdział 6.1: System encji

Pozycja i orientacja (Object)

MetodaSygnaturaOpis
GetPositionvector GetPosition()Pozycja w świecie
SetPositionvoid SetPosition(vector pos)Ustaw pozycję w świecie
GetOrientationvector GetOrientation()Odchylenie, pochylenie, przechylenie w stopniach
SetOrientationvoid SetOrientation(vector ori)Ustaw odchylenie, pochylenie, przechylenie
GetDirectionvector GetDirection()Wektor kierunku do przodu
SetDirectionvoid SetDirection(vector dir)Ustaw kierunek do przodu
GetScalefloat GetScale()Aktualna skala
SetScalevoid SetScale(float scale)Ustaw skalę

Transformacje (IEntity)

MetodaSygnaturaOpis
GetOriginvector GetOrigin()Pozycja w świecie (poziom silnika)
SetOriginvoid SetOrigin(vector orig)Ustaw pozycję w świecie (poziom silnika)
GetYawPitchRollvector GetYawPitchRoll()Rotacja jako odchylenie/pochylenie/przechylenie
GetTransformvoid GetTransform(out vector mat[4])Pełna macierz transformacji 4x3
SetTransformvoid SetTransform(vector mat[4])Ustaw pełną transformację
VectorToParentvector VectorToParent(vector vec)Kierunek lokalny na światowy
CoordToParentvector CoordToParent(vector coord)Punkt lokalny na światowy
VectorToLocalvector VectorToLocal(vector vec)Kierunek światowy na lokalny
CoordToLocalvector CoordToLocal(vector coord)Punkt światowy na lokalny

Hierarchia (IEntity)

MetodaSygnaturaOpis
AddChildvoid AddChild(IEntity child, int pivot, bool posOnly = false)Dołącz dziecko do kości
RemoveChildvoid RemoveChild(IEntity child, bool keepTransform = false)Odłącz dziecko
GetParentIEntity GetParent()Encja rodzica lub null
GetChildrenIEntity GetChildren()Pierwsza encja dziecka
GetSiblingIEntity GetSibling()Następna encja rodzeństwa

Informacje wyświetlania (Object)

MetodaSygnaturaOpis
GetTypestring GetType()Nazwa klasy z konfiguracji (np. "AKM")
GetDisplayNamestring GetDisplayName()Zlokalizowana nazwa wyświetlana
IsKindOfbool IsKindOf(string type)Sprawdzenie dziedziczenia konfiguracji

Pozycje kości (Object)

MetodaSygnaturaOpis
GetBonePositionLSvector GetBonePositionLS(int pivot)Pozycja kości w przestrzeni lokalnej
GetBonePositionMSvector GetBonePositionMS(int pivot)Pozycja kości w przestrzeni modelu
GetBonePositionWSvector GetBonePositionWS(int pivot)Pozycja kości w przestrzeni świata

Dostęp do konfiguracji (Object)

MetodaSygnaturaOpis
ConfigGetBoolbool ConfigGetBool(string entry)Odczytaj bool z konfiguracji
ConfigGetIntint ConfigGetInt(string entry)Odczytaj int z konfiguracji
ConfigGetFloatfloat ConfigGetFloat(string entry)Odczytaj float z konfiguracji
ConfigGetStringstring ConfigGetString(string entry)Odczytaj string z konfiguracji
ConfigGetTextArrayvoid ConfigGetTextArray(string entry, out TStringArray values)Odczytaj tablicę stringów
ConfigIsExistingbool ConfigIsExisting(string entry)Sprawdź czy wpis konfiguracji istnieje

Zdrowie i obrażenia

Pełna referencja: Rozdział 6.1: System encji

MetodaSygnaturaOpis
GetHealthfloat GetHealth(string zone, string type)Pobierz wartość zdrowia
GetMaxHealthfloat GetMaxHealth(string zone, string type)Pobierz maksymalne zdrowie
SetHealthvoid SetHealth(string zone, string type, float value)Ustaw zdrowie
SetHealthMaxvoid SetHealthMax(string zone, string type)Ustaw na maksimum
AddHealthvoid AddHealth(string zone, string type, float value)Dodaj zdrowie
DecreaseHealthvoid DecreaseHealth(string zone, string type, float value, bool auto_delete = false)Zmniejsz zdrowie
SetAllowDamagevoid SetAllowDamage(bool val)Włącz/wyłącz obrażenia
GetAllowDamagebool GetAllowDamage()Sprawdź czy obrażenia dozwolone
IsAlivebool IsAlive()Sprawdzenie życia (użyj na EntityAI)
ProcessDirectDamagevoid ProcessDirectDamage(int dmgType, EntityAI source, string component, string ammoType, vector modelPos, float coef = 1.0, int flags = 0)Zadaj obrażenia (EntityAI)

Typowe pary strefa/typ: ("", "Health") globalne, ("", "Blood") krew gracza, ("", "Shock") szok gracza, ("Engine", "Health") silnik pojazdu.


Sprawdzanie typów

MetodaKlasaOpis
IsMan()ObjectCzy to gracz?
IsBuilding()ObjectCzy to budynek?
IsTransport()ObjectCzy to pojazd?
IsDayZCreature()ObjectCzy to stworzenie (zombie/zwierzę)?
IsKindOf(string)ObjectSprawdzenie dziedziczenia konfiguracji
IsItemBase()EntityAICzy to przedmiot ekwipunku?
IsWeapon()EntityAICzy to broń?
IsMagazine()EntityAICzy to magazynek?
IsClothing()EntityAICzy to ubranie?
IsFood()EntityAICzy to jedzenie?
Class.CastTo(out, obj)ClassBezpieczne rzutowanie w dół (zwraca bool)
ClassName.Cast(obj)ClassRzutowanie inline (zwraca null przy niepowodzeniu)

Ekwipunek

Pełna referencja: Rozdział 6.1: System encji

MetodaSygnaturaOpis
GetInventoryGameInventory GetInventory()Pobierz komponent ekwipunku (EntityAI)
CreateInInventoryEntityAI CreateInInventory(string type)Utwórz przedmiot w ładunku
CreateEntityInCargoEntityAI CreateEntityInCargo(string type)Utwórz przedmiot w ładunku
CreateAttachmentEntityAI CreateAttachment(string type)Utwórz przedmiot jako załącznik
EnumerateInventoryvoid EnumerateInventory(int traversal, out array<EntityAI> items)Wylistuj wszystkie przedmioty
CountInventoryint CountInventory()Policz przedmioty
HasEntityInInventorybool HasEntityInInventory(EntityAI item)Sprawdź przedmiot
AttachmentCountint AttachmentCount()Liczba załączników
GetAttachmentFromIndexEntityAI GetAttachmentFromIndex(int idx)Pobierz załącznik po indeksie
FindAttachmentByNameEntityAI FindAttachmentByName(string slot)Pobierz załącznik po slocie

Tworzenie i usuwanie encji

Pełna referencja: Rozdział 6.1: System encji

MetodaSygnaturaOpis
CreateObjectObject GetGame().CreateObject(string type, vector pos, bool local = false, bool ai = false, bool physics = true)Utwórz encję
CreateObjectExObject GetGame().CreateObjectEx(string type, vector pos, int flags, int rotation = RF_DEFAULT)Utwórz z flagami ECE
ObjectDeletevoid GetGame().ObjectDelete(Object obj)Natychmiastowe usunięcie na serwerze
ObjectDeleteOnClientvoid GetGame().ObjectDeleteOnClient(Object obj)Usunięcie tylko po stronie klienta
Deletevoid obj.Delete()Odroczone usunięcie (następna klatka)

Typowe flagi ECE

FlagaWartośćOpis
ECE_NONE0Bez specjalnego zachowania
ECE_CREATEPHYSICS1024Utwórz kolizję
ECE_INITAI2048Zainicjalizuj AI
ECE_EQUIP24576Spawnuj z załącznikami + ładunkiem
ECE_PLACE_ON_SURFACEłączoneFizyka + ścieżka + ślad
ECE_LOCAL1073741824Tylko klient (niereplikowane)
ECE_NOLIFETIME4194304Nie zniknie
ECE_KEEPHEIGHT524288Zachowaj pozycję Y

Metody gracza

Pełna referencja: Rozdział 6.1: System encji

MetodaSygnaturaOpis
GetIdentityPlayerIdentity GetIdentity()Obiekt tożsamości gracza
GetIdentity().GetName()string GetName()Nazwa wyświetlana Steam/platformy
GetIdentity().GetId()string GetId()Unikalne ID BI
GetIdentity().GetPlainId()string GetPlainId()Steam64 ID
GetIdentity().GetPlayerId()int GetPlayerId()Sesyjne ID gracza
GetHumanInventory().GetEntityInHands()EntityAI GetEntityInHands()Przedmiot w rękach
GetDrivingVehicleEntityAI GetDrivingVehicle()Prowadzony pojazd
IsAlivebool IsAlive()Sprawdzenie życia
IsUnconsciousbool IsUnconscious()Sprawdzenie nieprzytomności
IsRestrainedbool IsRestrained()Sprawdzenie skrępowania
IsInVehiclebool IsInVehicle()Sprawdzenie czy w pojeździe
SpawnEntityOnGroundOnCursorDirEntityAI SpawnEntityOnGroundOnCursorDir(string type, float dist)Spawnuj przed graczem

Metody pojazdów

Pełna referencja: Rozdział 6.2: System pojazdów

Załoga (Transport)

MetodaSygnaturaOpis
CrewSizeint CrewSize()Łączna liczba siedzeń
CrewMemberHuman CrewMember(int idx)Pobierz człowieka na siedzeniu
CrewMemberIndexint CrewMemberIndex(Human member)Pobierz siedzenie człowieka
CrewGetOutvoid CrewGetOut(int idx)Wymuś wyrzucenie z siedzenia
CrewDeathvoid CrewDeath(int idx)Zabij członka załogi

Silnik (Car)

MetodaSygnaturaOpis
EngineIsOnbool EngineIsOn()Czy silnik działa?
EngineStartvoid EngineStart()Uruchom silnik
EngineStopvoid EngineStop()Zatrzymaj silnik
EngineGetRPMfloat EngineGetRPM()Aktualne obroty
EngineGetRPMRedlinefloat EngineGetRPMRedline()Obroty czerwonej strefy
GetGearint GetGear()Aktualny bieg
GetSpeedometerfloat GetSpeedometer()Prędkość w km/h

Płyny (Car)

MetodaSygnaturaOpis
GetFluidCapacityfloat GetFluidCapacity(CarFluid fluid)Maksymalna pojemność
GetFluidFractionfloat GetFluidFraction(CarFluid fluid)Poziom napełnienia 0.0-1.0
Fillvoid Fill(CarFluid fluid, float amount)Dodaj płyn
Leakvoid Leak(CarFluid fluid, float amount)Usuń płyn
LeakAllvoid LeakAll(CarFluid fluid)Opróżnij cały płyn

Enum CarFluid: FUEL, OIL, BRAKE, COOLANT

Sterowanie (Car)

MetodaSygnaturaOpis
SetBrakevoid SetBrake(float value, int wheel = -1)0.0-1.0, -1 = wszystkie
SetHandbrakevoid SetHandbrake(float value)0.0-1.0
SetSteeringvoid SetSteering(float value, bool analog = true)Wejście kierownicy
SetThrustvoid SetThrust(float value, int wheel = -1)0.0-1.0 przepustnica

Metody pogody

Pełna referencja: Rozdział 6.3: System pogody

Dostęp

MetodaSygnaturaOpis
GetGame().GetWeather()Weather GetWeather()Pobierz singleton pogody

Zjawiska (Weather)

MetodaSygnaturaOpis
GetOvercastWeatherPhenomenon GetOvercast()Zachmurzenie
GetRainWeatherPhenomenon GetRain()Deszcz
GetFogWeatherPhenomenon GetFog()Mgła
GetSnowfallWeatherPhenomenon GetSnowfall()Śnieg
GetWindMagnitudeWeatherPhenomenon GetWindMagnitude()Prędkość wiatru
GetWindDirectionWeatherPhenomenon GetWindDirection()Kierunek wiatru
GetWindvector GetWind()Wektor kierunku wiatru
GetWindSpeedfloat GetWindSpeed()Prędkość wiatru m/s
SetStormvoid SetStorm(float density, float threshold, float timeout)Konfiguracja błyskawic

WeatherPhenomenon

MetodaSygnaturaOpis
GetActualfloat GetActual()Aktualna interpolowana wartość
GetForecastfloat GetForecast()Wartość docelowa
GetDurationfloat GetDuration()Pozostały czas trwania (sekundy)
Setvoid Set(float forecast, float time = 0, float minDuration = 0)Ustaw cel (tylko serwer)
SetLimitsvoid SetLimits(float min, float max)Limity zakresu wartości
SetTimeLimitsvoid SetTimeLimits(float min, float max)Limity prędkości zmian
SetChangeLimitsvoid SetChangeLimits(float min, float max)Limity wielkości zmian

Metody I/O plików

Pełna referencja: Rozdział 6.8: I/O plików i JSON

Prefiksy ścieżek

PrefiksLokalizacjaZapisywalny
$profile:Katalog profilu serwera/klientaTak
$saves:Katalog zapisówTak
$mission:Folder aktualnej misjiZazwyczaj odczyt
$CurrentDir:Katalog roboczyZależy

Operacje na plikach

MetodaSygnaturaOpis
FileExistbool FileExist(string path)Sprawdź czy plik istnieje
MakeDirectorybool MakeDirectory(string path)Utwórz katalog
OpenFileFileHandle OpenFile(string path, FileMode mode)Otwórz plik (0 = niepowodzenie)
CloseFilevoid CloseFile(FileHandle fh)Zamknij plik
FPrintvoid FPrint(FileHandle fh, string text)Zapisz tekst (bez nowej linii)
FPrintlnvoid FPrintln(FileHandle fh, string text)Zapisz tekst + nowa linia
FGetsint FGets(FileHandle fh, string line)Odczytaj jedną linię
ReadFilestring ReadFile(FileHandle fh)Odczytaj cały plik
DeleteFilebool DeleteFile(string path)Usuń plik
CopyFilebool CopyFile(string src, string dst)Kopiuj plik

JSON (JsonFileLoader)

MetodaSygnaturaOpis
JsonLoadFilevoid JsonFileLoader<T>.JsonLoadFile(string path, T obj)Załaduj JSON do obiektu (zwraca void)
JsonSaveFilevoid JsonFileLoader<T>.JsonSaveFile(string path, T obj)Zapisz obiekt jako JSON

Enum FileMode

WartośćOpis
FileMode.READOtwórz do odczytu
FileMode.WRITEOtwórz do zapisu (tworzy/nadpisuje)
FileMode.APPENDOtwórz do dopisywania

Metody timerów i CallQueue

Pełna referencja: Rozdział 6.7: Timery i CallQueue

Dostęp

WyrażenieZwracaOpis
GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY)ScriptCallQueueKolejka wywołań rozgrywki
GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM)ScriptCallQueueKolejka wywołań systemowych
GetGame().GetCallQueue(CALL_CATEGORY_GUI)ScriptCallQueueKolejka wywołań GUI
GetGame().GetUpdateQueue(CALL_CATEGORY_GAMEPLAY)ScriptInvokerKolejka aktualizacji per-klatka

ScriptCallQueue

MetodaSygnaturaOpis
CallLatervoid CallLater(func fn, int delay = 0, bool repeat = false, param1..4)Zaplanuj opóźnione/powtarzające wywołanie
Callvoid Call(func fn, param1..4)Wykonaj następną klatkę
CallByNamevoid CallByName(Class obj, string fnName, int delay = 0, bool repeat = false, Param par = null)Wywołaj metodę po nazwie string
Removevoid Remove(func fn)Anuluj zaplanowane wywołanie
RemoveByNamevoid RemoveByName(Class obj, string fnName)Anuluj po nazwie string
GetRemainingTimefloat GetRemainingTime(Class obj, string fnName)Pobierz pozostały czas CallLater

Klasa Timer

MetodaSygnaturaOpis
Timer()void Timer(int category = CALL_CATEGORY_SYSTEM)Konstruktor
Runvoid Run(float duration, Class obj, string fnName, Param params = null, bool loop = false)Uruchom timer
Stopvoid Stop()Zatrzymaj timer
Pausevoid Pause()Wstrzymaj timer
Continuevoid Continue()Wznów timer
IsPausedbool IsPaused()Czy timer wstrzymany?
IsRunningbool IsRunning()Czy timer aktywny?
GetRemainingfloat GetRemaining()Pozostałe sekundy

ScriptInvoker

MetodaSygnaturaOpis
Insertvoid Insert(func fn)Zarejestruj callback
Removevoid Remove(func fn)Wyrejestruj callback
Invokevoid Invoke(params...)Uruchom wszystkie callbacki
Countint Count()Liczba zarejestrowanych callbacków
Clearvoid Clear()Usuń wszystkie callbacki

Metody tworzenia widgetów

Pełna referencja: Rozdział 3.5: Programowe tworzenie

MetodaSygnaturaOpis
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()Pobierz przestrzeń roboczą UI
CreateWidgetsWidget CreateWidgets(string layout, Widget parent = null)Załaduj plik .layout
FindAnyWidgetWidget FindAnyWidget(string name)Znajdź dziecko po nazwie (rekurencyjnie)
Showvoid Show(bool show)Pokaż/ukryj widget
SetTextvoid TextWidget.SetText(string text)Ustaw zawartość tekstową
SetImagevoid ImageWidget.SetImage(int index)Ustaw indeks obrazu
SetColorvoid SetColor(int color)Ustaw kolor widgetu (ARGB)
SetAlphavoid SetAlpha(float alpha)Ustaw przezroczystość 0.0-1.0
SetSizevoid SetSize(float x, float y, bool relative = false)Ustaw rozmiar widgetu
SetPosvoid SetPos(float x, float y, bool relative = false)Ustaw pozycję widgetu
GetScreenSizevoid GetScreenSize(out float x, out float y)Rozdzielczość ekranu
Destroyvoid Widget.Destroy()Usuń i zniszcz widget

Pomocnik kolorów ARGB

FunkcjaSygnaturaOpis
ARGBint ARGB(int a, int r, int g, int b)Utwórz int koloru (0-255 każdy)
ARGBFint ARGBF(float a, float r, float g, float b)Utwórz int koloru (0.0-1.0 każdy)

Metody RPC / sieci

Pełna referencja: Rozdział 6.9: Sieć i RPC

Sprawdzanie środowiska

MetodaSygnaturaOpis
GetGame().IsServer()bool IsServer()True na serwerze / hoście listen-server
GetGame().IsClient()bool IsClient()True na kliencie
GetGame().IsMultiplayer()bool IsMultiplayer()True w multiplayerze
GetGame().IsDedicatedServer()bool IsDedicatedServer()True tylko na serwerze dedykowanym

ScriptRPC

MetodaSygnaturaOpis
ScriptRPC()void ScriptRPC()Konstruktor
Writebool Write(void value)Serializuj wartość (int, float, bool, string, vector, array)
Sendvoid Send(Object target, int rpc_type, bool guaranteed, PlayerIdentity recipient = null)Wyślij RPC
Resetvoid Reset()Wyczyść zapisane dane

Odbieranie (nadpisanie na Object)

MetodaSygnaturaOpis
OnRPCvoid OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)Handler odbierania RPC

ParamsReadContext

MetodaSygnaturaOpis
Readbool Read(out void value)Deserializuj wartość (te same typy co Write)

Starsze RPC (CGame)

MetodaSygnaturaOpis
RPCSingleParamvoid GetGame().RPCSingleParam(Object target, int rpc, Param param, bool guaranteed, PlayerIdentity recipient = null)Wyślij pojedynczy obiekt Param
RPCvoid GetGame().RPC(Object target, int rpc, array<Param> params, bool guaranteed, PlayerIdentity recipient = null)Wyślij wiele Paramów

ScriptInputUserData (weryfikowane wejście)

MetodaSygnaturaOpis
CanStoreInputUserDatabool ScriptInputUserData.CanStoreInputUserData()Sprawdź czy kolejka ma miejsce
Writebool Write(void value)Serializuj wartość
Sendvoid Send()Wyślij do serwera (tylko klient)

Stałe i metody matematyczne

Pełna referencja: Rozdział 1.7: Matematyka i wektory

Stałe

StałaWartośćOpis
Math.PI3.14159...Pi
Math.PI26.28318...2 * Pi
Math.PI_HALF1.57079...Pi / 2
Math.DEG2RAD0.01745...Mnożnik stopni na radiany
Math.RAD2DEG57.2957...Mnożnik radianów na stopnie
int.MAX2147483647Maksymalny int
int.MIN-2147483648Minimalny int
float.MAX3.4028e+38Maksymalny float
float.MIN1.175e-38Minimalny dodatni float

Losowe

MetodaSygnaturaOpis
Math.RandomIntint RandomInt(int min, int max)Losowy int [min, max)
Math.RandomIntInclusiveint RandomIntInclusive(int min, int max)Losowy int [min, max]
Math.RandomFloat01float RandomFloat01()Losowy float [0, 1]
Math.RandomBoolbool RandomBool()Losowy true/false

Zaokrąglanie

MetodaSygnaturaOpis
Math.Roundfloat Round(float f)Zaokrąglij do najbliższego
Math.Floorfloat Floor(float f)Zaokrąglij w dół
Math.Ceilfloat Ceil(float f)Zaokrąglij w górę

Ograniczanie i interpolacja

MetodaSygnaturaOpis
Math.Clampfloat Clamp(float val, float min, float max)Ogranicz do zakresu
Math.Minfloat Min(float a, float b)Minimum z dwóch
Math.Maxfloat Max(float a, float b)Maksimum z dwóch
Math.Lerpfloat Lerp(float a, float b, float t)Interpolacja liniowa
Math.InverseLerpfloat InverseLerp(float a, float b, float val)Odwrotna interpolacja

Wartość bezwzględna i potęga

MetodaSygnaturaOpis
Math.AbsFloatfloat AbsFloat(float f)Wartość bezwzględna (float)
Math.AbsIntint AbsInt(int i)Wartość bezwzględna (int)
Math.Powfloat Pow(float base, float exp)Potęga
Math.Sqrtfloat Sqrt(float f)Pierwiastek kwadratowy
Math.SqrFloatfloat SqrFloat(float f)Kwadrat (f * f)

Trygonometria (radiany)

MetodaSygnaturaOpis
Math.Sinfloat Sin(float rad)Sinus
Math.Cosfloat Cos(float rad)Kosinus
Math.Tanfloat Tan(float rad)Tangens
Math.Asinfloat Asin(float val)Arcus sinus
Math.Acosfloat Acos(float val)Arcus kosinus
Math.Atan2float Atan2(float y, float x)Kąt ze składowych

Płynne tłumienie

MetodaSygnaturaOpis
Math.SmoothCDfloat SmoothCD(float val, float target, inout float velocity, float smoothTime, float maxSpeed, float dt)Płynne tłumienie w kierunku celu (jak SmoothDamp w Unity)
c
// Użycie płynnego tłumienia
// val: aktualna wartość, target: wartość docelowa, velocity: ref prędkość (persystowana między wywołaniami)
// smoothTime: czas wygładzania, maxSpeed: limit prędkości, dt: delta czasu
float m_Velocity = 0;
float result = Math.SmoothCD(current, target, m_Velocity, 0.3, 1000.0, dt);

Kąt

MetodaSygnaturaOpis
Math.NormalizeAnglefloat NormalizeAngle(float deg)Zawiń do 0-360

Metody wektorów

MetodaSygnaturaOpis
vector.Distancefloat Distance(vector a, vector b)Odległość między punktami
vector.DistanceSqfloat DistanceSq(vector a, vector b)Kwadrat odległości (szybszy)
vector.Directionvector Direction(vector from, vector to)Wektor kierunku
vector.Dotfloat Dot(vector a, vector b)Iloczyn skalarny
vector.Lerpvector Lerp(vector a, vector b, float t)Interpolacja pozycji
v.Length()float Length()Długość wektora
v.LengthSq()float LengthSq()Kwadrat długości (szybszy)
v.Normalized()vector Normalized()Wektor jednostkowy
v.VectorToAngles()vector VectorToAngles()Kierunek na odchylenie/pochylenie
v.AnglesToVector()vector AnglesToVector()Odchylenie/pochylenie na kierunek
v.Multiply3vector Multiply3(vector mat[3])Mnożenie macierzowe
v.InvMultiply3vector InvMultiply3(vector mat[3])Odwrotne mnożenie macierzowe
Vector(x, y, z)vector Vector(float x, float y, float z)Utwórz wektor

Funkcje globalne

FunkcjaSygnaturaOpis
GetGame()CGame GetGame()Instancja gry
GetGame().GetPlayer()Man GetPlayer()Lokalny gracz (tylko KLIENT)
GetGame().GetPlayers(out arr)void GetPlayers(out array<Man> arr)Wszyscy gracze (serwer)
GetGame().GetWorld()World GetWorld()Instancja świata
GetGame().GetTickTime()float GetTickTime()Czas serwera (sekundy)
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()Przestrzeń robocza UI
GetGame().SurfaceY(x, z)float SurfaceY(float x, float z)Wysokość terenu na pozycji
GetGame().SurfaceGetType(x, z)string SurfaceGetType(float x, float z)Typ materiału powierzchni
GetGame().GetObjectsAtPosition(pos, radius, objects, proxyCargo)void GetObjectsAtPosition(vector pos, float radius, out array<Object> objects, out array<CargoBase> proxyCargo)Znajdź obiekty w pobliżu pozycji
GetScreenSize(w, h)void GetScreenSize(out int w, out int h)Pobierz rozdzielczość ekranu
GetGame().IsServer()bool IsServer()Sprawdzenie serwera
GetGame().IsClient()bool IsClient()Sprawdzenie klienta
GetGame().IsMultiplayer()bool IsMultiplayer()Sprawdzenie multiplayera
Print(string)void Print(string msg)Zapisz do logu skryptu
ErrorEx(string)void ErrorEx(string msg, ErrorExSeverity sev = ERROR)Zapisz błąd z ważnością
DumpStackString()string DumpStackString()Pobierz stos wywołań jako string
string.Format(fmt, ...)string Format(string fmt, ...)Formatuj string (%1..%9)

Haki misji

Pełna referencja: Rozdział 6.11: Haki misji

Strona serwera (modded MissionServer)

MetodaOpis
override void OnInit()Inicjalizuj managery, rejestruj RPC
override void OnMissionStart()Po załadowaniu wszystkich modów
override void OnUpdate(float timeslice)Per-klatka (użyj akumulatora!)
override void OnMissionFinish()Czyszczenie singletonów, wypisanie z zdarzeń
override void OnEvent(EventType eventTypeId, Param params)Zdarzenia czatu, głosu
override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)Gracz dołączył
override void InvokeOnDisconnect(PlayerBase player)Gracz wyszedł
override void OnClientReadyEvent(int peerId, PlayerIdentity identity)Klient gotowy na dane
override void PlayerRegistered(int peerId)Tożsamość zarejestrowana

Strona klienta (modded MissionGameplay)

MetodaOpis
override void OnInit()Inicjalizuj managery klienta, utwórz HUD
override void OnUpdate(float timeslice)Aktualizacja klienta per-klatka
override void OnMissionFinish()Czyszczenie
override void OnKeyPress(int key)Klawisz naciśnięty
override void OnKeyRelease(int key)Klawisz zwolniony

System akcji

Pełna referencja: Rozdział 6.12: System akcji

Rejestracja akcji na przedmiocie

c
override void SetActions()
{
    super.SetActions();
    AddAction(MyAction);           // Dodaj niestandardową akcję
    RemoveAction(ActionEat);       // Usuń waniliową akcję
}

Kluczowe metody ActionBase

MetodaOpis
override void CreateConditionComponents()Ustaw warunki dystansu CCINone/CCTNone
override bool ActionCondition(...)Niestandardowa logika walidacji
override void OnExecuteServer(ActionData action_data)Wykonanie po stronie serwera
override void OnExecuteClient(ActionData action_data)Efekty po stronie klienta
override string GetText()Wyświetlana nazwa (obsługuje klucze #STR_)

Pełna dokumentacja: Strona główna | Ściągawka | System encji | Pojazdy | Pogoda | Timery | I/O plików | Sieć | Haki misji | System akcji

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