BSE Map Vote Mutator README.TXT ================================================================================ Thank you for downloading the BSE Map Vote Mutator version 0.6.6 alpha. Please report bugs to eq2@eq2.co.uk This mutator is designed to add map voting functionality to U2:XMP servers. It allows players to choose from maps in the current server rotation as well as up to 10 admin-defined maps which do not have to be in rotation. It also allows admins to switch levels quickly from in-game by using a simple on-screen GUI. Please see below for a list of new features in this version! Hope you have fun with it. - EQ² Important Notes ================================================================================ * When running a MapVote-enabled server, you MUST run BuildMD5 before the server is started. Please carefully follow the instructions below for setting up a server. * This mutator will not work in conjunction with any other mutators which alter the PlayerController, such as XMPTE and XMPLE. * In order to make admin's lives easier, this mutator INCLUDES the DefaultGame03 functionality. If you use DefaultGame03 on your server, please remove it before running this mutator. * This mutator has only undergone limited, alpha-release testing. Expect there to be some bugs or features which are not fully functional. New Features In This Version ================================================================================ 1. Coloured player names in polls 2. New "say" commands: !voteyes and !voteno 3. Next-map display turns yellow when map locked in 4. Bind arrow keys to mapvote navigation using AUTOBIND New Features In Version 0.6 ================================================================================ 1. End-of-map summary added (allows player to press USE to vote, and displays the enqueued map) 2. Added "say" command support: !mapvote \ !mapvotecfg /`equivalent to their command-line counterparts !thetime shows the current server time in game !nextmap shows the next map on screen !motd re-displayes the message of the day Server Installation ================================================================================ To install this mutator on your U2:XMP server, perform the following steps: 1) Remove any previous versions of BSEMapVote from your U2XMP/System directory, also remove the ServerPackages= entry. It is not necessary to remove other entries, although you may wish to do so in order to avoid confusion when editing ini settings. 2) Extract the files BSEMapVote_0_66.u and BSEMapVote_0_66.int to your U2XMP/System directory. 3) Find the section in your U2XMP.ini file which looks something like this: [Engine.GameEngine] CacheSizeMegs=32 UseSound=True ServerActors=IpDrv.MasterServerUplink ServerActors=UWeb.WebServer ;ServerPackages=... ServerPackages=BSEMapVote_0_66 <-- add this line Ensure that there is no semicolon (;) at the start of the line with BSEMapVote_0_66 on it. Remove any previous versions of BSEMapVote which are defined in ServerPackages. 4) Run BuildMD5.bat in your U2XMP/System directory. 5) Add the mutator to your game in the same way as any other mutator. 6) The compressed .uz2 file is included for you to put into your redirect. If you want to run the Web Administration Module, do the following: 1) First, enable the stanard WebAdmin and check that it is functional. Do not proceed until you are sure this is the case 1) Extract the files defaults_menu.htm and defaults_mapvote.htm into your U2XMP/Web directory. When asked to over-write the existing file, choose yes. An original version of the defaults_menu.htm file is also included in the archive should you wish to un-install the mod. 2) Open your U2XMP.ini file and locate the following section: [UWeb.WebServer] Applications[0]=U2WebAdmin.U2ServerAdmin ApplicationPaths[0]=/ServerAdmin Applications[1]=U2WebAdmin.U2ImageServer ApplicationPaths[1]=/images Add the following lines: Applications[2]=BSEMapVote_0_66.WebConfig ApplicationPaths[2]=/MapVoteCfg Save and close the file. Next time you run your server the WebAdmin page will be accessible as a link below "Map List" labelled "Map Vote". Server Configuration ================================================================================ *** IMPORTANT NOTE *** MapVote Version 0.6.6 includes a Web Administration Module to configure options. This is not required but will make your life much easier. *** CONFIGURING THE PRE-DEFINED MAP LIST *** The predefined maplist is stored in the MyU2XMP.ini file. If it does not exist, add the following text at the end of the file. If you have already run the mutator once you may find that the section is already created for you. [BSEMapVote_0_66.ExtendedMapList] VoteableMaps[0]= VoteableMaps[1]= VoteableMaps[2]= VoteableMaps[3]= VoteableMaps[4]= VoteableMaps[5]= VoteableMaps[6]= VoteableMaps[7]= VoteableMaps[8]= VoteableMaps[9]= If there are other lines in this section, leave them unchanged. To add maps to the predefined list, simply add the full map name (not including the .unr extension) after the '=' sign. An example block might look like this: [BSEMapVote_0_66.ExtendedMapList] VoteableMaps[0]=XMP-BSE-DirtTrack VoteableMaps[1]=XMP-BSE-Morolod VoteableMaps[2]=XMP-BSE-Cumbrance VoteableMaps[3]=XMP-BSE-Sirocco VoteableMaps[4]=XMP-BSE-FirstFrost VoteableMaps[5]=XMP-APv2-Miasma-FMI VoteableMaps[6]=XMP-AMP-TrainingDay-ALPHA5 VoteableMaps[7]= VoteableMaps[8]= VoteableMaps[9]= Save the file and re-start the server. The pre-defined maps will show up as options 1 thru 10. NB. It is not possible to add more than 10 pre-defined maps. Do not attempt to do so. *** CONFIGURING THE MAPVOTE LIMITATIONS *** The MapVote limitations are also stored in the MyU2XMP.ini file. To alter them (without using WebAdmin), open the file then locate/create the following section. [BSEMapVote_0_66.MapVoteGameReplicationInfo] maxVotesPerMap=5 maxIdenticalVotesPerMap=2 initialVotePeriod=60 betweenVotesPeriod=30 The defaults for all values are shown above. When you have altered the settings to your liking, save the file and re-start the server. Client Installation ================================================================================ No steps are required on clients to install the mutator, it will be automatically downloaded and installed by the server upon joining. If you wish to install the mutator on your computer to bypass the download, simply extract the BSEMapVote_0_66.u file to your U2XMP/System directory. Client Configuration ================================================================================ The recommended method of altering the client configuration is to use the console command MAPVOTECFG. MAPVOTECFG will display a graphical menu to alter the configuration options. Use the mouse wheel to choose a configuration item, use the left mouse and right mouse buttons to increase, decrease and toggle the items. You may also use MAPVOTECFG to alter options directly on the command-line. The following options are available: MAPVOTECFG - Displays a help message. MAPVOTECFG ENABLEGUI - Enables the graphical mapvote (default). MAPVOTECFG DISABLEGUI - Disables the graphical mapvote. MAPVOTECFG MENUSIZE - Set the number of items to display on the map vote menu. Automatically enables the GUI if it is disabled. MAPVOTECFG STYLE - Set poll display style: NORMAL: Same as default XMP kick/ban poll SMALL: Similar to BF2's map vote poll VERYSMALL: Very compact, minimal text If you wish to alter the options manually, locate the following section in your MyUser.ini file: [BSEMapVote_0_66.MapVoteController] DisableGUI=False VoteGUINumRows=12 voteStyle=normal Set DisableGUI to True to disable the GUI, False (or default) will enable it. Setting VoteGUINumRows to an integer value alters the size of the vote menu, using this method it is possible to set it to a value outside the normal scope (3 to 12). Although this may lead to unexpected behaviour. voteStyle options are as listed above. Using the mutator ================================================================================ By default the mutator displays a short usage message for a pre-defined period upon entering the server. To start a map vote (uses the GUI by default), type the following into your console (press tab or apostraphe): MAPVOTE Select a map from the list using the mouse wheel. To start a vote for the map to change immediately use your PRIMARY FIRE (default is left-mouse-click). To start a vote for the map to be queued as the next map in rotation use your SECONDARY FIRE (default is right-mouse-click). To hide the UI without starting a vote, type MAPVOTE again. The next map in rotation is highlighted in red. To start a vote for a specific map (if you have already made a note of the map number), type MAPVOTE into your console (eg. MAPVOTE 3). To start a vote for a specific map and enqueue as next map in rotation, type MAPVOTE NEXT into your console. Binding the MapVote to a key ================================================================================ To bind the MapVote command to a key, either use the XMP menu (config->ctrls) or in-game type the following into your console: SET INPUT MAPVOTE For example to use they "B" key for mapvote, type the following: SET INPUT B MAPVOTE Pressing "B" will now show and hide the mapvote GUI. A useful tip (if you're running out of un-bound keys) is to use SHIFT in conjunction with function keys. For example SHIFT+F1 can be accessed by binding to key F13 (simply add 12 to the number of the function key you wish to bind). SET INPUT F17 MAPVOTE for example will bind MapVote to SHIFT+F5. Using the mutator whilst logged in as server admin ================================================================================ Server admins can use the MapVote mutator as a quick method of switching levels whilst in game. Whilst logged in as admin on your server (requires XMPSummoner or similar), using the MapVote functionality will instantly over-ride any votes currently running and/or re-set the enqueued map without starting a poll. Once a map has been enqueued only admins can over-ride it. Change Log ================================================================================ Version 0.0.1 - Concept test --------------------------- + Initial version. + Test getting map list from the server and displaying on the client. Version 0.1 ----------- + Added voting logic to existing vote logic in GameReplicationInfo. + Added ability to cast a vote by typing MAPVOTE [number]. + Added info to the end of the map list about the next map in rotation. + Added UI plugin which will display the voting screen. Version 0.1.1 ------------- - Fixed the bug where starting a map vote after a kick vote displays the kick vote again. - Changed the way the next map is worked out to prevent each call to MAPVOTE from incrementing the place in the map cycle. + Added a nice GUI message once a vote is placed. + Added a MOTD telling players how to vote for a map. Version 0.1.2 ------------- + Added a detection for RaptorRace maps which will stop the RR MOTD and the MapVote MOTD from overlapping. Version 0.2 ----------- + Added detection of VOTEYES and VOTENO keybinds so that the correct vote keys are displayed on the vote message. + Typing MAPVOTE in the quick console now brings up the full console. + Typing MAPVOTE [number] in the full console hides the full console. + Tidied code ready for initial trial. Version 0.3 ----------- + Incorporated DefaultGame03 code so that this mutator can replace DefaultGame03. + Added support for admin-defined maps in addition to maps in rotation. - Fixed the client-detection criteria so that the UI plugin will install on listen servers and not just clients. Version 0.3.1 ------------- + Added the "next" modifier to allow maps to be queued in rotation. + Added pretty BSE logo in console because I thought it would look cool + MOTD is now stored as a config var so that server admins can over-ride it Version 0.3.5 ------------- + Added basic GUI support. Display maps on canvas, exec commands to select. - Fixed replication issues with the queued map! (oops) Version 0.3.6 ------------- + Extended GUI support to work with mousewheel and mouse buttons. + Next map highlighted in red + Added config command to alter GUI parameters and enable and disable it + Added "scroll bar" to indicated scroll position in list - Fixed synchronisation issues between the MapListXMP and the ExtendedMapList Version 0.3.7 ------------- - Fixed some bugs introduced by the need to override states to make the mousewheel selection work - Changed the way the HUD plugin registers itself - Netcode optimisations with passing maps from server to client, now done with replicated funtion - Tidied up the GUI function to make it sleeker, quicker - Fixed a bug where the selection position ended up past the end of the list if maps are removed from rotation mid-game Version 0.3.8 ------------- + Added admin over-rides, admin votes are now implemented instantly and not subjected to poll + Admins see the entire selection of maps on the server listed after the rotation Version 0.4 ----------- - Fixed an admin bug that meant that admin votes weren't always over-riding + Votes are now shown as a broadcast message as well as a log entry Version 0.4.1 ------------- - Fixed the bug that meant the normal server rotation got stuck on 1 map - Fixed the bug with the admin maplist that creates a huge ping spike Version 0.4.2 ------------- - Un-did the fix for the ping spike problem because it completely broke the map list on clients. Version 0.4.3 ------------- + Created entirely new method of dumping the full maplist to clients which does not cause any lag. Full maplist is also now cached by the client. + Added my GUI-Designer code Version 0.4.5 ------------- + Roughed out GUI layout using designer - Dropped transmission rate of full maplist to ensure no lag even on low bandwidth connections Version 0.4.6 ------------- + Converted GUIDesigner elements to code + Added sounds to GUI + Added WebAdmin Page + Added vote limits to player, max votes per map and total per game + Made MOTD configurable using the WebAdmin - Fixed a bug with the text-only mapvote which meant the GUI interfered Version 0.4.7 ------------- - Fixed the accidental linkage with eq2.u! Oops! Version 0.4.8 ------------- + Added voting delays: admin-configurable via WebAdmin + Added "small" and "verysmall" poll display modes: default is now "small" * Removed GUI Designer code, no longer required - Fixed bug whereby player could reset his LastVoteTime by voting unsuccessfully Version 0.5 ----------- + Tidied up WebAdmin, brought more into line with existing U2 WebAdmin + Added a GUI for MAPVOTECFG to make configuration easier - Fixed WebAdmin not saving MOTD duration correctly. Min value is now 1 second. Version 0.5.2 ------------- - Fixed the bug which means that the last map in rotation isn't displayed as votable - Fixed the bug which meant that the text-only mapvote would not display if the GUI was disabled. Version 0.6 ----------- + Added "say" command support: + Added end-of-match functionality - all match-end votes are NEXT votes - Fixed that damn bug which meant joining a server after joining a mapvote-enabled server failed! - Fixed (once and for all) the admin-full-maplist-causes-lag bug! Version 0.6.1 ------------- - Fixed end-of-map alpha value being affected by other UI elements - Fixed end-of-map text displaying on top of the scoreboard Version 0.6.2 ------------- + Added colour-parser to vote display (player names now show in colour) + Added [total/required] subtext after poll text (brings polls into line with the XMP standard polls) Version 0.6.3 ------------- + Added more say commands: !voteyes and !voteno + Added option for player to disable the MOTD via MAPVOTECFG - Fixed a random bug that made odd characters display on top of the main menu Version 0.6.4 ------------- + Added option for player to bind the arrow keys to mapvote functions (for players without a mousewheel, or who don't like mouse navigation). Type AUTOBIND in console, or use option within MAPVOTECFG. Version 0.6.5 ------------- + End-of-match status box turns yellow when map locked in + Added adminlogin/adminlogout execs, so MapVote admin overrides can be used without needing the summoner - Fixed not being able to vote using MAPVOTE until after MAPVOTE Version 0.6.6 ------------- + End-of-map screen now hides when scoreboard is hidden Copyright Blurb =============== All this stuff is Copyright EQ² (Adam Mummery-Smith) Team BSE 2005/06. Except stuff that is copyright of other people. Trademarks etc are properties of their respective owners.