Ennos Vorlageskript: Unterschied zwischen den Versionen

Aus Eressea
Zur Navigation springenZur Suche springen
Die Seite wurde neu angelegt: „Wie im IRC angekündigt, teile ich hier mal meine Vorlage-Makros, um ein Beispiel zu geben, wie man mit Vorlage umgeht. Meine Makros sind nicht sehr fortgeschritt...“
 
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Wie im IRC angekündigt, teile ich hier mal meine Vorlage-Makros, um ein Beispiel zu geben, wie man mit Vorlage umgeht. Meine Makros sind nicht sehr fortgeschritten - andere Spieler machen damit wilde Dinge - aber vielleicht gerade deshalb instruktiv.
Wie im IRC angekündigt, teile ich hier mal meine Vorlage-Makros, um ein Beispiel zu geben, wie man mit [[Vorlage]] umgeht. Meine Makros sind nicht sehr fortgeschritten - andere Spieler machen damit wilde Dinge - aber vielleicht gerade deshalb instruktiv.


== Motivation ==
== Motivation ==
Zeile 7: Zeile 7:
== Dateien ==
== Dateien ==


* [http://dl.dropbox.com/u/378636/vorlage/0-vorlage.bat DOS-Batchdatei zum Erzeugen einer eneun Vorlage]
* [http://dl.dropbox.com/u/378636/vorlage/0-vorlage.bat DOS-Batchdatei zum Erzeugen einer neuen Vorlage]
* [http://dl.dropbox.com/u/378636/vorlage/e3.vms Meine Vorlage-Makros]
* [http://dl.dropbox.com/u/378636/vorlage/e3.vms Meine Vorlage-Makros]


Auf Eurem Rechner habt ihr sicher ein Verzeichnis, in dem alle Eure Reporte liegen. In den speichert ihr diese beiden Dateien. Vorlage muss installiert sein. am einfachsten geht das, indem ihr es in den selben Ordner entpackt. Da Gulraks Seite gerade down zu sein scheint, habe ich mal meine Kopie ins Netz gestellt:
Auf Eurem Rechner habt ihr sicher ein Verzeichnis, in dem alle Eure Reporte liegen. In dem speichert ihr diese beiden Dateien. Vorlage muss installiert sein. Am einfachsten geht das, indem ihr es in den selben Ordner entpackt. Da Gulraks Seite gerade down zu sein scheint, habe ich mal meine Kopie ins Netz gestellt:


* [http://dl.dropbox.com/u/378636/vorlage/vorlage.zip Meine Kopie von Vorlage]
* [http://dl.dropbox.com/u/378636/vorlage/vorlage.zip Meine Kopie von Vorlage]
Zeile 28: Zeile 28:


Und nächste Woche wiederholt sich das Spiel aufs neue.
Und nächste Woche wiederholt sich das Spiel aufs neue.
== Beispiele ==
Das einfachste Makro, das ich einer Einheit geben kann, ist ''#call confirm'' (Bestätigen). Das heisst, das ich unter keinen Umständen diese Einheit ansehen will. Beispielsweise, wenn ich eine Einheit in einer Region habe, wo ich lediglich präsent sein will, aber nur arbeite. So sieht das aus:
EINHEIT 42
  // #call confirm
  ARBEITEN
Die Einheit wiederholt ihren Default-Befehl, wenn man ihr nichts anderes sagt. Vorlage setzt einfach das "bestätigt" Kästchen, und die Einheit verschwindet von meinem Radar. Das confirm-Makro ist dabei so schlau, dass es merkt wenn die Einheit hungert. Sollte das passieren, wird sie nicht bestätigt, und ein Kommentar informiert mich, das ich was gegen den Hunger machen soll.
* '''WICHTIG!''' Wenn man der Einheit das erste Mal Vorlage-Befehle gibt, muss man noch einen Befehl dazuschreiben, denn die werden ja erst in der kommenden Woche das erste Mal ausgeführt - wir starten 0-vorlage.bat bevor wir mit dem Befehle geben begonnen haben. Daher das ARBEITEN hier am Schluss.
Für Einheiten die etwas produzieren, habe ich andere Makros, z.B. ''quarry'' und ''miner''. Die machen Steine bzw. Eisen, und gucken dabei ob das Talent dazu noch ausreicht, ansonsten stellen sie die Einheit auf LERNE um.
Meine Krieger sind alle in einem eigenen Ordner in der Region, das erleichtert u.a. das Zählen. Das Makro ''#call axeman'' sieht zu, das die Einheit je 1 Axt hat (mit RESERVIERE), Hiebwaffen lernt, und es tut die Einheit in den Ordner Krieger. Wie man Magellan sagt, dass es diese Gruppen unter der Partei anzeigen soll, seht ihr in [http://dl.dropbox.com/u/378636/vorlage/optionen-ordner.jpg diesem Bild].
Dann gibt es noch ein paar parametrisierte Befehle: ''#call learn Ausdauer 3'' lernt z.B. Ausdauer, solange das Talent noch nicht auf 3 ist. Um einen Folgebefehl zu definieren, kann ich folgendes schreiben:
EINHEIT 42
  // #call learn Waffenbau 3
  // #call alt 'MACHEN Streitaxt'
Das ''alt'' Makro hier führt den Befehl den man ihm übergibt aus, wenn die Einheit unbestätigt ist, und ''learn'' bestätigt die Einheit nur, wenn sie noch nicht auf T3 Waffenbau angekommen ist.
Ich habe noch eine Reihe weiterer Makros in meiner Sammlung. Einfach mal e3.vms in einem Texteditor aufmachen und ein wenig durchlesen - alles, was mit #proc beginnt ist ein Makro, und die meisten sind sehr simpel und erklären sich schon aus dem Namen.
== Transporte und Ad-Hoc Befehle ==
Meine Transporter mache ich ad-hoc. Das heisst, ich habe kein Makro für sie, sondern schreibe die Vorlage-Kommandos direkt in ihre Befehle. Das sieht so aus:
EINHEIT 42
  // #ifunit foo { GIB foo alles stein } #else { RESERVIEREN 2 stein }
  // #ifunit foo { NACH SW } #else { NACH NO }
  // #call confirm
Die Einheit foo ist mein Burgenbauer, und wenn ich in der Region des Burgenbauers bin, gebe ich ihm alle meine Steine. Ich habe mir ausgerechnet, das ich zu Fuss 2 Steine transportieren kann (bzw. Magellan hat es mir angezeigt), also Reserviere ich 2 Steine, wenn ich in der region bin, wo der Burgenbauer nicht ist. Meine Transporter pendeln alle in 1 Schritt zwischen Berg und Burg, deshalb ist das hier easy. Die zweite Zeile erledigt die Bewegung: Da der Berg im SW der Burg liegt, gehe ich nach SW wenn ich in der Region des Burgenbauers bin, oder nach NO wenn nicht. Und weil ich mutig bin, lasse ich die Einheit gleich noch bestätigen, in der Annahme, das da sicher nichts schiefgehen kann...

Aktuelle Version vom 9. Januar 2010, 21:34 Uhr

Wie im IRC angekündigt, teile ich hier mal meine Vorlage-Makros, um ein Beispiel zu geben, wie man mit Vorlage umgeht. Meine Makros sind nicht sehr fortgeschritten - andere Spieler machen damit wilde Dinge - aber vielleicht gerade deshalb instruktiv.

Motivation

Im Moment machen ca. 75% meiner Einheiten jede Woche das gleiche wie in der Vorwoche. Die einzige geistige Leistung, die ich für sie mache, ist z.B. zu gucken, ob sie noch genug Steine für eine Burg, oder genug Talent für Bergbau haben. Das kann auch ein Programm (bzw. ein Vorlage-Makro) für mich machen.

Dateien

Auf Eurem Rechner habt ihr sicher ein Verzeichnis, in dem alle Eure Reporte liegen. In dem speichert ihr diese beiden Dateien. Vorlage muss installiert sein. Am einfachsten geht das, indem ihr es in den selben Ordner entpackt. Da Gulraks Seite gerade down zu sein scheint, habe ich mal meine Kopie ins Netz gestellt:

Aufruf und Einbindung in Magellan

Die Datei 0-vorlage.bat versucht herauszufinden, welches der letzte Report ist. Dabei hilft es, wenn ihr keine der alten Reporte löscht, sonst kommt der Mechanismus leicht mal ins stolpern. Wenn der Aufruf geklappt hat, liegt im Ordner hinterher eine Datei vorlage.cr

Zur Einbindung in Magellan: Ich habe einen Report gesamt.cr, den ich jede Woche in Magellan lade, und mit dem ich meine Befehle mache. Mein Ablauf sieht also in etwa so aus:

  1. 0-vorlage.bat aufrufen
  2. Magellan starten, gesamt.cr laden
  3. Datei-Hinzufügen im Menü auswählen, und vorlage.cr auswählen. Jetzt sind eine Reihe Einheiten unbestätigt, und zwar die, für die Vorlage nicht automatisch meine Befehle gemacht hat.
  4. Befehle für die noch nicht bestätigten Einheiten machen, und neuen Einheiten Vorlage-Makros zuweisen.
  5. Einheiten die fertig sind mit Ctrl-B bestätigen, bis alles bestätigt ist.
  6. Befehle einschicken (aus Magellan). Report wieder mit Magellan als gesamt.cr speichern

Und nächste Woche wiederholt sich das Spiel aufs neue.

Beispiele

Das einfachste Makro, das ich einer Einheit geben kann, ist #call confirm (Bestätigen). Das heisst, das ich unter keinen Umständen diese Einheit ansehen will. Beispielsweise, wenn ich eine Einheit in einer Region habe, wo ich lediglich präsent sein will, aber nur arbeite. So sieht das aus:

EINHEIT 42
  // #call confirm
  ARBEITEN

Die Einheit wiederholt ihren Default-Befehl, wenn man ihr nichts anderes sagt. Vorlage setzt einfach das "bestätigt" Kästchen, und die Einheit verschwindet von meinem Radar. Das confirm-Makro ist dabei so schlau, dass es merkt wenn die Einheit hungert. Sollte das passieren, wird sie nicht bestätigt, und ein Kommentar informiert mich, das ich was gegen den Hunger machen soll.

  • WICHTIG! Wenn man der Einheit das erste Mal Vorlage-Befehle gibt, muss man noch einen Befehl dazuschreiben, denn die werden ja erst in der kommenden Woche das erste Mal ausgeführt - wir starten 0-vorlage.bat bevor wir mit dem Befehle geben begonnen haben. Daher das ARBEITEN hier am Schluss.

Für Einheiten die etwas produzieren, habe ich andere Makros, z.B. quarry und miner. Die machen Steine bzw. Eisen, und gucken dabei ob das Talent dazu noch ausreicht, ansonsten stellen sie die Einheit auf LERNE um.

Meine Krieger sind alle in einem eigenen Ordner in der Region, das erleichtert u.a. das Zählen. Das Makro #call axeman sieht zu, das die Einheit je 1 Axt hat (mit RESERVIERE), Hiebwaffen lernt, und es tut die Einheit in den Ordner Krieger. Wie man Magellan sagt, dass es diese Gruppen unter der Partei anzeigen soll, seht ihr in diesem Bild.

Dann gibt es noch ein paar parametrisierte Befehle: #call learn Ausdauer 3 lernt z.B. Ausdauer, solange das Talent noch nicht auf 3 ist. Um einen Folgebefehl zu definieren, kann ich folgendes schreiben:

EINHEIT 42
  // #call learn Waffenbau 3
  // #call alt 'MACHEN Streitaxt'

Das alt Makro hier führt den Befehl den man ihm übergibt aus, wenn die Einheit unbestätigt ist, und learn bestätigt die Einheit nur, wenn sie noch nicht auf T3 Waffenbau angekommen ist.

Ich habe noch eine Reihe weiterer Makros in meiner Sammlung. Einfach mal e3.vms in einem Texteditor aufmachen und ein wenig durchlesen - alles, was mit #proc beginnt ist ein Makro, und die meisten sind sehr simpel und erklären sich schon aus dem Namen.

Transporte und Ad-Hoc Befehle

Meine Transporter mache ich ad-hoc. Das heisst, ich habe kein Makro für sie, sondern schreibe die Vorlage-Kommandos direkt in ihre Befehle. Das sieht so aus:

EINHEIT 42
  // #ifunit foo { GIB foo alles stein } #else { RESERVIEREN 2 stein }
  // #ifunit foo { NACH SW } #else { NACH NO }
  // #call confirm

Die Einheit foo ist mein Burgenbauer, und wenn ich in der Region des Burgenbauers bin, gebe ich ihm alle meine Steine. Ich habe mir ausgerechnet, das ich zu Fuss 2 Steine transportieren kann (bzw. Magellan hat es mir angezeigt), also Reserviere ich 2 Steine, wenn ich in der region bin, wo der Burgenbauer nicht ist. Meine Transporter pendeln alle in 1 Schritt zwischen Berg und Burg, deshalb ist das hier easy. Die zweite Zeile erledigt die Bewegung: Da der Berg im SW der Burg liegt, gehe ich nach SW wenn ich in der Region des Burgenbauers bin, oder nach NO wenn nicht. Und weil ich mutig bin, lasse ich die Einheit gleich noch bestätigen, in der Annahme, das da sicher nichts schiefgehen kann...