[PHost Logo]

Befehlsprozessor
Der Portable Host
Version 4.0j

Inhalt

Einleitung

PHost bietet einen Mechanismus, mit dem Spieler den Hostablauf beeinflussen können. Ein Modul namens "Befehlsprozessor" interpretiert spezielle Befehlsnachrichten von Spielern und kann die Host-Konfiguration ohne Eingriffe seitens des Spielleiters modifizieren. Mit diesem Mechanismus können formale Allianzen eingerichtet werden, Spieler können ihre Namen ändern, und weitere Dinge. Der Spielleiter kann festlegen, welche Teile des Befehlsprozessors den Spielern zur Verfügung stehen.

Nach oben


Befehlsnachrichten senden

Spieler kommunizieren mit dem Befehlsprozessor über Befehlsnachrichten. Das sind normale Nachrichten, die mit der entsprechenden Funktion des Client-Programmes erstellt werden und an den Spieler selbst adressiert sind. Wenn Spieler 3 also eine Befehlsnachricht senden will, sendet er eine Nachricht an Spieler 3. Der Befehlsprozessor erkennt dann, dass Absender und Empfänger der Nachricht identisch sind, und interpretiert die Nachricht als Befehlsnachricht. Das funktioniert auch, wenn AllowPlayerMessages deaktiviert ist.

Eine Nachricht, deren erstes sichtbares Zeichen ein kleiner-als-Zeichen '<' ist, wird nicht als Befehlsnachricht interpretiert sondern normal versendet. Diese Sonderbehandlung existiert aus zwei Gründen:

Ein Spieler kann beliebig viele Befehlsnachrichten pro Zug senden. Jede Nachricht kann mehrere Befehle beinhalten. Jeder Befehl steht auf einer Zeile; Leerzeilen werden ignoriert.

==> EchoView, Planets Command Center und die neusten Versionen von VPA können automatisch einige Befehle direkt aus der normalen grafischen Oberfläche generieren. Nutze diese Möglichkeiten, wenn du kannst, da so die Wahrscheinlichkeit eines Tippfehlers gesenkt wird.

Format einer Befehlsnachricht

Jede Befehlsnachricht hat folgendes Format:

befehl [parm] [parm] ....

wobei befehl eine gültiger Befehl, wie unten aufgeführt, ist. Die Anzahl Parameter ist von Befehl zu Befehl verschieden. Wenn du zu viele oder zu wenige Parameter angibst, sendet dir der Befehlsprozessor im nächsten Zug eine Fehlermeldung und ignoriert den Befehl. Wenn du einen ungültigen Befehl sendest, erhältst du ebenfalls eine Fehlermeldung.

Zwischen Parametern kann beliebig viel Leerraum stehen.

(v3.4b:) Befehle, die nicht auf eine Zeile passen, können auf der nächsten Zeile fortgesetzt werden. Beginne dazu einfach die nächste Zeile mit einem "+"-Zeichen. PHost hängt diese Zeile dann an die vorige Zeile an. Beispielsweise ändert

racename long The Vorticons
+of Fribbulus Xax

den Namen deines Volkes in "The Vorticons of Fribbulus Xax". Dies trifft nicht auf die Befehle message und rumor (bzw. rumour) zu. Diese passen immer in eine Zeile, die folgende Zeile ist die erste Zeile der zu sendenden Nachricht.

Befehle an Addons

Seit Version 3.4b akzeptiert PHost ein besonderes Format für Nachrichten an Addons:

name: befehl

(das erste Wort endet mit einem Doppelpunkt). Das bewirkt exakt das selbe wie die alte Methode,

x name: befehl

(siehe unter xtern für mehr Informationen).

Das funktioniert nur mit Addons, die solche Befehle akzeptieren, allerdings hoffen wir, dass neue Addons dieses Format unterstützen werden. Ziel dieser Formatierung ist es, dass Addons erkennen können, wenn ein Befehl an sie adressiert ist, und damit Fehlermeldungen erzeugen können, wenn sie einen Befehl nicht erkennen. Ohne die Möglichkeit, Befehle zu adressieren, muss das Addon immer davon ausgehen, dass der Befehl an ein anderes Addon gesendet wurde, und muss ihn still ignorieren.

Der Konsistenz wegen akzeptiert PHost das Wort "phost:" als Adressierung für Befehle an PHost. phost: send fcodes bedeutet daher dasselbe wie send fcodes.

Befehle extern behandeln

(v3.4d:) Einige Befehle können extern behandelt werden:

Um einen Befehl extern zu behandeln, setze die entsprechende Konfigurationsoption auf External. Wenn PHost dann einen solchen Befehl erhält, wird er diesen nicht ausführen, sondern ihn in xterncmd.ext schreiben. Ein Addon-Programm kann ihn dann dort auslesen und verarbeiten. Ein solches Addon-Programm kann dann allerlei Beschränkungen durchsetzen, ohne dass Spieler direkt mit dem Programm kommunizieren müssen.

Wenn Spieler 7 den Befehl a add 3 sendet, schreibt PHost folgendes in xterncmd.ext:

7: allies: add 3

Beachte wie PHost das erste Wort ausgeschrieben und einen Doppelpunkt angehängt hat. Ansonsten wird der Befehl nicht validiert (bis auf jenes erste Wort eben). a b c wird also zu 7: allies: b c ergänzt. Dein Programm muss damit umgehen können. Schließlich hätte der Spieler ebensogut den normalen xtern-Befehl verwenden können, um diese Zeile zu schreiben.

