Skip to content

Engine API Quick Reference

Home | Engine API Quick Reference


Indice dei Contenuti


Metodi delle Entita'

Riferimento completo: Capitolo 6.1: Sistema delle Entita'

Posizione e Orientamento (Object)

MetodoFirmaDescrizione
GetPositionvector GetPosition()Posizione nel mondo
SetPositionvoid SetPosition(vector pos)Imposta la posizione nel mondo
GetOrientationvector GetOrientation()Yaw, pitch, roll in gradi
SetOrientationvoid SetOrientation(vector ori)Imposta yaw, pitch, roll
GetDirectionvector GetDirection()Vettore direzione avanti
SetDirectionvoid SetDirection(vector dir)Imposta la direzione avanti
GetScalefloat GetScale()Scala corrente
SetScalevoid SetScale(float scale)Imposta la scala

Trasformazione (IEntity)

MetodoFirmaDescrizione
GetOriginvector GetOrigin()Posizione nel mondo (livello motore)
SetOriginvoid SetOrigin(vector orig)Imposta la posizione nel mondo (livello motore)
GetYawPitchRollvector GetYawPitchRoll()Rotazione come yaw/pitch/roll
GetTransformvoid GetTransform(out vector mat[4])Matrice di trasformazione completa 4x3
SetTransformvoid SetTransform(vector mat[4])Imposta la trasformazione completa
VectorToParentvector VectorToParent(vector vec)Direzione locale verso mondo
CoordToParentvector CoordToParent(vector coord)Punto locale verso mondo
VectorToLocalvector VectorToLocal(vector vec)Direzione mondo verso locale
CoordToLocalvector CoordToLocal(vector coord)Punto mondo verso locale

Gerarchia (IEntity)

MetodoFirmaDescrizione
AddChildvoid AddChild(IEntity child, int pivot, bool posOnly = false)Collega un figlio a un bone
RemoveChildvoid RemoveChild(IEntity child, bool keepTransform = false)Scollega un figlio
GetParentIEntity GetParent()Entita' genitore o null
GetChildrenIEntity GetChildren()Prima entita' figlia
GetSiblingIEntity GetSibling()Prossima entita' sorella

Info di Visualizzazione (Object)

MetodoFirmaDescrizione
GetTypestring GetType()Nome della classe config (es. "AKM")
GetDisplayNamestring GetDisplayName()Nome visualizzato localizzato
IsKindOfbool IsKindOf(string type)Controlla l'ereditarieta' config

Posizioni dei Bone (Object)

MetodoFirmaDescrizione
GetBonePositionLSvector GetBonePositionLS(int pivot)Posizione del bone nello spazio locale
GetBonePositionMSvector GetBonePositionMS(int pivot)Posizione del bone nello spazio modello
GetBonePositionWSvector GetBonePositionWS(int pivot)Posizione del bone nello spazio mondo

Accesso alla Config (Object)

MetodoFirmaDescrizione
ConfigGetBoolbool ConfigGetBool(string entry)Legge un bool dalla config
ConfigGetIntint ConfigGetInt(string entry)Legge un int dalla config
ConfigGetFloatfloat ConfigGetFloat(string entry)Legge un float dalla config
ConfigGetStringstring ConfigGetString(string entry)Legge una stringa dalla config
ConfigGetTextArrayvoid ConfigGetTextArray(string entry, out TStringArray values)Legge un array di stringhe
ConfigIsExistingbool ConfigIsExisting(string entry)Controlla se esiste una voce config

Salute e Danni

Riferimento completo: Capitolo 6.1: Sistema delle Entita'

