home · contact · privacy
Fix buggy healthy_addch().
[plomrogue] / SERVER_COMMANDS
index b9e3cd213707d9c63fb3af2947f2818033d1f360..41759aacc408f4643024d3c7bf61c81ee0d1993a 100644 (file)
@@ -4,33 +4,35 @@ Command reading and writing
 Normal mode
 -----------
 
-In normal mode, the server on start up checks for the existence of ./savefile
-and, on success, reads all commands from it. If no savefile exists, commands
-from ./confserver/world are read instead – and written to the file ./record.
-Afterwards, the command "MAKE_WORLD" with the current Unix time as argument is
-interpreted (and also written to ./record).
-
-In any case, from then on, further commands are read in from ./server/in. New
-commands must be appended to the file – which is what the client does. All
-commands from ./server/in except meta commands are also written to ./record.
+In normal mode, the server on start up checks for the existence of ./save and,
+on success, reads all commands from it. If no save file exists, commands from
+./confserver/world (or any file defined with the -w argument) are read instead
+– and written to the file ./record_save. Afterwards, the command "MAKE_WORLD"
+with the current Unix time as argument is interpreted (and also written to
+./record_save).
+
+In any case, from then on, further commands are read in from ./server_run/in.
+New commands must be appended to the file – which is what the client does. All
+commands from ./server_run/in except meta commands are also written to
+./record_save.
 
 Every fifteen seconds, if any turns have passed, ./savefile is written – with a
 list of all god commands necessary to recreate the current world state. On each
-world state change, ./server/worldstate is updated and a message "WORLD_UPDATED"
-written to ./server/out.
+world state change, ./server_run/worldstate is updated and a message
+"WORLD_UPDATED" written to ./server_run/out.
 
 Replay mode
 -----------
 
-In replay mode, commands from ./record are read. If a turn number is given as an
-argument, the file is read until the given turn is reached, or, if the turn
-number is higher than the last turn of the recorded play, the last turn. If no
-turn number is given as argument, the record file is replayed until turn 1 is
-reached. Meta commands in ./record are not understood.
+In replay mode, commands from ./record_save are read. If a turn number is given
+as an argument, the file is read until the given turn is reached, or, if the
+turn number is higher than the last turn of the recorded play, the last turn. If
+no turn number is given as argument, the record file is replayed until turn 1 is
+reached. Meta commands in ./record_save are not understood.
 
-From then on, ./server/in is also read. Meta commands sent by the client are
+From then on, ./server_run/in is also read. Meta commands sent by the client are
 interpreted normally, but any player and god command merely furthers reading of
-./record by one line and is otherwise ignored.
+./record_save by one line and is otherwise ignored.
 
 Command list
 ============
@@ -44,18 +46,23 @@ whitespaces. "[char]" means a single ASCII character is expected. If one of a
 set of pre-defined strings is expected, the legal strings are divided by pipe
 symbols ("|").
 
+Commands in lowercase characters ("player commands") are only interpreted if the
+game world is set active.
+
 Meta commands
 -------------
 
 PING
-Write "PONG" line to ./server/out file.
+Write "PONG" line to ./server_run/out file.
 
 QUIT
 Shut down server.
 
-STACK
-Write line-by-line list of items the player stands on into ./server/out file,
-enclosed by two lines "THINGS_BELOW_PLAYER START" and "THINGS_BELOW_PLAYER END".
+THINGS_HERE [0 to 255] [0 to 255]
+If world exists, write line-by-line list of things visible or in memory at y
+position of first argument, x position of second argument of map into
+./server_run/out file, enclosed by two lines "THINGS_HERE START" and
+"THINGS_HERE END".
 
 Player commands
 ---------------
@@ -84,38 +91,42 @@ inventory.
 God commands
 ------------
 
+PLUGIN [string]
+Run plugin code in ./plugins/[argument], with argument only consisting of
+alphanumeric characters and underscores.
+
 TURN [0 to 65535]
 Set world turn to argument. (Initial value: 0.)
 
