PHost - Host-Ablauf

PHost 4.1h


Inhalt

Einleitung

Während des Hostlaufes passieren Dinge in einer bestimmten Reihenfolge: Missionen, Produktion, Bewegung, und so weiter. Spieler sollten diese Reihenfolge kennen. Beispielsweise werden Minenfelder vor der Bewegung gelegt, so dass das Minenfeld an der Position entsteht, an der das Schiff sich momentan aufhält, nicht an der Position, wo es hinfliegt. Dieses Dokument beschreibt den kompletten Ablauf der Aktionen in PHost. Außerdem wird beschrieben, wie du deine eigenen Schritte in den Ablauf integrieren kannst.

Nach oben


Host-Reihenfolge

PHost besteht aus drei Phasen; die mittlere Phase ist in Schritte (stages) unterteilt. Die Reihenfolge dieser Teile ist konstant. Hosts können jedoch einige Teile deaktivieren und an jeder Stelle zwischen zwei Schritten oder Phasen Addons laufen lassen.

Phase 1 - Verarbeitung der Turns

  • PHost wird initialisiert, Auswertung der Kommandozeile, usw.
  • Die Host-Daten werden eingelesen und überprüft.
  • Turndateien werden in einer zufällig gewählten Reihenfolge eingelesen. Die Dateien werden auf Mogeleien überprüft und dann in die Host-Daten übertragen. Damit werden alle Änderungen der Clients (Missionen, Frachttransfer zwischen Einheiten eines Volkes, ...) wirksam. transfer und unload verschieben Fracht in die Transporter, die meisten Befehlsnachrichten werden ausgeführt. Sternenbasen werden gebaut.
  • Anonyme Nachrichten werden in zufälliger Reihenfolge gesendet.
  • (v4.0h:) In Zug 1 überprüft PHost alle Schiffe auf Schiffsfunktionen. Wenn ein Schiff laut shiplist.txt ein paar Funktionen haben sollte, aber keine hat, erhält es den Standard-Satz zugewiesen. Damit werden Master-Programme unterstützt, die die AssignTo=Ship-Funktionen nicht berücksichtigen.
  • Wenn DelayAllianceCommands ausgeschaltet ist, werden Allianzänderungen hier ausgeführt.
  • Remote Control-Befehle werden in folgender Reihenfolge ausgeführt
    • "drop"
    • "allow"/"forbid"
    • "control"
    • "give"
  • Ferngesteuerte Schiffe werden ihren Besitzern zurückgegeben.

(v3.4c:) Bis PHost 3.4b werden Allianzbefehle am Anfang von Phase 2 verarbeitet, Remote-Control-Aufträge werden in der Reihenfolge ihres Erscheinens in den Turndateien abgearbeitet. Außerdem senden diese PHost-Versionen anonyme Nachrichten in der Reihenfolge aus den Turndateien, und garantieren somit keine Anonymität.

Phase 2 - Host-Ablauf

Anmerkung zum Tarnen: Schiffe, die tarnen sollen (mittels der Missionen Cloak oder Super Spy bzw. einer der Ersatz-Missionen) beginnen den Zug getarnt, falls sie die Bedingungen dafür erfüllen. Im Laufe des Zuges können sie nur enttarnen; sobald sie einmal enttarnt sind, bleiben sie für den Rest des Zuges ungetarnt.

Alle Stellen, an denen die Tarnung versagen kann, sind in dieser Liste aufgeführt. Allerdings können auch Addon-Programme die Tarnung aufheben. Außerdem kann die Tarnung nach jedem Addon-Aufruf versagen, wenn das Schiff zu wenig Sprit oder zu viel Schaden hat.

Eingefügte Befehle: (v4.0e:) Befehle, die mit auxcmds.txt gegeben wurden, werden am Anfang von Phase 2 verarbeitet.


Schiffs-/Planeten-Übergaben
Name des Schrittes: TransferOwner

Alle give-Befehle und gsX-Kommandocodes werden überprüft und danach gleichzeitig ausgeführt. Damit können insbesondere zwei Spieler Schiffe tauschen und dennoch die Anforderung "Partner muss ein Schiff an der selben Position haben" erfüllen.

Enttarnen: (v4.0j:) Schiffe, die den Besitzer wechseln, müssen enttarnen.


Große Meteore
Name des Schrittes: LargeMeteors

Wenn LargeMeteorsImpacting nicht Null ist, gehen entsprechend viele große Meteore nieder. Ansonsten wird ein Meteor mit der Wahrscheinlichkeit RandomMeteorRate generiert.

Planeten können in einem Zug von mehreren Meteoren getroffen werden.


Meteoriten-Hagel
Name des Schrittes: MeteorShowers

Für jeden Planeten wird mit Wahrscheinlichkeit MeteorShowerOdds ein kleiner Meteoritenhagel niedergehen.

Ein Planet kann nur von einem Meteoritenhagel pro Zug betroffen sein. Allerdings kann ein Planet, auf dem ein Meteor eingeschlagen ist, dennoch Meteoriten abbekommen.


Enttarnen
Name des Schrittes: AntiCloak_1

Anti-cloak-Schiffe enttarnen Schiffe in Reichweite. Die Anti-Cloak-Schiffe werden in Id-Reihenfolge verarbeitet, so dass ein Schiff in Reichweite mehrerer Lokis von dem mit der niedrigsten Id enttarnt wird.