Auf Host-Seite Befehle ausführen

(v4.0e:) Hosts können dem PHost auch eine Liste von Befehlen übergeben, die PHost für einen Spieler ausführen soll. Direkt nach Auxhost1 wird die Datei auxcmds.txt gelesen und alle darin enthaltenen Befehle ausgeführt. Die Datei enthält Zeilen der Form spieler: befehl, ähnlich der Datei xterncmds.ext. Der befehl wird dann ausgeführt, (fast) als ob er in der Turndatei von spieler gestanden hätte.

Es gibt dennoch ein paar wichtige Unterschiede zwischen Befehlen aus dieser Datei und Befehlen aus Turn-Dateien:

Die Datei auxcmds.txt wird nach dem Ausführen der Befehle gelöscht.

Beispiel: Wenn ein Host permanente Bündnisse zwischen verschiedenen Völkern einrichten möchte, kann er CPEnableAllies = No setzen (so dass die Spieler die Allianzen nicht ändern können) und für den ersten Zug eine auxcmds.txt mit Befehlen wie den folgenden hosten:

3: allies add 5
5: allies add 3
3: allies config 5 +s +p +m +c +v
5: allies config 3 +s +p +m +c +v

(Diese Datei ist äquivalent zum Befehl pally -t 35)

Neu v4.0i: Zusätzlich zu den normalen Befehlen gibt es spezielle Steuerbefehle für Hosts. Um diese auszuführen, muss der Befehl mit dem Präfix "control:" anstatt einer Spielernummer angegeben werden, zum Beispiel so:

control: inhibit 7 cloak

Diese Befehle sind weiter unten beschrieben. Die Befehle werden während des Einlesens ausgeführt, in der Reihenfolge, in der sie ankommen, am Anfang von Auxhost1.

Nach oben


Beschreibung der Befehle

Dieses Kapitel beschreibt alle Befehle, die PHost momentan erkennt. Die meisten Befehle können per Konfiguration deaktiviert werden, die Beschreibung enthält die entsprechenden Verweise.

Jeder Befehl kann abgekürzt werden. Damit kannst du Tipparbeit sparen und behältst mehr Platz für lange Befehle. Die jeweils kürzeste Abkürzung ist angegeben. Der Befehl racename kann beispielsweise bis auf 'ra' gekürzt werden, weitere gültige Abkürzungen sind 'rac', 'race' usw., nicht jedoch 'racn'. In anderen Worten, wenn du mehr als die unbedingt erforderlichen Zeichen angibst, müssen diese zum Befehl passen. Wenn der Befehl weitere Worte enthält, können diese, wenn nicht anders angegeben, ebenfalls bis auf das erste Zeichen gekürzt werden. Beispielsweise kann allies config 4 +mines zu a c 4 +m abgekürzt werden.

Groß- und Kleinschreibung bei Befehlen ist nicht relevant.

Einige Befehle ändern die Konfiguration des PHost. Da die Konfiguration über mehrere Dateien verteilt ist, werden von einem Befehl ein oder mehrere Dateien geändert. Die Dateien werden in jedem Fall im Spielverzeichnis abgelegt, nicht im Hauptverzeichnis. Wenn ein Spieler den Namen seines Volkes ändert, wird die Datei race.nm im Spielverzeichnis überschrieben oder angelegt. Die jeweils beeinflussten Dateien sind unten aufgelistet.

allies Minimale Abkürzung: a
Syntax: allies add|drop <player...>
Syntax: allies config <player> <flags...>
Aktiviert über: CPEnableAllies
Geänderte Dateien: auxdata.hst
Seit: PHost 1.0 (bedingte Angebote: 2.0)

Die drei Unterbefehle von allies dienen dem Einrichten einer formalen Allianz.

Beispiele:

allies add 8 Spieler 8 eine Allianz anbieten bzw. das Angebot von Spieler 8 annehmen
a a 8 das gleiche
allies config 8 +mines +vision Spieler 8 Minen- und Vision-Privileg anbieten
allies config 8 ~com Spieler 8 das Kampf-Privileg bedingt anbieten; Spieler 8 kann das Angebot nur nutzen, wenn er dir das selbe Privileg anbietet
a c 8 ~c das gleiche
a d 1 Allianz mit Spieler 1 kündigen

Details zur Funktionsweise der Allianzen findest du auf der Seite über Allianzen.

Relevante Konfigurationsparameter: CPEnableAllies, DelayAllianceCommands.

Relevante PControl-Schritte: je nach Einstellung von DelayAllianceCommands werden alle Allianzbefehle direkt vor Auxhost1 oder direkt nach Auxhost2 verarbeitet.

Siehe auch: enemies-Befehl

beamup Minimale Abkürzung: be
Syntax: beamup <id> <was...>
Aktiviert über: AllowBeamUpMultiple
Seit: PHost 3.0

Dieser Befehl wird mit der Mission Beam up Multiple genutzt. Du kannst jede Kombination von Mineralien, Geld, und so weiter von einem freundlichen Planeten laden. Die Mission teilt PHost mit, dass du Dinge an Bord nehmen möchtest, mit dem Befehl beam up wählst du die Dinge aus. Genauer gesagt reicht der Befehl alleine aus, da dieser die Mission des Schiffes durch Beam up Multiple ersetzt. Die Mission dient primär dazu, Spieler daran zu erinnern, was das Schiff tun soll.

==> Dieser Befehl ersetzt die Mission des Schiffes durch Beam up Multiple. Wenn du die Mission ohne einen beamup-Befehl nutzt, passiert nichts (das Schiff weiß nicht, was es hochbeamen soll).

