Skip to content

Engine API Quick Reference ​


Inhaltsverzeichnis ​


Entity-Methoden ​

Vollständige Referenz: Kapitel 6.1: Entity-System

Position & Orientierung (Object) ​

MethodeSignaturBeschreibung
GetPositionvector GetPosition()Weltposition
SetPositionvoid SetPosition(vector pos)Weltposition setzen
GetOrientationvector GetOrientation()Gieren, Nicken, Rollen in Grad
SetOrientationvoid SetOrientation(vector ori)Gieren, Nicken, Rollen setzen
GetDirectionvector GetDirection()Vorwärtsrichtungsvektor
SetDirectionvoid SetDirection(vector dir)Vorwärtsrichtung setzen
GetScalefloat GetScale()Aktuelle Skalierung
SetScalevoid SetScale(float scale)Skalierung setzen

Transformation (IEntity) ​

MethodeSignaturBeschreibung
GetOriginvector GetOrigin()Weltposition (Engine-Ebene)
SetOriginvoid SetOrigin(vector orig)Weltposition setzen (Engine-Ebene)
GetYawPitchRollvector GetYawPitchRoll()Rotation als Gieren/Nicken/Rollen
GetTransformvoid GetTransform(out vector mat[4])Vollständige 4x3-Transformationsmatrix
SetTransformvoid SetTransform(vector mat[4])Vollständige Transformation setzen
VectorToParentvector VectorToParent(vector vec)Lokale Richtung zu Welt
CoordToParentvector CoordToParent(vector coord)Lokaler Punkt zu Welt
VectorToLocalvector VectorToLocal(vector vec)Weltrichtung zu lokal
CoordToLocalvector CoordToLocal(vector coord)Weltpunkt zu lokal

Hierarchie (IEntity) ​

MethodeSignaturBeschreibung
AddChildbool AddChild(notnull IEntity child, int pivot, bool positionOnly = false)Kind an Bone anhängen
RemoveChildbool RemoveChild(notnull IEntity child, bool keepTransform = false)Kind lösen
GetParentIEntity GetParent()Eltern-Entity oder null
GetChildrenIEntity GetChildren()Erstes Kind-Entity
GetSiblingIEntity GetSibling()Nächstes Geschwister-Entity

Anzeigeinformationen (Object) ​

MethodeSignaturBeschreibung
GetTypestring GetType()Konfigurations-Klassenname (z.B. "AKM")
GetDisplayNamestring GetDisplayName()Lokalisierter Anzeigename
IsKindOfbool IsKindOf(string type)Konfigurationsvererbung prüfen

Bone-Positionen (Object) ​

MethodeSignaturBeschreibung
GetBonePositionLSvector GetBonePositionLS(int pivot)Bone-Position im lokalen Raum
GetBonePositionMSvector GetBonePositionMS(int pivot)Bone-Position im Modellraum
GetBonePositionWSvector GetBonePositionWS(int pivot)Bone-Position im Weltraum

Konfigurationszugriff (Object) ​

MethodeSignaturBeschreibung
ConfigGetBoolbool ConfigGetBool(string entry)Bool aus Konfiguration lesen
ConfigGetIntint ConfigGetInt(string entry)Int aus Konfiguration lesen
ConfigGetFloatfloat ConfigGetFloat(string entry)Float aus Konfiguration lesen
ConfigGetStringstring ConfigGetString(string entry)String aus Konfiguration lesen
ConfigGetTextArrayvoid ConfigGetTextArray(string entry, out TStringArray values)String-Array lesen
ConfigIsExistingbool ConfigIsExisting(string entry)Prüfen, ob Konfigurationseintrag existiert

Gesundheit & Schaden ​

Vollständige Referenz: Kapitel 6.1: Entity-System

MethodeSignaturBeschreibung
GetHealthfloat GetHealth(string zone, string type)Gesundheitswert abfragen
GetMaxHealthfloat GetMaxHealth(string zone, string type)Maximale Gesundheit abfragen
SetHealthvoid SetHealth(string zone, string type, float value)Gesundheit setzen
SetHealthMaxvoid SetHealthMax(string zone, string type)Auf Maximum setzen
AddHealthvoid AddHealth(string zone, string type, float value)Gesundheit hinzufügen
DecreaseHealthvoid DecreaseHealth(string zone, string type, float value, bool auto_delete = false)Gesundheit verringern
SetAllowDamagevoid SetAllowDamage(bool val)Schaden aktivieren/deaktivieren
GetAllowDamagebool GetAllowDamage()Prüfen, ob Schaden erlaubt ist
IsAlivebool IsAlive()Lebendigkeitspruefung (auf EntityAI verwenden)
ProcessDirectDamagevoid ProcessDirectDamage(int dmgType, EntityAI source, string component, string ammoType, vector modelPos, float coef = 1.0, int flags = 0)Schaden anwenden (EntityAI)

