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.
Name | Typ | Beschreibung |
---|---|---|
_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 |
Name | Typ | Beschreibung |
---|---|---|
_Condition | Boolean | Ausgewerteter Wert der gegebenen Bedingung. Da die Ausführung der Funktion im Falle von false abgebrochen wird, nur im true-Fall verwendbar |
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: