Skip to content

Engine API Quick Reference

Home | Engine API Quick Reference


Obsah


Metody entit

Plná reference: Kapitola 6.1: Entity systém

Pozice a orientace (Object)

MetodaSignaturaPopis
GetPositionvector GetPosition()Pozice ve světě
SetPositionvoid SetPosition(vector pos)Nastavit pozici ve světě
GetOrientationvector GetOrientation()Natočení (yaw, pitch, roll) ve stupních
SetOrientationvoid SetOrientation(vector ori)Nastavit natočení (yaw, pitch, roll)
GetDirectionvector GetDirection()Vektor směru vpřed
SetDirectionvoid SetDirection(vector dir)Nastavit směr vpřed
GetScalefloat GetScale()Aktuální měřítko
SetScalevoid SetScale(float scale)Nastavit měřítko

Transformace (IEntity)

MetodaSignaturaPopis
GetOriginvector GetOrigin()Pozice ve světě (úroveň enginu)
SetOriginvoid SetOrigin(vector orig)Nastavit pozici ve světě (úroveň enginu)
GetYawPitchRollvector GetYawPitchRoll()Rotace jako yaw/pitch/roll
GetTransformvoid GetTransform(out vector mat[4])Plná transformační matice 4x3
SetTransformvoid SetTransform(vector mat[4])Nastavit plnou transformaci
VectorToParentvector VectorToParent(vector vec)Lokální směr do světových souřadnic
CoordToParentvector CoordToParent(vector coord)Lokální bod do světových souřadnic
VectorToLocalvector VectorToLocal(vector vec)Světový směr do lokálních souřadnic
CoordToLocalvector CoordToLocal(vector coord)Světový bod do lokálních souřadnic

Hierarchie (IEntity)

MetodaSignaturaPopis
AddChildvoid AddChild(IEntity child, int pivot, bool posOnly = false)Připojit potomka ke kosti
RemoveChildvoid RemoveChild(IEntity child, bool keepTransform = false)Odpojit potomka
GetParentIEntity GetParent()Rodičovská entita nebo null
GetChildrenIEntity GetChildren()První potomek
GetSiblingIEntity GetSibling()Další sourozenec

Zobrazovací informace (Object)

MetodaSignaturaPopis
GetTypestring GetType()Název konfigurační třídy (např. "AKM")
GetDisplayNamestring GetDisplayName()Lokalizovaný zobrazovaný název
IsKindOfbool IsKindOf(string type)Kontrola dědičnosti v konfiguraci

Pozice kostí (Object)

MetodaSignaturaPopis
GetBonePositionLSvector GetBonePositionLS(int pivot)Pozice kosti v lokálním prostoru
GetBonePositionMSvector GetBonePositionMS(int pivot)Pozice kosti v prostoru modelu
GetBonePositionWSvector GetBonePositionWS(int pivot)Pozice kosti ve světovém prostoru

Přístup ke konfiguraci (Object)

MetodaSignaturaPopis
ConfigGetBoolbool ConfigGetBool(string entry)Načíst bool z konfigurace
ConfigGetIntint ConfigGetInt(string entry)Načíst int z konfigurace
ConfigGetFloatfloat ConfigGetFloat(string entry)Načíst float z konfigurace
ConfigGetStringstring ConfigGetString(string entry)Načíst string z konfigurace
ConfigGetTextArrayvoid ConfigGetTextArray(string entry, out TStringArray values)Načíst pole řetězců
ConfigIsExistingbool ConfigIsExisting(string entry)Zkontrolovat existenci položky konfigurace

Zdraví a poškození

Plná reference: Kapitola 6.1: Entity systém