Häufige Zone/Typ-Paare: ("", "Health") global, ("", "Blood") Spielerblut, ("", "Shock") Spielerschock, ("Engine", "Health") Fahrzeugmotor.


Typüberprüfung ​

MethodeKlasseBeschreibung
IsMan()ObjectIst dies ein Spieler?
IsBuilding()ObjectIst dies ein Gebäude?
IsTransport()ObjectIst dies ein Fahrzeug?
IsDayZCreature()ObjectIst dies eine Kreatur (Zombie/Tier)?
IsKindOf(string)ObjectKonfigurationsvererbungspruefung
IsItemBase()ObjectIst dies ein Inventargegenstand?
IsWeapon()ObjectIst dies eine Waffe?
IsMagazine()ObjectIst dies ein Magazin?
IsClothing()ObjectIst dies Kleidung?
IsFood()ObjectIst dies Nahrung?
Class.CastTo(out, obj)ClassSicherer Downcast (gibt bool zurück)
ClassName.Cast(obj)ClassInline-Cast (gibt null bei Fehlschlag zurück)

Inventar ​

Vollständige Referenz: Kapitel 6.1: Entity-System

MethodeSignaturBeschreibung
GetInventoryGameInventory GetInventory()Inventarkomponente abfragen (EntityAI)
CreateInInventoryEntityAI CreateInInventory(string type)Gegenstand im Cargo erstellen
CreateEntityInCargoEntityAI CreateEntityInCargo(string type)Gegenstand im Cargo erstellen
CreateAttachmentEntityAI CreateAttachment(string type)Gegenstand als Attachment erstellen
EnumerateInventorybool EnumerateInventory(InventoryTraversalType tt, out array<EntityAI> items)Alle Gegenstände auflisten
CountInventoryint CountInventory()Gegenstände zählen
HasEntityInInventorybool HasEntityInInventory(EntityAI item)Nach Gegenstand suchen
AttachmentCountint AttachmentCount()Anzahl der Attachments
GetAttachmentFromIndexEntityAI GetAttachmentFromIndex(int idx)Attachment nach Index abfragen
FindAttachmentBySlotNameEntityAI FindAttachmentBySlotName(string slot_name)Attachment nach Slot abfragen

Entity-Erstellung & -Löschung ​

Vollständige Referenz: Kapitel 6.1: Entity-System

MethodeSignaturBeschreibung
CreateObjectObject GetGame().CreateObject(string type, vector pos, bool local = false, bool ai = false, bool physics = true)Entity erstellen
CreateObjectExObject GetGame().CreateObjectEx(string type, vector pos, int flags, int rotation = RF_DEFAULT)Mit ECE-Flags erstellen
ObjectDeletevoid GetGame().ObjectDelete(Object obj)Sofortige Serverlöschung
ObjectDeleteOnClientvoid GetGame().ObjectDeleteOnClient(Object obj)Nur clientseitige Löschung
Deletevoid obj.Delete()Verzögerte Löschung (nächster Frame)

Häufige ECE-Flags ​

FlagWertBeschreibung
ECE_NONE0Kein besonderes Verhalten
ECE_CREATEPHYSICS1024Kollision erstellen
ECE_INITAI2048KI initialisieren
ECE_EQUIP24576Mit Attachments + Cargo spawnen
ECE_PLACE_ON_SURFACEkombiniertPhysik + Pfad + Trace
ECE_LOCAL1073741824Nur Client (nicht repliziert)
ECE_NOLIFETIME4194304Wird nicht despawnen
ECE_KEEPHEIGHT524288Y-Position beibehalten

Spieler-Methoden ​

Vollständige Referenz: Kapitel 6.1: Entity-System

