Multiplayercontent/de
Auf dieser Seite wird erläutert, welche WML-Syntax innerhalb einer .cfg-Datei erforderlich ist, damit ein einzelnes Szenario oder eine Kampagne im Multiplayer-Modus (MPM) funktioniert. Da nur diese Unterschiede angesprochen werden, ist es sinnvoll, zunächst die vorherigen Artikel des Leitfadens für Kreative (Verlinkungen oben auf dieser Seite) zu lesen.
Contents
Szenarios im Multiplayer-Modus
Im MPM kann man ein einzelnes Szenario spielen, ohne dafür eine Kampagne einzurichten (dies ist im Einzelspielermodus nicht möglich). Dazu sind folgende Anpassungen nötig:
- In der Datei _main.cfg:
#ifdef MULTIPLAYER
als Ladebedingung einfügen. - In der Szenario-Konfigurationsdatei: ein
[multiplayer]
-Tag anstelle eines[scenario]
-Tags auf oberster Code-Ebene verwenden.
Kampagnen im Multiplayer-Modus
Anmerkung: Multiplayer-Kampagnen in Battle for Wesnoth werden erst ab Version 1.11.6 des Spiels unterstützt.
Wesnoth hat grundlegende Unterstützung für Kampagnen im MPM, man kann es entweder mit Freunden oder sogar mit einer KI spielen. Es gibt allerdings nach wie vor ein paar Dinge, die nicht so arbeiten wie man es erwarten könnte, da sich einige Funktionen noch in der Entwicklung befinden.
Man kann und sollte seine Arbeit zunächst im Hotseat-Modus testen, aber einige Dinge werden sich unter realen Netzwerkbedingungen vermutlich dennoch anders verhalten (und hauptsächlich Szenario- und Nebenparameter beeinflussen). Das sollte man immer im Hinterkopf behalten und eine Multiplayer-Kampagne immer auch im Netzwerk testen.
Das [campaign]
-Tag
In Multiplayer-Kampagnen wird das [campaign]
-Tag verwendet, das ein und dieselbe Kampagne sowohl im MPM als auch im Einzelspielermodus spielbar macht. Das Spiel überprüft im MPM lediglich zusätzlich einige optionaler Tags. Diese Tags können unter CampaignWML nachgeschlagen werden.
Außerdem muss in Multiplayer-Kampagnen das type-Attribut ausdrücklich auf mp oder hybrid gesetzt werden, da eine Kampagne andernfalls gar nicht erst im MPM sichtbar ist.
Die Szenario-Datei
Ein Szenario innerhalb einer Multiplayer-Kampagne ist beinahe identisch zu einem Szenario in einer Einzelspieler-Kampagne. Es müssen nur folgende Änderungen vogenommen werden:
- Ein Szenario, das nicht dafür vorgesehen ist, direkt gestartet zu werden, sollte innerhalb des
[scenario]
-Tags den keyallow_new_game=no
enthalten. Das verhindert die Anzeige des Szenarios auf der Multiplayer-Konfigurationsseite als Eintrittspunkt.
Ab Wesnoth Version 1.13 ist diese Angabe nicht mehr unbedingt notwendig, daallow_new_game=no
die Voreinstellung ist. - Für Szenarien ohne
allow_new_game=no
kann man den keynew_game_title
benutzen, der einen benutzerdefinierten Titel für das Szenario ermöglicht. Das ist nützlich, wenn man mehrere Eintrittspunkte in eine Kampagne - z.B. am Anfang eines neuen Kapitels - setzen möchte. - Jede durch einen Menschen gesteuerte Partei (in der WML-Terminologie spricht man von side) benötigt innerhalb ihres
[side]
-Tags den Keycontroller=human
, um im Netzwerkmodus zu funktionieren. - Jede von einem Menschen gesteuerte Partei benötigt außerdem innerhalb ihres
[side]
-Tags den Keysave_id=ABCD
mit einem einzigartigen Identifikationscode (ID). Jede Side hat eine eigene save_id, und sie ist in jedem zusammengehörigen Szenario gleich. Ohne diese Angabe werden die Anführer und Rekrutierungslisten nicht ins nächste Szenario übernommen.
Ab Wesnoth Version 1.13 wird die Angabe von save_id nicht mehr benötigt, sie wird (genau wie im Einzelspielermodus) per Voreinstellung von dem Schlüsselid=ABCD
übernommen. - Jede von der KI gesteuerten Partei jedoch benötigt innerhalb ihres
[side]
-Tags den Keysave_id=12345
und zusätzlich den Keypersistent=yes
. Da gleiche gilt generell auch im Einzelspielermodus. - Ab Wesnoth Version 1.13 gibt es die Möglichkeit, mittels des Key
previous_save_id
innerhalb eines[side]
-Tags zu bestimmen, welcher vorherige Spieler diese Partei im aktuellen Szenario übenehmen soll. Angenommen, im ersten Szenario gibt es zwei Parteien mit den IDs Kalenz und Landar, im zweiten Konrad und Delfador. Man kann nun im zweiten Szenario innerhalb des[side]
-Tags von Konrad den Keyprevious_save_id=Kalenz
nutzen, um die vorher von Kalenz gesteuerte Partei nun Konrad zuzuordnen. Das Gleiche kann man mit Landar und Delfador machen.
Other Notes
- To ensure that your scenario settings won't get overwritten by the settings from the multiplayer configure dialog, you can set force_use_map_settings=true. However, if your campaign is not intended to be played strictly with default settings, you can set it to false.
- If any settings are still taken from the multiplayer configure dialog, it is possible to overwrite them in the prestart event. Useful tags include [set_recruit], [modify_side], [modify_turns],[remove_shroud], and [lift_fog]. You might also want to use experience_modifier=100 in the [scenario] tag.
Synchronization
When creating multiplayer content, you should be cautious of code that might change on one client but not the other players'. Not doing so can result in an Out of Sync error. Most [event]s are synced across all clients, but a few still have issues. A full list of safe events can be found on the EventWML page.