© |
Remote Ship Control
The Portable Host
Version 3.2.3.5g
|
INDEX
Introduction
Remote ship control is a PHOST feature that allows players to control each
other's ships without having to relinquish ownership. This can be useful
in many situations. In team games, for example, a fleet of ships may represent
different players, and keeping the ships co-ordinated with respect to waypoints,
missions, friendly codes, etc. is fraught with errors of (mis)communication.
It would be much easier if a single player took control of this fleet and
yet the ships retained their ownership.
In another situation, one player may be acting as a substitute for another
player in the game (perhaps an ally). Instead of playing two different
turns from two different RST files, it would be much easier if
the substitute player simply assumed control of his ally's ships, without
the ally actually having to give the ships up. PHOST enables this type
of ship sharing through the remote control feature.
Back to the index
How Remote Control Works
Remote control is simple in operation and hopefully equally simple to understand.
PHOST keeps a list of each ship's original owner and, if the ship is under
remote control, the player who is controlling the ship. Immediately before
host processing (i.e., after TRN file processing), PHOST gives
control of the ship back to the original owner. Then, right before RST
files are sent out, PHOST changes the ship's owner to be the player who
has remote control. That's it! This means that the remote control player
sees the ship as one of his own. He can give it a mission, a waypoint,
a speed setting, etc. the same way he would for his own ships. In the next
turn, the ship's owner returns to normal for the duration of host processing,
so that the ship continues to have all of the race-specific benefits of
its usual owner.
Here is a summary of what happens and how remote control is seen by
the players:
-
A player assumes remote control of a ship by sending a command
message (see below).
-
Host processing proceeds normally. The ship is still owned by its original
owner and behaves normally.
-
Right before RST files are sent out, the ship changes ownership
to the remote control player.
-
The remote control player sees the ship as if it were one of his own. He
can give the ship a waypoint setting, change the name, change the speed,
transfer cargo between his own ships, etc. The original ship owner sees
the ship as an other-race ship. He has no control over it at this point.
-
The remote control player submits his TRN with the ship commands.
After PHOST processes the TRN files, the ship now reverts back
to its original owner. The waypoint, speed setting, mission, etc. are just
what the remote control player ordered, only the owner has changed (to
the original ship owner).
-
After host processing is complete and immediately before RST files
are sent out, the ship's owner now changes to the remote control player.
The process continues from step 4 above.
Some points to note:
-
Both the original owner of the ship and the remote control player can cancel
the remote operation at any time. The original ship owner can also prohibit
certain ships from being remotely controlled.
-
The original ship owner must be an ally of the remote control player and
the ship's owner must have enabled the Ship
Level of alliance to the remote control player.
The give command processor
command can be issued by either the original ship owner or the remote control
player. In both cases, the ship continues to be remotely controlled if
the alliance relationship between the remote control player and the new
ship owner meets all the conditions for remote control. That is, the new
ship owner must be an ally of the remote control player and must have enabled
the Ship Level of alliance to the
remote control player. If these conditions aren't met, the remote control
is terminated.
Note that all other command processor commands (such as beamup,
extmission, etc.) can only be issued
by the remote control player as it is he who is effectively giving commands
to the ship.
-
The remote control interface is enabled by the CPEnableRemote
config option. Without this option enabled, players have no access to the
remote control feature.
Back to the index
Playing with Remote Control
When playing in a game in which remote control has been enabled, ships
become owned by the remote control player prior to RST files being
written out. This means that ships will appear to be owned by the remote
control player, while during actual host operation they behave as
if they were owned by the original owner. For example, if a Privateer player
allows a Federation player to remote control a ship, then all players will
see that ship as being owned by the Federation (and, in fact, the Federation
player will be giving commands to the ship). But that ship is quite capable
of robbing, since it acts as a Privateer ship during host operation.
This switch of information can be quite damaging to players who are
not aware of the true ship's owner and hence the ship's true capabilities.
To prevent this confusion, PHOST implements different forms of information
provided to players regarding remote control ships.
-
The remote control owner and the original ship owner receive player messages
that describe which ships are under remote control, who the original owner
is, and who the remote control owner is. This information will also be
contained in a Remote Control Ships
UTIL.DAT record.
-
Non-involved players (i.e., neither the remote control player nor the original
ship owner) who scan a ship that is being remotely controlled will also
receive a Remote Control Ships UTIL.DAT
record including that ship. This allows player-side utilities to determine
the true ship's owner and display it in some fashion.
-
The names of all ships under remote control will be automatically modified
by PHOST to end in the 2 characters *N where N is a player
number from 1-9 or A for the Rebels and B for the Colonies.
The player indicated in the ship name is that of the ship's original owner.
For example, if a Player #5 ship is being controlled by Player #2, then
the ship name:
Priv Ship
will automatically be modified by PHOST to read:
Priv Ship*5
The same ship, if it now becomes owned by Player #11 (but under
remote control by another player), would have its name modified to:
Priv Ship*B
Note that
player messages will not reflect this new, modified name. The modified
name will only show up in the starchart of your client program. This is
because the name is not modified while it is owned by the original owner
(i.e., during host processing). Name modification occurs immediately before
the generation of RST files.
-
PHOST will now prevent all players from naming their ships in the above
manner. Any ship whose name is set to end in the characters *N
where N is either 1-9 or the letters A or B
will have those last two characters removed from the ship name. This will
prevent players from "spoofing" the system and pretending that ships are
under remote control.
Back to the index
Remote Control Commands
This section briefly describes the commands required for using remote control.
The full syntax of the remote control command set is described on the "Command
Processor" page.
Acquiring Control
To acquire control of an ally's ship, use a command of the form:
remote control ShipID
where ShipID must be the ID number of a ship owned by your
ally.
Relinquishing Control
To return control of a remote control ship back to its original owner,
use a command of the form:
remote drop ShipID
where ShipID is the ID number of a ship that you are currently
controlling remotely.
Forbidding Control
To prevent any player from acquiring control of one of your own ships,
use a command of the form:
remote forbid ShipID
where ShipID is the ID number of one of your own ships. No
player, not even an ally, may take remote control of this ship until you
explicitly enable it. Note that by default, all of your ships can
be remotely controlled, so you must take care to forbid control for any
ship you want to protect. Note that forbidding a ship from being controlled
cancels any remote control that is currently in effect for the ship.
You may indicate that all newly-built ships are forbidden from remote
control by issuing the command:
remote forbid default
This command does not affect existing ships. Only ships that are built
after this command is received are, by default, prevented from being
remotely controlled. The forbid/allow state of each ship can, of course, be
modified explicitly using the forbid and allow commands
with a ship ID number as a parameter.
Allowing Control
Once a ship has been forbidden from being controlled, it can be once again
be allowed to participate in remote control by using a command of the form:
remote allow ShipID
where ShipID is the ID number of a ship currently forbidden
from being remotely controlled. You must be the owner of the ship to issue
this command.
You may indicate that all newly-built ships are allowed to be remotely
controlled by issuing the command:
remote allow default
This command does not affect existing ships. Only ships that are built
after this command is received are, by default, allowed to be
remotely controlled. Note that the default state at the beginning of the
game is to allow all newly-built ships to be remotely controlled.
Back to the index
This document is maintained by The Portable Host Project
(support@phost.de).
Last updated 7 December, 2001