Enttarnen: Schiffe, die von einem Anti-Cloak-Schiff beeinflusst wurden, müssen sofort enttarnen.


Super Spy Deluxe
Name des Schrittes: DeluxeSuperSpy

Auf allen betreffenden Planeten werden die Kommandocodes geändert. Der neue Code wird über per-player-Id-Reihenfolge von dem Schiff mit der jeweils niedrigsten Id bestimmt. Siehe Mission Super Spy.

Enttarnen: Wenn der Ionenpuls ausgelöst wird (Beschreibung bei der Super-Spy-Mission), werden Schiffe sofort enttarnt.


Neue Eingeborene
Name des Schrittes: NewNativesAppear

Wählt NewNativesPerTurn-mal einen Planeten aus, der eine neue eingeborene Bevölkerung erhält. Falls auf dem Planeten bereits Eingeborene leben (oder falls der Planet diesen Zug bereits gewählt wurde) passiert nichts.


"Rob"-Mission der Privateers
Name des Schrittes: RobMission

Räuber schlagen in per-player Id order zu. Jedes Schiff raubt seine Opfer in Id-Reihenfolge aus (wenn die Piraten also nicht genug Frachtkapazität haben, um deine Flotte zu leeren, behalten die Schiffe mit den hohen Ids Fracht übrig; wenn die Opfer weniger haben, als die Räuber tragen können, gehen die Räuber mit den hohen Id-Nummern leer aus).

Falls die Prüfung der RobFailureOdds für ein Schiff fehlschlägt, wird das Schiff gar nichts rauben. Wenn RobCloakedShips eingeschaltet ist, wird RobCloakedChance für jedes Paar aus Räuber und Opfer erneut geprüft.


Kasino-Schiffe
Name des Schrittes: GamblingShips

Kasino-Schiffe generieren Geld, in Id-Reihenfolge.


Fracht abladen kann nicht übersprungen werden
Name des Schrittes: CargoDump

Schiffe laden, in Id-Reihenfolge, Frachtgut auf Planeten ab. Hier findet der normale Schiffs/Fremdplanet-Transfer statt (über die entsprechende Client-Funktion oder den Befehl unload gegeben), sowie die Aktionen des bdm-Kommandocodes und der Mission Beam Down Credits.

  • Wenn das Schiff sich an einem neutralen Planeten befindet, wird das Frachtgut ausgeladen. Wenn auch Kolonisten ausgeladen werden, wird der Planet kolonisiert.
  • Wenn das Schiff sich an einem fremden Planeten befindet, wird das Frachtgut ausgeladen. Wenn auch Kolonisten ausgeladen werden und Planet und Schiff nicht verbündet sind, kommt es zu Bodenkampf oder Imperial Assault.
  • Falls das Schiff sich im Orbit um einen Planeten befindet, der dem gleichen Spieler gehört, wird es die Fracht einfach ausladen. Normalerweise finden Frachttransfers zwischen Einheiten des selben Spielers bereits clientseitig statt und werden in Phase 1 verarbeitet. Es können jedoch dennoch Transfers innerhalb eines Volkes übrig bleiben, wenn eine Einheit den Besitzer wechselt oder ferngesteuert wird.
  • Wenn das Schiff sich im freien Raum befindet, wird das Frachtgut über Bord geworfen und dadurch vernichtet (jettison).

Dieser Schritt kann nicht übersprungen werden (während des restlichen Zuges müssen die Frachttransporter leer sein).


Fracht übergeben kann nicht übersprungen werden
Name des Schrittes: CargoTransfer

Schiffe transferieren, in Id-Reihenfolge, Fracht an andere Schiffe (Schiff/Feindschiff-Transfer, über die entsprechende Client-Funktion oder den Befehl transfer gegeben). Wenn der Frachttransfer fehlschlägt, wird das Frachtgut an das ursprüngliche Schiff zurückgegeben. Frachttransfers zwischen Schiffen desselben Besitzers werden üblicherweise schon vom Client aufgelöst und wurden daher bereits in Phase 1 verarbeitet. Frachttransfers, die eine Mission erfordern, werden später ausgeführt.

Dieser Schritt kann nicht übersprungen werden (während des restlichen Zuges müssen die Frachttransporter leer sein).


Fracht von überladenen Schiffen abwerfen kann nicht übersprungen werden
Name des Schrittes: TrimShipCargo

Schiffe können aus verschiedenen Gründen überladen sein. In diesem Schritt wird entsprechend Fracht über Bord geworfen, so dass wieder alles in den Frachtraum passt.

Dieser Schritt kann nicht übersprungen werden (während des restlichen Zuges dürfen Schiffe nicht überladen sein).


Crew-Austausch mit Akademieschiffen Seit: PHost 4.0i
Name des Schrittes: CrewExchange

Akademieschiffe tauschen, in Id-Reihenfolge, Mannschaft aus (Mission Crew Exchange).


Training Seit: PHost 4.0
Name des Schrittes: Training

Die Training-Mission wird in Id-Reihenfolge ausgeführt.


Frachttransfers
Name des Schrittes: BeamTransfers

Die folgenden Aktionen werden in Id-Reihenfolge für jedes Schiff ausgeführt:

