PHost - BefehlsprozessorPHost 4.1h |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Docs v4.x
|
Inhalt
EinleitungPHost 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. Befehlsnachrichten sendenSpieler 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 BefehlsnachrichtJede Befehlsnachricht hat folgendes Format:
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
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 AddonsSeit Version 3.4b akzeptiert PHost ein besonderes Format für Nachrichten an Addons:
(das erste Wort endet mit einem Doppelpunkt). Das bewirkt exakt das selbe wie die alte Methode,
(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:
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 verwenden:
(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:
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. Beschreibung der BefehleDieses 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.
Die drei Unterbefehle von allies dienen dem Einrichten einer formalen Allianz.
Beispiele:
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
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.
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:
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.
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.
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.
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.
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:
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.
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:
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.
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.
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:
Voraussetzungen:
Folgen:
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.
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:
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.
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.
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
Mit diesem Befehl kannst du den Namen deines Volkes abfragen oder ändern.
Konflikt-Auflösung: Befehle werden in der Reihenfolge ausgeführt, in der sie erhalten werden. Damit wird der letzte Befehl wirksam.
Mit diesem Befehl kannst du angeben, welche Teile du mit der Super-Refit-Mission in dein Schiff einbauen möchtest.
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:
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.
Dieser Befehl dient der Nutzung der Fernsteuerung (Remote Control). Siehe dort für mehr Informationen. Dieser Befehl hat vier Anwendungsfälle:
Beispiele:
(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.
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.
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:
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.
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.
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:
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:
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)
Voraussetzungen: (müssen erfüllt sein, damit der Transfer stattfindet)
Relevanter PControl-Schritt: Host Phase I (Fracht wird in Transporter bewegt), CargoTransfer (Fracht wird dem Ziel übergeben)
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:
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:
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)
Voraussetzungen: (müssen erfüllt sein, damit der Transfer stattfindet)
Relevanter PControl-Schritt: Host Phase I (Fracht wird in Transporter bewegt), CargoTransfer (Fracht wird dem Ziel übergeben)
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
gibst, wird die Zeile
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:
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. Befehle für HostsDie 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.
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.
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:
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.
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). Befehle beim Client speichernProgramme, 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-DateiDu 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-DateiUm 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:
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:
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. Letzte Aktualisierung 31 May 2015. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
support@phost.de for support, ideas, bug reports, questions. Contact Details | Mail