Der erste Parameter dieses Befehles ist die Id-Nummer des Schiffes. Die folgenden Parameter geben an, was du hochbeamen möchtest. Jeder Eintrag besteht aus einem Zeichen für die Art Frachtgut, direkt gefolgt von der gewünschten Menge.

Nnnn Neutronium
Tnnn Tritanium
Dnnn Duranium
Mnnn Molybdenum
Cnnn Kolonisten
Snnn Vorräte (Supplies)
$nnn Geld
xmax so viel wie möglich hochbeamen. Das Wort max muss ausgeschrieben werden und kann nicht abgekürzt werden.
x<zahl> die angegebene Menge hochbeamen

Wenn für eine Ressource keine Menge angegeben ist, wird auch nichts hochgebeamt. Wenn weniger Material als angefordert verfügbar ist oder der Frachtraum voll ist, wird nur so viel geladen wie gerade möglich ist. Fracht wird in der Reihenfolge aufgeladen, wie in obiger Tabelle: zuerst Mineralien, dann Kolonisten, dann Vorräte, dann Geld.

Kolonisten können nur aufgeladen werden, wenn AllowBeamUpClans eingeschaltet ist. Zur Sicherheit verbleibt immer mindestens ein Clan auf dem Planeten; mit dieser Mission kannst du nicht den letzten Clan eines Planeten aufladen.

beamup-Befehle sind nicht kumulativ. Wenn du mehrere Befehle für das selbe Schiff angibst, wird nur der letzte ausgeführt, alle anderen werden ignoriert.

Beispiele:

beamup 12 N40 Schiff 12 lädt 40 kt Neutronium
beamup 12 N 40 ungültig: kein Leerraum zwischen Typ und Menge erlaubt
beamup 93 Nmax $100 Schiff 93 lädt soviel Sprit wie möglich auf, sowie 100 mc
be 93 nmax $100 das gleiche, nur abgekürzt
beamup 93 Nmax$100 ungültig: Leerraum zwischen den verschiedenen Typen muss sein
bigminefields Minimale Abkürzung: bigm
Syntax: bigminefields yes|no
Geänderte Dateien: pconfig.src
Seit: PHost 3.3

Mit diesem Befehl kannst du deinen Eintrag der AllowMoreThan500Minefields-Option ändern.

Viele Clients haben ein Limit von 500 Minenfeldern (entsprechend dem Limit von HOST und älteren PHost-Versionen). Wenn diese Option deaktiviert ist, sendet PHost keine Subraumnachrichten über Minenfelder mit höheren Id-Nummern, und packt die Daten über diese Minenfelder in util.dat in einen anderen Datensatz (Nummer 46 statt Nummer 0).

==> Nutze diesen Befehl nur, wenn dein Unpack-Programm und dein Client damit umgehen können.

bigtargets Minimale Abkürzung: bi
Syntax: bigtargets yes|no
Geänderte Dateien: pconfig.src
Seit: PHost 1.0

Mit diesem Befehl kannst du deinen Eintrag der AllowMoreThan50Targets-Option ändern.

Der DOS-Client (planets.exe) hat ein Limit von maximal 50 gescannten fremden Schiffen (Targets) pro Zug. Viele der Ersatz-Programme haben diese Beschränkung nicht. Mit diesem Befehl kannst du PHost anweisen, dir alle Targets zu senden.

==> Nutze diesen Befehl nur, wenn dein Unpack-Programm und dein Client damit umgehen können.

Heutzutage brauchst du diesen Befehl normalerweise nicht. Wenn du ein Winplan-kompatibles Unpack und Maketurn benutzt, packt PHost die Targets in einen gesonderten Bereich des Results. Ansonsten werden die Targets in util.dat übertragen (Datensatz 10), wo alle Programme, die sie anzeigen könnten, sie auch finden.

client Minimale Abkürzung: c
Syntax: client <text>
Geänderte Dateien: reg.log
Seit: PHost 2.11h

Dieser Befehl ist nicht für die Nutzung durch Spieler gedacht. Client-Programme können sich mit diesem Befehl gegenüber PHost identifizieren. Wenn PHost weiß, welches Client-Programm benutzt wird, kann er auf die speziellen Funktionen und Probleme dieses Programmes Rücksicht nehmen.

Wenn PHost einen client-Befehl erhält, schreibt er den Namen des Programms in reg.log. Der Text wird nicht weiter interpretiert, allerdings sollte das erste Wort der Name des Programmes sein.

Wir wissen von den folgenden Client-Namen:

Wenn VPA benutzt wird, bleiben lange Waypoints erhalten.

enemies Minimale Abkürzung: ene
Syntax: enemies add|drop <player>
Aktiviert über: CPEnableEnemies
Seit: PHost 4.0g

Schiffe haben normalerweise ein Primärziel (primary enemy), mit dem das Schiff angewiesen wird, gegenüber eines bestimmten Volkes aggressiv zu sein. Alternativ kann das Schiff mit Kill gegenüber allen anderen Spielern aggressiv sein.

Mit enemies add kannst du dein Schiff gegenüber mehreren Spielern auf einmal aggressiv machen (wiederhole den Befehl entsprechend, um mehrere Völker zu Feinden zu deklarieren).

