Skip to content

Engine API Quick Reference

Home | 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
AddChildvoid AddChild(IEntity child, int pivot, bool posOnly = false)Kind an Bone anhängen
RemoveChildvoid RemoveChild(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()EntityAIIst dies ein Inventargegenstand?
IsWeapon()EntityAIIst dies eine Waffe?
IsMagazine()EntityAIIst dies ein Magazin?
IsClothing()EntityAIIst dies Kleidung?
IsFood()EntityAIIst 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
EnumerateInventoryvoid EnumerateInventory(int traversal, 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
FindAttachmentByNameEntityAI FindAttachmentByName(string slot)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
CrewGetOutvoid CrewGetOut(int idx)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, int wheel = -1)0.0-1.0, -1 = alle
SetHandbrakevoid SetHandbrake(float value)0.0-1.0
SetSteeringvoid SetSteering(float value, bool analog = true)Lenkungseingabe
SetThrustvoid SetThrust(float value, int wheel = -1)0.0-1.0 Gas

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
GetDurationfloat GetDuration()Verbleibende Dauer (Sekunden)
Setvoid Set(float forecast, float time = 0, float minDuration = 0)Ziel setzen (nur Server)
SetLimitsvoid SetLimits(float min, float max)Wertebereichsgrenzen
SetTimeLimitsvoid SetTimeLimits(float min, float max)Änderungsgeschwindigkeitsgrenzen
SetChangeLimitsvoid SetChangeLimits(float min, float max)Ä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
ReadFilestring ReadFile(FileHandle fh)Gesamte Datei lesen
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, int delay = 0, bool repeat = false, Param par = null)Methode per String-Name aufrufen
Removevoid Remove(func fn)Geplanten Aufruf abbrechen
RemoveByNamevoid RemoveByName(Class obj, string fnName)Per String-Name abbrechen
GetRemainingTimefloat GetRemainingTime(Class obj, string fnName)Verbleibende Zeit von CallLater abfragen

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
IsPausedbool IsPaused()Timer pausiert?
IsRunningbool IsRunning()Timer aktiv?
GetRemainingfloat GetRemaining()Verbleibende Sekunden

ScriptInvoker

MethodeSignaturBeschreibung
Insertvoid Insert(func fn)Callback registrieren
Removevoid Remove(func fn)Callback deregistrieren
Invokevoid Invoke(params...)Alle Callbacks auslösen
Countint Count()Anzahl registrierter Callbacks
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
SetImagevoid ImageWidget.SetImage(int index)Bildindex setzen
SetColorvoid SetColor(int color)Widget-Farbe setzen (ARGB)
SetAlphavoid SetAlpha(float alpha)Transparenz setzen 0.0-1.0
SetSizevoid SetSize(float x, float y, bool relative = false)Widget-Größe setzen
SetPosvoid SetPos(float x, float y, bool relative = false)Widget-Position setzen
GetScreenSizevoid GetScreenSize(out float x, out float y)Bildschirmauflösung
Destroyvoid Widget.Destroy()Widget entfernen und zerstören

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)string SurfaceGetType(float x, float z)Oberflächenmaterialtyp
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(int peerId, PlayerIdentity identity)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