MethodeSignaturBeschreibung
GetIdentityPlayerIdentity GetIdentity()Spieleridentitätsobjekt
GetIdentity().GetName()string GetName()Steam/Plattform-Anzeigename
GetIdentity().GetId()string GetId()BI eindeutige ID
GetIdentity().GetPlainId()string GetPlainId()Steam64 ID
GetIdentity().GetPlayerId()int GetPlayerId()Sitzungs-Spieler-ID
GetHumanInventory().GetEntityInHands()EntityAI GetEntityInHands()Gegenstand in den Händen
GetDrivingVehicleEntityAI GetDrivingVehicle()Gefahrenes Fahrzeug
IsAlivebool IsAlive()Lebendigkeitspruefung
IsUnconsciousbool IsUnconscious()Bewusstlosigkeitsprüfung
IsRestrainedbool IsRestrained()Fesselungspruefung
IsInVehiclebool IsInVehicle()In-Fahrzeug-Pruefung
SpawnEntityOnGroundOnCursorDirEntityAI SpawnEntityOnGroundOnCursorDir(string type, float dist)Vor dem Spieler spawnen

Fahrzeug-Methoden ​

Vollständige Referenz: Kapitel 6.2: Fahrzeugsystem

Besatzung (Transport) ​

MethodeSignaturBeschreibung
CrewSizeint CrewSize()Gesamtanzahl der Sitze
CrewMemberHuman CrewMember(int idx)Mensch auf Sitzplatz abfragen
CrewMemberIndexint CrewMemberIndex(Human member)Sitzplatz des Menschen abfragen
CrewGetOutHuman CrewGetOut(int posIdx)Erzwungener Ausstieg aus Sitz
CrewDeathvoid CrewDeath(int idx)Besatzungsmitglied töten

Motor (Car) ​

MethodeSignaturBeschreibung
EngineIsOnbool EngineIsOn()Motor läuft?
EngineStartvoid EngineStart()Motor starten
EngineStopvoid EngineStop()Motor stoppen
EngineGetRPMfloat EngineGetRPM()Aktuelle Drehzahl
EngineGetRPMRedlinefloat EngineGetRPMRedline()Drehzahl-Obergrenze
GetGearint GetGear()Aktueller Gang
GetSpeedometerfloat GetSpeedometer()Geschwindigkeit in km/h

Flüssigkeiten (Car) ​

MethodeSignaturBeschreibung
GetFluidCapacityfloat GetFluidCapacity(CarFluid fluid)Maximale Kapazität
GetFluidFractionfloat GetFluidFraction(CarFluid fluid)Fuellstand 0.0-1.0
Fillvoid Fill(CarFluid fluid, float amount)Flüssigkeit hinzufügen
Leakvoid Leak(CarFluid fluid, float amount)Flüssigkeit entfernen
LeakAllvoid LeakAll(CarFluid fluid)Alle Flüssigkeit ablassen

CarFluid Enum: FUEL, OIL, BRAKE, COOLANT

Steuerung (Car) ​

MethodeSignaturBeschreibung
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)Lenkungseingabe
SetThrottlevoid SetThrottle(float value)0.0-1.0 Gas (ersetzt das veraltete SetThrust)

Wetter-Methoden ​

Vollständige Referenz: Kapitel 6.3: Wettersystem

Zugriff ​

MethodeSignaturBeschreibung
GetGame().GetWeather()Weather GetWeather()Wetter-Singleton abfragen

Phänomene (Weather) ​

MethodeSignaturBeschreibung
GetOvercastWeatherPhenomenon GetOvercast()Bewölkung
GetRainWeatherPhenomenon GetRain()Regen
GetFogWeatherPhenomenon GetFog()Nebel
GetSnowfallWeatherPhenomenon GetSnowfall()Schnee
GetWindMagnitudeWeatherPhenomenon GetWindMagnitude()Windstärke
GetWindDirectionWeatherPhenomenon GetWindDirection()Windrichtung
GetWindvector GetWind()Windrichtungsvektor
GetWindSpeedfloat GetWindSpeed()Windgeschwindigkeit m/s
SetStormvoid SetStorm(float density, float threshold, float timeout)Blitz-Konfiguration

WeatherPhenomenon ​