MetodoFirmaDescrizione
GetHealthfloat GetHealth(string zone, string type)Ottieni il valore di salute
GetMaxHealthfloat GetMaxHealth(string zone, string type)Ottieni la salute massima
SetHealthvoid SetHealth(string zone, string type, float value)Imposta la salute
SetHealthMaxvoid SetHealthMax(string zone, string type)Imposta al massimo
AddHealthvoid AddHealth(string zone, string type, float value)Aggiungi salute
DecreaseHealthvoid DecreaseHealth(string zone, string type, float value, bool auto_delete = false)Riduci la salute
SetAllowDamagevoid SetAllowDamage(bool val)Abilita/disabilita i danni
GetAllowDamagebool GetAllowDamage()Controlla se i danni sono abilitati
IsAlivebool IsAlive()Controlla se vivo (usare su EntityAI)
ProcessDirectDamagevoid ProcessDirectDamage(int dmgType, EntityAI source, string component, string ammoType, vector modelPos, float coef = 1.0, int flags = 0)Applica danno (EntityAI)

Coppie zona/tipo comuni: ("", "Health") globale, ("", "Blood") sangue del giocatore, ("", "Shock") shock del giocatore, ("Engine", "Health") motore del veicolo.


Controllo del Tipo

MetodoClasseDescrizione
IsMan()ObjectE' un giocatore?
IsBuilding()ObjectE' un edificio?
IsTransport()ObjectE' un veicolo?
IsDayZCreature()ObjectE' una creatura (zombie/animale)?
IsKindOf(string)ObjectControllo ereditarieta' config
IsItemBase()EntityAIE' un oggetto dell'inventario?
IsWeapon()EntityAIE' un'arma?
IsMagazine()EntityAIE' un caricatore?
IsClothing()EntityAIE' un indumento?
IsFood()EntityAIE' cibo?
Class.CastTo(out, obj)ClassDowncast sicuro (restituisce bool)
ClassName.Cast(obj)ClassCast inline (restituisce null in caso di fallimento)

Inventario

Riferimento completo: Capitolo 6.1: Sistema delle Entita'

MetodoFirmaDescrizione
GetInventoryGameInventory GetInventory()Ottieni il componente inventario (EntityAI)
CreateInInventoryEntityAI CreateInInventory(string type)Crea un oggetto nel cargo
CreateEntityInCargoEntityAI CreateEntityInCargo(string type)Crea un oggetto nel cargo
CreateAttachmentEntityAI CreateAttachment(string type)Crea un oggetto come accessorio
EnumerateInventoryvoid EnumerateInventory(int traversal, out array<EntityAI> items)Elenca tutti gli oggetti
CountInventoryint CountInventory()Conta gli oggetti
HasEntityInInventorybool HasEntityInInventory(EntityAI item)Controlla la presenza di un oggetto
AttachmentCountint AttachmentCount()Numero di accessori
GetAttachmentFromIndexEntityAI GetAttachmentFromIndex(int idx)Ottieni accessorio per indice
FindAttachmentByNameEntityAI FindAttachmentByName(string slot)Ottieni accessorio per slot

Creazione e Cancellazione di Entita'

Riferimento completo: Capitolo 6.1: Sistema delle Entita'

MetodoFirmaDescrizione
CreateObjectObject GetGame().CreateObject(string type, vector pos, bool local = false, bool ai = false, bool physics = true)Crea un'entita'
CreateObjectExObject GetGame().CreateObjectEx(string type, vector pos, int flags, int rotation = RF_DEFAULT)Crea con flag ECE
ObjectDeletevoid GetGame().ObjectDelete(Object obj)Cancellazione immediata lato server
ObjectDeleteOnClientvoid GetGame().ObjectDeleteOnClient(Object obj)Cancellazione solo lato client
Deletevoid obj.Delete()Cancellazione differita (frame successivo)

Flag ECE Comuni

FlagValoreDescrizione
ECE_NONE0Nessun comportamento speciale
ECE_CREATEPHYSICS1024Crea collisione
ECE_INITAI2048Inizializza l'AI
ECE_EQUIP24576Genera con accessori + cargo
ECE_PLACE_ON_SURFACEcombinatoFisica + percorso + traccia
ECE_LOCAL1073741824Solo client (non replicato)
ECE_NOLIFETIME4194304Non scomparira'
ECE_KEEPHEIGHT524288Mantieni la posizione Y

Metodi del Giocatore

Riferimento completo: Capitolo 6.1: Sistema delle Entita'