Wenn ein Schiff sowohl eine Beam-Transfer-Mission, als auch einen Kommandocode nutzt, wird zuerst die Mission und dann der Kommandocode ausgeführt (in PHost 3.4c und eher wurde nur die Mission ausgeführt).


Frachtgut laden per Mission
Name des Schrittes: GatherMission

Die folgenden Aktionen werden in Id-Reihenfolge für jedes Schiff ausgeführt:


Planeten beamen Geld hoch
Name des Schrittes: BeamUpCredits

Der planetare bum-Kommandocode wird in Id-Reihenfolge abgearbeitet. Der Code con wird ebenfalls hier behandelt (der Befehl send config wird bereits in Phase 1 verarbeitet und ist unabhängig von diesem Schritt).

Enttarnen: Nach diesem Schritt (und denen davor) können Schiffe genug Treibstoff verloren haben, um nicht mehr tarnen zu können. Schiffe verlieren Treibstoff durch Rob, können aber von Freunden aufgetankt werden (Frachttransfer zwischen Völkern), um die Tarnung aufrecht zu erhalten.


Minenfelder verfallen
Name des Schrittes: MinefieldDecay

Minenfelder verfallen. Da dieser Verfall vor dem Minenlegen und Minenräumen stattfindet, können Schiffe, die vorher in einem Minenfeld waren, nachher außerhalb sein.


Minenlegen
Name des Schrittes: MineLaying

Schiffe legen Minen. Die genaue Reihenfolge hängt von der PHost-Version ab.

  • 3.2x und eher: Id-Reihenfolge, beginnend mit Schiff #1 (wie in HOST)
  • 3.3 bis 3.4d, 4.0: Id-Reihenfolge, beginnend mit einem zufällig gewählten Schiff
  • 3.4e und neuer, 4.0a und neuer: per-player-Id order, unter allen minenlegenden Schiffen

Wenn AlternativeMinesDestroyMines aktiviert ist, explodieren Minen aus neu entstandenen Überlappungen Feldern hier. In PHost 4.0a/3.4e und eher passiert dies immer.


Überlappende Minenfelder explodieren Seit: PHost 4.0b/3.4f
Name des Schrittes: MinesDestroyMines

(v4.0b:) Überlappende feindliche Minenfelder explodieren.

Dieser Schritt steht in PHost 3.4e/4.0a und älter nicht zur Verfügung; in diesen Versionen explodieren überlappende Minenfelder nur, wenn jemand versucht, eins der Minenfelder zu vergrößern. Siehe auch den vorigen Schritt.


Minen räumen
Name des Schrittes: MineSweeping

Schiffe suchen nach Minen und räumen diese, in Reihenfolge der Schiffs-Ids.


Meldungen vom Minen-Scan
Name des Schrittes: MinefieldScan

Hier werden die Berichte über die Minenfelder gesendet, die im vorigen Schritt gescannt wurden.


Suche nach Wurmlöchern veraltet

In PHost bis Version 4.0d, findet der Wormhole-Scan hier statt. In Version 4.0e und neuer findet er nach dem Terraforming statt.


Fangminen entziehen Sprit
Name des Schrittes: WebDraining

Schiffe innerhalb eines Crystal-Fangminenfeldes verlieren Treibstoff (WebDrainFuelLoss, mehrfach, wenn die Minenfelder überlappen).

Enttarnen: Nach diesem Schritt (und denen davor) können Schiffe genug Treibstoff verloren haben, um nicht mehr tarnen zu können.


Ionenstürme bewegen sich Seit: PHost 4.0j
Name des Schrittes: MoveIonStorms

Wenn mehr Stürme existieren, als IonStormActivity angibt, löst sich der schwächste Sturm auf.

Ionenstürme, in Reihenfolge der Id-Nummer...

  • wählen eine neue Richtung und Geschwindigkeit
  • bewegen sich
  • ändern Größe und Ladung

Zum Schluss können Stürme unter bestimmten Bedingungen verschmelzen.

Siehe auch: Formeln zu Ionenstürmen


Ionenstürme beeinflussen Schiffe Seit: PHost 4.0j
Name des Schrittes: IonStormEffects

In Reihenfolge der Sturm-Id werden Schiffe enttarnt und die jetzt ungetarnten Schiffe beeinflusst (bewegt, beschädigt, Crewverlust). Schiffe, die in mehreren Ionenstürmen sitzen, werden von allen beeinflusst.


Neue Ionenstürme entstehen Seit: PHost 4.0j
Name des Schrittes: NewIonStorms

Wenn die Anzahl Ionenstürme IonStormActivity unterschreitet, entstehen neue Stürme. Es entstehen zufällig bis zu drei Stürme.

Beachte, dass hierbei das Limit IonStormActivity überschritten werden kann. Das ist durchaus beabsichtigt; nächsten Zug wird dann ein schwacher Sturm verschwinden.


Ionensturm-Berichte Seit: PHost 4.0j
Name des Schrittes: IonStormReports

Sendet Nachrichten über alle Ionenstürme an die Spieler.


Spezialmissionen I
Name des Schrittes: SpecialMissions_1

(v4.0h:) Zuerst werden Super Refit-Aufträge mit refit-Anweisung in Reihenfolge der Schiffs-Ids bearbeitet.

