scripting:tutorials:level3:armies
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| scripting:tutorials:level3:armies [2025/07/11 12:21] – fritz_98 | scripting:tutorials:level3:armies [2025/07/11 14:55] (aktuell) – [Beispiel für komplexe Armeesteuerung] fritz_98 | ||
|---|---|---|---|
| Zeile 87: | Zeile 87: | ||
| ===GetClosestEntity=== | ===GetClosestEntity=== | ||
| - | '' | + | '' |
| ===GetPosition=== | ===GetPosition=== | ||
| Zeile 332: | Zeile 332: | ||
| =====Beispiel für komplexe Armeesteuerung===== | =====Beispiel für komplexe Armeesteuerung===== | ||
| - | Wir wollen die Status-, Steuerungs- und Spawnfunktionen, | + | Wir wollen die Status-, Steuerungs- und Spawnfunktionen, |
| Um die Armeesteuerung zu demonstrieren, | Um die Armeesteuerung zu demonstrieren, | ||
| Zeile 359: | Zeile 359: | ||
| * Zwei Banditentürme mit den Namen ''" | * Zwei Banditentürme mit den Namen ''" | ||
| * Ein '' | * Ein '' | ||
| + | |||
| + | Damit dieser Artikel nicht mit Lua-Code überquillt, | ||
| + | |||
| + | Wichtig sind insbesondere folgende Aspekte: | ||
| + | |||
| + | ===Definition der Zustände=== | ||
| + | Wir nummerieren die Zustände einer Armee durch, sodass sie im Skript besser lesbar sind und beim Programmieren Fehler vermieden werden. Dafür definieren wir ein globales Table, das aussagekräftige Namen verwendet: | ||
| + | <code lua> | ||
| + | ArmyStates = { | ||
| + | Defense = 1, | ||
| + | Offense = 2, | ||
| + | Attack = 3 | ||
| + | } | ||
| + | </ | ||
| + | In der Kontrollfunktion für die Crawford-Armee prüfen wir dann immer zuerst, in welchem Zustand sich die Armee befindet, fragen dann ab, ob ein Zustandsübergang möglich ist und führen anschließend die dem Zustand zugehörige Aktion aus. | ||
| + | |||
| + | ===Zusätzliche Parameter im Army-Table=== | ||
| + | Für beide Armeen brauchen wir zusätzliche Parameter, die über die [[scripting: | ||
| + | <code lua> | ||
| + | spawnDelay = 3, | ||
| + | spawnAmount = 2, | ||
| + | spawnCounter = 0, | ||
| + | spawnCycles = 12, | ||
| + | spawnLifelines = {" | ||
| + | </ | ||
| + | Diese Parameter müssen wir selbst in den jeweiligen eigenen Kontrollfunktionen verwenden - sie haben keinen Einfluss auf die vom Spiel bereitgestellten Funktionen. | ||
| + | |||
| + | ===Nur eingeschränkt zum Copy-Paste geeignet=== | ||
| + | Die Kontrollfunktionen, | ||
| + | |||
| + | ====Beispielmap von Play4Fun==== | ||
| + | |||
| + | Play4Fun hat ebenfalls eine Karte erstellt, die komplexe Armeesteuerung demonstriert. Wenn du dir Armeeverhalten anschauen möchtest, das über den Rahmen dieses Wikis hinaus geht, findest du hier den Downloadlink: | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Im nächsten Kapitel wird beschrieben, | ||
| + | |||
| + | [[ scripting: | ||
| + | [[ scripting: | ||
scripting/tutorials/level3/armies.1752236470.txt.gz · Zuletzt geändert: 2025/07/11 12:21 von fritz_98