MetodoFirmaDescrizione
GetIdentityPlayerIdentity GetIdentity()Oggetto identita' del giocatore
GetIdentity().GetName()string GetName()Nome visualizzato Steam/piattaforma
GetIdentity().GetId()string GetId()ID univoco BI
GetIdentity().GetPlainId()string GetPlainId()ID Steam64
GetIdentity().GetPlayerId()int GetPlayerId()ID giocatore della sessione
GetHumanInventory().GetEntityInHands()EntityAI GetEntityInHands()Oggetto in mano
GetDrivingVehicleEntityAI GetDrivingVehicle()Veicolo guidato
IsAlivebool IsAlive()Controllo se vivo
IsUnconsciousbool IsUnconscious()Controllo se incosciente
IsRestrainedbool IsRestrained()Controllo se ammanettato
IsInVehiclebool IsInVehicle()Controllo se in un veicolo
SpawnEntityOnGroundOnCursorDirEntityAI SpawnEntityOnGroundOnCursorDir(string type, float dist)Genera davanti al giocatore

Metodi dei Veicoli

Riferimento completo: Capitolo 6.2: Sistema dei Veicoli

Equipaggio (Transport)

MetodoFirmaDescrizione
CrewSizeint CrewSize()Numero totale di posti
CrewMemberHuman CrewMember(int idx)Ottieni l'umano al posto
CrewMemberIndexint CrewMemberIndex(Human member)Ottieni il posto dell'umano
CrewGetOutvoid CrewGetOut(int idx)Espelli forzatamente dal posto
CrewDeathvoid CrewDeath(int idx)Uccidi il membro dell'equipaggio

Motore (Car)

MetodoFirmaDescrizione
EngineIsOnbool EngineIsOn()Motore acceso?
EngineStartvoid EngineStart()Avvia il motore
EngineStopvoid EngineStop()Spegni il motore
EngineGetRPMfloat EngineGetRPM()RPM attuali
EngineGetRPMRedlinefloat EngineGetRPMRedline()RPM fuorigiri
GetGearint GetGear()Marcia attuale
GetSpeedometerfloat GetSpeedometer()Velocita' in km/h

Fluidi (Car)

MetodoFirmaDescrizione
GetFluidCapacityfloat GetFluidCapacity(CarFluid fluid)Capacita' massima
GetFluidFractionfloat GetFluidFraction(CarFluid fluid)Livello di riempimento 0.0-1.0
Fillvoid Fill(CarFluid fluid, float amount)Aggiungi fluido
Leakvoid Leak(CarFluid fluid, float amount)Rimuovi fluido
LeakAllvoid LeakAll(CarFluid fluid)Scarica tutto il fluido

Enum CarFluid: FUEL, OIL, BRAKE, COOLANT

Controlli (Car)

MetodoFirmaDescrizione
SetBrakevoid SetBrake(float value, int wheel = -1)0.0-1.0, -1 = tutte
SetHandbrakevoid SetHandbrake(float value)0.0-1.0
SetSteeringvoid SetSteering(float value, bool analog = true)Input dello sterzo
SetThrustvoid SetThrust(float value, int wheel = -1)0.0-1.0 acceleratore

Metodi Meteo

Riferimento completo: Capitolo 6.3: Sistema Meteo

Accesso

MetodoFirmaDescrizione
GetGame().GetWeather()Weather GetWeather()Ottieni il singleton meteo

Fenomeni (Weather)

MetodoFirmaDescrizione
GetOvercastWeatherPhenomenon GetOvercast()Copertura nuvolosa
GetRainWeatherPhenomenon GetRain()Pioggia
GetFogWeatherPhenomenon GetFog()Nebbia
GetSnowfallWeatherPhenomenon GetSnowfall()Neve
GetWindMagnitudeWeatherPhenomenon GetWindMagnitude()Velocita' del vento
GetWindDirectionWeatherPhenomenon GetWindDirection()Direzione del vento
GetWindvector GetWind()Vettore direzione del vento
GetWindSpeedfloat GetWindSpeed()Velocita' del vento m/s
SetStormvoid SetStorm(float density, float threshold, float timeout)Configurazione fulmini