Wenn dein Schiff als Primärziel (primary enemy) none und eine Mission ungleich Kill hat, verhält es sich friedlich, wie immer. Wenn es jedoch ein eingestelltes Primärziel hat, wird es aggressiv gegenüber all den mit enemy eingestellten Feinden (und natürlich dem Primärziel). Angenommen, du hast die Befehle enemies add 3 und enemies add 9 gegeben. Dann benimmt sich dein Schiff folgendermaßen:

Mission Primary Enemy Aggressiv gegenüber
Kill egal jedem (wie immer)
jede außer Kill keiner (none) niemandem (wie immer)
jede außer Kill 3 Spieler 3 und 9
jede außer Kill 7 Spieler 3, 7, und 9

Diese Einstellungen sind global und gelten für alle deine Schiffe. PHost merkt sich die Einstellung und erinnert dich jeden Zug mit einer Nachricht daran.

Um ein enemies add PLAYER zurückzunehmen, verwende den Befehl enemies drop PLAYER.

Dieser Befehl beeinflusst alle Stellen, an denen das Primärziel relevant ist:

Allianzen wiegen mehr als Feind-Einstellungen. Wenn du mit jemandem verbündet bist und ihm Combat Level bietest, kannst du ihn nicht angreifen - weder mit Kill, noch mit Primärziel, noch mit diesem Befehl.

extmission Minimale Abkürzung: e
Syntax: extmission <id> <mission> [<arg1> [<arg2>]]
Aktiviert über: AllowExtendedMissions
Seit: PHost 2.11g

Dieser Befehl ist für Nutzer von DOS Planets gedacht, um auf die erweiterten Missionen von PHost und diversen Addons zugreifen zu können. Spieler, die Winplan oder einen der Dritt-Clients benutzen können die "Extended Mission"- oder "M.I.T."-Funktion ihres Programmes nutzen.

Der extmission-Befehl nimmt mindestens zwei Zahlen als Parameter.

==> Nur Nutzer von DOS-Planets benötigen diesen Befehl. Die Mission, die mit diesem Befehl eingestellt wird, überschreibt die, die im Schiffsbildschirm eingestellt ist.

Beispiele:

extmission 123 20 Setzt die Mission von Schiff 123 auf 20, also Build torpedoes from Cargo
e 47 22 7 5 Setzt die Mission von Schiff 47 auf 22 (Lay Web Minefield), den ersten Parameter auf 7 (es werden also 7 Torpedos gelegt) und den zweiten Parameter auf 5 (das Minenfeld gehört nachher dem Privateer).
e 47 22 Dieser Befehl wird zurückgewiesen, da Mission 22 zwei Parameter benötigt, aber keine angegeben wurden.
filter Minimale Abkürzung: f
Syntax: filter yes|no
Geänderte Dateien: pconfig.src
Seit: PHost 3.0

Mit diesem Befehl kann der Nachrichtenfilter ein- und ausgeschaltet werden. Wenn der Filter aktiv ist, werden einige Nachrichten unterdrückt; wenn der Filter inaktiv ist, erhältst du alle Nachrichten.

Dieser Befehl verändert die Einstellung FilterPlayerMessages.

give Minimale Abkürzung: g
Syntax: give ship|planet <id> [to] <player>
Aktiviert über: CPEnableGive
Seit: PHost 1.3c

Mit diesem Befehl kannst du ein Schiff oder einen Planeten an einen anderen Spieler übergeben. Du kannst deine Schiffe und Planeten an jeden Spieler übergeben, ihr müsst nicht verbündet sein. Der Empfänger muss jedoch einen Planeten oder ein Schiff an der selben Position wie die übergebene Einheit haben, um diese in Empfang zu nehmen.

Alle Übergaben finden gleichzeitig statt. Damit ist es möglich, dass zwei Völker im selben Zug ihre Schiffe tauschen.

Der Kommandocode gsX hat die selbe Wirkung wie der Befehl give ship.

Beispiele:

give ship 3 to 7 Schiff #3 den Crystals geben
g s 3 7 das gleiche, nur abgekürzt

Voraussetzungen:

Folgen:

Relevante Konfigurationsparameter: CPEnableGive.

Relevante PControl-Schritte: TransferOwner.

language Minimale Abkürzung: l
Syntax: language <language-code>
Aktiviert über: CPEnableLanguage
Geänderte Dateien: pconfig.src
Seit: PHost 1.1

Mit diesem Befehl kannst du eine Sprache auswählen, in der du deine Subraumnachrichten erhalten willst. PHost kann Nachrichten (Sensorenberichte, Kampfberichte, usw.) in verschiedenen Sprachen senden:

Sprache Minimum Hinweise
English en Standard, kompatibel zu HOST
German g DOS-Codeseite 437/850
French f DOS-Codeseite 437/850
Spanish s DOS-Codeseite 850
Italian i
Dutch d
Russian r DOS-Codeseite 866 ("alt")
Estonian es DOS-Codeseite 437/850 (?)
Polish p DOS-Codeseite 852; seit PHost 3.4c
NewEnglish newen Englisch ohne die für HOST-Kompatibilität nötigen Schnitzer; seit PHost 3.4c

Die Sprachnamen können abgekürzt werden, die kürzeste Abkürzung steht in Spalte 2.

==> Wenn du Nachrichten in einer anderen Sprache anforderst, stelle sicher, dass du sie auch lesen kannst. Zeichen mit Akzent oder Umlaut werden mit einer DOS-Codeseite codiert. Wenn du ein Windows-Programm benutzt, sollte dieses die Zeichen in das Windows-Format umwandeln können.

