Diskussion:DEFAULT: Unterschied zwischen den Versionen

Aus Eressea
Zur Navigation springenZur Suche springen
K (→‎Der Befehl DEFAULT: Kurze Befehle gehen auch als Default; In der Anleitung lieber keine Abkürzungen, außer im entsprechenden Kapitel)
(DEFAULT ohne und DEFAULT NACH)
Zeile 1: Zeile 1:
== Entwurf für Defaultbefehle ==
== Entwurf für Defaultbefehle ==


Nachdem ich meine Befehle eingeschickt habe und der Server die Auswertung erstellt hat, kommen für jede Einheit bestimmte Befehle zurück. Das sind die Defaultbefehle. Sie werden in der nächsten Woche ausgeführt, falls ich für die Einheit keine Befehle einschicke. Die Defaultbefehle bekommt man mit dem Report als Textdatei (auch Befehlsvorlage genannt) zugeschickt, falls man sie nicht mit [[OPTION]] VORLAGE NICHT abgeschaltet hat. Außerdem sind sie im Computerreport (CR) enthalten. Der NR enthält immer nur den ersten langen Defaultbefehl. Man kann dort also nicht alle Defaultbefehle sehen.
Nachdem ich meine Befehle eingeschickt habe und der Server die Auswertung erstellt hat, kommen für jede Einheit bestimmte Befehle zurück. Das sind die Defaultbefehle. Sie werden in der nächsten Woche ausgeführt, falls ich ''für diese Einheit'' keine Befehle einschicke. Die Defaultbefehle bekommt man mit dem Report als Textdatei (auch Befehlsvorlage genannt) zugeschickt, falls man sie nicht mit <tt>[[OPTION]] ZUGVORLAGE NICHT</tt> abgeschaltet hat. Außerdem sind sie im Computerreport (CR) enthalten. Der Normalreport (NR) enthält immer nur den ersten langen Defaultbefehl. Man kann dort also nicht alle Defaultbefehle sehen.