-PLAYER_TYPE [0 to 255]
+PLAYER_TYPE [0 to infinity]
 Set to argument ID of thing type into which a new world's player character will
 be generated. (Initial value: 0.)
 
-SEED_RANDOMNESS [0 to 4294967296]
+SEED_RANDOMNESS [0 to 4294967295]
 Set randomness seed to argument. (Initial value: 0.)
 
-SEED_MAP [0 to 4294967296]
-(Re-)generate map to seed of argument and map size.
-
-MAKE_WORLD [0 to 4294967296]
+MAKE_WORLD [0 to 4294967295]
 Set map seed and randomness seed to argument. Remove all things. (Re-)generate
 map. Add to map things specified in thing types table in quantity defined there
 by START_NUMBER command, with first thing (of thing ID of 0) of type defined as
 player type by PLAYER_TYPE command. Set world turn to 1. Activate world. Answer
-with 'NEW_WORLD' message in ./server/out file.
+with 'NEW_WORLD' message in ./server_run/out file.
 
 MAP_LENGTH [1 to 256]
-Deactivate world. Remove ./server/worldstate file. Remove all things. Remove
+Deactivate world. Remove ./server_run/worldstate file. Remove all things. Remove
 map. Set map edge length to argument. (Initial value: 64.)
 
-WORLD_ACTIVE [0 to 255]
-Set world activity state to argument. If 0, remove ./server/worldstate file.
+MAP [0 to 255] [string]
+Set part of game map to string argument: the line of the argument's number.
+
+WORLD_ACTIVE [0|1]
+Set world activity state to argument. If 0, remove ./server_run/worldstate file.
 Else, if world was so far inactive, a map exists, at least one "wait" thing
 action is defined, and a thing of ID 0 (= a player character) that is not part
-of any other thing's inventory, (re-)build all animate things' fields of view and
-activate world. (Initial value: 0.)
+of any other thing's inventory, (re-)build all animate things' fields of view,
+and activate world. (Initial value: 0.)
 
-TA_ID [0 to 255]
+TA_ID [0 to infinity]
 Select thing action to manipulate by argument as ID. If argument is 0, change it
 to the lowest unused thing action ID greater than 0. If action of ID does not
 exist yet, create it with default name "wait" and default effort 1.
@@ -127,17 +138,17 @@ TA_NAME [wait|move|use|drop|pick_up]
 Set selected thing action's name (and thereby function, equal to player
 command). Legal worlds need at least one action of name "wait", so if this
 unsets the world's only "wait" action, the world is deactivated, and the
-./server/worldstate file removed.
+./server_run/worldstate file removed.
 
-T_ID [-32768 to 32767]
-Select thing to manipulate by argument as ID. If argument is <0 or >255, change
-it to the lowest unused thing ID. If thing of ID does not exist yet, create it
-with default position of y=0/x=0, the first thing type's ID, and that type's
+T_ID [-1 to infinity]
+Select thing to manipulate by argument as ID. If argument is <0, change it to
+the lowest unused thing ID. If thing of ID does not exist yet, create it with
+default position of y=0/x=0, the first thing type's ID, and that type's
 lifepoints value; if world is active and the thing is animate, build its field
 of view.
 
-T_TYPE [0 to 255]
-Set selected thing's type ID to argument.
+T_TYPE [0 to infinity]
+Set selected thing's type ID to argument, if the respective ThingType exists.
 
 T_POSY [0 to 255]
 Set selected thing's map row position to argument. Delete thing's field of view
@@ -147,7 +158,7 @@ T_POSX [0 to 255]
 Set selected thing's map column position to argument. Delete thing's field of
 view and, if world is active, rebuild it.
 
-T_COMMAND [0 to 255]
+T_COMMAND [0 to infinity]
 Set to argument the action thing is currently performing, as identified by its
 thing action ID, if a thing action of that ID is defined. If argument is 0, the
 thing's command ID is set to that, implying that it is not performing any