(v4.1f:) Danach reparieren Schiffe mit Mission Repair andere Schiffe; dies findet parallel für alle statt.

Danach, in Reihenfolge der Schiffs-Id


Schiffe bauen Raumjäger
Name des Schrittes: BuildFighters

Schiffe der Robots/Rebels/Colonies bauen in Id-Reihenfolge Raumjäger. Hier wird der Kommandocode lfm, die Missionen Build Fighters und Gather-build Fighters sowie der automatische Raumjäger-Bau der Rebels behandelt.


Schiffe bauen Torpedos
Name des Schrittes: BuildTorpedoes

In Id-Reihenfolge werden der mkt-Kommandocode und die Missionen Build Torpedoes und danach die Mission Gather-build Torpedoes abgearbeitet.

==> Bis PHost-Version 4.0h/3.4j hat "Gather-build Torpedoes" Priorität und verhindert, dass mkt ausgeführt wird.


Alchemie
Name des Schrittes: Alchemy

Die drei Alchemie-Funktionen.


Vorbereitung der Bauliste
Name des Schrittes: ShipBuildOrders

Durchläuft alle Sternenbasen in Id-Reihenfolge, beginnend mit einer zufällig gewählten Basis, und stellt die Bauaufträge in die Bauliste.

Die Kommandocodes für Priority Builds werden ebenfalls hier verarbeitet, falls durch den Modus der Baureihenfolge nötig.


Schiffsbau
Name des Schrittes: ShipBuilding_1

Führt Schiffsbau-Aufträge aus, in der Reihenfolge der Bauliste, solange freie Schiffsslots vorhanden sind.


Sternenbasen verschrotten Teile
Name des Schrittes: DumpOldBaseParts

Sternenbasen mit dem Kommandocode dmp verschrotten unbenutzte Raumschiffteile.


Tech-Downgrades auf Sternenbasen kann nicht übersprungen oder verändert werden

Hier werden die Techlevels von Sternenbasen herabgesetzt. Eine Sternenbasis, die einem unregistrierten Spieler gehört, darf maximal Tech 7 für Triebwerke und Tech 6 für die anderen Gebiete haben, es sei denn, beim Bau der Basis waren die richtigen Eingeborenen anwesend. Diese Prüfung schlägt nur dann an, wenn ein unregistrierter Spieler den Platz eines registrierten Spielers einnimmt. Die zu hohen Techlevels werden ohne Wertausgleich gesenkt.

Dieser Schritt hat keine Auswirkungen auf die Basen registrierter Spieler.


Sternenbasis-Missionen I
Name des Schrittes: BaseMissions_1

In Reihenfolge der Sternenbasen-Ids...


Supply Repair
Name des Schrittes: SupplyRepair_1

Schiffe reparieren sich mit Vorräten.


Boarding (Entern, Tow-Capture)
Name des Schrittes: BoardingParties

Entern (boarding, tow-capture), in Id-Reihenfolge der schleppenden Schiffe.

Enttarnen: (v4.0j:) Schiffe, die den Besitzer wechseln, müssen enttarnen.


Sternenbasen bauen Raumjäger
Name des Schrittes: FreeFighters

Sternenbasen bauen kostenlose Raumjäger (verbrauchen nur Mineralien, kein Geld).


Bestimmung der Tow-Missionen
Name des Schrittes: TowResolution

In diesem Schritt wird die Bewegung vorbereitet.

Hauptzweck dieser Stufe ist das Auflösen von Tow-Missionen. Alle Tows, die gemäß der Regeln zur Konfliktauflösung fehlschlagen, werden gelöscht.

Außerdem werden in diesem Schritt die Geschwindigkeiten beschädigter Schiffe begrenzt und die Waypoints aller Schiffe auf Abfangkurs gesetzt (hier werden nur die Waypoints der abfangenden Schiffe auf ihre Ziele gesetzt, es werden noch nicht die endgültigen Positionen ermittelt). Diese beiden Operationen sind für die korrekte Auflösung von Tow-Konflikten nötig.


Movement kann nicht übersprungen werden
Name des Schrittes: Movement
  • Hyperspringer enttarnen; verbleibende Tarnschiffe verbrennen Treibstoff für Tarnung;
  • Ungültige Abfangkurse (Zielschiff existiert nicht mehr) werden gelöscht;
  • Alle "normalen" Schiffe (keine Intercept-Mission) bewegen sich, in Reihenfolge ihrer Ids.
    • Das Schiff bewegt sich auf sein Ziel zu. Falls Minenfelder vorhanden sind, wird ermittelt, ob und welche davon das Schiff trifft, und die entsprechenden Wirkungen werden berechnet: das Schiff sammelt während dieses Schritts Schaden (und muss damit möglicherweise enttarnen), wird langsamer (und verliert dadurch möglicherweise ein abgeschlepptes Schiff), und verbrennt Treibstoff durch Bewegung und Fangminen-Treffer.
    • Der Ramscoop produziert Treibstoff, nachdem das Schiff seine Bewegung beendet hat.
    • Wenn das Schiff ein anderes Schiff schleppt, kann dieses sich nun bewegen oder sein Ziel wird gelöscht.
    Hyperspringer und Schiffe ohne Treibstoff bewegen sich ebenfalls während dieses Teilschritts, allerdings nach wesentlich einfacheren Regeln (keine Minentreffer, kein Abschleppen).
  • Danach werden alle Abfangkurse berechnet und die entsprechenden Schiffe bewegt.
  • Danach reisen Schiffe durch Wurmlöcher.
  • Danach zieht die Planeten-Gravitation Schiffe an.
  • Zum Schluss wird FuelUsagePerTurnFor100KT verbraucht.