WeatherPhenomenon

MetodoFirmaDescrizione
GetActualfloat GetActual()Valore interpolato attuale
GetForecastfloat GetForecast()Valore obiettivo
GetDurationfloat GetDuration()Durata rimanente (secondi)
Setvoid Set(float forecast, float time = 0, float minDuration = 0)Imposta obiettivo (solo server)
SetLimitsvoid SetLimits(float min, float max)Limiti dell'intervallo di valori
SetTimeLimitsvoid SetTimeLimits(float min, float max)Limiti della velocita' di cambiamento
SetChangeLimitsvoid SetChangeLimits(float min, float max)Limiti della grandezza del cambiamento

Metodi I/O su File

Riferimento completo: Capitolo 6.8: I/O su File e JSON

Prefissi dei Percorsi

PrefissoPosizioneScrivibile
$profile:Directory profilo server/clientSi'
$saves:Directory dei salvataggiSi'
$mission:Cartella della missione correnteTipicamente in lettura
$CurrentDir:Directory di lavoroDipende

Operazioni sui File

MetodoFirmaDescrizione
FileExistbool FileExist(string path)Controlla se il file esiste
MakeDirectorybool MakeDirectory(string path)Crea una directory
OpenFileFileHandle OpenFile(string path, FileMode mode)Apri un file (0 = fallimento)
CloseFilevoid CloseFile(FileHandle fh)Chiudi un file
FPrintvoid FPrint(FileHandle fh, string text)Scrivi testo (senza a capo)
FPrintlnvoid FPrintln(FileHandle fh, string text)Scrivi testo + a capo
FGetsint FGets(FileHandle fh, string line)Leggi una riga
ReadFilestring ReadFile(FileHandle fh)Leggi l'intero file
DeleteFilebool DeleteFile(string path)Cancella un file
CopyFilebool CopyFile(string src, string dst)Copia un file

JSON (JsonFileLoader)

MetodoFirmaDescrizione
JsonLoadFilevoid JsonFileLoader<T>.JsonLoadFile(string path, T obj)Carica JSON in un oggetto (restituisce void)
JsonSaveFilevoid JsonFileLoader<T>.JsonSaveFile(string path, T obj)Salva un oggetto come JSON

Enum FileMode

ValoreDescrizione
FileMode.READApri in lettura
FileMode.WRITEApri in scrittura (crea/sovrascrive)
FileMode.APPENDApri in aggiunta

Metodi Timer e CallQueue

Riferimento completo: Capitolo 6.7: Timer e CallQueue

Accesso

EspressioneRestituisceDescrizione
GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY)ScriptCallQueueCoda di chiamate gameplay
GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM)ScriptCallQueueCoda di chiamate di sistema
GetGame().GetCallQueue(CALL_CATEGORY_GUI)ScriptCallQueueCoda di chiamate GUI
GetGame().GetUpdateQueue(CALL_CATEGORY_GAMEPLAY)ScriptInvokerCoda di aggiornamento per frame

ScriptCallQueue

MetodoFirmaDescrizione
CallLatervoid CallLater(func fn, int delay = 0, bool repeat = false, param1..4)Pianifica una chiamata differita/ripetuta
Callvoid Call(func fn, param1..4)Esegui al frame successivo
CallByNamevoid CallByName(Class obj, string fnName, int delay = 0, bool repeat = false, Param par = null)Chiama un metodo per nome stringa
Removevoid Remove(func fn)Annulla una chiamata pianificata
RemoveByNamevoid RemoveByName(Class obj, string fnName)Annulla per nome stringa
GetRemainingTimefloat GetRemainingTime(Class obj, string fnName)Ottieni il tempo rimanente su CallLater

Classe Timer

MetodoFirmaDescrizione
Timer()void Timer(int category = CALL_CATEGORY_SYSTEM)Costruttore
Runvoid Run(float duration, Class obj, string fnName, Param params = null, bool loop = false)Avvia il timer
Stopvoid Stop()Ferma il timer
Pausevoid Pause()Metti in pausa il timer
Continuevoid Continue()Riprendi il timer
IsPausedbool IsPaused()Timer in pausa?
IsRunningbool IsRunning()Timer attivo?
GetRemainingfloat GetRemaining()Secondi rimanenti