@@ -163,7 +174,13 @@ performing the action) value to argument.
 T_LIFEPOINTS [0 to 255]
 Set selected thing's lifepoints to argument.
 
-T_CARRIES [0 to 255]
+T_SATIATION [-32768 to 32767]
+Set selected thing's satiation score. Each turn, there is a chance of hitpoint
+loss that grows with the satiation score's absolute value, and one of hitpoint
+gain that lowers with it. Each turn, T_SATIATION lessens by the square root of
+the thing's type's start hitpoints (see TT_LIFEPOINTS).
+
+T_CARRIES [0 to infinity]
 Add thing of ID in argument to inventory of selected thing, if said thing is
 available for carrying and not the selected thing.
 
@@ -171,19 +188,28 @@ T_MEMMAP [0 to 255] [string]
 Set part of selected thing's memory of the game map to string argument: the line
 of the argument's number.
 
-T_MEMTHING [0 to 255] [0 to 255] [0 to 255]
+T_MEMDEPTHMAP [0 to 255] [string]
+Set part of selected thing's game map memory depth map to string argument: the
+line of the argument's number.
+
+T_MEMTHING [0 to infinity] [0 to 255] [0 to 255]
 Add to selected thing's memory of things on map thing of ID of first argument,
 y position of second argument and x position of third argument.
 
-TT_ID [-32768 to 32767]
-Select thing type to manipulate by argument as ID. If argument is <0 or <255,
-change it to the lowest unused thing type ID. If thing type of ID does not exist
-yet, create it with default name "(none)", corpse ID equal to the new thing
-type's ID, and remaining thing type attributes to 0.
+TT_ID [-1 to infinity]
+Select thing type to manipulate by argument as ID. If argument is < 0, change it
+to the lowest unused thing type ID. If thing type of ID does not exist yet,
+create it with default name "(none)", corpse ID equal to the new thing type's
+ID, symbol "?", and remaining thing type attributes to 0.
+
+TT_TOOL [|food]
+(May be left empty.) Defines the way things of the selected type can be used.
+The only options so far that is interpreted is "food" (may be consumed).
 
-TT_CONSUMABLE [0-255]
-Set selected thing type's consumability value to argument – the number of
-lifepoints earned by consuming/using things of that type.
+TT_TOOLPOWER [0 to 65535]
+Set selected thing type's tool power value to argument. If its tool type is
+"food", this sets the number of .satiation score points earned by consuming
+things of that type.
 
 TT_START_NUMBER [0-255]
 Set selected thing type's number of things of type to spawn on successful
@@ -191,7 +217,8 @@ MAKE_WORLD command to argument.
 
 TT_LIFEPOINTS [0-255]
 Set selected thing type's initial lifepoints value to argument. Things of 0
-lifepoints are considered inanimate, otherwise animate.
+lifepoints are considered inanimate, otherwise animate. The square root of this
+is the amount things of the type suffer satiation score loss each turn.
 
 TT_SYMBOL [char]
 Set to argument symbol by which things of the selected type are represented on
@@ -201,12 +228,11 @@ TT_NAME [string]
 Set selected thing type's name to argument. This name identifies things in the
 game log and the inventory.
 
-TT_CORPSE_ID [0-255]
+TT_CORPSE_ID [0 to infinity]
 Set to argument the ID of the thing type that things of the selected type
 transform into when their state changes from animate to inanimate.
 
-TT_PROLIFERATE [0-255]
+TT_PROLIFERATE [0 to 65535]
 If non-zero, there is a chance of 1 divided by the given value each turn for any
 thing of the selected type to emit an offspring to a random neighbor cell if one
-is available that is passable and not inhabited by a thing of the same same type
-or, if the proliferating thing is animate, any other animate thing.
+is available that is passable and not inhabited by any thing.