Index


CF+ protocol extensions

Top

This module implements protocol extensions for use by the CF+ client, but can be used by other clients as well. It uses the extcmd mechanism exclusively.

... = extcmd cfplus_support { version => $client_version }

Registers the client the the server. the client should send the highest version of the protocol it supports itself, and the server returns the highest version of the protocol it supports in the version key itself.

... = extcmd lookat { dx => $dx, dy => $dy }

"Looks at" the mapspace displaced (dx|dy) relative to the player and returns "interesting" information about it.

Keys it can return include:

   npc_dialog => $name
      There is an npc or other object that can "talk" to the player.

... = extcmd npc_dialog_begin { msgid => $id, dx => $dx, dy => $dy }

Tries to start a dialogue with the mapspace specified by $dx and $dy (see extcmd lookat). The $msgid will be used as a handle for all future messages related to this dialog interaction.

It either replies with an error reply or starts a dialog by telling the npc "hi" and returning a reply structure as with extcmd npc_dialog_tell.

... = extcmd npc_dialog_tell { msgid => $id, msg => $text }

Tells the NPC the given $text message and returns a reply structure which can have the following keys:

   msg => $reply_text,
   add_topics => [additional topic strings]
   del_topics => [invalidated topic strings]

extcmd npc_dialog_end { msgid => $id }

Finishes the dialog, invalidating the handle.

... = extcmd editor_support

Returns the value required by clients that have an editor to download and upload maps from/to the server.

   servertype => (game|test) type of this server
   gameserver => the hostname:port of the normal game server
   testserver => the hostname:port of the test server the maps can be tested on
   cvs_root   => the (http) url where the cvs root for downloading is located
   lib_root   => the (http) url where crossfire.0 and archetypes can be found
   upload     => the (http) url where clients can upload maps

If those values are not supplied or empty strings, the server does not support downloading, uploading, testing, respectively.

The upload script expects the following values in a multipart form upload:

   client: a descriptive string describing the editor and version used to upload
   path: absolute server-side map path beginning with /
   map: the map file itself
   mapdir: the cvs root url originally used to download the map
   revision: cvs-revision originally used to download the map
   comment: a comment supplied by the user that documents the changes
   cf_login: crossfire server login
   cf_password: crossfire server password, optionally used for authentication purposes