ScriptInvoker

MetodoFirmaDescrizione
Insertvoid Insert(func fn)Registra callback
Removevoid Remove(func fn)Annulla registrazione callback
Invokevoid Invoke(params...)Attiva tutti i callback
Countint Count()Numero di callback registrati
Clearvoid Clear()Rimuovi tutti i callback

Metodi di Creazione Widget

Riferimento completo: Capitolo 3.5: Creazione Programmatica

MetodoFirmaDescrizione
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()Ottieni lo spazio di lavoro UI
CreateWidgetsWidget CreateWidgets(string layout, Widget parent = null)Carica un file .layout
FindAnyWidgetWidget FindAnyWidget(string name)Trova un figlio per nome (ricorsivo)
Showvoid Show(bool show)Mostra/nascondi widget
SetTextvoid TextWidget.SetText(string text)Imposta il contenuto del testo
SetImagevoid ImageWidget.SetImage(int index)Imposta l'indice dell'immagine
SetColorvoid SetColor(int color)Imposta il colore del widget (ARGB)
SetAlphavoid SetAlpha(float alpha)Imposta la trasparenza 0.0-1.0
SetSizevoid SetSize(float x, float y, bool relative = false)Imposta la dimensione del widget
SetPosvoid SetPos(float x, float y, bool relative = false)Imposta la posizione del widget
GetScreenSizevoid GetScreenSize(out float x, out float y)Risoluzione dello schermo
Destroyvoid Widget.Destroy()Rimuovi e distruggi il widget

Helper Colore ARGB

FunzioneFirmaDescrizione
ARGBint ARGB(int a, int r, int g, int b)Crea un intero colore (0-255 ciascuno)
ARGBFint ARGBF(float a, float r, float g, float b)Crea un intero colore (0.0-1.0 ciascuno)

Metodi RPC / Networking

Riferimento completo: Capitolo 6.9: Networking e RPC

Controlli dell'Ambiente

MetodoFirmaDescrizione
GetGame().IsServer()bool IsServer()True sul server / host listen-server
GetGame().IsClient()bool IsClient()True sul client
GetGame().IsMultiplayer()bool IsMultiplayer()True in multiplayer
GetGame().IsDedicatedServer()bool IsDedicatedServer()True solo su server dedicato

ScriptRPC

MetodoFirmaDescrizione
ScriptRPC()void ScriptRPC()Costruttore
Writebool Write(void value)Serializza un valore (int, float, bool, string, vector, array)
Sendvoid Send(Object target, int rpc_type, bool guaranteed, PlayerIdentity recipient = null)Invia RPC
Resetvoid Reset()Cancella i dati scritti

Ricezione (Override su Object)

MetodoFirmaDescrizione
OnRPCvoid OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)Gestore di ricezione RPC

ParamsReadContext

MetodoFirmaDescrizione
Readbool Read(out void value)Deserializza un valore (stessi tipi di Write)

RPC Legacy (CGame)

MetodoFirmaDescrizione
RPCSingleParamvoid GetGame().RPCSingleParam(Object target, int rpc, Param param, bool guaranteed, PlayerIdentity recipient = null)Invia un singolo oggetto Param
RPCvoid GetGame().RPC(Object target, int rpc, array<Param> params, bool guaranteed, PlayerIdentity recipient = null)Invia piu' Param