MethodeSignaturBeschreibung
GetActualfloat GetActual()Aktueller interpolierter Wert
GetForecastfloat GetForecast()Zielwert
GetNextChangefloat GetNextChange()Zeit bis zur nächsten Änderung (Sekunden)
Setvoid Set(float forecast, float time = 0, float minDuration = 0)Ziel setzen (nur Server)
SetLimitsvoid SetLimits(float min, float max)Wertebereichsgrenzen
SetForecastTimeLimitsvoid SetForecastTimeLimits(float ftMin, float ftMax)Änderungsgeschwindigkeitsgrenzen
SetForecastChangeLimitsvoid SetForecastChangeLimits(float fcMin, float fcMax)Änderungsstärkegrenzen

Datei-I/O-Methoden ​

Vollständige Referenz: Kapitel 6.8: Datei-I/O & JSON

Pfad-Präfixe ​

PräfixSpeicherortBeschreibbar
$profile:Server/Client-ProfilverzeichnisJa
$saves:SpeicherverzeichnisJa
$mission:Aktueller MissionsordnerNormalerweise nur Lesen
$CurrentDir:ArbeitsverzeichnisAbhängig

Dateioperationen ​

MethodeSignaturBeschreibung
FileExistbool FileExist(string path)Prüfen, ob Datei existiert
MakeDirectorybool MakeDirectory(string path)Verzeichnis erstellen
OpenFileFileHandle OpenFile(string path, FileMode mode)Datei öffnen (0 = fehlgeschlagen)
CloseFilevoid CloseFile(FileHandle fh)Datei schliessen
FPrintvoid FPrint(FileHandle fh, string text)Text schreiben (ohne Zeilenumbruch)
FPrintlnvoid FPrintln(FileHandle fh, string text)Text + Zeilenumbruch schreiben
FGetsint FGets(FileHandle fh, string line)Eine Zeile lesen
ReadFileint ReadFile(FileHandle file, void param_array, int length)Bytes in Array lesen (gibt Anzahl zurück)
DeleteFilebool DeleteFile(string path)Datei löschen
CopyFilebool CopyFile(string src, string dst)Datei kopieren

JSON (JsonFileLoader) ​

MethodeSignaturBeschreibung
JsonLoadFilevoid JsonFileLoader<T>.JsonLoadFile(string path, T obj)JSON in Objekt laden (gibt void zurück)
JsonSaveFilevoid JsonFileLoader<T>.JsonSaveFile(string path, T obj)Objekt als JSON speichern

FileMode Enum ​

WertBeschreibung
FileMode.READZum Lesen öffnen
FileMode.WRITEZum Schreiben öffnen (erstellt/überschreibt)
FileMode.APPENDZum Anhängen öffnen

Timer- & CallQueue-Methoden ​

Vollständige Referenz: Kapitel 6.7: Timer & CallQueue

Zugriff ​

AusdruckGibt zurückBeschreibung
GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY)ScriptCallQueueGameplay-Aufrufwarteschlange
GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM)ScriptCallQueueSystem-Aufrufwarteschlange
GetGame().GetCallQueue(CALL_CATEGORY_GUI)ScriptCallQueueGUI-Aufrufwarteschlange
GetGame().GetUpdateQueue(CALL_CATEGORY_GAMEPLAY)ScriptInvokerPro-Frame-Aktualisierungswarteschlange

ScriptCallQueue ​

MethodeSignaturBeschreibung
CallLatervoid CallLater(func fn, int delay = 0, bool repeat = false, param1..4)Verzögerten/wiederholenden Aufruf planen
Callvoid Call(func fn, param1..4)Nächsten Frame ausführen
CallByNamevoid CallByName(Class obj, string fnName, Param params = NULL)Methode per String-Name aufrufen
CallLaterByNamevoid CallLaterByName(Class obj, string fnName, int delay = 0, bool repeat = false, Param params = NULL)Verzögerter/wiederholender Aufruf per String-Name
Removevoid Remove(func fn)Geplanten Aufruf abbrechen
RemoveByNamevoid RemoveByName(Class obj, string fnName)Per String-Name abbrechen
GetRemainingTimeint GetRemainingTime(func fn)Verbleibende Zeit von CallLater abfragen (ms)
GetRemainingTimeByNameint GetRemainingTimeByName(Class obj, string fnName)Verbleibende Zeit per String-Name (ms)

Timer-Klasse ​