MetodaSignaturaPopis
GetHealthfloat GetHealth(string zone, string type)Získat hodnotu zdraví
GetMaxHealthfloat GetMaxHealth(string zone, string type)Získat maximální zdraví
SetHealthvoid SetHealth(string zone, string type, float value)Nastavit zdraví
SetHealthMaxvoid SetHealthMax(string zone, string type)Nastavit na maximum
AddHealthvoid AddHealth(string zone, string type, float value)Přidat zdraví
DecreaseHealthvoid DecreaseHealth(string zone, string type, float value, bool auto_delete = false)Snížit zdraví
SetAllowDamagevoid SetAllowDamage(bool val)Povolit/zakázat poškození
GetAllowDamagebool GetAllowDamage()Zjistit, zda je povoleno poškození
IsAlivebool IsAlive()Kontrola, zda je naživu (použít na EntityAI)
ProcessDirectDamagevoid ProcessDirectDamage(int dmgType, EntityAI source, string component, string ammoType, vector modelPos, float coef = 1.0, int flags = 0)Aplikovat poškození (EntityAI)

Běžné páry zóna/typ: ("", "Health") globální, ("", "Blood") krev hráče, ("", "Shock") šok hráče, ("Engine", "Health") motor vozidla.


Kontrola typů

MetodaTřídaPopis
IsMan()ObjectJe to hráč?
IsBuilding()ObjectJe to budova?
IsTransport()ObjectJe to vozidlo?
IsDayZCreature()ObjectJe to stvoření (zombie/zvíře)?
IsKindOf(string)ObjectKontrola dědičnosti v konfiguraci
IsItemBase()EntityAIJe to inventářový předmět?
IsWeapon()EntityAIJe to zbraň?
IsMagazine()EntityAIJe to zásobník?
IsClothing()EntityAIJe to oblečení?
IsFood()EntityAIJe to jídlo?
Class.CastTo(out, obj)ClassBezpečné přetypování dolů (vrací bool)
ClassName.Cast(obj)ClassInline přetypování (vrací null při neúspěchu)

Inventář

Plná reference: Kapitola 6.1: Entity systém

MetodaSignaturaPopis
GetInventoryGameInventory GetInventory()Získat komponentu inventáře (EntityAI)
CreateInInventoryEntityAI CreateInInventory(string type)Vytvořit předmět v cargo
CreateEntityInCargoEntityAI CreateEntityInCargo(string type)Vytvořit předmět v cargo
CreateAttachmentEntityAI CreateAttachment(string type)Vytvořit předmět jako příslušenství
EnumerateInventoryvoid EnumerateInventory(int traversal, out array<EntityAI> items)Vypsat všechny předměty
CountInventoryint CountInventory()Počet předmětů
HasEntityInInventorybool HasEntityInInventory(EntityAI item)Zkontrolovat předmět
AttachmentCountint AttachmentCount()Počet příslušenství
GetAttachmentFromIndexEntityAI GetAttachmentFromIndex(int idx)Získat příslušenství podle indexu
FindAttachmentByNameEntityAI FindAttachmentByName(string slot)Získat příslušenství podle slotu

Vytváření a mazání entit

Plná reference: Kapitola 6.1: Entity systém

MetodaSignaturaPopis
CreateObjectObject GetGame().CreateObject(string type, vector pos, bool local = false, bool ai = false, bool physics = true)Vytvořit entitu
CreateObjectExObject GetGame().CreateObjectEx(string type, vector pos, int flags, int rotation = RF_DEFAULT)Vytvořit s ECE příznaky
ObjectDeletevoid GetGame().ObjectDelete(Object obj)Okamžité smazání na serveru
ObjectDeleteOnClientvoid GetGame().ObjectDeleteOnClient(Object obj)Smazání pouze na klientu
Deletevoid obj.Delete()Odložené smazání (další snímek)

Běžné ECE příznaky

PříznakHodnotaPopis
ECE_NONE0Žádné speciální chování
ECE_CREATEPHYSICS1024Vytvořit kolizi
ECE_INITAI2048Inicializovat AI
ECE_EQUIP24576Vytvořit s příslušenstvím + cargo
ECE_PLACE_ON_SURFACEkombinovanýFyzika + cesta + trasování
ECE_LOCAL1073741824Pouze klient (nereplikováno)
ECE_NOLIFETIME4194304Nezmizí
ECE_KEEPHEIGHT524288Zachovat pozici Y

Metody hráče