Schiffe, die sich bewegen, können auf eine Mine laufen und beschädigt werden. Schiffe, die eine Fangmine treffen, verlieren Treibstoff. Dadurch kann die Tarnung versagen. Schiffe laufen nicht auf Minen während...

  • ...Hypersprünge und Wurmlöcher. Bewegung im Hyperraum umgeht Minenfelder.
  • ...Bewegung ohne Treibstoff (wenn AllowNoFuelMovement erlaubt ist). Schiffe, die ihren Impulsantrieb benutzen, sind sicher vor Subraum-Minen.
  • ...Gravitation (gravity wells). Dieser natürliche Prozess wird von menschlichen/lizardischen/wer-auch-immer Geräten nicht beeinflusst.

Enttarnen: Nach diesem Schritt können Schiffe genug Treibstoff verloren haben, um nicht mehr tarnen zu können. Genauer gesagt enttarnen Schiffe sofort, wenn sie von einem Minentreffer zu stark beschädigt werden oder der Treibstoff alle wird. Schiffe enttarnen ebenfalls sofort, wenn sie ein Wurmloch passieren. (v4.0i/3.4k:) Schiffe, die einen Hypersprung ausführen, müssen sich ebenfalls enttarnen.


Glory Devices platzen
Name des Schrittes: GloryDevices

Glory Devices werden in Id-Reihenfolge ausgelöst. Wenn ein Glory-Device-Schiff zusätzlich eine funktionierende Enttarn-Funktion hat, wird diese noch vor der Detonation ausgelöst.

Enttarnen: Schiffe, die von einem Anti-Cloak-Schiff beeinflusst wurden, müssen sofort enttarnen. Nach dieser Phase müssen Schiffe, die das Schadenslimit erreicht haben (durch ein Glory Device) ebenfalls enttarnen.


Chunneling
Name des Schrittes: Chunneling

Chunneling in aufsteigender Id-Reihenfolge der Initiatoren.

Enttarnen: (v4.0i/3.4k:) Schiffe, die einen Chunnel initiieren oder als Partner dienen, müssen sich enttarnen.


Enttarnen
Name des Schrittes: AntiCloak_2

Loki-Schiffe enttarnen erneut, in Id-Reihenfolge. Hierbei werden die neuen Positionen der Lokis und der getarnten Schiffe benutzt. Ein getarntes Schiff, welches von A nach B fliegt, wird damit nicht von einem Loki enttarnt, der von B nach A fliegt (solange A und B mehr als 10 ly entfernt sind). Schiffe, die dort gestartet sind, wo der Loki startete, und Schiffe, die dort ankommen, wo der Loki ankommt, werden enttarnt.

Enttarnen: Schiffe, die von einem Anti-Cloak-Schiff beeinflusst wurden, müssen sofort enttarnen. Nach dieser Phase müssen Schiffe, die das Schadenslimit erreicht haben (durch ein Glory Device) ebenfalls enttarnen.


Colonize-Mission
Name des Schrittes: ColonizeMission

Die Colonize-Mission, in Reihenfolge der Schiffs-Ids.


Supply Repair
Name des Schrittes: SupplyRepair_2

Schiffe reparieren sich erneut mit Vorräten.


Sternenbasis-Missionen II
Name des Schrittes: BaseMissions_2

In Reihenfolge der Sternenbasen-Ids...


Kampf
Name des Schrittes: Combat

Jede Gruppe aus Schiffen und Planeten wird anhand der Regeln der Kampfreihenfolge aufgelöst.

Enttarnen: (v4.0j:) Schiffe, die DamageLevelForCloakFail erreichen oder ihren Treibstoff verlieren, müssen sich sofort enttarnen. Ebenso müssen alle Schiffe enttarnen, die den Besitzer wechseln.


Supply Repair
Name des Schrittes: SupplyRepair_3

Schiffe reparieren sich erneut mit Vorräten.


Terraforming
Name des Schrittes: Terraforming

Terraforming-Schiffe arbeiten in Id-Reihenfolge.

Enttarnen: Nach diesem Schritt (und denen davor) können Schiffe genug Treibstoff verloren haben, um nicht mehr tarnen zu können. Da Schiffe sich nun direkt im Kampf enttarnen, hat diese Stufe nicht mehr allzu viele Auswirkungen, allerdings ist sie noch nützlich, wenn ein anderes Kampfsystem eingesetzt wird.


Suche nach Wurmlöchern Seit: PHost 4.0e
Name des Schrittes: WormholeScan

Schiffe suchen nach Wurmlöchern, in Id-Reihenfolge.

==> In PHost bis Version 4.0d wird dieser Schritt direkt nach dem Minenfeld-Scan durchgeführt.


Sensoren-Abtastung
Name des Schrittes: SensorSweep

Normaler Sensor Sweep und Bioscanner, in Id-Reihenfolge.

