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