==> Wenn du ein Programm benutzt, das deine Nachrichten lesen muss (z.B. VPA 3.51), solltest du nur die normalen englischen Nachrichten (English) nutzen, damit das Programm sie versteht. Wenn dein Programm util.dat auswertet, kannst du alle Sprachen nutzen. NewEnglish ist eine aktualisierte und "verbesserte" Version der englischen Nachrichten.

message Minimale Abkürzung: m
Syntax: message <player...>
Syntax: message universal
Seit: PHost 1.0 ("universal" seit 2.6b)

Mit diesem Befehl kann eine Nachricht an eine Anzahl anderer Spieler versendet werden. Die Wirkung ist dieselbe, als wenn die Nachricht mit der entsprechenden Funktion des Clients verschickt wurde, allerdings kann hier die Empfängerliste direkt angegeben werden, während einige Client-Programme nur das Senden von Nachrichten an einen oder alle Spieler zulassen.

Als Parameter des message-Befehls übergibst du die Spielernummern. Die Zahl 12 ergibt dabei eine Nachricht an den Host. ==> Die Adressaten müssen Zahlen sein. Insbesondere werden Rebel und Colony mit 10 und 11 adressiert, nicht A und B.

Um eine Nachricht an alle zu senden, kannst du anstelle von message 1 2 3 4 5 6 7 8 9 10 11 auch einfach message universal (oder m u) schreiben.

Der Rest der Nachricht, die den message-Befehl enthält, ist der Text für die Subraumnachricht, es werden keine weiteren Befehle im Text gesucht.

Nachrichten, die mit diesem Befehl gesendet wurden, sind ansonsten vollkommen identisch zu normal gesendeten Nachrichten. Insbesondere wird eine Nachricht mit *w* anonym gesendet (siehe rumor).

Relevante Konfigurationsparameter: AllowPlayerMessages, AllowAnonymousMessages.

password Minimale Abkürzung: pass
Syntax: password <passwort>
Aktiviert über: DisablePasswords
Geänderte Dateien: gen.hst
Seit: PHost 4.0j

Dieser Befehl ändert das RST-Passwort des Spielers. Der Befehl ist ansonsten identisch zu der entsprechenden Funktion der Clientprogramme (z.B. "P" im Hauptmenü von planets.exe). Ein Passwort kann bis zu 10 Zeichen lang sein. Alle US-ASCII-Zeichen sind zulässig (allerdings keine Umlaute), Groß- und Kleinschreibung wird unterschieden. Um die Passwortabfrage zu deaktivieren, setze dein Passwort auf "NOPASSWORD".

Der Hauptzweck dieses Befehls ist es, einem Host zu ermöglichen, das Passwort eines ausgeschiedenen Spielers zurückzusetzen. Bisher wurde in dem Fall meistens ein Tool wie crack benutzt, um das Passwort herauszufinden und dem Ersatzspieler mitzuteilen. Das ist sicherheitstechnisch sehr bedenklich. Hosts können nun über die auxcmds.txt-Schnittstelle das Passwort löschen. Dazu verwenden sie einen Befehl wie 3: password NOPASSWORD

Wenn ein Spieler mehrere dieser Befehle gibt, wird nur der letzte wirksam. Eine Passwortänderung über die entsprechende Funktion des Clients überschreibt die Befehlsnachricht (weil sie nach der Nachricht verarbeitet wird).

Bedenke, dass dieses Passwort nur schwache Sicherheit bietet. Es verhindert nicht, dass andere Spieler dein Result auspacken und mit einem Hex-Editor oder einem modifizierten Client-Programm anschauen.

==> Im Gegensatz zu anderen Befehlen, die über eine Konfigurationsoption aktiviert werden, kann dieser Befehl mit einer Option deaktiviert werden. Die Einstellung DisablePasswords=Yes deaktiviert diesen Befehl, auch für Hosts.

Relevanter Konfigurationsparameter: DisablePasswords

racename Minimale Abkürzung: ra
Syntax: racename get
Syntax: racename long|short|adjective <name>
Aktiviert über: CPEnableRaceName
Geänderte Dateien: race.nm
Seit: PHost 1.0

Mit diesem Befehl kannst du den Namen deines Volkes abfragen oder ändern.

refit Minimale Abkürzung: ref
Syntax: refit <id> <eng> <bt> <bc> <tt> <tc>
Aktiviert über: CPEnableRefit
Seit: PHost 4.0h

Mit diesem Befehl kannst du angeben, welche Teile du mit der Super-Refit-Mission in dein Schiff einbauen möchtest.

eng Typ der Triebwerke (1..9)
bt Typ der Geschütze (1..10)
bc Anzahl Geschütze (0..20)
tt Typ der Torpedorohre (1..10)
tc Anzahl Torpedorohre (0..20)

Du kannst ein Schiff nicht abrüsten. Das heißt, du kannst ein Waffensystem nicht auf eine kleinere Version umrüsten, und du kannst die Anzahl nicht verringern. Wenn du das versuchst, wird der entsprechende Auftrag ignoriert (wenn du also versuchst, ein Schiff mit zwei Mark-4-Torpedorohren auf ein Mark-6-Rohr "aufzurüsten", wird es stattdessen auf zwei Mark-6-Rohre aufgerüstet). Wenn du eine bestimmte Komponente also nicht tauschen willst, kannst du den entsprechenden Parameter auf 0 setzen. Du kannst Parameter vom Ende an weglassen. Wenn du mehr Waffen angibst, als das Schiff zulässt, korrigiert PHost den Befehl entsprechend.

