Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:reference:standard_library:base:assert

assert

assert (_Condition [, _Message ])
Prüft die Bedingung _Condition und zeigt eine Fehlermeldung an, falls sie nicht zutrifft. Außerdem wird die Ausführung der Funktion an der Stelle, an der _Condition nicht zutrifft, abgebrochen. In der Fehlermeldung wird der optionale Parameter _Message angezeigt. Diese Funktion wird in der Regel dafür benutzt, um angegebene Parameter auf Gültigkeit zu prüfen.

Parameter

NameTypBeschreibung
_Condition Boolean Bedingung; Wenn false, wird eine Fehlermeldung ausgelöst
_Message String Optionaler Parameter; Wenn angegeben und _Condition false ist, wird _Message in der Fehlermeldung angezeigt

Rückgabewerte

NameTypBeschreibung
_Condition Boolean Ausgewerteter Wert der gegebenen Bedingung. Da die Ausführung der Funktion im Falle von false abgebrochen wird, nur im true-Fall verwendbar

Beispiel

Prüfe in der Funktion ForbidTechnology, ob eine gültige Player-Id und Technologie angegeben wurde:

function ForbidTechnology (_Technology, _PlayerId)
    -- Spieler-Ids müssen 3 Bedingungen erfüllen:
    -- 1. Eine Zahl sein
    assert(type(_PlayerId) == "number", "PlayerId must be a number, got "..type(_PlayerId))
    -- 2. Eine ganze Zahl sein
    assert(math.floor(_PlayerId) == _PlayerId, "PlayerId must be an integer, got ".._PlayerId)
    -- 3. Eine ganze Zahl zwischen 1 und 8 sein
    assert((_PlayerId >= 1) and (_PlayerId <= 8), "PlayerId must be an integer between 1 and 8, got ".._PlayerId)
 
    -- Wenn alle diese Bedingungen zutreffen, kann die Technologie verboten werden
    Logic.SetTechnologyState(_PlayerId, _Technology, 0)
end

Hinweis: Dieses Beispiel dient nur zur Anschauung. Tatsächlich ist sie in Siedler (etwas anders implementiert) bereits vorhanden.

Verwendete Funktionen:

scripting/reference/standard_library/base/assert.txt · Zuletzt geändert: 2023/11/24 12:05 von fritz_98