This is cron-daily v1-Jan-14-2020. manpages updated: dgn_comp.txt
This commit is contained in:
+137
-265
@@ -1,330 +1,202 @@
|
|||||||
|
DGN_COMP(6) Games Manual DGN_COMP(6)
|
||||||
|
|
||||||
|
|
||||||
DGN_COMP(6) 1995 DGN_COMP(6)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
NAME
|
NAME
|
||||||
dgn_comp - NetHack dungeon compiler
|
dgn_comp - NetHack dungeon compiler
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
dgn_comp [ file ]
|
dgn_comp [ file ]
|
||||||
|
|
||||||
If no arguments are given, it reads standard input.
|
If no arguments are given, it reads standard input.
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
Dgn_comp is a dungeon compiler for NetHack version 3.2 and
|
Dgn_comp is a dungeon compiler for NetHack version 3.2 and higher. It
|
||||||
higher. It takes a description file as an argument and pro-
|
takes a description file as an argument and produces a dungeon "script"
|
||||||
duces a dungeon "script" that is to be loaded by NetHack at
|
that is to be loaded by NetHack at runtime.
|
||||||
runtime.
|
|
||||||
|
|
||||||
The purpose of this tool is to provide NetHack administra-
|
The purpose of this tool is to provide NetHack administrators and
|
||||||
tors and implementors with a convenient way to create a cus-
|
implementors with a convenient way to create a custom dungeon for the
|
||||||
tom dungeon for the game, without having to recompile the
|
game, without having to recompile the entire world.
|
||||||
entire world.
|
|
||||||
|
|
||||||
GRAMMAR
|
GRAMMAR
|
||||||
DUNGEON: name bonesmarker ( base , rand ) [ %age ]
|
DUNGEON: name bonesmarker ( base , rand ) [ %age ]
|
||||||
|
|
||||||
where name is the dungeon name, bonesmarker is a letter for
|
where name is the dungeon name, bonesmarker is a letter for marking
|
||||||
marking bones files, ( base , rand ) is the number of lev-
|
bones files, ( base , rand ) is the number of levels, and %age is its
|
||||||
els, and %age is its percentage chance of being generated
|
percentage chance of being generated (if absent, 100% chance).
|
||||||
(if absent, 100% chance).
|
|
||||||
|
|
||||||
DESCRIPTION: tag
|
DESCRIPTION: tag
|
||||||
|
|
||||||
where tag is currently one of HELLISH, MAZELIKE, or ROGUE-
|
where tag is currently one of HELLISH, MAZELIKE, or ROGUELIKE.
|
||||||
LIKE.
|
|
||||||
|
|
||||||
ALIGNMENT | LEVALIGN: [ lawful | neutral | chaotic |
|
ALIGNMENT | LEVALIGN: [ lawful | neutral | chaotic | unaligned ]
|
||||||
unaligned ]
|
|
||||||
|
|
||||||
gives the alignment of the dungeon/level (default is
|
gives the alignment of the dungeon/level (default is unaligned).
|
||||||
unaligned).
|
|
||||||
|
|
||||||
ENTRY: level
|
ENTRY: level
|
||||||
|
|
||||||
the dungeon entry point. The dungeon connection attaches at
|
the dungeon entry point. The dungeon connection attaches at this level
|
||||||
this level of the given dungeon. If the value of level is
|
of the given dungeon. If the value of level is negative, the entry
|
||||||
negative, the entry level is calculated from the bottom of
|
level is calculated from the bottom of the dungeon, with -1 being the
|
||||||
the dungeon, with -1 being the last level. If this line is
|
last level. If this line is not present in a dungeon description, the
|
||||||
not present in a dungeon description, the entry level
|
entry level defaults to 1.
|
||||||
defaults to 1.
|
|
||||||
|
|
||||||
PROTOFILE: name
|
PROTOFILE: name
|
||||||
|
|
||||||
the prototypical name for dungeon level files in this
|
the prototypical name for dungeon level files in this dungeon. For
|
||||||
dungeon. For example, the PROTOFILE name for the dungeon
|
example, the PROTOFILE name for the dungeon Vlad's Tower is tower.
|
||||||
Vlad's Tower is tower.
|
|
||||||
|
|
||||||
|
LEVEL: name bonesmarker @ ( base , rand ) [ %age ]
|
||||||
|
|
||||||
|
where name is the level name, bonesmarker is a letter for marking bones
|
||||||
|
files, ( base , rand ) is the location and %age is the generation per-
|
||||||
|
centage, as above.
|
||||||
|
|
||||||
Dec Last change: 12 1
|
RNDLEVEL: name bonesmarker @ ( base , rand ) [ %age ] rndlevs
|
||||||
|
|
||||||
|
where name is the level name, bonesmarker is a letter for marking bones
|
||||||
|
files, ( base , rand ) is the location, %age is the generation percent-
|
||||||
|
age, as above, and rndlevs is the number of similar levels available to
|
||||||
|
choose from.
|
||||||
|
|
||||||
|
CHAINLEVEL: name bonesmarker prev_name + ( base , rand ) [ %age ]
|
||||||
|
|
||||||
|
where name is the level name, bonesmarker is a letter for marking bones
|
||||||
|
files, prev_name is the name of a level defined previously, ( base ,
|
||||||
|
rand ) is the offset from the level being chained from, and %age is the
|
||||||
|
generation percentage.
|
||||||
|
|
||||||
|
RNDCHAINLEVEL: name bonesmarker prev_name + ( base , rand ) [ %age ]
|
||||||
|
rndlevs
|
||||||
|
|
||||||
|
where name is the level name, bonesmarker is a letter for marking bones
|
||||||
|
files, prev_name is the name of a level defined previously, ( base ,
|
||||||
|
rand ) is the offset from the level being chained from, %age is the
|
||||||
|
generation percentage, and rndlevs is the number of similar levels
|
||||||
|
available to choose from.
|
||||||
|
|
||||||
DGN_COMP(6) 1995 DGN_COMP(6)
|
LEVELDESC: type
|
||||||
|
|
||||||
|
where type is the level type, (see DESCRIPTION, above). The type is
|
||||||
|
used to override any pre-set value used to describe the entire dungeon,
|
||||||
|
for this level only.
|
||||||
|
|
||||||
|
BRANCH: name @ ( base , rand ) [ stair | no_up | no_down | portal ] [
|
||||||
|
up | down ]
|
||||||
|
|
||||||
LEVEL: name bonesmarker @ ( base , rand ) [ %age ]
|
where name is the name of the dungeon to branch to, and ( base , rand )
|
||||||
|
is the location of the branch. The last two optional arguments are the
|
||||||
|
branch type and branch direction. The type of a branch can be a two-
|
||||||
|
way stair connection, a one-way stair connection, or a magic portal. A
|
||||||
|
one-way stair is described by the types no_up and no_down which specify
|
||||||
|
which stair direction is missing. The default branch type is stair.
|
||||||
|
The direction for a stair can be either up or down; direction is not
|
||||||
|
applicable to portals. The default direction is down.
|
||||||
|
|
||||||
where name is the level name, bonesmarker is a letter for
|
CHAINBRANCH: name prev_name + ( base , rand ) [ stair | no_up | no_down
|
||||||
marking bones files, ( base , rand ) is the location and
|
| portal ] [ up | down ]
|
||||||
%age is the generation percentage, as above.
|
|
||||||
|
|
||||||
RNDLEVEL: name bonesmarker @ ( base , rand ) [ %age ]
|
where name is the name of the dungeon to branch to, prev_name is the
|
||||||
rndlevs
|
name of a previously defined level and ( base , rand ) is the offset
|
||||||
|
from the level being chained from. The optional branch type and direc-
|
||||||
where name is the level name, bonesmarker is a letter for
|
tion are the same as described above.
|
||||||
marking bones files, ( base , rand ) is the location, %age
|
|
||||||
is the generation percentage, as above, and rndlevs is the
|
|
||||||
number of similar levels available to choose from.
|
|
||||||
|
|
||||||
CHAINLEVEL: name bonesmarker prev_name + ( base , rand ) [
|
|
||||||
%age ]
|
|
||||||
|
|
||||||
where name is the level name, bonesmarker is a letter for
|
|
||||||
marking bones files, prev_name is the name of a level
|
|
||||||
defined previously, ( base , rand ) is the offset from the
|
|
||||||
level being chained from, and %age is the generation percen-
|
|
||||||
tage.
|
|
||||||
|
|
||||||
RNDCHAINLEVEL: name bonesmarker prev_name + ( base , rand )
|
|
||||||
[ %age ] rndlevs
|
|
||||||
|
|
||||||
where name is the level name, bonesmarker is a letter for
|
|
||||||
marking bones files, prev_name is the name of a level
|
|
||||||
defined previously, ( base , rand ) is the offset from the
|
|
||||||
level being chained from, %age is the generation percentage,
|
|
||||||
and rndlevs is the number of similar levels available to
|
|
||||||
choose from.
|
|
||||||
|
|
||||||
LEVELDESC: type
|
|
||||||
|
|
||||||
where type is the level type, (see DESCRIPTION, above). The
|
|
||||||
type is used to override any pre-set value used to describe
|
|
||||||
the entire dungeon, for this level only.
|
|
||||||
|
|
||||||
BRANCH: name @ ( base , rand ) [ stair | no_up | no_down |
|
|
||||||
portal ] [ up | down ]
|
|
||||||
|
|
||||||
where name is the name of the dungeon to branch to, and (
|
|
||||||
base , rand ) is the location of the branch. The last two
|
|
||||||
optional arguments are the branch type and branch direction.
|
|
||||||
The type of a branch can be a two-way stair connection, a
|
|
||||||
one-way stair connection, or a magic portal. A one-way
|
|
||||||
stair is described by the types no_up and no_down which
|
|
||||||
specify which stair direction is missing. The default
|
|
||||||
branch type is stair. The direction for a stair can be
|
|
||||||
either up or down; direction is not applicable to portals.
|
|
||||||
The default direction is down.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dec Last change: 12 2
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DGN_COMP(6) 1995 DGN_COMP(6)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CHAINBRANCH: name prev_name + ( base , rand ) [ stair |
|
|
||||||
no_up | no_down | portal ] [ up | down ]
|
|
||||||
|
|
||||||
where name is the name of the dungeon to branch to,
|
|
||||||
prev_name is the name of a previously defined level and (
|
|
||||||
base , rand ) is the offset from the level being chained
|
|
||||||
from. The optional branch type and direction are the same
|
|
||||||
as described above.
|
|
||||||
|
|
||||||
GENERIC RULES
|
GENERIC RULES
|
||||||
Each dungeon must have a unique bonesmarker , and each spe-
|
Each dungeon must have a unique bonesmarker , and each special level
|
||||||
cial level must have a bonesmarker unique within its dungeon
|
must have a bonesmarker unique within its dungeon (letters may be
|
||||||
(letters may be reused in different dungeons). If the
|
reused in different dungeons). If the bonesmarker has the special
|
||||||
bonesmarker has the special value "none", no bones files
|
value "none", no bones files will be created for that level or dungeon.
|
||||||
will be created for that level or dungeon.
|
|
||||||
|
|
||||||
The value base may be in the range of 1 to MAXLEVEL (as
|
The value base may be in the range of 1 to MAXLEVEL (as defined in
|
||||||
defined in global.h ).
|
global.h ).
|
||||||
|
|
||||||
The value rand may be in the range of -1 to MAXLEVEL.
|
The value rand may be in the range of -1 to MAXLEVEL.
|
||||||
|
|
||||||
If rand is -1 it will be replaced with the value
|
If rand is -1 it will be replaced with the value (num_dunlevs(dungeon)
|
||||||
(num_dunlevs(dungeon) - base) during the load process (ie.
|
- base) during the load process (ie. from here to the end of the dun-
|
||||||
from here to the end of the dungeon).
|
geon).
|
||||||
|
|
||||||
If rand is 0 the level is located absolutely at base.
|
If rand is 0 the level is located absolutely at base.
|
||||||
|
|
||||||
Branches don't have a probability. Dungeons do. If a
|
Branches don't have a probability. Dungeons do. If a dungeon fails to
|
||||||
dungeon fails to be generated during load, all its levels
|
be generated during load, all its levels and branches are skipped.
|
||||||
and branches are skipped.
|
|
||||||
|
|
||||||
No level or branch may be chained from a level with a per-
|
No level or branch may be chained from a level with a percentage gener-
|
||||||
centage generation probability. This is to prevent non-
|
ation probability. This is to prevent non-resolution during the load.
|
||||||
resolution during the load. In addition, no branch may be
|
In addition, no branch may be made from a dungeon with a percentage
|
||||||
made from a dungeon with a percentage generation probability
|
generation probability for the same reason.
|
||||||
for the same reason.
|
|
||||||
|
|
||||||
As a general rule using the dungeon compiler:
|
As a general rule using the dungeon compiler:
|
||||||
|
|
||||||
If a dungeon has a protofile name associated with it (eg.
|
If a dungeon has a protofile name associated with it (eg. tower) that
|
||||||
tower) that file will be used.
|
file will be used.
|
||||||
|
|
||||||
If a special level is present, it will override the above
|
If a special level is present, it will override the above rule and the
|
||||||
rule and the appropriate file will be loaded.
|
appropriate file will be loaded.
|
||||||
|
|
||||||
If neither of the above are present, the standard generator
|
|
||||||
will take over and make a "normal" level.
|
|
||||||
|
|
||||||
A level alignment, if present, will override the alignment
|
|
||||||
of the dungeon that it exists within.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dec Last change: 12 3
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DGN_COMP(6) 1995 DGN_COMP(6)
|
|
||||||
|
|
||||||
|
If neither of the above are present, the standard generator will take
|
||||||
|
over and make a "normal" level.
|
||||||
|
|
||||||
|
A level alignment, if present, will override the alignment of the dun-
|
||||||
|
geon that it exists within.
|
||||||
|
|
||||||
EXAMPLE
|
EXAMPLE
|
||||||
Here is the current syntax of the dungeon compiler's
|
Here is the current syntax of the dungeon compiler's "language":
|
||||||
"language":
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# The dungeon description file for the "standard" original
|
# The dungeon description file for the "standard" original
|
||||||
# 3.0 NetHack.
|
# 3.0 NetHack.
|
||||||
#
|
#
|
||||||
DUNGEON: "The Dungeons of Doom" "D" (25, 5)
|
DUNGEON: "The Dungeons of Doom" "D" (25, 5)
|
||||||
LEVEL: "rogue" "none" @ (15, 4)
|
LEVEL: "rogue" "none" @ (15, 4)
|
||||||
LEVEL: "oracle" "none" @ (5, 7)
|
LEVEL: "oracle" "none" @ (5, 7)
|
||||||
LEVEL: "bigroom" "B" @ (12, 3) 15
|
LEVEL: "bigroom" "B" @ (12, 3) 15
|
||||||
LEVEL: "medusa" "none" @ (20, 5)
|
LEVEL: "medusa" "none" @ (20, 5)
|
||||||
CHAINLEVEL: "castle" "medusa" + (1, 4)
|
CHAINLEVEL: "castle" "medusa" + (1, 4)
|
||||||
CHAINBRANCH: "Hell" "castle" + (0, 0) no_down
|
CHAINBRANCH: "Hell" "castle" + (0, 0) no_down
|
||||||
BRANCH: "The Astral Plane" @ (1, 0) no_down up
|
BRANCH: "The Astral Plane" @ (1, 0) no_down up
|
||||||
|
|
||||||
DUNGEON: "Hell" "H" (25, 5)
|
DUNGEON: "Hell" "H" (25, 5)
|
||||||
DESCRIPTION: mazelike
|
DESCRIPTION: mazelike
|
||||||
DESCRIPTION: hellish
|
DESCRIPTION: hellish
|
||||||
BRANCH: "Vlad's Tower" @ (13, 5) up
|
BRANCH: "Vlad's Tower" @ (13, 5) up
|
||||||
LEVEL: "wizard" "none" @ (15, 10)
|
LEVEL: "wizard" "none" @ (15, 10)
|
||||||
LEVEL: "fakewiz" "A" @ (5, 5)
|
LEVEL: "fakewiz" "A" @ (5, 5)
|
||||||
LEVEL: "fakewiz" "B" @ (10, 5)
|
LEVEL: "fakewiz" "B" @ (10, 5)
|
||||||
LEVEL: "fakewiz" "C" @ (15, 5)
|
LEVEL: "fakewiz" "C" @ (15, 5)
|
||||||
LEVEL: "fakewiz" "D" @ (20, 5)
|
LEVEL: "fakewiz" "D" @ (20, 5)
|
||||||
LEVEL: "fakewiz" "E" @ (25, 5)
|
LEVEL: "fakewiz" "E" @ (25, 5)
|
||||||
|
|
||||||
DUNGEON: "Vlad's Tower" "T" (3, 0)
|
DUNGEON: "Vlad's Tower" "T" (3, 0)
|
||||||
PROTOFILE: "tower"
|
PROTOFILE: "tower"
|
||||||
DESCRIPTION: mazelike
|
DESCRIPTION: mazelike
|
||||||
ENTRY: -1
|
ENTRY: -1
|
||||||
|
|
||||||
DUNGEON: "The Astral Plane" "A" (1, 0)
|
DUNGEON: "The Astral Plane" "A" (1, 0)
|
||||||
DESCRIPTION: mazelike
|
DESCRIPTION: mazelike
|
||||||
PROTOFILE: "endgame"
|
PROTOFILE: "endgame"
|
||||||
|
|
||||||
NOTES:
|
NOTES:
|
||||||
Lines beginning with '#' are considered comments.
|
Lines beginning with '#' are considered comments.
|
||||||
A special level must be explicitly aligned. The alignment
|
A special level must be explicitly aligned. The alignment of the dun-
|
||||||
of the dungeon it is in only applies to non-special levels
|
geon it is in only applies to non-special levels within that dungeon.
|
||||||
within that dungeon.
|
|
||||||
|
|
||||||
AUTHOR
|
AUTHOR
|
||||||
M. Stephenson (from the level compiler by Jean-Christophe
|
M. Stephenson (from the level compiler by Jean-Christophe Collet).
|
||||||
Collet).
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
lev_comp(6), nethack(6)
|
lev_comp(6), nethack(6)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dec Last change: 12 4
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DGN_COMP(6) 1995 DGN_COMP(6)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BUGS
|
BUGS
|
||||||
Probably infinite.
|
Probably infinite.
|
||||||
|
|
||||||
|
COPYRIGHT
|
||||||
|
This file is Copyright (C) Kenneth Lorber and was last modified
|
||||||
|
2018/04/25 (version NetHack-3.6.0:1.6). NetHack may be freely redis-
|
||||||
|
tributed. See license for details.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dec Last change: 12 5
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NETHACK 25 May 2015 DGN_COMP(6)
|
||||||
|
|||||||
Reference in New Issue
Block a user