Map Management Plugin - Version 4.0 - User Guide
Filename: plugin_blatt_map
Offline Manual
You are reading this offline manual for this plugin. The links to the right
navigate through the offline information. The links above and to the left
link to www.ravenousbugblatterbeast.pwp.blueyonder.co.uk.
If you downloaded the plugin from somewhere else, or downloaded it some time ago,
I recomend you check for an updated plugin. Note that the on-line manual may have been updated
even if the plugin hasn't.
Choosing a mode
This plug runs in two modes:
- In voting mode, when the end of a map is reached the system starts an interactive menu
driven vote to choose the next map. In the period before the vote starts, players can nominate
maps to be on the menu.
- In cycle mode, the map is cycled to the next map. However, this is an improvement over the
standard map cycle as it is synchronised to the end of the round, displays the correct nextmap
even when admin_map is used, and it can prevent administrators from being kicked. Cycling mode
also disables all forms of map voting except for admin_vote_map, which is made accessible to
administrators with ACCESS_MAP level.
For most situations I recommend voting mode. You can change modes with the bbmap_mode command:
bbmap_mode vote
bbmap_mode cycle
Setting up victory conditions
A victory condition specifies when the map "ends". What happens at the "end" of the map depends on
whether you are in voting or cycle mode: In voting mode, the vote begins. In cycle mode, the map changes
to the next map in the cycle (at the end of the next round on CS, if bbmap_sync is on).
The plugin supports up to 6 victory conditions:
X mins |
The map will end after being played for
the specified time. |
X rounds |
The map will end after the specified number
of rounds have been played. |
X wins |
The map will end after the specified number
of rounds have been won be the leading team. |
X wins lead |
The map will end after the leading team has won
X rounds more than their opponents. |
X frags |
The map will end after the leading player has scored
X points. In most game mods points are scored for kills (frags). In some,
like DoD points are also scored for objectives. This setting uses the
number of points, not the number of kills. |
X frags lead |
The map will end after the leading player has scored
X points more than the 2nd best player. |
Any of the six victory conditions can be combined and are configured using the
bbmap_duration command. To disable any victory connection except time, set it to zero.
For example, the following sets the map to end after 20 minutes, 30 rounds or if one
team gets a 10 round lead over the other:
bbmap_duration 20 mins
bbmap_duration 20 rounds
bbmap_duration 0 wins
bbmap_duration 10 wins lead
bbmap_duration 0 frags
bbmap_duration 0 frag leads
NOTE: Victory conditions that are based on rounds or rounds won by teams are
currently only supported for counter-strike.
Although this may sound a bit fancy for the majority of servers, I recommend that you consider
a "wins lead" condition where supported, to prevent situations where one team has a huge advantage over the
other either due to skill imbalances or equal skill and the map being unbalanced.
Using maps.ini, mapcycle.txt and standardmaps.ini
This plugin uses three lists of maps, standardmaps.ini, maps.ini and mapcycle.txt.
The purpose of the last of these two files is subtly different to their normal purpose
when this plugin is installed.
All of them simply contain a list of map names without the .bsp extension.
standardmaps.ini
This one is easy to understand. It should contain the names of all the maps
that come as standard with your game mod, regardless of whether you use them
on your server or not. It is used when generating a vote menu so that the
plugin knows when to warn the user about custom maps.
If you do not want any custom map warnings displayed, simply don't create
this file.
maps.ini
When this plugin is not installed, Admin Mod uses this file as a list of maps available to the admin_map
and admin_vote_map commands, and it has no bearing on the cycle. It's existence is also option.
With this plugin installed, this becomes the master list of all maps on your server.
This file should contain every map available on your server - the plugin does not support having maps
in the cycle that you cannot also vote for. The maps.ini file will be
used to determine which maps players are able to nominate. The order of the maps
in this file is also used to determine the order maps appear on the menu / are
cycled. As votes/cycles occur the plugin rewrites this file with a new order so
that it remembers which maps have been played recently between server restarts.
mapcycle.txt
When this plugin is not installed, half-life uses this file as a list of all maps
in the cycle, in the order they should be cycled. When this plugin is installed, the
file is still the list of maps to be cycled, but it is also the list of maps the plugin
is allowed to use to fill any empty spaces on the voting menu if there are not enough
nominations. e.g. If "cs_assault" is in maps.ini but not in mapcycle.txt you can
nominate it, but it will never automatically get added to the voting menu, and if
in cycle mode, the plugin will never cycle to it.
Now heres the fun part: The order of the map names in mapcycle.txt is ignored once
the plugin is installed. Maps are cycled to / used to fill empty spaces on the voting
menu based on their current order in maps.ini. To clarify imagine taking a copy of
maps.ini and removing all those map names that are missing from mapcycle.txt. What you are left
with is the maps in the cycle, in the order they will be cycled.
Although this seems a bit complex at first, there is a sensible reason why:
- When filling empty spaces on the voting menu maps, are taken from the top of maps.ini,
but only if they are also listed in mapcycle.txt - mapcycle.txt is being used as a filter.
- When picking a map to cycle to, the first one in maps.ini that also appears
in mapcycle.txt is chosen.
- The winner of a vote or any map cycled to is moved to the bottom of maps.ini
- Any maps on a vote menu that did not win are moved to just far enough off the bottom
that they will not be banned as recently played. This means they will not be used to fill
empty spaces on the next vote menu, unless you have very few maps in mapcycle.txt.
Using the two files in this way means that if you switch a server back and forth between voting
and cycling modes the plugin is still able to accurately ban the last few maps played from being
nominated, even if they were played as part of a cycle. It also means the cycle can pick up from
where it left off if the server is restarted, rather than always going back to the same map, and you
don't end up with the same unpopular map being continuously added to the vote menu when there are not
enough nominations.
Automatically create map lists
To help you maintain your mapcycle.txt and maps.ini files, you can download my
Map Cycle Builder
scripts which build these files from the contents of your maps folder.
Using more than 200 maps
Unfortunately I had to hard code the maximum number of maps in maps.ini into the plugin
source code. If you wish to use the plugin with more than 200 maps, you will have to change
the constant MAX_MAPS at the top of plugin_blatt_map.sma and recompile it.
Prevent admins being kicked on map change
Some servers suffer a problem where all administrators that have a reserved name are kicked whenever
the map changes, and those without a reserved name loose their administrator rights. This is a known
bug in Admin Mod, and !2SX! has written a plugin_antiadminkick to prevent this.
If you install this plugin and plugin_antiadminkick together, the anti-kick functionality will
automatically be used whenever this plugin changes the map for any reason - votes, cycles, admin_map commands, etc.
However, you must ensure that you have at least version 3.13 of plugin_antiadminkick, and that plugin_antiadminkick
is above plugin_blatt_map in your plugin.ini file.
Making players aware of custom maps
If you have some maps you have downloaded on your server that are not part of the standard set for your game mod,
you can have the plugin warn players about such maps. Create a file called standardmaps.ini
in either addons/adminmod/config or in your game mod folder,
and in it list all the maps that are standard for your game. This will have two effects:
- When a vote menu is displayed, it will indicate when a custom map appears on the vote.
- When the server is about to change to a custom map for any reason, it will display a message
indicating where custom maps can be downloaded.
To set the URL from which players can download your custom maps, use the command bbmap_mapsurl.
Creating Map Specific Configurations
You can create different configurations for specific maps. However, you must
ensure that you restore the default configuration in your adminmod.cfg (or server.cfg/listenserver.cfg
for an old-style installation of Admin Mod). e.g. If you
want de_dust to run for 30 minutes, and all other maps to run for 40 minutes, create
a file, de_dust.cfg in your cstrike folder and in it put:
admin_command bbmap_duration 30 minutes
However this will mean that once dust is played the duration will remain on 30 minutes for
all future maps. Therefore you have to add the following to adminmod.cfg to change it back
after dust is played:
admin_command bbmap_duration 40 minutes
Silence is golden...
If you want to turn off the audio announcements, see
the bbmap_verbosity command in the reference section.
Rock the vote, rock the vote baby...
In order to customise the rock the vote settings, you will probably need to set all three
options - "minutes", "percent" and "players" in order to get the configuration
you are expecting. The default options are 10 minutes, 60 percent and 1 player. Remember
all three conditions must be set for the vote to start. So for example if you want the vote
to start if any player rocks the vote after 5 minutes use the command:
bbmap_rockthevote 5 minutes
bbmap_rockthevote 0 percent
bbmap_rockthevote 1 player
Further tweaks
Please see the reference section for a full list of configuration settings for this plugin.
|