scripting:tutorials:level2:rewards
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
scripting:tutorials:level2:rewards [2023/11/08 13:29] – angelegt fritz_98 | scripting:tutorials:level2:rewards [2023/11/11 12:02] (aktuell) – fritz_98 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | TODO: | + | =====Belohnungen===== |
- | ChangePlayer (zum Beispiel ein DZ) | + | FIXME dieser Artikel gehört zwischen SetupQuest und GetEntities |
- | ReplaceEntity (zum Beispiel Toröffnung (Stein UND Holz) oder Zugbrücke) | + | In vorigen Kapiteln wurde vorgestellt, |
- | CreateMilitaryGroup | + | Natürlich eignen sich die Funktionen, die [[ scripting: |
- | Technologien und Ressourcen sind ja bekannt | + | ---- |
- | SetHealth | + | ====CreateEntity==== |
+ | |||
+ | 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.1699450178.txt.gz · Zuletzt geändert: 2023/11/08 13:29 von fritz_98