PHost - Befehlsprozessor

PHost 4.1h


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:

  • Wenn ein Spieler eine öffentliche Nachricht (universal message), erhält er die Nachricht selbst ebenfalls. Also sind für diese Nachricht Sender und Empfänger identisch, was den PHost-Befehlsprozessor auf den Plan rufen würde. Da die erste Zeile einer öffentlichen Nachricht allerdings immer
    <<< Universal Message >>>
    ist, wird die Nachricht wegen des führenden '<' als normale Nachricht verarbeitet. Gleiches gilt für Team-Nachrichten von VPA.
  • Spieler, die die Nachrichtenfunktion als Gedächtnisstütze nutzen, können sich weiterhin selbst Nachrichten senden, indem sie die Nachricht mit '<' beginnen, so dass der Befehlsprozessor sie nicht abfängt.

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[Remote], Planets Command Center[Remote] und die neusten Versionen von VPA[Remote] 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 oder neue Funktionen hinzufügen, 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:

  • Einschränkungen der Konfiguration sind für Befehle, die aus dieser Datei gelesen wurden, nicht relevant. Selbst, wenn CPEnableAllies ausgeschaltet ist, akzeptiert PHost allies-Befehle aus auxcmds.txt, und führt sie aus.
  • Die Ausführungsreihenfolge unterscheidet sich leicht. Normale Remote-Control- und Allianz-Befehle werden vor Auxhost1 ausgeführt (letztere nur, wenn DelayAllianceCommands ausgeschaltet ist, was die Standardeinstellung ist), während auxcmds.txt nach Auxhost1 verarbeitet wird. Die vollständige Reihenfolge ist daher
    1. alle Allianzbefehle aus den Turndateien ausführen
    2. alle Remote-Control-Befehle aus den Turndateien ausführen, in der Reihenfolge "give", "allow/forbid", "control", "give"
    3. hier kommt Auxhost1
    4. alle Allianzbefehle aus auxcmds.txt ausführen
    5. alle Remote-Control-Befehle aus auxcmds.txt ausführen, in der Reihenfolge "give", "allow/forbid", "control", "give"
    Insbesondere kann remote control aus einer Turndatei fehlschlagen, wenn die entsprechende Allianz erst im vierten Schritt hergestellt wird; ein remote forbid aus auxcmds.txt überschreibt ein remote allow aus der Turndatei.
  • Der Kompatibilität zu extern behandelten Befehlen können Befehle hier einen Doppelpunkt direkt nach dem Befehlswort haben, wie in 6: allies: add 4 ("die Cyborgs bieten den Klingonen eine Allianz an")
  • Die Befehle message, rumor und xtern werden in dieser Datei nicht akzeptiert, ebensowenig wie adressierte Befehle.

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 verwenden:

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)