ScriptInputUserData (Verificato dall'Input)

MetodoFirmaDescrizione
CanStoreInputUserDatabool ScriptInputUserData.CanStoreInputUserData()Controlla se la coda ha spazio
Writebool Write(void value)Serializza un valore
Sendvoid Send()Invia al server (solo client)

Costanti e Metodi Matematici

Riferimento completo: Capitolo 1.7: Matematica e Vettori

Costanti

CostanteValoreDescrizione
Math.PI3.14159...Pi greco
Math.PI26.28318...2 * Pi
Math.PI_HALF1.57079...Pi / 2
Math.DEG2RAD0.01745...Moltiplicatore gradi a radianti
Math.RAD2DEG57.2957...Moltiplicatore radianti a gradi
int.MAX2147483647Intero massimo
int.MIN-2147483648Intero minimo
float.MAX3.4028e+38Float massimo
float.MIN1.175e-38Float positivo minimo

Casualita'

MetodoFirmaDescrizione
Math.RandomIntint RandomInt(int min, int max)Intero casuale [min, max)
Math.RandomIntInclusiveint RandomIntInclusive(int min, int max)Intero casuale [min, max]
Math.RandomFloat01float RandomFloat01()Float casuale [0, 1]
Math.RandomBoolbool RandomBool()True/false casuale

Arrotondamento

MetodoFirmaDescrizione
Math.Roundfloat Round(float f)Arrotonda al piu' vicino
Math.Floorfloat Floor(float f)Arrotonda per difetto
Math.Ceilfloat Ceil(float f)Arrotonda per eccesso

Limitazione e Interpolazione

MetodoFirmaDescrizione
Math.Clampfloat Clamp(float val, float min, float max)Limita all'intervallo
Math.Minfloat Min(float a, float b)Minimo di due
Math.Maxfloat Max(float a, float b)Massimo di due
Math.Lerpfloat Lerp(float a, float b, float t)Interpolazione lineare
Math.InverseLerpfloat InverseLerp(float a, float b, float val)Interpolazione lineare inversa

Valore Assoluto e Potenza

MetodoFirmaDescrizione
Math.AbsFloatfloat AbsFloat(float f)Valore assoluto (float)
Math.AbsIntint AbsInt(int i)Valore assoluto (int)
Math.Powfloat Pow(float base, float exp)Potenza
Math.Sqrtfloat Sqrt(float f)Radice quadrata
Math.SqrFloatfloat SqrFloat(float f)Quadrato (f * f)

Trigonometria (Radianti)

MetodoFirmaDescrizione
Math.Sinfloat Sin(float rad)Seno
Math.Cosfloat Cos(float rad)Coseno
Math.Tanfloat Tan(float rad)Tangente
Math.Asinfloat Asin(float val)Arcoseno
Math.Acosfloat Acos(float val)Arcocoseno
Math.Atan2float Atan2(float y, float x)Angolo dai componenti

Smorzamento Morbido

MetodoFirmaDescrizione
Math.SmoothCDfloat SmoothCD(float val, float target, inout float velocity, float smoothTime, float maxSpeed, float dt)Smorzamento morbido verso il target (come SmoothDamp di Unity)
c
// Utilizzo dello smorzamento morbido
// val: valore corrente, target: valore obiettivo, velocity: velocita' ref (persistita tra le chiamate)
// smoothTime: tempo di smorzamento, maxSpeed: limite velocita', dt: delta time
float m_Velocity = 0;
float result = Math.SmoothCD(current, target, m_Velocity, 0.3, 1000.0, dt);

Angolo

MetodoFirmaDescrizione
Math.NormalizeAnglefloat NormalizeAngle(float deg)Normalizza a 0-360

Metodi Vettoriali

MetodoFirmaDescrizione
vector.Distancefloat Distance(vector a, vector b)Distanza tra punti
vector.DistanceSqfloat DistanceSq(vector a, vector b)Distanza al quadrato (piu' veloce)
vector.Directionvector Direction(vector from, vector to)Vettore direzione
vector.Dotfloat Dot(vector a, vector b)Prodotto scalare
vector.Lerpvector Lerp(vector a, vector b, float t)Interpola posizioni
v.Length()float Length()Magnitudine del vettore
v.LengthSq()float LengthSq()Magnitudine al quadrato (piu' veloce)
v.Normalized()vector Normalized()Vettore unitario
v.VectorToAngles()vector VectorToAngles()Direzione a yaw/pitch
v.AnglesToVector()vector AnglesToVector()Yaw/pitch a direzione
v.Multiply3vector Multiply3(vector mat[3])Moltiplicazione per matrice
v.InvMultiply3vector InvMultiply3(vector mat[3])Moltiplicazione inversa per matrice
Vector(x, y, z)vector Vector(float x, float y, float z)Crea un vettore

Funzioni Globali

FunzioneFirmaDescrizione
GetGame()CGame GetGame()Istanza del gioco
GetGame().GetPlayer()Man GetPlayer()Giocatore locale (solo CLIENT)
GetGame().GetPlayers(out arr)void GetPlayers(out array<Man> arr)Tutti i giocatori (server)
GetGame().GetWorld()World GetWorld()Istanza del mondo
GetGame().GetTickTime()float GetTickTime()Tempo del server (secondi)
GetGame().GetWorkspace()WorkspaceWidget GetWorkspace()Spazio di lavoro UI
GetGame().SurfaceY(x, z)float SurfaceY(float x, float z)Altezza del terreno alla posizione
GetGame().SurfaceGetType(x, z)string SurfaceGetType(float x, float z)Tipo di materiale della superficie
GetGame().GetObjectsAtPosition(pos, radius, objects, proxyCargo)void GetObjectsAtPosition(vector pos, float radius, out array<Object> objects, out array<CargoBase> proxyCargo)Trova oggetti vicino alla posizione
GetScreenSize(w, h)void GetScreenSize(out int w, out int h)Ottieni la risoluzione dello schermo
GetGame().IsServer()bool IsServer()Controllo server
GetGame().IsClient()bool IsClient()Controllo client
GetGame().IsMultiplayer()bool IsMultiplayer()Controllo multiplayer
Print(string)void Print(string msg)Scrivi nel log degli script
ErrorEx(string)void ErrorEx(string msg, ErrorExSeverity sev = ERROR)Registra errore con gravita'
DumpStackString()string DumpStackString()Ottieni lo stack delle chiamate come stringa
string.Format(fmt, ...)string Format(string fmt, ...)Formatta stringa (%1..%9)

Hook della Missione

Riferimento completo: Capitolo 6.11: Hook della Missione

Lato Server (modded MissionServer)

MetodoDescrizione
override void OnInit()Inizializza i manager, registra gli RPC
override void OnMissionStart()Dopo che tutti i mod sono caricati
override void OnUpdate(float timeslice)Per-frame (usa un accumulatore!)
override void OnMissionFinish()Pulisci i singleton, annulla la sottoscrizione agli eventi
override void OnEvent(EventType eventTypeId, Param params)Eventi chat, voce
override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)Giocatore connesso
override void InvokeOnDisconnect(PlayerBase player)Giocatore disconnesso
override void OnClientReadyEvent(int peerId, PlayerIdentity identity)Client pronto per i dati
override void PlayerRegistered(int peerId)Identita' registrata

Lato Client (modded MissionGameplay)

MetodoDescrizione
override void OnInit()Inizializza i manager client, crea l'HUD
override void OnUpdate(float timeslice)Aggiornamento client per-frame
override void OnMissionFinish()Pulizia
override void OnKeyPress(int key)Tasto premuto
override void OnKeyRelease(int key)Tasto rilasciato

Sistema delle Azioni

Riferimento completo: Capitolo 6.12: Sistema delle Azioni

Registrare Azioni su un Oggetto

c
override void SetActions()
{
    super.SetActions();
    AddAction(MyAction);           // Aggiungi azione personalizzata
    RemoveAction(ActionEat);       // Rimuovi azione vanilla
}

Metodi Chiave di ActionBase

MetodoDescrizione
override void CreateConditionComponents()Imposta le condizioni di distanza CCINone/CCTNone
override bool ActionCondition(...)Logica di validazione personalizzata
override void OnExecuteServer(ActionData action_data)Esecuzione lato server
override void OnExecuteClient(ActionData action_data)Effetti lato client
override string GetText()Nome visualizzato (supporta chiavi #STR_)

Documentazione completa: Home | Cheat Sheet | Sistema Entita' | Veicoli | Meteo | Timer | I/O su File | Networking | Hook Missione | Sistema Azioni

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