Skip to content

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
AddChildbool AddChild(notnull IEntity child, int pivot, bool positionOnly = false)Dołącz dziecko do kości
RemoveChildbool RemoveChild(notnull 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()ObjectCzy to przedmiot ekwipunku?
IsWeapon()ObjectCzy to broń?
IsMagazine()ObjectCzy to magazynek?
IsClothing()ObjectCzy to ubranie?
IsFood()ObjectCzy 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
EnumerateInventorybool EnumerateInventory(InventoryTraversalType tt, 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
FindAttachmentBySlotNameEntityAI FindAttachmentBySlotName(string slot_name)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
CrewGetOutHuman CrewGetOut(int posIdx)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, float unused0 = 0, bool unused1 = false)0.0-1.0
SetHandbrakevoid SetHandbrake(float value)0.0-1.0
SetSteeringvoid SetSteering(float value, bool unused0 = false)Wejście kierownicy
SetThrottlevoid SetThrottle(float value)0.0-1.0 przepustnica (zastępuje przestarzałe SetThrust)

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
GetNextChangefloat GetNextChange()Czas do następnej zmiany (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
SetForecastTimeLimitsvoid SetForecastTimeLimits(float ftMin, float ftMax)Limity prędkości zmian
SetForecastChangeLimitsvoid SetForecastChangeLimits(float fcMin, float fcMax)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ę
ReadFileint ReadFile(FileHandle file, void param_array, int length)Odczytaj bajty do tablicy (zwraca liczbę)
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, Param params = NULL)Wywołaj metodę po nazwie string
CallLaterByNamevoid CallLaterByName(Class obj, string fnName, int delay = 0, bool repeat = false, Param params = NULL)Opóźnione/powtarzające wywołanie po nazwie string
Removevoid Remove(func fn)Anuluj zaplanowane wywołanie
RemoveByNamevoid RemoveByName(Class obj, string fnName)Anuluj po nazwie string
GetRemainingTimeint GetRemainingTime(func fn)Pobierz pozostały czas CallLater (ms)
GetRemainingTimeByNameint GetRemainingTimeByName(Class obj, string fnName)Pozostały czas po nazwie string (ms)

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
IsRunningbool IsRunning()Czy timer aktywny? (false gdy wstrzymany)
GetRemainingfloat GetRemaining()Pozostałe sekundy

ScriptInvoker ​

MetodaSygnaturaOpis
Insertbool Insert(func fn, int flags = EScriptInvokerInsertFlags.IMMEDIATE)Zarejestruj callback
Removebool Remove(func fn, int flags = EScriptInvokerRemoveFlags.ALL)Wyrejestruj callback
Invokevoid Invoke(params...)Uruchom wszystkie callbacki
Countint Count(func fn)Ile razy ta fn jest zarejestrowana
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ą
SetImagebool ImageWidget.SetImage(int num)Ustaw indeks obrazu
SetColorvoid SetColor(int color)Ustaw kolor widgetu (ARGB)
SetAlphavoid SetAlpha(float alpha)Ustaw przezroczystość 0.0-1.0
SetSizevoid SetSize(float w, float h, bool immedUpdate = true)Ustaw rozmiar widgetu
SetPosvoid SetPos(float x, float y, bool immedUpdate = true)Ustaw pozycję widgetu
GetScreenSizevoid GetScreenSize(out float x, out float y)Rozdzielczość ekranu
Unlinkvoid Widget.Unlink()Usuń i zniszcz widget (oraz dzieci)

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, type)float SurfaceGetType(float x, float z, out string type)Typ materiału powierzchni (w parametrze out)
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(PlayerIdentity identity, PlayerBase player)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