Wenn ExtendedSensorSweep aktiviert ist, besteht Sensor Sweep aus mehreren Teilen. Das Minen-Suchen findet vor der Bewegung in MineSweeping statt. Die Suche nach Wurmlöchern passiert in WormholeScan.


Spezialmissionen II
Name des Schrittes: SpecialMissions_2

Erst werden die Missionen Pillage und Rebel Ground Attack in Per-Player Id-Reihenfolge ausgeführt. Danach werden Dark Sense-Nachrichten gesendet.


Planeten produzieren
Name des Schrittes: PlanetaryProduction

Minen und Fabriken produzieren, Bovinoide Eingeborene geben Vorräte (siehe Formeln zur Produktion). Danach bilden sich neue Mineralien im Planetenkern (TransuraniumDecayRate).


Zufriedenheit auf Planeten
Name des Schrittes: PlanetaryHappiness

Änderungen der Zufriedenheit entsprechend der gewählten Steuersätze. Wenn die Zufriedenheit (Happiness) bereits unter 30 liegt, wird der Steuersatz auf 0 gesetzt (und die Änderung mit diesem Wert berechnet).

Siehe auch: Formeln


Besteuerung auf Planeten
Name des Schrittes: PlanetaryTaxation

Steuereinnahmen.

Siehe auch: Formeln


Wachstum auf Planeten
Name des Schrittes: PlanetaryGrowth

Kolonisten und Eingeborene vermehren sich.

Siehe auch: Formeln


Limitierungen auf Planeten
Name des Schrittes: PlanetaryLosses

Für jeden Planeten:

  • Überbevölkerung verbraucht Vorräte
  • Tote durch Überbevölkerung
  • Strukturverfall
  • durch Bürgerkrieg werden Gebäude beschädigt
  • Tote durch Bürgerkrieg

Siehe auch: Formeln


Schiffsbau
Name des Schrittes: ShipBuilding_2

Führt verbleibende Schiffsbau-Aufträge aus, um durch Kampf freigewordene Schiffsslots zu füllen.


Assimilation
Name des Schrittes: Assimilation

Cyborgs assimilieren Eingeborene.


Super Spy
Name des Schrittes: SuperSpyMission

Super Spy-Schiffe senden ihre Berichte in Id-Reihenfolge.


Forschung
Name des Schrittes: ShipExploration

Schiffe, die einen fremden Planeten umkreisen (und Treibstoff haben) erzeugen Forschungsberichte.


Erfahrungs-Aufstieg
Name des Schrittes: Experience

(v4.0:) Schiffe und Planeten sammeln Erfahrung entsprechend ihrer Aktionen diesen Zug. Außerdem werden hier die Erfahrungsberichte erzeugt.

Phase 3 - Erstellen der Results

  • Externe Nachrichten (von Addons) werden verarbeitet
  • Die Datei shipscan.ext wird geschrieben.
  • Berechnung der Punktestände.
  • Wenn DelayAllianceCommands aktiviert ist, werden Allianzbefehle hier abgearbeitet.
  • Ferngesteuerte Schiffe werden dem Spieler übergeben, der sie steuert.
  • Erzeugen der Results und Datendateien (util.dat).

Nach oben


Den Host-Ablauf beeinflussen

Es gibt zwei Möglichkeiten, den Hostablauf zu beeinflussen. Beachte, dass es jedoch immer nur möglich ist, Aktionen hinzuzufügen (bzw. zu entfernen), nicht jedoch, die Reihenfolge der Aktionen zu ändern.

Wenn du ein Programm in den Hostablauf eingefügt hast, speichert PHost alle Daten ab, schließt alle Dateien, und ruft das Programm auf. Danach werden die Host-Daten wieder geladen, überprüft, und PHost läuft weiter.

Die Auxhost-Dateien

Seit HOST 3.20 gibt es auxhost1.ini und auxhost2.ini; in HOST 3.22.005 wurde auxbc.ini eingeführt. PHost unterstützt diese Mechanismen ebenfalls.

  • auxhost1.ini läuft zwischen Phase 1 und 2, also nach dem Verarbeiten der Turns und vor dem eigentlichen Hostlauf.
  • auxhost2.ini läuft zwischen Phase 2 und 3, also nach dem Hostlauf, aber vor dem Erstellen der Results.
  • auxbc.ini läuft direkt vor dem Kampf.

Die .ini-Dateien sind Textdateien, die im Spielverzeichnis abgelegt werden, jede Zeile enthält einen auszuführenden Befehl.