In die Defaultbefehle einer Einheit werden normalerweise alle [[Befehl#Kurze_und_Lange_Befehle|langen Befehle]] übernommen. Außerdem alle [[Kommentar|//]]-Kommentare und alle Befehle, die mit @ beginnen. Die Schreibweise wird dabei möglicherweise standardisiert.
In die Defaultbefehle einer Einheit werden normalerweise alle [[Befehl#Kurze_und_Lange_Befehle|langen Befehle]] übernommen. Außerdem alle [[Kommentar|//]]-Kommentare und alle Befehle, die mit @ beginnen. Die Schreibweise wird dabei möglicherweise standardisiert.
Zeile 17: Zeile 17:
Defaultbefehle der nächsten Woche
Defaultbefehle der nächsten Woche
   EINHEIT abc
   EINHEIT abc
   KAUFE 10 Balsam
   KAUFE 10 Bals
   VERKAUFE 100 Öl
   VERKAUFE 100 Öl
   // nächste Woche mehr Balsam kaufen
   // nächste Woche mehr Balsam kaufen
Zeile 26: Zeile 26:
== Der Befehl DEFAULT ==
== Der Befehl DEFAULT ==


Der Befehl DEFAULT ändert dieses Verhalten, indem die Defaultbefehle, die vom Server zurückkommen verändert werden. Wenn die Einheit einen DEFAULT-Befehl bekommen hat, werden ihre '''langen''' Befehle nicht in die Vorlage übernommen. Lange Kommentare und kurze @-Befehle werden dagegen übernommen. Die gegebenen Befehle werden dabei bis zu einem gewissen Grade validiert. Ungültige Befehle werden also nicht übernommen. Diese Prüfung hat jedoch Grenzen, es ist besser, sich nicht darauf zu verlassen.
Der Befehl DEFAULT ändert dieses Verhalten, indem die Defaultbefehle, die vom Server zurückkommen, verändert werden. Wenn die Einheit einen DEFAULT-Befehl bekommen hat, werden ihre '''langen''' Befehle nicht in die Vorlage übernommen. Lange Kommentare und kurze @-Befehle werden dagegen übernommen. Die gegebenen Befehle werden dabei bis zu einem gewissen Grade validiert. Ungültige Befehle werden also nicht übernommen. Diese Prüfung hat jedoch Grenzen, es ist besser, sich nicht darauf zu verlassen.
 


Eingeschickte Befehle:
Eingeschickte Befehle:
Zeile 48: Zeile 47:
   // nächste Woche lernen
   // nächste Woche lernen
   @GIB xyz ALLES Balsam ; Transporter
   @GIB xyz ALLES Balsam ; Transporter
Der Befehl DEFAULT ohne Parameter löscht einfach alle langen Befehle.
Defaultbefehle:
  ARBEITE
  // nix
Eingeschickte Befehle
  DEFAULT
  ARBEITE
Defaultbefehle der nächsten Woche
  // nix
Die Einheit würde also dann in der Woche keinen langen Befehl ausführen.


== Der Befehl NACH ==
== Der Befehl NACH ==
Zeile 80: Zeile 94:


DEFAULT löscht also auch hier die ''langen'' Defaultbefehle und setzt sie neu.
DEFAULT löscht also auch hier die ''langen'' Defaultbefehle und setzt sie neu.
Es ist möglich, NACH mit DEFAULT zu setzen.
Vorlage:
  ARBEITE
  @GIB 0 1 Silber
Eingeschickte Befehle
  DEFAULT "NACH o"
  ARBEITE
  @GIB 0 2 Silber
Defaultbefehle der nächsten Woche
  NACH o
  @GIB 0 2 Silber
Defaultbefehle der übernächsten Woche, wenn sonst keine Befehle für die Einheit eingeschickt werden:
  @GIB 0 2 Silber
Auch hier würde die Einheit also dann keinen langen Befehl ausführen.

Version vom 17. August 2022, 19:25 Uhr

Entwurf für Defaultbefehle

Nachdem ich meine Befehle eingeschickt habe und der Server die Auswertung erstellt hat, kommen für jede Einheit bestimmte Befehle zurück. Das sind die Defaultbefehle. Sie werden in der nächsten Woche ausgeführt, falls ich für diese Einheit keine Befehle einschicke. Die Defaultbefehle bekommt man mit dem Report als Textdatei (auch Befehlsvorlage genannt) zugeschickt, falls man sie nicht mit OPTION ZUGVORLAGE NICHT abgeschaltet hat. Außerdem sind sie im Computerreport (CR) enthalten. Der Normalreport (NR) enthält immer nur den ersten langen Defaultbefehl. Man kann dort also nicht alle Defaultbefehle sehen.

In die Defaultbefehle einer Einheit werden normalerweise alle langen Befehle übernommen. Außerdem alle //-Kommentare und alle Befehle, die mit @ beginnen. Die Schreibweise wird dabei möglicherweise standardisiert.

Eingeschickte Befehle:

 EINHEIT abc
 ; diese Woche nur 10
 kAufe 10 Bals
 VERKAUFE 100 Öl
 // nächste Woche mehr Balsam kaufen
 @GIB xyz ALLES Balsam ; Transporter
 GIB abc 100 Silber
 REKRUTIERE 1

Defaultbefehle der nächsten Woche

 EINHEIT abc
 KAUFE 10 Bals
 VERKAUFE 100 Öl
 // nächste Woche mehr Balsam kaufen
 @GIB xyz ALLES Balsam ; Transporter

Was passiert, wenn die Einheit illegalerweise mehrere lange Befehle bekommen hat (zum Beispiel LERNE und ARBEITE), ist übrigens nicht genau definiert. Das Gleiche gilt für sonstige ungültige Befehle.

Der Befehl DEFAULT

Der Befehl DEFAULT ändert dieses Verhalten, indem die Defaultbefehle, die vom Server zurückkommen, verändert werden. Wenn die Einheit einen DEFAULT-Befehl bekommen hat, werden ihre langen Befehle nicht in die Vorlage übernommen. Lange Kommentare und kurze @-Befehle werden dagegen übernommen. Die gegebenen Befehle werden dabei bis zu einem gewissen Grade validiert. Ungültige Befehle werden also nicht übernommen. Diese Prüfung hat jedoch Grenzen, es ist besser, sich nicht darauf zu verlassen.

Eingeschickte Befehle:

 EINHEIT abc
 ; diese Woche nur 10
 Kaufe 10 Balsam
 VERKAUFE 100 Öl
 // nächste Woche lernen
 @GIB xyz ALLES Balsam ; Transporter
 GIB abc 100 Silber
 REKRUTIERE 1
 DEFAULT "GIB 123 50 Silber; nicht vergessen"
 DEFAULT "LERNE Handel"
 DEFAULT "XXX" ; kein Befehl, wird nicht übernommen

Defaultbefehle der nächsten Woche

 EINHEIT abc
 GIB 123 50 Silber; nicht vergessen
 LERNE Handel
 // nächste Woche lernen
 @GIB xyz ALLES Balsam ; Transporter

Der Befehl DEFAULT ohne Parameter löscht einfach alle langen Befehle.

Defaultbefehle:

 ARBEITE
 // nix

Eingeschickte Befehle

 DEFAULT
 ARBEITE

Defaultbefehle der nächsten Woche

 // nix

Die Einheit würde also dann in der Woche keinen langen Befehl ausführen.

Der Befehl NACH

Der NACH-Befehl spielt eine besondere Rolle: Er wird nicht in die Vorlage übernommen. Stattdessen werden die langen Befehle übernommen, die die Einheit in der letzten Woche in der Vorlage hatte, allerdings nur lange Befehle.

Defaultbefehle

 LERNE Reiten
 @GIB 0 10 Silber
 // no comment

Eingeschickte Befehle

 NACH o

Defaultbefehle der nächsten Woche

 LERNE Reiten

Was passiert, wenn sowohl NACH als auch DEFAULT im Spiel ist?

Vorlage:

 ARBEITE
 // jetzt nach westen

Eingeschickte Befehle

 DEFAULT "LERNE Ausdauer"
 // nun lernen
 NACH w

Defaultbefehle der nächsten Woche

 LERNE Ausdauer
 // nun lernen

DEFAULT löscht also auch hier die langen Defaultbefehle und setzt sie neu.

Es ist möglich, NACH mit DEFAULT zu setzen. Vorlage:

 ARBEITE
 @GIB 0 1 Silber

Eingeschickte Befehle

 DEFAULT "NACH o"
 ARBEITE
 @GIB 0 2 Silber

Defaultbefehle der nächsten Woche

 NACH o
 @GIB 0 2 Silber

Defaultbefehle der übernächsten Woche, wenn sonst keine Befehle für die Einheit eingeschickt werden:

 @GIB 0 2 Silber

Auch hier würde die Einheit also dann keinen langen Befehl ausführen.