MethodeSignaturBeschreibung
Timer()void Timer(int category = CALL_CATEGORY_SYSTEM)Konstruktor
Runvoid Run(float duration, Class obj, string fnName, Param params = null, bool loop = false)Timer starten
Stopvoid Stop()Timer stoppen
Pausevoid Pause()Timer pausieren
Continuevoid Continue()Timer fortsetzen
IsRunningbool IsRunning()Timer aktiv? (false während pausiert)
GetRemainingfloat GetRemaining()Verbleibende Sekunden

ScriptInvoker ​

MethodeSignaturBeschreibung
Insertbool Insert(func fn, int flags = EScriptInvokerInsertFlags.IMMEDIATE)Callback registrieren
Removebool Remove(func fn, int flags = EScriptInvokerRemoveFlags.ALL)Callback deregistrieren
Invokevoid Invoke(params...)Alle Callbacks auslösen
Countint Count(func fn)Wie oft diese fn registriert ist
Clearvoid Clear()Alle Callbacks entfernen

Widget-Erstellungsmethoden ​

Vollständige Referenz: Kapitel 3.5: Programmatische Erstellung

MethodeSignaturBeschreibung
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()UI-Workspace abfragen
CreateWidgetsWidget CreateWidgets(string layout, Widget parent = null).layout-Datei laden
FindAnyWidgetWidget FindAnyWidget(string name)Kind per Name finden (rekursiv)
Showvoid Show(bool show)Widget ein-/ausblenden
SetTextvoid TextWidget.SetText(string text)Textinhalt setzen
SetImagebool ImageWidget.SetImage(int num)Bildindex setzen
SetColorvoid SetColor(int color)Widget-Farbe setzen (ARGB)
SetAlphavoid SetAlpha(float alpha)Transparenz setzen 0.0-1.0
SetSizevoid SetSize(float w, float h, bool immedUpdate = true)Widget-Größe setzen
SetPosvoid SetPos(float x, float y, bool immedUpdate = true)Widget-Position setzen
GetScreenSizevoid GetScreenSize(out float x, out float y)Bildschirmauflösung
Unlinkvoid Widget.Unlink()Widget entfernen und zerstören (samt Kindern)

ARGB-Farbhilfe ​

FunktionSignaturBeschreibung
ARGBint ARGB(int a, int r, int g, int b)Farbwert erstellen (0-255 je)
ARGBFint ARGBF(float a, float r, float g, float b)Farbwert erstellen (0.0-1.0 je)

RPC / Netzwerk-Methoden ​

Vollständige Referenz: Kapitel 6.9: Netzwerk & RPC

Umgebungspruefungen ​

MethodeSignaturBeschreibung
GetGame().IsServer()bool IsServer()Wahr auf Server / Listen-Server-Host
GetGame().IsClient()bool IsClient()Wahr auf Client
GetGame().IsMultiplayer()bool IsMultiplayer()Wahr im Mehrspieler
GetGame().IsDedicatedServer()bool IsDedicatedServer()Wahr nur auf dediziertem Server

ScriptRPC ​

MethodeSignaturBeschreibung
ScriptRPC()void ScriptRPC()Konstruktor
Writebool Write(void value)Einen Wert serialisieren (int, float, bool, string, vector, array)
Sendvoid Send(Object target, int rpc_type, bool guaranteed, PlayerIdentity recipient = null)RPC senden
Resetvoid Reset()Geschriebene Daten löschen

Empfang (Override auf Object) ​

MethodeSignaturBeschreibung
OnRPCvoid OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)RPC-Empfangshandler

ParamsReadContext ​

MethodeSignaturBeschreibung
Readbool Read(out void value)Einen Wert deserialisieren (gleiche Typen wie Write)

Legacy-RPC (CGame) ​

MethodeSignaturBeschreibung
RPCSingleParamvoid GetGame().RPCSingleParam(Object target, int rpc, Param param, bool guaranteed, PlayerIdentity recipient = null)Einzelnes Param-Objekt senden
RPCvoid GetGame().RPC(Object target, int rpc, array<Param> params, bool guaranteed, PlayerIdentity recipient = null)Mehrere Params senden

ScriptInputUserData (Eingabeverifiziert) ​

MethodeSignaturBeschreibung
CanStoreInputUserDatabool ScriptInputUserData.CanStoreInputUserData()Prüfen, ob Warteschlange Platz hat
Writebool Write(void value)Wert serialisieren
Sendvoid Send()An Server senden (nur Client)