Plná reference: Kapitola 6.1: Entity systém

MetodaSignaturaPopis
GetIdentityPlayerIdentity GetIdentity()Objekt identity hráče
GetIdentity().GetName()string GetName()Zobrazované jméno Steam/platformy
GetIdentity().GetId()string GetId()Unikátní BI ID
GetIdentity().GetPlainId()string GetPlainId()Steam64 ID
GetIdentity().GetPlayerId()int GetPlayerId()ID hráče v relaci
GetHumanInventory().GetEntityInHands()EntityAI GetEntityInHands()Předmět v rukou
GetDrivingVehicleEntityAI GetDrivingVehicle()Řízené vozidlo
IsAlivebool IsAlive()Kontrola, zda je naživu
IsUnconsciousbool IsUnconscious()Kontrola bezvědomí
IsRestrainedbool IsRestrained()Kontrola spoutání
IsInVehiclebool IsInVehicle()Kontrola, zda je ve vozidle
SpawnEntityOnGroundOnCursorDirEntityAI SpawnEntityOnGroundOnCursorDir(string type, float dist)Vytvořit před hráčem

Metody vozidel

Plná reference: Kapitola 6.2: Systém vozidel

Posádka (Transport)

MetodaSignaturaPopis
CrewSizeint CrewSize()Celkový počet sedadel
CrewMemberHuman CrewMember(int idx)Získat člověka na sedadle
CrewMemberIndexint CrewMemberIndex(Human member)Získat sedadlo člověka
CrewGetOutvoid CrewGetOut(int idx)Vyhodit ze sedadla
CrewDeathvoid CrewDeath(int idx)Zabít člena posádky

Motor (Car)

MetodaSignaturaPopis
EngineIsOnbool EngineIsOn()Běží motor?
EngineStartvoid EngineStart()Nastartovat motor
EngineStopvoid EngineStop()Zastavit motor
EngineGetRPMfloat EngineGetRPM()Aktuální otáčky
EngineGetRPMRedlinefloat EngineGetRPMRedline()Otáčky červené zóny
GetGearint GetGear()Aktuální rychlostní stupeň
GetSpeedometerfloat GetSpeedometer()Rychlost v km/h

Kapaliny (Car)

MetodaSignaturaPopis
GetFluidCapacityfloat GetFluidCapacity(CarFluid fluid)Maximální kapacita
GetFluidFractionfloat GetFluidFraction(CarFluid fluid)Úroveň naplnění 0.0-1.0
Fillvoid Fill(CarFluid fluid, float amount)Přidat kapalinu
Leakvoid Leak(CarFluid fluid, float amount)Ubrat kapalinu
LeakAllvoid LeakAll(CarFluid fluid)Vypustit veškerou kapalinu

Výčet CarFluid: FUEL, OIL, BRAKE, COOLANT

Ovládání (Car)

MetodaSignaturaPopis
SetBrakevoid SetBrake(float value, int wheel = -1)0.0-1.0, -1 = všechna kola
SetHandbrakevoid SetHandbrake(float value)0.0-1.0
SetSteeringvoid SetSteering(float value, bool analog = true)Vstup řízení
SetThrustvoid SetThrust(float value, int wheel = -1)0.0-1.0 plyn

Metody počasí

Plná reference: Kapitola 6.3: Systém počasí

Přístup

MetodaSignaturaPopis
GetGame().GetWeather()Weather GetWeather()Získat singleton počasí

Jevy (Weather)

MetodaSignaturaPopis
GetOvercastWeatherPhenomenon GetOvercast()Oblačnost
GetRainWeatherPhenomenon GetRain()Déšť
GetFogWeatherPhenomenon GetFog()Mlha
GetSnowfallWeatherPhenomenon GetSnowfall()Sněžení
GetWindMagnitudeWeatherPhenomenon GetWindMagnitude()Rychlost větru
GetWindDirectionWeatherPhenomenon GetWindDirection()Směr větru
GetWindvector GetWind()Vektor směru větru
GetWindSpeedfloat GetWindSpeed()Rychlost větru m/s
SetStormvoid SetStorm(float density, float threshold, float timeout)Konfigurace blesků