Die Datei auxbatt.ini wird standardmäßig nicht unterstützt (mittels PControl lässt sich das aber leicht nachrüsten). Andere Endungen als .ini werden ebenfalls nicht unterstützt (Tim's Host ruft auch auxhost1.exe und auxhost1.bat auf).

Der PControl-Abschnitt

Der Hostablauf wird über einen Abschnitt pcontrol in der pconfig.src festgelegt. Für jeden Schritt kannst du auszuführende Aktionen angeben.

==> Beachte bitte, dass die Reihenfolge der Schritte nicht verändert werden kann, egal, in welcher Reihenfolge die Namen in diesem Abschnitt auftauchen.

Schritte von Phase 2

Der pcontrol-Abschnitt kann Zeilen der Form

SchrittName = Aktion

enthalten. Dabei ist SchrittName der oben angegebene Name des Schrittes, Aktion ist eines der folgenden:

  • Normal: der Schritt wird normal abgearbeitet. Dies ist die Standardeinstellung.
  • Skip: dieser Schritt wird übersprungen. ==> Einige Schritte sind für PHost wichtig und können daher nicht übersprungen werden.
  • Replace anweisung: ersetzt diesen Schritt durch die angegebene Anweisung (siehe unten). Schritte, die nicht übersprungen werden können, können auch nicht ersetzt werden.
  • Execute anweisung: führt die angegebene Anweisung aus, danach wird der Schritt normal abgearbeitet.
  • Before anweisung: (v4.0c:) wie Execute: führt die angegebene Anweisung aus, danach wird der Schritt normal abgearbeitet.
  • After anweisung: (v4.0c:) angegebene Anweisung ausführen, nachdem der Schritt ausgeführt wurde.

Die Namen der Aktionen können bis auf den ersten Buchstaben abgekürzt werden.

Jede anweisung kann eins der folgenden sein:

  • file.ini: führt die angegebene .ini-Datei von oben nach unten aus. Die Datei wird im Spiel- und im Hauptverzeichnis gesucht. (v4.0h:) Du kannst auch absolute Pfadnamen angeben, wenn du möchtest.
  • datei.ini%abschnitt: führt nur den angegebenen Abschnitt der .ini-Datei aus. Abschnitte werden auf die selbe Art getrennt wir in pconfig.src.
  • *befehl: (v4.0c:) führt den angegebenen Kommandozeilen-Befehl aus. Das ist eine Abkürzung für eine einzeilige .ini-Datei.

(v4.0c:) Du kannst mehrere Aktionen angeben, indem du mehrere Zuweisungen für den selben Schritt angibst. Die Aktionen werden dann in der angegebenen Reihenfolge ausgeführt. Wenn mindestens eine Aktion vom Typ Skip oder Replace angegeben ist, wird der Schritt übersprungen, ansonsten wird er ausgeführt. Damit ergibt sich folgende Reihenfolge für die Aktionen:

  • Zuerst werden alle Befehle von Before, Execute und Replace ausgeführt, in der Reihenfolge, in der sie in der Konfigurationsdatei standen.
  • Wenn kein Skip- oder Replace-Befehl angeführt war, wird der Host-Schritt selbst ausgeführt.
  • Zuletzt werden alle After-Befehle ausgeführt.

In PHost bis Version 3.4f/4.0b kann maximal eine Aktion pro Schritt angegeben werden.

Zwischen den Phasen (Auxhost)

(v4.0k:) Anstatt die Dateien auxhost1.ini und auxhost2.ini zu erstellen, kannst du die entsprechenden Befehle direkt in pconfig.src geben.

Auxhost1 = Anweisung
Auxhost2 = Anweisung

Die Anweisung ist nur ein Verweis auf eine weitere Ini-Datei oder einen Befehl, wie z.B. Auxhost1 = *mfq %d. Eine Angabe von Before, Skip o.ä. ist hier nicht sinnvoll.

Addons

(v4.0k:) Viele Addons werden immer wieder mit der gleichen Gruppe PControl-Einstellungen benutzt. Um das Einrichten von Spielen zu vereinfachen, kannst du diese Einstellungen in eine separate Datei schreiben und aus dem PControl-Abschnitt auf diese Datei verweisen.

Addon = dateiname

PHost sucht die Datei sowohl im Spielverzeichnis, als auch im Hauptverzeichnis, so dass du die gleiche Datei für mehrere Spiele benutzen kannst. PHost sucht nach einem Abschnitt %pcontrol und liest dann nur diesen. Wenn das Addon-Programm also selbst diese Abschnittsbegrenzer versteht, kannst du die Befehle gleich direkt in der Konfigurationsdatei des Addons unterbringen.

Beispiel: Das folgende Beispiel kann mit dem Stargate-Addon benutzt werden:

% pcontrol
TowResolution = Execute *stargate 1 %d %r
SensorSweep   = Execute *stargate 2 %d %r

Du kannst dann mit einer Zeile wie Addon = stargate.txt auf diese Datei verweisen. Leider unterstützt das Stargate-Addon keine Abschnittstrenner %.

Überprüfung der Hostdaten

Nach jedem Add-On-Aufruf lädt PHost das komplette Universum erneut und überprüft es kurz.

  • Alle Konfigurations- und Datendateien werden erneut eingelesen (bis auf die PControl-Konfiguration selbst). Die Spezifikationsdateien werden überprüft.
  • Schiffe mit über 100% Schaden werden gelöscht.
  • Die Mission von Schiffen mit ungültiger Tow- oder Intercept-Mission wird gelöscht. Eine ungültige Mission liegt vor, wenn das Ziel nicht länger existiert oder, bei der Tow-Mission, an einer anderen Position steht.
  • Schiffe, die nicht länger tarnen können, werden enttarnt. Das kann auftreten, wenn sie zu wenig Treibstoff haben, Schaden genommen haben oder ihre Mission geändert wurde.

==> Dies ist keine vollständige Validierung der Host-Daten. Beispielsweise werden hier überladene Schiffe nicht moniert. PHost vertraut den Add-Ons. Hier werden nur Dinge aufgeräumt, die von Add-Ons gerne vergessen werden.

==> Falls ein Add-On benutzt wird, kann es passieren, dass ein Schiff eher als normal enttarnt, da diese Überprüfung nach jedem Add-On-Aufruf stattfindet.

Befehle

Wie oben erwähnt gibt es zwei Möglichkeiten, auszuführende Befehle anzugeben. Du kannst sie in eine .ini-Datei schreiben, einen pro Zeile, oder du kannst sie direkt in pconfig.src angeben.

Die Befehle werden der Reihe nach an den Befehlsinterpreter des Betriebssystems (also command.com oder cmd.exe unter Microsoft-Betriebssystemen, /bin/sh unter Unix) übergeben. Komplizierte Dinge wie Befehle, die über mehrere Zeilen gehen, oder goto sind daher nicht möglich.

Die folgenden Symbole werden gesondert behandelt:

%Abschnitt
In einer .ini-Datei gibt dies eine Abschnittsgrenze an. Wenn in pconfig.src ein Abschnitt angegeben wurde, beginnt oder endet die Ausführung hier.
# irgendwas
In einer .ini-Datei gelten Zeilen, die mit einem Nummernzeichen beginnen, als Kommentare und werden ignoriert.
%d
(v4.0k:) In Befehlen wird dieses Symbol durch den Namen des Spielverzeichnisses (erster Verzeichnisparameter, der im PHost-Aufruf angegeben wurde) ersetzt. Beispielsweise wird Combat = Replace *flak-server %d das Add-On flak-server mit dem Spielverzeichnis als Parameter starten. Wenn du dieses Symbol zur Konstruktion eines Dateinamens nutzt, unterdrückt PHost automatisch überflüssige Verzeichnistrenner ("/" bzw. "\"). Beachte, dass dieses Symbol in einer .ini-Datei nicht am Anfang eines Befehls stehen kann, um Verwechslungen mit einer Abschnittsgrenze zu vermeiden.
%r
(v4.0k:) In Befehlen wird dieses Symbol durch das Hauptverzeichnis (zweiter Verzeichnisparameter, der im PHost-Aufruf angegeben wurde) ersetzt. Alles für %d gesagte gilt auch hier.
%s
(v4.1e:) In einem Befehl wird dieses Symbol durch den aktuellen Statuswert (seed) des Zufallsgenerators ersetzt. Wenn das Addon eine Initialisierung seines Zufallsgenerators per Kommandozeile erlaubt, kannst du damit den Addon-Aufruf reproduzierbar machen: dieser Wert wird aus dem Wert abgeleitet, der mit den Kommandozeilenoptionen -S oder -s festgelegt wurde. Wenn du also PHost erneut mit dem gleichen Startwert und den gleichen Eingangsdaten aufrufst, wird das Addon ebenfalls den gleichen Startwert erhalten. Der Wert wird zusätzlich in der Umgebungsvariable PHOST_RANDSEED übergeben.
%%
(v4.0k:) Ergibt ein normales Prozentzeichen.

Nach oben


Kurzübersicht

Hier sind nochmal alle Schritte von Phase 2 in der Reihenfolge ihrer Ausführung aufgelistet, mit Links zur jeweiligen Beschreibung:

  1. TransferOwner
  2. LargeMeteors
  3. MeteorShowers
  4. AntiCloak_1
  5. DeluxeSuperSpy
  6. NewNativesAppear
  7. RobMission
  8. GamblingShips
  9. CargoDump
  10. CargoTransfer
  11. TrimShipCargo
  12. CrewExchange
  13. Training
  14. BeamTransfers
  15. GatherMission
  16. BeamUpCredits
  17. MinefieldDecay
  18. MineLaying
  19. MinesDestroyMines
  20. MineSweeping
  21. MinefieldScan
  22. Alte Position des WormholeScan (bis v4.0d)
  23. WebDraining
  24. MoveIonStorms
  25. IonStormEffects
  26. NewIonStorms
  27. IonStormReports
  28. SpecialMissions_1 (Super Refit, Hiss, Self Repair)
  29. BuildFighters
  30. BuildTorpedoes
  31. Alchemie
  32. ShipBuildOrders
  33. ShipBuilding_1
  34. DumpOldBaseParts
  35. BaseMissions_1 (Fix/Recycle, Maximize Defense, Load Torps, Force Surrender)
  36. SupplyRepair_1
  37. BoardingParties
  38. FreeFighters
  39. TowResolution
  40. Movement
  41. GloryDevices
  42. Chunneling
  43. AntiCloak_2
  44. ColonizeMission
  45. SupplyRepair_2
  46. BaseMissions_2 (Refuel, Repair base, Unload)
  47. Combat
  48. SupplyRepair_3
  49. Terraforming
  50. WormholeScan
  51. SensorSweep
  52. SpecialMissions_2 (Pillage, RGA, Dark Sense)
  53. PlanetaryProduction
  54. PlanetaryHappiness
  55. PlanetaryTaxation
  56. PlanetaryGrowth
  57. PlanetaryLosses (Tod durch Überbevölkerung, Bürgerkrieg, Gebäude verfallen)
  58. ShipBuilding_2
  59. Assimilation
  60. SuperSpyMission
  61. ShipExploration
  62. Experience

Nach oben


Letzte Aktualisierung 31 May 2015.


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