Mathematische Konstanten & Methoden ​

Vollständige Referenz: Kapitel 1.7: Mathematik & Vektoren

Konstanten ​

KonstanteWertBeschreibung
Math.PI3.14159...Pi
Math.PI26.28318...2 * Pi
Math.PI_HALF1.57079...Pi / 2
Math.DEG2RAD0.01745...Multiplikator Grad zu Radiant
Math.RAD2DEG57.2957...Multiplikator Radiant zu Grad
int.MAX2147483647Maximaler int-Wert
int.MIN-2147483648Minimaler int-Wert
float.MAX3.4028e+38Maximaler float-Wert
float.MIN1.175e-38Minimaler positiver float-Wert

Zufall ​

MethodeSignaturBeschreibung
Math.RandomIntint RandomInt(int min, int max)Zufälliger int [min, max)
Math.RandomIntInclusiveint RandomIntInclusive(int min, int max)Zufälliger int [min, max]
Math.RandomFloat01float RandomFloat01()Zufälliger float [0, 1]
Math.RandomBoolbool RandomBool()Zufälliges true/false

Rundung ​

MethodeSignaturBeschreibung
Math.Roundfloat Round(float f)Auf nächsten Wert runden
Math.Floorfloat Floor(float f)Abrunden
Math.Ceilfloat Ceil(float f)Aufrunden

Begrenzung & Interpolation ​

MethodeSignaturBeschreibung
Math.Clampfloat Clamp(float val, float min, float max)Auf Bereich begrenzen
Math.Minfloat Min(float a, float b)Minimum von zweien
Math.Maxfloat Max(float a, float b)Maximum von zweien
Math.Lerpfloat Lerp(float a, float b, float t)Lineare Interpolation
Math.InverseLerpfloat InverseLerp(float a, float b, float val)Inverse Interpolation

Absolutwert & Potenz ​

MethodeSignaturBeschreibung
Math.AbsFloatfloat AbsFloat(float f)Absolutwert (float)
Math.AbsIntint AbsInt(int i)Absolutwert (int)
Math.Powfloat Pow(float base, float exp)Potenz
Math.Sqrtfloat Sqrt(float f)Quadratwurzel
Math.SqrFloatfloat SqrFloat(float f)Quadrat (f * f)

Trigonometrie (Radiant) ​

MethodeSignaturBeschreibung
Math.Sinfloat Sin(float rad)Sinus
Math.Cosfloat Cos(float rad)Kosinus
Math.Tanfloat Tan(float rad)Tangens
Math.Asinfloat Asin(float val)Arkussinus
Math.Acosfloat Acos(float val)Arkuskosinus
Math.Atan2float Atan2(float y, float x)Winkel aus Komponenten

Smooth Damping ​

MethodeSignaturBeschreibung
Math.SmoothCDfloat SmoothCD(float val, float target, inout float velocity, float smoothTime, float maxSpeed, float dt)Sanft zum Ziel dämpfen (wie Unitys SmoothDamp)
c
// Smooth-Damping-Verwendung
// val: aktueller Wert, target: Zielwert, velocity: Ref-Geschwindigkeit (zwischen Aufrufen beibehalten)
// smoothTime: Glättungszeit, maxSpeed: Geschwindigkeitslimit, dt: Delta-Zeit
float m_Velocity = 0;
float result = Math.SmoothCD(current, target, m_Velocity, 0.3, 1000.0, dt);

Winkel ​

MethodeSignaturBeschreibung
Math.NormalizeAnglefloat NormalizeAngle(float deg)Auf 0-360 normalisieren

Vektor-Methoden ​

MethodeSignaturBeschreibung
vector.Distancefloat Distance(vector a, vector b)Abstand zwischen Punkten
vector.DistanceSqfloat DistanceSq(vector a, vector b)Quadrierter Abstand (schneller)
vector.Directionvector Direction(vector from, vector to)Richtungsvektor
vector.Dotfloat Dot(vector a, vector b)Skalarprodukt
vector.Lerpvector Lerp(vector a, vector b, float t)Positionen interpolieren
v.Length()float Length()Vektorlänge
v.LengthSq()float LengthSq()Quadrierte Länge (schneller)
v.Normalized()vector Normalized()Einheitsvektor
v.VectorToAngles()vector VectorToAngles()Richtung zu Gieren/Nicken
v.AnglesToVector()vector AnglesToVector()Gieren/Nicken zu Richtung
v.Multiply3vector Multiply3(vector mat[3])Matrixmultiplikation
v.InvMultiply3vector InvMultiply3(vector mat[3])Inverse Matrixmultiplikation
Vector(x, y, z)vector Vector(float x, float y, float z)Vektor erstellen