Die benötigten Teile müssen an der Sternenbasis verfügbar sein.

Dieser Befehl setzt die Mission des Schiffes implizit auf Super Refit. Er kann nur für Schiffe der Föderation benutzt werden.

Beispiele:

refit 13 9 Schiff #13 wird auf Transwarp Drives (Typ 9) aufgerüstet, die Waffen werden nicht verändert (da sie implizit mit 0 angenommen werden)
refit 13 0 4 5 Schiff #13 wird auf 5 Blaster (Typ 4) aufgerüstet. Die Triebwerke werden nicht geändert, da als Typ eine 0 angegeben wurde. Wenn das Schiff bereits mehr Geschütze hat, wird die Anzahl nicht geändert (aber die Waffen werden aufgerüstet). Wenn das Schiff bereits einen besseren Typ Geschütze hat, wird der Typ nicht geändert (aber die Anzahl wird wie angegeben erhöht).
refit 13 0 0 20 0 20 Schiff #13 wird auf die maximal mögliche Anzahl Waffensysteme aufgerüstet. Der Typ der Waffen wird nicht verändert (da 0 angegeben wurde), die Anzahlen werden jedoch maximiert (20 ist die maximale Anzahl, die ein Schiff haben kann).
remote Minimale Abkürzung: re
Syntax: remote control|drop <id>
Syntax: remote forbid|allow <id>
Syntax: remote forbid|allow default
Syntax: remote give <id> [to] <race>
Aktiviert über: CPEnableRemote
Geänderte Dateien: auxdata.hst
Seit: PHost 3.0 ("give": 4.0e/3.4h)

Dieser Befehl dient der Nutzung der Fernsteuerung (Remote Control). Siehe dort für mehr Informationen.

Dieser Befehl hat vier Anwendungsfälle:

Beispiele:

remote control 42 Kontrolle über Schiff 42 übernehmen
re c 42 das gleiche, abgekürzt
re a 42 Schiff 42 für Remote Control freigeben
rem forbid def alle Schiffe, die du zukünftig baust, werden standardmäßig nicht für Remote Control freigegeben sein

(v3.4c:) Remote-Control-Befehle werden in der Reihenfolge (1) drop, (2) allow and forbid, (3) request, (4) give ausgeführt. Insbesondere kannst du die Fernsteuerung für ein Schiff erlauben (allow) und dein Verbündeter kann die Steuerung im selben Zug übernehmen (control). In früheren PHost-Versionen wurden die Befehle in der Reihenfolge bearbeitet, in der sie ankamen, damit konnte dieses Manöver fehlschlagen, wenn der control-Befehl vor dem allow empfangen wurde.

rumor Minimale Abkürzung: ru
Syntax: rumor <player...>
Syntax: rumor universal
Seit: PHost 1.0 ("universal" seit 2.6b)

Dieser Befehl ähnelt dem Befehl message (siehe dort für eine Beschreibung der Parameter), sendet allerdings eine Nachricht ohne Absender. Der Empfänger erfährt nicht, von wem die Nachricht stammt.

Du kannst eine Nachricht auch ohne diesen Befehl anonym senden, indem du die Zeichenfolge *w* irgendwo darin platziert.

Die alternative Schreibweise rumour wird ebenfalls akzeptiert.

==> In PHost vor 3.4c garantiert dieser Befehl keine Anonymität. In 3.4c und danach ist die Anonymität gewährleistet. Das macht einfach mehr Spaß :-)

==> Wenn anonyme Nachrichten in deinem Spiel nicht erlaubt sind, wird die Nachricht mit Absenderangabe gesendet.

Relevante Konfigurationsparameter: AllowPlayerMessages, AllowAnonymousMessages.

send Minimale Abkürzung: s
Syntax: send <item>
Aktiviert über: CPEnableSend
Seit: PHost 2.0

Mit diesem Befehl kannst du eine Datei von PHost anfordern. Diese Datei wird mit einem Dateitransfer in util.dat übermittelt, wo ein Client-Programm sie empfangen kann.

Die folgenden Dateien können angefordert werden:

send racenames Sendet dir die aktuellen Völker-Namen (race.nm). Programme, die Nachrichten auswerten, benötigen das, um die Nachrichten zu verstehen. Außerdem ist es natürlich nützlich, wenn alle Spieler einig sind, wer den heute die Frogs spielt. Spieler, die registriertes Winplan einsetzen, erhalten die aktuellen Namen automatisch jeden Zug in einem speziellen Bereich ihrer Results mitgeteilt. (v2.9d)
send config Sendet dir die aktuelle Konfiguration (pconfig.src). Einige Clients nutzen diese Datei, um korrekte Vorhersagen liefern zu können. (v2.0)
send fcodes Sendet dir eine Liste der aktuellen Spezial-Kommandocodes (xtrfcode.txt). Diese Datei listet einfach die Kommandocodes nacheinander auf. (v3.0)
show Minimale Abkürzung: sh
Syntax: show minefield|planet|ship <id> [to] <player...>
Aktiviert über: CPEnableShow
Seit: PHost 4.0h

Dieser Befehl kann benutzt werden, um Informationen über ein Objekt an einen anderen Spieler zu senden. Das ähnelt dem Einrichten einer Minen-, Planeten- oder Schiffs-Allianz, erlaubt aber eine genauere Auswahl der zu übertragenden Daten.

Diese Befehle können nur vom richtigen Besitzer eines Objektes gegeben werden. Wenn du ein Schiff fernsteuerst, kannst du diesen Befehl für das Schiff nicht benutzen, nur der richtige Eigentümer kann dies tun.

