Wählen Sie die richtige Kennung#

Funktion Erstes Argument Ergebnis
GetComponentData(component, ...) Bestehende Komponentengriff in UI Ein Wert pro angeforderten Schlüssel
GetMacroData(macro, ...) string: Name der Makrovorlage Ein Wert pro angeforderten Schlüssel
GetWareData(wareID, ...) string: Warenkennung Ein Wert pro angeforderten Schlüssel

Diese gehören zu X4 UI Lua, nicht Standard Lua oder MD. Ein C-Zeiger, Makroname und Waren-ID sind nicht austauschbar. Akzeptierte Schlüssel hängen von der Funktion und Spielversion ab. Fallwesen: Waren haben groupName, nicht groupname. Quellkarten listen die vollständigen Schlüsselsätze auf.

Rufnummer: GetComponentData, GetMacroData, GetWareData.

Ein Beispiel für die Warenabfrage#

In einem laufenden X4-Addon-Kontext:

LUA
local wareName, volume = GetWareData("energycells", "name", "volume")
if type(wareName) == "string" and type(volume) == "number" then
    DebugError("[WIKI] ware=" .. wareName .. "; volume=" .. tostring(volume))
end

Wirkung: das erste Ergebnis geht in wareName, die zweite in volume. Bei den erwarteten Typen enthält eine Diagnosezeile den lokalisierten Namen und das abgerufene Volumen. Exakte Werte hängen von Spieldaten und Mods ab; es wird kein fester Name oder eine feste Nummer versprochen.

Der allgemeine Vertrag ist any, ... weil der Schlüssel den Typ bestimmt. Diese Abfrage erwartet string und number; andere Schlüssel brauchen nicht diese Typen. Ein unbekannter Schlüssel kann ergeben nil in seiner Position und einer Triebwerksdiagnose.

Mehrere Werte sind keine Tabelle#

Unabhängige einfache Lua Beispiel, ohne das Spiel:

LUA
local function sample()
    return "Demo", nil, 4
end
local title, missing, amount = sample()
local first = sample()

Werte: title == "Demo", missing == nil, amount == 4, first == "Demo". Mehrere Variablen bewahren Positionen. Eine Variable erhält das erste Ergebnis. {...} Liste mit einem Zwischenprodukt nil als dichter Array für ipairs.

Fortsetzung in der Praxis#

Für Komponenten, legen Sie zunächst eine gültige UI Handle Quelle und Lebensdauer. Makros brauchen keine Live-Instanz, sondern benötigen einen gültigen Template-Namen. Überprüfen Sie Schlüssel und Versionen, dann Typen vor der Arithmetik oder Formatierung. Diese Beispiele wurden nicht im Spiel ausgeführt; die Quelle Autoren Forschung wird nicht als unser Test dargestellt.

Unterstützung des Editors: X4-LuaLSAddon. Dies sind Lua Language Server Definitionen, nicht ausführbare Mod-Dateien. Typen, Lua und C-Kennungen und UI/MD.