WeatherPhenomenon

MetodaSignaturaPopis
GetActualfloat GetActual()Aktuální interpolovaná hodnota
GetForecastfloat GetForecast()Cílová hodnota
GetDurationfloat GetDuration()Zbývající doba (sekundy)
Setvoid Set(float forecast, float time = 0, float minDuration = 0)Nastavit cíl (pouze server)
SetLimitsvoid SetLimits(float min, float max)Limity rozsahu hodnot
SetTimeLimitsvoid SetTimeLimits(float min, float max)Limity rychlosti změny
SetChangeLimitsvoid SetChangeLimits(float min, float max)Limity velikosti změny

Metody souborového I/O

Plná reference: Kapitola 6.8: Souborové I/O a JSON

Prefixy cest

PrefixUmístěníZapisovatelný
$profile:Adresář profilu serveru/klientaAno
$saves:Adresář uložených pozicAno
$mission:Složka aktuální miseObvykle čtení
$CurrentDir:Pracovní adresářZáleží

Operace se soubory

MetodaSignaturaPopis
FileExistbool FileExist(string path)Zkontrolovat existenci souboru
MakeDirectorybool MakeDirectory(string path)Vytvořit adresář
OpenFileFileHandle OpenFile(string path, FileMode mode)Otevřít soubor (0 = neúspěch)
CloseFilevoid CloseFile(FileHandle fh)Zavřít soubor
FPrintvoid FPrint(FileHandle fh, string text)Zapsat text (bez nového řádku)
FPrintlnvoid FPrintln(FileHandle fh, string text)Zapsat text + nový řádek
FGetsint FGets(FileHandle fh, string line)Přečíst jeden řádek
ReadFilestring ReadFile(FileHandle fh)Přečíst celý soubor
DeleteFilebool DeleteFile(string path)Smazat soubor
CopyFilebool CopyFile(string src, string dst)Kopírovat soubor

JSON (JsonFileLoader)

MetodaSignaturaPopis
JsonLoadFilevoid JsonFileLoader<T>.JsonLoadFile(string path, T obj)Načíst JSON do objektu (vrací void)
JsonSaveFilevoid JsonFileLoader<T>.JsonSaveFile(string path, T obj)Uložit objekt jako JSON

Výčet FileMode

HodnotaPopis
FileMode.READOtevřít pro čtení
FileMode.WRITEOtevřít pro zápis (vytvoří/přepíše)
FileMode.APPENDOtevřít pro připojení

Metody Timer a CallQueue

Plná reference: Kapitola 6.7: Časovače a CallQueue

Přístup

VýrazVracíPopis
GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY)ScriptCallQueueHerní fronta volání
GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM)ScriptCallQueueSystémová fronta volání
GetGame().GetCallQueue(CALL_CATEGORY_GUI)ScriptCallQueueGUI fronta volání
GetGame().GetUpdateQueue(CALL_CATEGORY_GAMEPLAY)ScriptInvokerFronta aktualizací každý snímek

ScriptCallQueue

MetodaSignaturaPopis
CallLatervoid CallLater(func fn, int delay = 0, bool repeat = false, param1..4)Naplánovat zpožděné/opakující se volání
Callvoid Call(func fn, param1..4)Spustit příští snímek
CallByNamevoid CallByName(Class obj, string fnName, int delay = 0, bool repeat = false, Param par = null)Zavolat metodu podle názvu řetězce
Removevoid Remove(func fn)Zrušit naplánované volání
RemoveByNamevoid RemoveByName(Class obj, string fnName)Zrušit podle názvu řetězce
GetRemainingTimefloat GetRemainingTime(Class obj, string fnName)Získat zbývající čas CallLater

Třída Timer