show minefield Dieser Befehl erzeugt eine Minen-Scan-Nachricht und den entsprechenden Eintrag in util.dat. Der Empfänger erhält jedoch keine weiteren Sonderrechte bezüglich des Minenfeldes (er ist nicht immun).
show planet Dieser Befehl erzeugt einen Planeten-Eintrag in util.dat. Der Empfänger erhält keine weiteren Sonderrechte bezüglich des Planeten.
show ship Dieser Befehl erzeugt einen normalen visuellen Scan (Target). Der Empfänger kann dann das Schiff zum Beispiel abfangen (da man alle Schiffe abfangen kann, die man sieht), weitere Sonderrechte werden jedoch nicht vergeben.

Die Informationen werden am Ende des Zuges gesendet und enthalten den neuen Zustand des Objektes. Wenn du das Objekt während des Zuges verlierst, wird der Befehl still ignoriert. Wenn du die jetzt aktuellen Daten senden willst (die also veraltet sind, wenn der Empfänger sie erhält), kannst du das ohne PHosts Mitwirkung tun, beispielsweise mit der Datentransfer-Funktion mancher Clients.

==> Du kannst das Schiff noch nicht im selben Zug abschleppen, in dem dein Freund show ship ausführt - du musst warten, bis du das Schiff in deinem Result siehst. Das gilt ebenso für Allianzen.

transfer Minimale Abkürzung: tra
Syntax: transfer <ship> <cargo..> [to <target>]
Seit: PHost 4.0h

Schiffe können pro Zug an ein fremdes Schiff Fracht übergeben. Dieser Befehl ergänzt oder ersetzt die entsprechende Funktion der Clients, um existierende Beschränkungen zu umgehen.

Dieser Befehl weist das angegebene Schiff ship an, die angegebene Fracht cargo an das Zielschiff target zu übergeben.

Die Frachtmenge kann folgendermaßen angegeben werden:

Nnnn Neutronium
Tnnn Tritanium
Dnnn Duranium
Mnnn Molybdenum
Cnnn Kolonisten
Snnn Vorräte (Supplies)
$nnn Geld
Wnnn Raumjäger oder Torpedos
xmax so viel wie möglich übergeben. Das Wort max muss ausgeschrieben werden und kann nicht abgekürzt werden.
x<zahl> die angegebene Menge übergeben

Interaktion mit der Client-Funktion: Wenn du bereits mit der entsprechenden Funktion deines Clients einen Transportauftrag an ein fremdes Schiff gegeben hat, muss der target-Befehl sich auf das gleiche Schiff beziehen; die beiden Aufträge werden zusammen ausgeführt. Du kannst pro Zug nur zu einem Schiff Fracht transferieren. In diesem Fall kannst du dann aber den Teil to <target> des Befehles weglassen.

Voraussetzungen:

Relevanter PControl-Schritt: CargoTransfer

unload Minimale Abkürzung: unl
Syntax: unload <ship> <cargo..>
Seit: PHost 4.0h

Schiffe können Fracht auf einen Planeten abladen, oder in den freien Raum abwerfen (jettison). Dieser Befehl ergänzt oder ersetzt die entsprechende Funktion der Clients, um existierende Beschränkungen zu umgehen.

Dieser Befehl weist das angegebene Schiff ship an, die angegebene Fracht cargo auf den Planeten abzuladen, den das Schiff umkreist, beziehungsweise diese Fracht in den Weltraum abzulassen, wenn es keinen Planeten umkreist.

Die Frachtmenge kann folgendermaßen angegeben werden:

Nnnn Neutronium
Tnnn Tritanium
Dnnn Duranium
Mnnn Molybdenum
Cnnn Kolonisten
Snnn Vorräte (Supplies)
$nnn Geld
Wnnn Raumjäger oder Torpedos
xmax so viel wie möglich abladen. Das Wort max muss ausgeschrieben werden und kann nicht abgekürzt werden.
x<zahl> die angegebene Menge abladen

Interaktion mit der Client-Funktion: Wenn du bereits mit der entsprechenden Funktion deines Clients Fracht auf einen fremden Planeten abgeladen bzw. über Bord geworfen hast, wird der unload-Befehl dazu addiert.

Voraussetzungen:

Relevanter PControl-Schritt: CargoDump

xtern Minimale Abkürzung: x
Syntax: xtern <command...>
Geänderte Dateien: xterncmd.ext
Seit: PHost 1.0

Der Befehl xtern kann benutzt werden, um Befehle an ein Addon zu übermitteln. Die anderen Befehle werden von PHost verarbeitet, während xtern-Befehle auch von Addons verarbeitet werden können, die dies tun möchten.

Dieser Befehl schreibt seinen Parameter in die Datei xterncmd.ext im Spielverzeichnis, inklusive deiner Spielernummer. Wenn du also Spieler 3 bist, und den Befehl

xtern ich kaufe einen vokal

gibst, wird die Zeile

3: ich kaufe einen vokal

in die Datei xterncmd.ext geschrieben.

Wenn das erste Wort des Befehles mit einem Doppelpunkt endet, kannst du das Wort xtern auch weglassen. Die folgenden beiden Befehle sind äquivalent:

xtern mfq: keep 3
mfq: keep 3

Die verfügbaren Befehle hängen davon ab, welche Addons im Spiel aktiv sind. Dieser Befehl ergibt daher niemals einen Fehler, PHost kann nicht wissen, ob ein Addon den aktuellen Befehl auswerten wird.

