scripting:tutorials:level2:rewards
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| scripting:tutorials:level2:rewards [2023/11/08 15:31] – fritz_98 | scripting:tutorials:level2:rewards [2023/11/11 12:02] (aktuell) – fritz_98 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | TODO: | + | =====Belohnungen===== |
| - | CreateEntity (zum Beispiel Kunschi oder Dieb) | + | FIXME dieser Artikel gehört zwischen SetupQuest und GetEntities |
| - | ChangePlayer (zum Beispiel | + | In vorigen Kapiteln wurde vorgestellt, |
| - | ReplaceEntity (zum Beispiel Toröffnung (Stein UND Holz) oder Zugbrücke) | + | Natürlich eignen sich die Funktionen, die [[ scripting: |
| - | CreateMilitaryGroup | + | ---- |
| - | Technologien und Ressourcen sind ja bekannt | + | ====CreateEntity==== |
| - | SetHealth | + | Mit '' |
| + | |||
| + | - **_PlayerId** - Die Spieler-Id der Entity, also eine ganze Zahl zwischen 0 und 8. Für Doodads, also Bäume, Steine, etc. sollte immer 0 verwendet werden, sonst eine Spieler-Id zwischen 1 und 8 | ||
| + | - **_EntityType** - Der Entity-Typ der Entity, also ein Eintrag im '' | ||
| + | - **_Position** - Die Position, an der das Entity erstellt werden soll, als Table im Format '' | ||
| + | - **_Name** - Der Skriptname der zu erstellenden Entity als String. Dieser Parameter ist optional | ||
| + | |||
| + | Die Funktion gibt die Entity-Id der erstellten Entity zurück. Der Rotationswinkel der erstellten Entity ist zufällig. | ||
| + | |||
| + | **Hinweis**: | ||
| + | |||
| + | **Hinweis**: | ||
| + | |||
| + | ===Beispiel=== | ||
| + | |||
| + | Wenn der Spieler nach einer erfüllten Quest einen neuen Kundschafter erhalten soll, kann das so aussehen: | ||
| + | |||
| + | <code lua> | ||
| + | CreateEntity(1, | ||
| + | </ | ||
| + | |||
| + | Damit das funktioniert, | ||
| + | |||
| + | **Achtung**: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====CreateMilitaryGroup==== | ||
| + | |||
| + | Mit '' | ||
| + | |||
| + | - **_PlayerId** - Die Spieler-Id der Truppe, also eine ganze Zahl zwischen 1 und 8 | ||
| + | - **_LeaderType** - Der Entity-Typ des Hauptmanns, also ein Eintrag im '' | ||
| + | - **_Soldiers** - Die Anzahl der Soldaten, die die Truppe erhalten soll (durch den Leader-Typ nach oben begrenzt) | ||
| + | - **_Position** - Die Position, an der die Truppe erstellt werden soll, als Table im Format '' | ||
| + | - **_Name** - Der Skriptname des zu erstellenden Hauptmanns als String. Dieser Parameter ist optional | ||
| + | - **_LookAt** - Skriptname der Entity, auf die die neu erstellte Truppe ausgerichtet sein soll. Dieser Parameter ist optional | ||
| + | |||
| + | Die Funktion gibt **nicht** die Entity-Id des erstellten Hauptmanns zurück. Wenn du der Truppe also beispielsweise einen Laufbefehl (Move bzw. AttackMove FIXME link einfügen) geben willst, musst du einen Skriptnamen angeben. | ||
| + | |||
| + | ===Beispiel=== | ||
| + | |||
| + | Eine Arena hat zwei Spawnpunkte ''" | ||
| + | |||
| + | <code lua> | ||
| + | CreateMilitaryGroup(1, | ||
| + | CreateMilitaryGroup(2, | ||
| + | </ | ||
| + | |||
| + | **Achtung**: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====ChangePlayer==== | ||
| + | |||
| + | Mit '' | ||
| + | |||
| + | - **_Entity** - Skriptname oder Entity-Id der Entity, deren Spieler geändert werden soll | ||
| + | - **_PlayerId** - Neue Spieler-Id der Entity, also eine ganze Zahl zwischen 1 und 8 | ||
| + | |||
| + | **Wichtig**: | ||
| + | |||
| + | ===Beispiel=== | ||
| + | |||
| + | Nach Erfüllung einer Quest oder Bezahlung eines Tributs soll der Spieler ein bereits bestehendes Dorfzentrum eines anderen Spielers erhalten. Das Dorfzentrum hat den Skriptnamen ''" | ||
| + | |||
| + | <code lua> | ||
| + | ChangePlayer(" | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====DestroyEntity==== | ||
| + | |||
| + | Mit '' | ||
| + | |||
| + | - **_Entity** - Skriptname oder Entity-Id der Entity, die zerstört werden soll | ||
| + | |||
| + | ===Beispiel=== | ||
| + | |||
| + | Nach der Erfüllung einer Quest räumt ein Arbeiter für den Spieler den Weg frei, der von einigen Steinen blockiert wird. Sind auf der Karte vier Steine mit durchnummerierten Skriptnamen ''" | ||
| + | |||
| + | <code lua> | ||
| + | for i = 1, 4 do | ||
| + | -- da die Steine alle nach dem gleichen Schema benannt sind, können wir eine Schleife zu | ||
| + | -- deren Zerstörung benutzen | ||
| + | DestroyEntity(" | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====ReplaceEntity==== | ||
| + | |||
| + | Mit '' | ||
| + | |||
| + | - **_Entity** - Skriptname oder Entity-Id der Entity, deren Spieler geändert werden soll | ||
| + | - **_EntityType** - Der neue Entity-Typ der Entity, also ein Eintrag im '' | ||
| + | |||
| + | **Wichtig**: | ||
| + | |||
| + | ===Beispiel=== | ||
| + | |||
| + | Die wohl häufigste Anwendung findet diese Funktion beim Öffnen und Schließen von Toren. Auch das Heben und Senken von Zugbrücken lässt sich damit realisieren. | ||
| + | |||
| + | Wir gehen in den folgenden Beispielen davon aus, dass auf der Karte ein '' | ||
| + | |||
| + | Die Kommentare im Codebeispiel beschreiben, | ||
| + | |||
| + | <code lua> | ||
| + | -- Schließe das Steintor | ||
| + | ReplaceEntity(" | ||
| + | |||
| + | -- Öffne das Steintor | ||
| + | ReplaceEntity(" | ||
| + | |||
| + | -- Öffne das Palisadentor | ||
| + | ReplaceEntity(" | ||
| + | |||
| + | -- Schließe das Palisadentor | ||
| + | ReplaceEntity(" | ||
| + | |||
| + | -- Schließe die Zugbrücke | ||
| + | ReplaceEntity(" | ||
| + | |||
| + | -- Öffne die Zugbrücke | ||
| + | ReplaceEntity(" | ||
| + | </ | ||
| + | |||
| + | **Hinweis**: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====SetHealth==== | ||
| + | |||
| + | Mit '' | ||
| + | |||
| + | - **_Entity** - Skriptname oder Entity-Id der Entity, deren Lebenspunkt geändert werden sollen | ||
| + | - **_Health** - Menge der Lebenspunkte in Prozent. 100 bedeutet vollständig gesund, 0 bedeutet tot | ||
| + | |||
| + | ===Beispiel=== | ||
| + | |||
| + | Nach der Erfüllung einer Quest bietet ein Heiler an, Dario (Skriptname ''" | ||
| + | <code lua> | ||
| + | SetHealth(" | ||
| + | </ | ||
| + | |||
| + | Ein Saboteur kann gegen einen Gefallen das feindliche Haupthaus (Skriptname ''" | ||
| + | <code lua> | ||
| + | SetHealth(" | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Im nächsten Kapitel verlassen wir kurzzeitig den Comfort-Layer und betrachten einige '' | ||
| + | |||
| + | [[ scripting: | ||
| + | [[ scripting: | ||
| + | [[ scripting: | ||
scripting/tutorials/level2/rewards.1699457492.txt.gz · Zuletzt geändert: 2023/11/08 15:31 von fritz_98