MetodaSignaturaPopis
Timer()void Timer(int category = CALL_CATEGORY_SYSTEM)Konstruktor
Runvoid Run(float duration, Class obj, string fnName, Param params = null, bool loop = false)Spustit časovač
Stopvoid Stop()Zastavit časovač
Pausevoid Pause()Pozastavit časovač
Continuevoid Continue()Pokračovat v časovači
IsPausedbool IsPaused()Je časovač pozastaven?
IsRunningbool IsRunning()Je časovač aktivní?
GetRemainingfloat GetRemaining()Zbývající sekundy

ScriptInvoker

MetodaSignaturaPopis
Insertvoid Insert(func fn)Zaregistrovat callback
Removevoid Remove(func fn)Odregistrovat callback
Invokevoid Invoke(params...)Spustit všechny callbacky
Countint Count()Počet zaregistrovaných callbacků
Clearvoid Clear()Odebrat všechny callbacky

Metody vytváření widgetů

Plná reference: Kapitola 3.5: Programové vytváření

MetodaSignaturaPopis
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()Získat pracovní prostor UI
CreateWidgetsWidget CreateWidgets(string layout, Widget parent = null)Načíst soubor .layout
FindAnyWidgetWidget FindAnyWidget(string name)Najít potomka podle názvu (rekurzivně)
Showvoid Show(bool show)Zobrazit/skrýt widget
SetTextvoid TextWidget.SetText(string text)Nastavit textový obsah
SetImagevoid ImageWidget.SetImage(int index)Nastavit index obrázku
SetColorvoid SetColor(int color)Nastavit barvu widgetu (ARGB)
SetAlphavoid SetAlpha(float alpha)Nastavit průhlednost 0.0-1.0
SetSizevoid SetSize(float x, float y, bool relative = false)Nastavit velikost widgetu
SetPosvoid SetPos(float x, float y, bool relative = false)Nastavit pozici widgetu
GetScreenSizevoid GetScreenSize(out float x, out float y)Rozlišení obrazovky
Destroyvoid Widget.Destroy()Odstranit a zničit widget

Pomocník ARGB barev

FunkceSignaturaPopis
ARGBint ARGB(int a, int r, int g, int b)Vytvořit barvu (0-255 každá)
ARGBFint ARGBF(float a, float r, float g, float b)Vytvořit barvu (0.0-1.0 každá)

Metody RPC / síťování

Plná reference: Kapitola 6.9: Síťování a RPC

Kontroly prostředí

MetodaSignaturaPopis
GetGame().IsServer()bool IsServer()True na serveru / hostiteli listen-serveru
GetGame().IsClient()bool IsClient()True na klientu
GetGame().IsMultiplayer()bool IsMultiplayer()True v multiplayeru
GetGame().IsDedicatedServer()bool IsDedicatedServer()True pouze na dedikovaném serveru

ScriptRPC

MetodaSignaturaPopis
ScriptRPC()void ScriptRPC()Konstruktor
Writebool Write(void value)Serializovat hodnotu (int, float, bool, string, vector, array)
Sendvoid Send(Object target, int rpc_type, bool guaranteed, PlayerIdentity recipient = null)Odeslat RPC
Resetvoid Reset()Vymazat zapsaná data

Příjem (Override na Object)

MetodaSignaturaPopis
OnRPCvoid OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)Handler přijetí RPC

ParamsReadContext

MetodaSignaturaPopis
Readbool Read(out void value)Deserializovat hodnotu (stejné typy jako Write)

Starší RPC (CGame)

MetodaSignaturaPopis
RPCSingleParamvoid GetGame().RPCSingleParam(Object target, int rpc, Param param, bool guaranteed, PlayerIdentity recipient = null)Odeslat jeden objekt Param
RPCvoid GetGame().RPC(Object target, int rpc, array<Param> params, bool guaranteed, PlayerIdentity recipient = null)Odeslat více objektů Param

ScriptInputUserData (ověřený vstup)

MetodaSignaturaPopis
CanStoreInputUserDatabool ScriptInputUserData.CanStoreInputUserData()Zkontrolovat, zda má fronta místo
Writebool Write(void value)Serializovat hodnotu
Sendvoid Send()Odeslat na server (pouze klient)

Matematické konstanty a metody

Plná reference: Kapitola 1.7: Matematika a vektory