Nach oben


Befehle für Hosts

Die folgenden Befehle stehen nur dem Host zur Verfügung. Sie werden über die Datei auxcmds.txt gegeben. Um einen der Befehle auszuführen, schreibe eine Zeile control: befehl in diese Datei.

Diese Befehle stehen Spielern nicht zur Verfügung.

addfunction Nur für Hosts, Minimale Abkürzung: addfunc
Syntax: control: addfunction <id> <funktion>
Geänderte Dateien: auxdata.hst
Seit: PHost 4.0i

funktion ist die Nummer oder der Name einer Schiffsfunktion, id ist eine Schiffs-Id. Dieser Befehl weist dem Schiff permanent die angegebene Funktion zu.

Beispielsweise erlaubt der Befehl addfunc 39 cloak Schiff 39 von nun an zu tarnen.

inhibitfunction Nur für Hosts, Minimale Abkürzung: inhibit
Syntax: control: inhibitfunction <id> <funktion>
Geänderte Dateien: auxdata.hst
Seit: PHost 4.0i

funktion ist die Nummer oder der Name einer Schiffsfunktion, id ist eine Schiffs-Id. Dieser Befehl verhindert, dass das Schiff in diesem Zug die angegebene Funktion nutzt. Das Schiff wird sich verhalten, als ob es diese Funktion nicht hätte. inhibitfunction hat Vorrang vor allen anderen Möglichkeiten, über die das Schiff diese Funktion nutzen könnte. Wenn du diesen Befehl zusammen mit addfunction gibst, wird PHost zwar notieren, dass das Schiff nun die neue Funktion hat, wird es sie aber diesen Zug nicht nutzen lassen.

Beispiele:

inhibit 39 cloak Verbiete dem Schiff 39, diesen Zug zu tarnen.
inhibit 39 unclonable Erlaube dem Schiff 39, diesen Zug zu klonen.

==> Dieser Befehl gilt nur einen Zug. Wenn du ihn nächsten Zug nicht noch einmal gibst, wird das Schiff dann wieder tarnen können, und wieder unklonbar sein.

removefunction Nur für Hosts, Minimale Abkürzung: remove
Syntax: control: removefunction <id> <funktion>
Geänderte Dateien: auxdata.hst
Seit: PHost 4.0i

funktion ist die Nummer oder der Name einer Schiffsfunktion, id ist eine Schiffs-Id. Dieser Befehl entfernt die angegebene Funktion permanent von dem Schiff. Es können nur Funktionen entfernt werden, die dem Schiff direkt zugewiesen wurden (über addfunction oder eine AssignTo=Ship-Anweisung); wenn du dem Schiff die Funktion über eine AssignTo=Hull-Anweisung zugewiesen hast, kann sie mit diesem Befehl nicht entfernt werden.

Wenn das Schiff die angegebene Funktion nicht hat, hat dieser Befehl keine Wirkung.

Beispielsweise kann nach remove 39 unclonable Schiff 39 wieder geklont werden (falls nicht mittels hullfunc.txt sein Hüllentyp unklonbar gemacht wurde).

Nach oben


Befehle beim Client speichern

Programme, die Befehle erzeugen, müssen diese auch an den Host senden können, aber auch in der Lage sein, die Befehle in den Client-Daten wiederzufinden. Es gibt zwei Wege, dies zu erreichen, die hier beschrieben werden.

In der Nachrichten-Datei

Du kannst die Befehle direkt in der Nachrichtendatei (messX.dat, mess35X.dat) ablegen. Dies ist die sauberste Methode, allerdings benötigt es etwas Aufwand, um die Befehle wieder zu finden (beispielsweise, wenn der Benutzer einen Befehl löschen will).

Wenn Benutzer die Befehle selbst schreiben, kann dein Programm eventuell auch einen solchen Befehl finden und manipulieren; das kann erwünscht sein oder nicht.

Der große Vorteil dieser Methode ist, dass sie mit jedem Maketurn-Programm funktioniert.

Die Befehls-Datei

Um diese Probleme zu lösen, haben wir ein Dateiformat für zusätzliche Befehle definiert. Diese Datei kann nicht nur PHost-Befehle, sondern auch andere neue Befehle aufnehmen, die du erzeugen möchtest. Der Nachteil ist, dass du ein modifiziertes Maketurn benötigst, um die Befehle auch an den Host zu senden.

Die Befehlsdatei heißt cmdX.txt, dabei ist X die Spielernummer. Diese Datei ist eine einfache Textdatei. Jede Zeile enthält dabei eins der folgenden:

Die folgenden Spezialbefehle sind momentan definiert:

Bei jedem Befehl ist angegeben, welches Maketurn ihn unterstützt (Stand März 2003). Fühle dich dazu aufgerufen, diese Befehle auch in deinem Client zu unterstützen und, falls nötig, neue Befehle einzuführen. Um Verwirrung zu vermeiden ist es empfehlenswert, dieses Dateiformat zu benutzen anstatt ein neues, inkompatibles Format zu erfinden.

Beispiel:

# Additional Commands
$time 04-14-199921:34:42
allies add 9
allies config 9 +c ~m

Die erste Zeile ist ein Kommentar. In der zweiten ist angegeben, zu welchem Zug diese Datei gehört. Die dritte und vierte Zeile enthalten zwei allies-Befehle.

Nach oben


Dieses Dokument wird vom Portable Host Projekt (support@phost.de) gepflegt.

Letzte Aktualisierung 15 October 2005.