Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:tutorials:level2:functions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
scripting:tutorials:level2:functions [2023/09/09 17:30] – [Beliebig viele Parameter] fritz_98scripting:tutorials:level2:functions [2024/05/17 10:02] (aktuell) fritz_98
Zeile 162: Zeile 162:
 ====Beispiele im Siedler-Skripting==== ====Beispiele im Siedler-Skripting====
  
-Eine Funktion, die beim Siedler-Skripten häufig verwendet wird, ermittelt die Gebäude oder Einheiten eines bestimmten Typs des Spielers. ''Logic.GetPlayerEntities(_PlayerId, _EntityType, _Amount)'' gibt höchstens ''_Amount'' EntityIds (FIXME link) von Spieler ''_PlayerId'' vom Typ ''_EntityType'' zurück. Wenn der Spieler weniger als ''_Amount'' Entities des gesuchten Typs besitzt, werden entsprechend weniger EnitityIds zurückgegeben. Wir haben hier also genau den Fall, dass eine Funktion viele Rückgabewerte hat, deren Anzahl aber nicht immer gleich ist.+Eine Funktion, die beim Siedler-Skripten häufig verwendet wird, ermittelt die Gebäude oder Einheiten eines bestimmten Typs des Spielers. ''Logic.GetPlayerEntities(_PlayerId, _EntityType, _Amount)'' gibt höchstens ''_Amount'' [[ scripting:tutorials:level1:place_entities#exkursentity-id_vs_skriptname |Entity-Ids]] von Spieler ''_PlayerId'' vom Typ ''_EntityType'' zurück. Wenn der Spieler weniger als ''_Amount'' Entities des gesuchten Typs besitzt, werden entsprechend weniger EnitityIds zurückgegeben. Wir haben hier also genau den Fall, dass eine Funktion viele Rückgabewerte hat, deren Anzahl aber nicht immer gleich ist.
  
 Darüber hinaus ist der erste Rückgabewert keine EntityId, sondern die Anzahl der gefundenen Ids! Darüber hinaus ist der erste Rückgabewert keine EntityId, sondern die Anzahl der gefundenen Ids!
Zeile 317: Zeile 317:
 <code lua> <code lua>
 function Sum(...) function Sum(...)
 +    local Result = 0
     for _, Number in ipairs(arg) do     for _, Number in ipairs(arg) do
         Result = Result + Number         Result = Result + Number
scripting/tutorials/level2/functions.txt · Zuletzt geändert: 2024/05/17 10:02 von fritz_98