Konstanty

KonstantaHodnotaPopis
Math.PI3.14159...Pi
Math.PI26.28318...2 * Pi
Math.PI_HALF1.57079...Pi / 2
Math.DEG2RAD0.01745...Násobitel stupňů na radiány
Math.RAD2DEG57.2957...Násobitel radiánů na stupně
int.MAX2147483647Maximální int
int.MIN-2147483648Minimální int
float.MAX3.4028e+38Maximální float
float.MIN1.175e-38Minimální kladný float

Náhodné hodnoty

MetodaSignaturaPopis
Math.RandomIntint RandomInt(int min, int max)Náhodný int [min, max)
Math.RandomIntInclusiveint RandomIntInclusive(int min, int max)Náhodný int [min, max]
Math.RandomFloat01float RandomFloat01()Náhodný float [0, 1]
Math.RandomBoolbool RandomBool()Náhodné true/false

Zaokrouhlování

MetodaSignaturaPopis
Math.Roundfloat Round(float f)Zaokrouhlit na nejbližší
Math.Floorfloat Floor(float f)Zaokrouhlit dolů
Math.Ceilfloat Ceil(float f)Zaokrouhlit nahoru

Omezení a interpolace

MetodaSignaturaPopis
Math.Clampfloat Clamp(float val, float min, float max)Omezit na rozsah
Math.Minfloat Min(float a, float b)Minimum ze dvou
Math.Maxfloat Max(float a, float b)Maximum ze dvou
Math.Lerpfloat Lerp(float a, float b, float t)Lineární interpolace
Math.InverseLerpfloat InverseLerp(float a, float b, float val)Inverzní lerp

Absolutní hodnota a mocniny

MetodaSignaturaPopis
Math.AbsFloatfloat AbsFloat(float f)Absolutní hodnota (float)
Math.AbsIntint AbsInt(int i)Absolutní hodnota (int)
Math.Powfloat Pow(float base, float exp)Mocnina
Math.Sqrtfloat Sqrt(float f)Odmocnina
Math.SqrFloatfloat SqrFloat(float f)Druhá mocnina (f * f)

Trigonometrie (radiány)

MetodaSignaturaPopis
Math.Sinfloat Sin(float rad)Sinus
Math.Cosfloat Cos(float rad)Kosinus
Math.Tanfloat Tan(float rad)Tangens
Math.Asinfloat Asin(float val)Arkus sinus
Math.Acosfloat Acos(float val)Arkus kosinus
Math.Atan2float Atan2(float y, float x)Úhel ze složek

Plynulé tlumení

MetodaSignaturaPopis
Math.SmoothCDfloat SmoothCD(float val, float target, inout float velocity, float smoothTime, float maxSpeed, float dt)Plynule tlumit k cíli (jako Unity SmoothDamp)
c
// Použití plynulého tlumení
// val: aktuální hodnota, target: cílová hodnota, velocity: ref rychlost (uchovávaná mezi voláními)
// smoothTime: čas vyhlazení, maxSpeed: omezení rychlosti, dt: delta čas
float m_Velocity = 0;
float result = Math.SmoothCD(current, target, m_Velocity, 0.3, 1000.0, dt);

Úhel

MetodaSignaturaPopis
Math.NormalizeAnglefloat NormalizeAngle(float deg)Normalizovat na 0-360

Metody vektorů

MetodaSignaturaPopis
vector.Distancefloat Distance(vector a, vector b)Vzdálenost mezi body
vector.DistanceSqfloat DistanceSq(vector a, vector b)Kvadrát vzdálenosti (rychlejší)
vector.Directionvector Direction(vector from, vector to)Vektor směru
vector.Dotfloat Dot(vector a, vector b)Skalární součin
vector.Lerpvector Lerp(vector a, vector b, float t)Interpolace pozic
v.Length()float Length()Velikost vektoru
v.LengthSq()float LengthSq()Kvadrát velikosti (rychlejší)
v.Normalized()vector Normalized()Jednotkový vektor
v.VectorToAngles()vector VectorToAngles()Směr na yaw/pitch
v.AnglesToVector()vector AnglesToVector()Yaw/pitch na směr
v.Multiply3vector Multiply3(vector mat[3])Násobení maticí
v.InvMultiply3vector InvMultiply3(vector mat[3])Inverzní násobení maticí
Vector(x, y, z)vector Vector(float x, float y, float z)Vytvořit vektor

Globální funkce

FunkceSignaturaPopis
GetGame()CGame GetGame()Instance hry
GetGame().GetPlayer()Man GetPlayer()Lokální hráč (pouze KLIENT)
GetGame().GetPlayers(out arr)void GetPlayers(out array<Man> arr)Všichni hráči (server)
GetGame().GetWorld()World GetWorld()Instance světa
GetGame().GetTickTime()float GetTickTime()Čas serveru (sekundy)
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()Pracovní prostor UI
GetGame().SurfaceY(x, z)float SurfaceY(float x, float z)Výška terénu na pozici
GetGame().SurfaceGetType(x, z)string SurfaceGetType(float x, float z)Typ povrchového materiálu
GetGame().GetObjectsAtPosition(pos, radius, objects, proxyCargo)void GetObjectsAtPosition(vector pos, float radius, out array<Object> objects, out array<CargoBase> proxyCargo)Najít objekty v okolí pozice
GetScreenSize(w, h)void GetScreenSize(out int w, out int h)Získat rozlišení obrazovky
GetGame().IsServer()bool IsServer()Kontrola serveru
GetGame().IsClient()bool IsClient()Kontrola klienta
GetGame().IsMultiplayer()bool IsMultiplayer()Kontrola multiplayeru
Print(string)void Print(string msg)Zapsat do script logu
ErrorEx(string)void ErrorEx(string msg, ErrorExSeverity sev = ERROR)Zalogovat chybu se závažností
DumpStackString()string DumpStackString()Získat zásobník volání jako řetězec
string.Format(fmt, ...)string Format(string fmt, ...)Formátovat řetězec (%1..%9)

Háčky misí

Plná reference: Kapitola 6.11: Háčky misí

Serverová strana (modded MissionServer)

MetodaPopis
override void OnInit()Inicializace manažerů, registrace RPC
override void OnMissionStart()Po načtení všech modů
override void OnUpdate(float timeslice)Každý snímek (použijte akumulátor!)
override void OnMissionFinish()Úklid singletonů, odhlášení událostí
override void OnEvent(EventType eventTypeId, Param params)Události chatu, hlasu
override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)Hráč se připojil
override void InvokeOnDisconnect(PlayerBase player)Hráč se odpojil
override void OnClientReadyEvent(int peerId, PlayerIdentity identity)Klient připraven na data
override void PlayerRegistered(int peerId)Identita zaregistrována

Klientská strana (modded MissionGameplay)

MetodaPopis
override void OnInit()Inicializace klientských manažerů, vytvoření HUD
override void OnUpdate(float timeslice)Aktualizace klienta každý snímek
override void OnMissionFinish()Úklid
override void OnKeyPress(int key)Klávesa stisknuta
override void OnKeyRelease(int key)Klávesa uvolněna

Systém akcí

Plná reference: Kapitola 6.12: Systém akcí

Registrace akcí na předmětu

c
override void SetActions()
{
    super.SetActions();
    AddAction(MyAction);           // Přidat vlastní akci
    RemoveAction(ActionEat);       // Odebrat vanilla akci
}

Klíčové metody ActionBase

MetodaPopis
override void CreateConditionComponents()Nastavit podmínky vzdálenosti CCINone/CCTNone
override bool ActionCondition(...)Vlastní validační logika
override void OnExecuteServer(ActionData action_data)Spuštění na serveru
override void OnExecuteClient(ActionData action_data)Efekty na klientu
override string GetText()Zobrazovaný název (podporuje klíče #STR_)

Plná dokumentace: Domů | Tahák | Entity systém | Vozidla | Počasí | Časovače | Souborové I/O | Síťování | Háčky misí | Systém akcí

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