(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, direkt nach 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.

Es ist möglich, sich widersprechende Befehle zu geben. Dieses Dokument beschreibt daher für jeden Befehl, wie diese Konflikte aufgelöst werden.


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.

  • Der Unterbefehl add bietet dem angegebenen Spieler eine Allianz an bzw. nimmt ein Allianz-Angebot an. Eine Allianz gilt als zustandegekommen, wenn beide Spieler einander mit add als Freunde deklariert haben. Die Parameterliste enthält die Spielernummern, von 1 für die Föderation bis 11 (nicht B!) für die Colonies.
  • Der Unterbefehl drop storniert eine Allianz bzw. zieht ein Angebot zurück. Wie bei add kann eine Liste von Spielernummern übergeben werden.
  • Der Unterbefehl config legt die Privilegien eines Verbündeten fest. Der erste Parameter ist der Spieler, danach folgen dessen Allianz-Privilegien. Die Allianz muss bereits bestehen, damit dieser Befehl eine Wirkung hat. Du kannst ihn gleich im selben Zug setzen, in dem du dein Allianz-Angebot abgibst.
    Parameter Aktion
    +priv Privileg bedingungslos anbieten
    ~priv Privileg bedingt anbieten
    -priv Privileg zurückziehen
    +/-ships Schiffs-Privileg bieten/zurückziehen
    +/-planets Planeten-Privileg bieten/zurückziehen
    +/-mines Minenfeld-Privileg bieten/zurückziehen
    +/-combat Kampf-Privileg bieten/zurückziehen
    +/-vision Vision-Privileg bieten/zurückziehen
    Wie üblich können die Privilegien bis auf ihren ersten Buchstaben abgekürzt werden.

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.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.

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 beamup 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

Konflikt-Auflösung: Dieser Befehl betrifft die Mission des Schiffs, und steht damit in Konflikt mit anderen Befehlen, die dies ebenfalls tun. Die Mission, die letztendlich vom Schiff ausgeführt wird, wird durch folgende Befehle, in absteigender Prioritätsreihenfolge, bestimmt: refit, beamup, extmission, und auf dem Schiffsbildschirm eingestellte Mission. Wenn das Schiff beispielsweise sowohl einen refit-Befehl, als auch einen beamup-Befehl hat, wird es nur refit ausführen.


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.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.


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 die meisten Programme, die sie anzeigen könnten, sie auch finden. Für einige alte Programme wie z.B. VPUtil muss jedoch diese Option aktiviert werden, um alles zu sehen.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.


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:

PHost behandelt aktuell nur VPA gesondert: wenn VPA einen Turn im DOS-Format einreicht, wird PHost am Ende des Hostlaufes weder lange Waypoints einkürzen noch erweiterte Missionen löschen, wie er das normalerweise für DOS-Clients tut, da bekannt ist, dass VPA damit umgehen kann. Siehe auch Welche Vorteile haben Winplan- und VPA-Nutzer gegenüber anderen? in der FAQ.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.


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.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.


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.

  • Der erste Parameter ist die Id-Nummer des Schiffes, dessen Mission du einstellen möchtest.
  • Der zweite Parameter ist die Missionsnummer. Die Missionsnummern sind in mission.ini aufgelistet und unter Erweiterte Missionen dokumentiert. Dieser Befehl kann nicht benutzt werden, um eine Standard-Mission zu setzen, nutze dafür die normalen Missions-Funktionen deines Clients. Mit diesem Befehl kannst du aber Addon-Missionen setzen.
  • Der dritte und vierte Parameter sind Parameter 1 (I) und Parameter 2 (T) der Mission. Es hängt von der Mission ab, ob diese Parameter benötigt werden und welche Werte erlaubt sind.

==> 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.

Konflikt-Auflösung: Dieser Befehl betrifft die Mission des Schiffs, und steht damit in Konflikt mit anderen Befehlen, die dies ebenfalls tun. Die Mission, die letztendlich vom Schiff ausgeführt wird, wird durch folgende Befehle, in absteigender Prioritätsreihenfolge, bestimmt: refit, beamup, extmission, und auf dem Schiffsbildschirm eingestellte Mission. Wenn das Schiff beispielsweise sowohl einen refit-Befehl, als auch einen beamup-Befehl hat, wird es nur refit ausführen.


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.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.


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, indem sich diese Völker die Schiffe gleichzeitig gegenseitig übergeben.

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:

  • Der Empfänger muss ein Schiff oder einen Planeten an der selben Stelle haben (Typ, Tarnung und Fracht spielt keine Rolle).
  • Schiff ist nicht Ungiveable
  • Für die Übergabe benötigt das Schiff keinen Treibstoff.

Folgen:

  • Mission wird zurückgesetzt, (v4.0j:) Tarnung wird aufgehoben (Schiffe);
  • Kurs wird gelöscht, das Schiff wird sich diesen Zug nicht bewegen (Schiffe);
  • Primärziel wird gelöscht (Schiffe);
  • Kommandocode wird auf einen zufälligen Wert gesetzt (Schiffe und Planeten);
  • Eingelagerte Raumschiffhüllen werden recycelt (Sternenbasis);
  • Schiffs-Bauauftrag wird storniert (Sternenbasis). Wenn die Basis ein Schiff klont, wird dieser Auftrag aus der Bauliste entfernt und am Ende wieder aufgenommen, falls er für den neuen Besitzer immer noch gültig ist;
  • (v4.0k:) Raumdock-Auftrag (Reparatur, Recycling) wird storniert (Sternenbasis).

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.

Relevante Konfigurationsparameter: CPEnableGive (wenn diese Option den Wert Allies hat, können Schiffe und Planeten nur an Verbündete übergeben werden)

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. Die verfügbaren Sprachen hängen von der Sprachdatei (plang4.hst) ab, die der Host installiert hat. Die standardmäßig mit PHost gelieferte Datei enthält die folgenden Sprachen:

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

Der Rückwärtskompatibilität wegen erlaubt PHost, die Sprachnamen bis auf die Minimalabkürzung in Spalte 2 abzukürzen. Andere Sprachen, die möglicherweise zusätzlich installiert sind, können nicht derartig abgekürzt werden.

==> 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. In dieser muss nicht auf Kompatibilität mit den erwähnten Programmen geachtet werden, daher konnten Wortlaut und Formatierung verbessert werden.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.


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.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.

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.

  • Der Unterbefehl get bekommt keine weiteren Parameter und liefert als Ergebnis eine Liste mit deinen drei Namen (lang, kurz, Adjektiv).
  • Der Unterbefehl long verändert deinen langen Namen ("The Lizard Alliance"). Der lange Name kann bis zu 30 Zeichen haben und wird vor allem für Überschriften benutzt (im Client-Programm und in Subraumnachrichten).
  • Der Unterbefehl short verändert deinen kurzen Namen ("The Lizards"). Dieser Name kann bis zu 20 Zeichen haben. Er wird in der Punktetabelle und in Client-Programmen ("This ship is owned by The Lizards") benutzt.
  • Der Unterbefehl adjective ändert das Adjektiv deines Namens ("Lizard"). Das Adjektiv kann 12 Zeichen haben und wird in Nachrichten verwendet ("Wir haben ein Lizard-Schiff gekapert").

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.


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 Teil des Auftrags 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).

Konflikt-Auflösung: Dieser Befehl betrifft die Mission des Schiffs, und steht damit in Konflikt mit anderen Befehlen, die dies ebenfalls tun. Die Mission, die letztendlich vom Schiff ausgeführt wird, wird durch folgende Befehle, in absteigender Prioritätsreihenfolge, bestimmt: refit, beamup, extmission, und auf dem Schiffsbildschirm eingestellte Mission. Wenn das Schiff beispielsweise sowohl einen refit-Befehl, als auch einen beamup-Befehl hat, wird es nur refit ausführen.

Wenn mehrere refit-Befehle für ein Schiff gegeben werden, wird der letzte wirksam werden.


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:

  • Mit dem Unterbefehl control kann die Steuerung eines verbündeten Schiffes übernommen werden, mit drop wird sie zurückgegeben. Der Verbündete muss dir dazu das Schiffs-Privileg angeboten haben und das Schiff muss für Fernsteuerung freigegeben sein.
  • (v4.0e:) Der give-Befehl kann benutzt werden, um das Schiff unter Kontrolle eines Verbündeten zu stellen. Der Befehl ist identisch zu remote allow direkt gefolgt von einem entsprechenden remote control durch den Spieler, der das Schiff steuern soll. Der einzige Unterschied ist, dass hier nur der Schiffsbesitzer einen Befehl geben muss, so dass etwas Kommunikation entfällt. Alle anderen Einschränkungen bleiben bestehen. Insbesondere müssen beide Spieler verbündet sein.
  • Der Unterbefehl forbid mit einer Schiffs-Id verbietet Verbündeten, die Steuerung dieses Schiffes zu übernehmen, solange, bis du es mit dem Unterbefehl allow wieder erlaubst. Wenn du die Fernsteuerung eines Schiffes untersagst, welches bereits ferngesteuert wird, erhältst du das Schiff zurück.
  • Die Unterbefehle forbid und allow mit dem Schlüsselwort default legen fest, ob neu gebauten Schiffe fernsteuerbar sein sollen oder nicht. Diese Einstellung gilt für alle Schiffe, die du nach dem Absetzen des Befehls baust. Zum Anfang eines Spieles nimmt PHost die Einstellung allow an.

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.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.


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 denn 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

Genaue Funktionsweise: Dieser Befehl ergänzt die client-seitige Funktion zum Frachttransfer zu fremden Schiffen ("T" in planets.exe). Wie diese Funktion hat auch dieser Befehl zwei Teile:

  • Während der Verarbeitung der Turns wird das Frachtgut aus dem Frachtraum in den Frachttransporter verschoben.
  • Wärend der CargoTransfer-Stufe wird die Fracht dann dem Zielschiff übergeben. Wenn das Zielschiff nicht genug Frachtraum hat, um die Ware aufzunehmen, bekommst du sie zurück.

Als Folge daraus kannst du keine Dinge übergeben, die du noch nicht hast, wenn du den Befehl gibst (z.B. Geld, das du durch Spielhallen-Schiffe einnimmst), außerdem ist die übergebene Ware durch Robbing gefährdet.

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.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.

Voraussetzungen: (müssen erfüllt sein, damit der Befehl akzeptiert wird)

  • Schiff muss sich an der selben Position wie das Zielschiff befinden
  • Schiffe müssen von verschiedenen Spielern gesteuert werden (ansonsten kannst du auch die entsprechende Client-Funktion nutzen, um das gleiche Ergebnis zu erhalten)
  • das gebende Schiff muss genug Fracht haben (ansonsten wird weniger transferiert)

Voraussetzungen: (müssen erfüllt sein, damit der Transfer stattfindet)

  • Schiff muss Treibstoff haben
  • Schiffe müssen das gleiche Sekundärwaffensystem haben, wenn Raumjäger oder Torpedos übergeben werden
  • das Zielschiff muss genug Platz im Frachtraum haben (ansonsten wird das überschüssige Frachtgut dem gebenden Schiff zurückgegeben)

Relevanter PControl-Schritt: Host Phase I (Fracht wird in Transporter bewegt), CargoTransfer (Fracht wird dem Ziel übergeben)


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

Genaue Funktionsweise: Dieser Befehl ergänzt die client-seitige Funktion zum Frachttransfer zu fremden Planeten bzw. zum Überbordwerfen von Fracht ("C" in planets.exe). Wie diese Funktion hat auch dieser Befehl zwei Teile:

  • Während der Verarbeitung der Turns wird das Frachtgut aus dem Frachtraum in den Frachttransporter verschoben.
  • Während der CargoTransfer-Stufe wird die Fracht dann dem Zielplaneten übergeben bzw. in den freien Raum ausgeworfen.

Als Folge daraus kannst du keine Dinge ausladen, die du noch nicht hast, wenn du den Befehl gibst (z.B. Geld, das du durch Spielhallen-Schiffe einnimmst), außerdem ist die zu entladende Ware durch Robbing gefährdet.

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.

Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.

Voraussetzungen: (müssen erfüllt sein, damit der Befehl akzeptiert wird)

  • wenn das Schiff einen Planeten umkreist, muss dieser einem anderen Spieler gehören (ansonsten kannst du auch die entsprechende Client-Funktion nutzen, um das gleiche Ergebnis zu erhalten)
  • das gebende Schiff muss genug Fracht haben (ansonsten wird weniger transferiert)

Voraussetzungen: (müssen erfüllt sein, damit der Transfer stattfindet)

  • Schiff muss Treibstoff haben
  • wenn Raumjäger oder Torpedos übergeben werden, muss der Planet eine Sternenbasis haben, die diese aufnimmt
  • wenn Raumjäger übergeben werden, muss die Sternenbasis genügend Platz haben (ansonsten werden die überschüssigen Raumjäger dem Schiff zurückgegeben)

Relevanter PControl-Schritt: Host Phase I (Fracht wird in Transporter bewegt), CargoTransfer (Fracht wird dem Ziel übergeben)


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 ist dabei eins der folgenden:

  • leer. Leerzeilen werden ignoriert.
  • ein Kommentar. Zeilen, deren erstes nicht-leeres Zeichen ein # ist, werden ignoriert.
  • ein Befehl. Diese werden unverändert als Befehlsnachrichten an den Host gesendet.
  • ein Spezialbefehl, der mit $ beginnt und eine besondere Aktion bewirkt.

Die folgenden Spezialbefehle sind momentan definiert:

  • $timestamp MM-DD-YYYYhh:mm:ss
    Zeitstempel. Die Datei gilt als veraltet und sollte ignoriert werden, wenn der Parameter nicht der Zeitstempel des aktuellen Zuges ist. Dieser Befehl muss, falls er verwendet wird, der erste in der Datei sein. Er kann bis auf "$time" abgekürzt werden. Dieser Befehl wird von PCC 1.0.17, VPA 3.61 und Portable Maketurn unterstützt.
  • $send-file NAME
    Erzeugt einen SendBack-Befehl mit einem Datei-Transfer, der die angegebene Datei enthält. Wird von PCC 1.1.2 und VPA 3.61 unterstützt.
  • $thost-allies ee1ff2
    Erzeugt eine Folge von Allianzbefehlen für HOST. Wird von PCC 1.0.17 und Portable Maketurn unterstützt.
  • $include NAME
    Angegebene Datei einbinden. Dieser Befehl wird momentan von keinem Programm unterstützt.

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


Letzte Aktualisierung 31 May 2015.


Mail support@phost.de for support, ideas, bug reports, questions. Contact Details