Globale Funktionen ​

FunktionSignaturBeschreibung
GetGame()CGame GetGame()Spielinstanz
GetGame().GetPlayer()Man GetPlayer()Lokaler Spieler (nur CLIENT)
GetGame().GetPlayers(out arr)void GetPlayers(out array<Man> arr)Alle Spieler (Server)
GetGame().GetWorld()World GetWorld()Weltinstanz
GetGame().GetTickTime()float GetTickTime()Serverzeit (Sekunden)
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()UI-Workspace
GetGame().SurfaceY(x, z)float SurfaceY(float x, float z)Geländehöhe an Position
GetGame().SurfaceGetType(x, z, type)float SurfaceGetType(float x, float z, out string type)Oberflächenmaterialtyp (im out-Parameter)
GetGame().GetObjectsAtPosition(pos, radius, objects, proxyCargo)void GetObjectsAtPosition(vector pos, float radius, out array<Object> objects, out array<CargoBase> proxyCargo)Objekte in der Nähe finden
GetScreenSize(w, h)void GetScreenSize(out int w, out int h)Bildschirmauflösung abfragen
GetGame().IsServer()bool IsServer()Serverpruefung
GetGame().IsClient()bool IsClient()Clientpruefung
GetGame().IsMultiplayer()bool IsMultiplayer()Mehrspielerpruefung
Print(string)void Print(string msg)In Skriptlog schreiben
ErrorEx(string)void ErrorEx(string msg, ErrorExSeverity sev = ERROR)Fehler mit Schweregrad protokollieren
DumpStackString()string DumpStackString()Aufrufstapel als String abfragen
string.Format(fmt, ...)string Format(string fmt, ...)String formatieren (%1..%9)

Mission Hooks ​

Vollständige Referenz: Kapitel 6.11: Mission Hooks

Serverseitig (modded MissionServer) ​

MethodeBeschreibung
override void OnInit()Manager initialisieren, RPCs registrieren
override void OnMissionStart()Nachdem alle Mods geladen sind
override void OnUpdate(float timeslice)Pro Frame (Akkumulator verwenden!)
override void OnMissionFinish()Singletons aufräumen, Events abmelden
override void OnEvent(EventType eventTypeId, Param params)Chat-, Sprach-Events
override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)Spieler beigetreten
override void InvokeOnDisconnect(PlayerBase player)Spieler verlassen
override void OnClientReadyEvent(PlayerIdentity identity, PlayerBase player)Client bereit für Daten
override void PlayerRegistered(int peerId)Identität registriert

Clientseitig (modded MissionGameplay) ​

MethodeBeschreibung
override void OnInit()Client-Manager initialisieren, HUD erstellen
override void OnUpdate(float timeslice)Pro-Frame-Client-Aktualisierung
override void OnMissionFinish()Aufräumen
override void OnKeyPress(int key)Taste gedrückt
override void OnKeyRelease(int key)Taste losgelassen

Action-System ​

Vollständige Referenz: Kapitel 6.12: Action-System

Actions auf einem Item registrieren ​

c
override void SetActions()
{
    super.SetActions();
    AddAction(MyAction);           // Benutzerdefinierte Action hinzufügen
    RemoveAction(ActionEat);       // Vanilla-Action entfernen
}

ActionBase Schlüssel-Methoden ​

MethodeBeschreibung
override void CreateConditionComponents()CCINone/CCTNone Distanzbedingungen setzen
override bool ActionCondition(...)Benutzerdefinierte Validierungslogik
override void OnExecuteServer(ActionData action_data)Serverseitige Ausführung
override void OnExecuteClient(ActionData action_data)Clientseitige Effekte
override string GetText()Anzeigename (unterstützt #STR_-Schlüssel)

Vollständige Dokumentation: Startseite | Spickzettel | Entity-System | Fahrzeuge | Wetter | Timer | Datei-I/O | Netzwerk | Mission Hooks | Action-System

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