From edfb507298345cd26bd3fe4aacaa57d27890c836 Mon Sep 17 00:00:00 2001 From: MotoLegacy Date: Thu, 26 Dec 2024 20:55:52 -0500 Subject: [PATCH] Add server directory; add map rotation docs --- .gitignore | 3 +- generate_docs.sh | 2 +- markdown/landing/index.md | 8 ++- markdown/res/images/mapvote.webp | Bin 0 -> 16502 bytes .../{internal => server}/dedicated-server.md | 0 markdown/server/map-rotation.md | 51 ++++++++++++++++++ 6 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 markdown/res/images/mapvote.webp rename markdown/{internal => server}/dedicated-server.md (100%) create mode 100644 markdown/server/map-rotation.md diff --git a/.gitignore b/.gitignore index d163863..d56cb93 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -build/ \ No newline at end of file +build/ +.DS_Store \ No newline at end of file diff --git a/generate_docs.sh b/generate_docs.sh index be3cabc..99eedaf 100755 --- a/generate_docs.sh +++ b/generate_docs.sh @@ -1,6 +1,6 @@ #!/bin/bash rm -rf build/ -mkdir -p build/{res,landing,mapping,internal} +mkdir -p build/{res,landing,mapping,internal,server} cp -r markdown/res build/ mkdir -p build/ && cd markdown/ find . -iname "*.md" -type f -exec sh -c 'pandoc --standalone --toc --template ../template/template.html --from=markdown --to=html5 --lua-filter=../links-to-html.lua -o "../build/${0%.md}.html" "${0}"' {} \; \ No newline at end of file diff --git a/markdown/landing/index.md b/markdown/landing/index.md index 6575a03..8cddf68 100644 --- a/markdown/landing/index.md +++ b/markdown/landing/index.md @@ -34,9 +34,15 @@ At this current moment, no marked-stable builds of Nazi Zombies: Portable are ma Core documents contain information about Nazi Zombies: Portable's internal design. They may not be specifically relevant to custom content creators, though overlap will be present for map features that interact with NZ:P's QuakeC or for specialty features. -- [Dedicated Server](../internal/dedicated-server.md) - [Weapon IDs](../internal/weapon-ids.md) +## Dedicated Server Documentation + +Documents relevant for those who are looking to host a dedicated server for Nazi Zombies: Portable. + +- [Dedicated Server Setup](../server/server-setup.md) +- [Map Rotation & Voting](../server/map-rotation.md) + ## Mapping & Modding Documentation These documents are relevant for level creators who wish to create content for Nazi Zombies: Portable. These documents assume you have basic knowledge of [mapping for Quake](https://www.youtube.com/playlist?list=PLgDKRPte5Y0AZ_K_PZbWbgBAEt5xf74aE), as well as [TrenchBroom](https://trenchbroom.github.io/) knowledge. Nazi Zombies: Portable also supports Valve HAMMER based mapping software via a separate FGD. diff --git a/markdown/res/images/mapvote.webp b/markdown/res/images/mapvote.webp new file mode 100644 index 0000000000000000000000000000000000000000..00d84119f5c0acf74dccdbb7e62b59d00530af8c GIT binary patch literal 16502 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 J&KUss{{V+fr=tJ> literal 0 HcmV?d00001 diff --git a/markdown/internal/dedicated-server.md b/markdown/server/dedicated-server.md similarity index 100% rename from markdown/internal/dedicated-server.md rename to markdown/server/dedicated-server.md diff --git a/markdown/server/map-rotation.md b/markdown/server/map-rotation.md new file mode 100644 index 0000000..bab2123 --- /dev/null +++ b/markdown/server/map-rotation.md @@ -0,0 +1,51 @@ +% Map Rotation & Voting - NZ:P Mapping Documentation +# Map Rotation & Voting + +__NOTE: This guide uses the terms "level" and "map" interchangeably.__ + +## Introduction + +Nazi Zombies: Portable supports Map Rotation as well as in-game Map Voting for server hosters to provide a selection of maps to clients automatically, as opposed to forcing manual map selection and map repetition. + +## Means of Map Changing + +### Map Voting + +`sv_enablechatplugins` is required to allow for map voting on your server. + +Users can use the `mapvote ` chat command to vote to issue a `changelevel` after the vote duration and grace period. Issuing this command will alert all clients in the server of a request to change levels, and how they can use `mapvote_y` or `mapvote_n` to vote on the decided level. Votes are public. + +Votes last 60 seconds, and provided a vote passes, a 15 second wait is in place before the change of level. There is no limit on the amount of votes users can start, but only one can be active at a time. + +Votes take priority over map rotation settings. + +![Map Vote in-action](../res/images/mapvote.webp) + +### Map Rotation + +Nazi Zombies: Portable supports three modes of Map Rotation, controlled via the `sv_maprotationmode` cvar: + +``` +0 : Do Not Rotate +1 : Fixed Map Rotation +2 : Random Map Rotation +``` + +#### Do Not Rotate + +Rotation mode `0` disables map rotation, the currently loaded level will begin again. + +#### Fixed Map Rotation + +Rotation mode `1` picks linearly from a list of rotations from a plain text (`.txt`) file in the `nzp/` directory. The basename is controlled by `sv_maprotationbasename` (by default it is `map_rotation`). The contents should only be the raw (`.bsp`) names for the levels you want to rotate. For example, to switch between *Warehouse (Classic)* and *Warehouse*, your rotation file would look like so: + +``` +nzp_warehouse +nzp_warehouse2 +``` + +If a rotation file is not found, the *Random Map Rotation* (`2`) setting will be used instead. + +#### Random Map Rotation + +Rotation mode `2` chooses a random map from the server's installed maps. \ No newline at end of file