******************************************************************************* *** MW4 Monitor 1.7.7 open beta, readme file. *** *** Author: Giovanni "EvilCow" Di Sirio *** *** *** *** E-Mail: herpes@ngi.it ICQ: 1302108 *** *** Developed with MekTek contribution: http://www.mektek.net *** *** Homepage: http://mw4.ngi.it/evilbot *** *** Open Beta Forum: http://www.mektek.net/forums/index.php?act=SF&f=12 *** ******************************************************************************* This is a beta release of the MW4-Monitor, bugs are very possible. Bug reports and new ideas are really welcome. ****************************** *** MW4-Monitor background *** ****************************** MW4 games have a poor server support, this makes the life for server admins really hard at times. Other multiplayer games (Tribes as example) are really server features rich compared to MW4. The DEV team acknowledged this and made the Win32 dedicated server, a step in the right direction but still poor compared to other popular games. The idea at the base of MW4-Monitor project is to bring some features of the Tribes dedicated server into MW4. ****************************** *** Basic list of features *** ****************************** - Players votes: map, kick, admin. - Warnings and auto-kicks for suicides, TKs, bad language. - Programmable taunt bot, this makes the players aware that something different exists on the server, players feedback is usually positive. - Tournament mode, the maps don't cycle but are selected by players or by a public admin (a player can become public admin by vote). - Telnet admin interface. - Integrated FTP server for remote server management. ****************************** *** Design choices *** ****************************** - The monitor offers a limited GUI, all options must be set into the configuration files, all operations are possible by inside the game or the telnet interface. I prefer features over "easy to use" because usually server admins are technically skilled people. - The monitor doesn't search for a started server, it starts the server by itself and monitors it all the time, closing the monitor you shutdown the server too. - The monitor is designed for dedicated, remotely-operated servers not for the usual desktop user. - The monitor is tested on W2K SP2 and XP. It **does not work** under W95, W98, W98SE and WME, there are no plans to support those "operating systems". - The monitor is only tested on English and German versions of the games. ****************************** *** Installation *** ****************************** - If you have a previous MW4 Monitor installation save you configuration files: Server.ini, EvilBot.ini, MapCycle.ini, Admin.ini. - Unzip the files into your main game directory. ****************************** *** Monitor setup *** ****************************** - Edit Server.ini, insert you server configuration here, documentation is inside the file as remarks. - If needed edit Mapcycle.ini with the Map Cycle Editor included with the monitor. You don't have to do this unless you want a different mapcycle or you modified your NFM files. ****************************** *** Server setup *** ****************************** It is done inside Server.ini, make sure to have a connection configured inside the game. ****************************** *** Server execution. *** ****************************** Run the MW4Monitor.exe program, after that the following things will happen. 1 - The monitor starts a dedicated server. 2 - The monitor automatically cycles server setup screens. While the server is starting *do not* try to move or click the monitor or the server, this often stops the starting process. After the server started and the monitor goes into the "logging" state you can safely rearrange windows. ****************************** *** Multiple servers *** ****************************** To run multiple servers within the same Mercs directory you can create multiple Server.ini files renaming them: Server1.ini, Server2.ini etc etc. After that you have to launch the monitor with the config file as command line parameter. I suggest to make 2 desktop shortcuts to MW4Monitor.exe and edit the properties to add the config files as parameter. Note that you can make different mapcycles and bots too. UPDATE: It seems that the Win32 Dedicated Server does reload some server parameters at any map change, if you run multiple servers with different settings I suggest to run them from different directories. You have not to reinstall the game, just copy all files in another directory, if you need to save space you can erase movie files from the second directory. ****************************** *** REPORT A PROBLEM *** ****************************** Send me a description of the problem (as detailed as possible) and following files: - Option.ini - Server.ini - Evilbot.ini - Mapcycle.ini - ErrorLog.txt herpes@ngi.it ****************************** *** Versions History *** ****************************** Version 1.7.7 - Added game type 4 to launch a different mercs executable name: mw4mercs_win32.exe Version 1.7.6 - Now the Print() API expands the /n and %$ macros. The other macros are available in PrintMacro() and PrintMessage() APIs as usual. This fixes a bug that did not allow the /n into the EvilBot.dll scheduled messages. - Fixed a bug in the Print() API, automatic lines wrapping was not working. NOTE: you dont have to manually put the /n, the bot wraps lines automatically. Version 1.7.5 - Fixed another incompatibility between MW4 Monitor and the MekPak 1.1. Version 1.7.4 - Now all the Print() APIs can insert the bot name if the message starts with a '$'. The APIs BotPrint() and BotPrintMacro() are no more available (still present but works exactly as Print() and PrintMacro()). This mean that if you want the bot name you must start your messages into the .ini files with a $. - Fixed a small incompatibility between MW4 Monitor and the MekPak 1.1. Version 1.7.3 - Enhanced the PrintMacro() to handle multi lines messages, the line separator is the /n macro, the list of macro is enhanced, the documentation of all the available macros is in the EvilBot.ini file as a remark. The API also automatically wraps the text to not exceed the 90 total characters, the text is wrapped when a space, a tab or a dot is met in the text. Now adding new macros to the monitor automatically enhances all the DLLs using this API. Note, now this API DOES NOT add the bot name before the lines. - New API BotPrintMacro(), same as PrintMacro() but inserts the bot name. - New API ExpandMacros() that expand the bot macros into a string. - Modified the Options->Prompt setting in Server.ini to not default to "Bot: " when empty, not it is possible to not give the bot a name. - Now the new macros work even for the monitor commands: -tip, -help, -hello, -hi. - Added new APIs to Enable/Disable the Votes, the Randomizer and the monitor chat output. - Fixed a bug that made the monitor not read correctly the mech names for MW4 Vengeance and MW4 Black Knight games. Version 1.7.2 - NEW FEATURE: Added settins into Server.ini to override any setting in the Options.ini file inside the [server] section, this will allow to modify settings not handled in the GUI like the Mission Review, the restrictions and others. - Fixed a bug that made the monitor crash when only a map was in the mapcycle and the random cycle mode was enabled. - Fixed an error in GermanServer.ini, changed from: JoinTimeLimit='Unlimited' to JoinTimeLimit='Unbegrenzt' Version 1.7.1 - NEW FEATURE: Implemented APIs to allow the plugin DLLs to create menu items in the MW4 Monitor GUI. - NEW FEATURE: Plugin manager function, it shows name, status and version of all the installed plugins. It is also possible to activate/deactivate the plugins from the monitor GUI. Thanks to this feature the most common plugins will be released bundled with the monitor but deactivated by default. The download will be a bit bigger but the installation much much simpler. - Small change to the tournament mode: when the tournament mode is enabled the monitor no more selects the next mission when the current mission ends. It stays on the same mission (useful when having to replay a drop). - Fixed a bug that made not possible delete map cycle countdown messages as in versions before 1.7.0. - Fixed a bug with votes built into DLLs. - Implemented a mechanism that allow plugins to expose their own APIs to other plugins and to the monitor. The plugins just have to implement a _QueryServices@0 entry point that returns a pointer to the APIs jump table. Look PluginsInterface.pas for details. - Implemented a new API to query other plugins APIs. Now plugins can talk each other. - Implemented a new API that allows to retrieve Win32 Dedicated server controls window handles from within plugins DLLs. This will allow the implementation of complex functions as DLLs (bot control as example). The window handle can be searched by class name, window text or client relative coordinates. The window handles can be manipulated with the usual Win32 APIs like SendMessage(); - Modified the API Print() to prefix all the messages with the string "* ", this may require some fixes into the plugins. The change is needed to make all the plugins look the same when printing something. Only the ExtraCommands plugin required a change because this (new version 1.0.3). - Introduced a new event for plugins: _OnUnknownServerMessage@4, this event is triggered when the server prints a message that is not recognized by the MW4 Monitor parser, this will allow to write plugin DLLs that handle messages specific of Mission Play or CTF or of a custom map. The messages prefixed with "* " do not trigger this event preventing possible deadlock situations with plugins that print messages. - Introduced a new event for plugins: _OnRawMessage@4, it is fired for each line that appears into the server chat box. The plugins MUST NOT PRINT MESSAGES while executing this event handler or a deadlock condition may happen. Version 1.7.0 - NEW FEATURE: Anti cheats protection, this version includes a "Pure Server" checker, the users will be able to verify using the "-pureserver" command that the server files are not modified. The Monitor makes a full CRC of all relevant server files at start, this may require some time however, time depending on the CPU power. Modified files will not stop the monitor to work but differences will be reported to players. The feature is available only for English PR1 version of Mercs in this version. - NEW FEATURE: Implemented a votes interface for plugins DLL, now DLLs can add new vote types. Lots of new APIs for Plugin DLLs. - Corrected errors in some built-in monitor messages. - Removed the EvilBot from the MW4 Monitor, the bot is now available as a plugin DLL, this will allow extreme personalizations to the bot and a lighter Monitor for who does not need the bot. - Removed the TeamKill, Suicide, Rejoin, BadWords, Nickname filters from the core monitor, the filters are now available (enhanced) as a separate Plugin DLL. - Some optimizations in code: smaller memory footprint. Version 1.6.3 - Made the "RestrictMecs" setting in Server.ini optional it now can be disabled by inserting a # before the name or just deleting the whole line. - NEW FEATURE: Added to the GUI an option to reinitialize the mapcycle, now it is possible to change the mapcycle without have to restart the server, however the current map is terminated when the new mapcycle is loaded. Tournament Mode and Randomizer are reset to the default state too. Version 1.6.2 - NEW FEATURE: New API BotPrint() that prints messages prefixed with the bot name, useful if a DLL wants to impersonate the server bot. - NEW FEATURE: New chat command "-version" that prints the monitor version. - NEW FEATURE: New setting in Server.ini "RestrictMecs" that enables/disables the mech/components restriction checkbox. Version 1.6.1 - NEW FEATURE: Opetion in Server.ini to disable all the monitor output to the server (GlobalOutputDisable). - Fixed a bug that generated errors in ErrorsLog.ini when a player type a % in chat. - Fixed a bug with CanListCycle and CanListMaps settings. - Fixed the commands "-List Cycle" and "-List Players". - Fixed a bug in GermanServer.ini. - Fixed a problem that did not allow very long mapcycles, now the limit is 100 times higher. - Fixed a problem with BK and Vengeance. - Fixed a problem with Teams Tonnage Randomizer. - Fixed a problem with Teams CBills Randomizer. Version 1.6.0 - NEW FEATURE: Mix/Max Players Tonnage settings in MapCycle.ini. - NEW FEATURE: Mix/Max Players Tonnage chat commands (admin commands): -set minton "45" -set maxton "80" - NEW FEATURE: Mix/Max Players Tonnage telnet commands: set minton "45" set maxton "80" - NEW FEATURE: Teams Tonnage settings in MapCycle.ini. - NEW FEATURE: Teams Tonnage/Cbills chat commands (admin commands): -set tonnage "450" -set cbills "100000000" - NEW FEATURE: Teams Tonnage/Cbills telnet commands: set tonnage "450" set cbills "100000000" - NEW FEATURE: New server APIs to allow plugin DLLs to change teams/players settings. - NEW FEATURE: MapCycleEditor upgraded with Tonnage/CBills Limits settings, the new version number is 1.1.0. - NEW FEATURE: New chat command "-list cycle" that prints all maps in mapcycle. - NEW FEATURE: New settings in Server.ini to enable/disable specific commands. - NEW FEATURE: MapCycle countdown messages now programmable in MapCycle.ini. - Fixed small bug, the % character, when typed in chat, generated an error in ErrorLog.txt. - Better randomization for random mapcycles and conditions randomizer. Version 1.5.14 - Fixed a bug in GetMissionTime() API. - Public release. Version 1.5.13 - Fixed a bug with Teams/NoTeams mission type detection. This screwed the teamkills detection too. - New API to get mission time left as a string. - Little change in the mission randomizer, now an empty entry in the randomizer lists is allowed and means "default" (keep the setting in the mapcycle). - New event handler for plugin DLLs: OnMissionSelect (_OnMissionSelect@4). The parameter is a pointer to a TMissionData structure. The TeamMission boolean of TMissionData structure is always false at this time. - Modified the monitor to generate events OnDisconnect for all the players when the server crashes or is terminated. This will allow plugins DLL to safely free the memory attached to TPlayersData structures when the server is terminated. - NEW FEATURE: Added "Save as..." menu entry to the MapCycleEditor utility, the new version number is 1.0.5. Version 1.5.12 - NEW FEATURE: MW4 Monitor remote update, thanks Sir Rex for this grea idea. To use the autoupdate feature you need to start the monitor with the Start.bat batch file. With the FTP upload the new MW4 Monitor files into a directory with name {mercs}\autoupdate then use the telnet "shutdown" command. For details open the batch file and read it yourself :) NOTE: You have to upload files tested and working because if the monitor is not able to start again (may be because an error in the new Server.ini) you will not able to regain control of the server from remote. Use this feature ONLY if you know exactly what are you doing. - Added to the TPlayersData structure the Players Connect Time, it is now accessible from Plugins DLLs. - Fixed a small problem in GermanServer.ini. - Fixed a small bug about the Mech Tonnage on non-english versions of the OS. - Greatly optimized the server binding phase, now it takes only a couple of seconds. - Added an event handler for "Team Balance" server messages to allow the creation of DLLs for team balance enforcement (_OnTeamBalance@4) the parameter is a pointer to an array of 8 integers. Version 1.5.11 - Fixed a small bug of the "Admin" telnet command not updating the players list in the Monitor GUI. - Changed the telnet "Quit" command in "Shutdown" to make it harder to type by mistake :) - New Plugin DLLs API to get the monitor version as a DWord. Version 1.5.10 - Fixed an error introduced in 1.5.9 that broke the mapcycle mechanism under some conditions. - NOTE: From version 1.5.9 the boolean settings (those with True/False) under the [Server] section in Server.ini are no more optional, if you use an old version of Server.ini make sure to remove the # before the setting or it will be set to True by default. The mandatory settings are: ForceFirstPersonView, LimitedAmmunitions, HeatManagement, FriendlyFire, SplashDamage, ForceRespawn, DeadMechsCantTalk, DeadMechsCantSee, AllowJoinInProgress. Make sure to use the new Server.ini OR to edit the old one. Version 1.5.9 - NEW FEATURE: Added a new API to return the list of available maps. - NEW FEATURE: Added new APIs to set map and missions by name even if not declared into MapCycle.ini, as example you can select "Aspen - Aspen" as map and "Team Battle" as mission". This will allow plugin DLLs to override the MapCycle mechanism. - NEW FEATURE: Now the monitor always sets the server parameters, the -1 is no more a possible value into the TServerData structure. - Added "ForceRespawn", "SplashDamage" and "FriendlyFire" to the "status" telnet command, forgot that in 1.5.8. - Fixed a bug with OnUnknownTelnetCommand() event handler. - Fixed a bug with the short telnet echo command "$". Version 1.5.8 - NEW FEATURE: Added "ForceRespawn", "SplashDamage" and "FriendlyFire" settings in Server.ini and to "Server" telnet command. The settings are available to plugins DLLs as well into the TServerData structure. - NEW FEATURE: New telnet command "set waves" to change the number of waves in no respawn mode. Examples: Set waves "1" Set waves "Unlimited" The command has effect only if in "NoRespawn" mode. - NEW FEATURE: New chat admin command "-set waves" to change the number of waves in no respawn mode. Examples: -Set waves "1" -Set waves "Unlimited" The command has effect only if in "NoRespawn" mode. - NEW FEATURE: New telnet command "set lock on|off" to set the server lock. - NEW FEATURE: New chat admin command "-set lock on|off" to set the server lock. - NEW FEATURE: Now the "Set" and "-Set" commands are useable even in normal mode (in previuos versions it was available only in tournament mode). Of course the command will be accepted only while the game is forming. - NEW FEATURE: Short Telnet "say" command, example: $hello everybody - NEW FEATURE: Now it is possible to set the number of waves directly into MapCycle.ini, you dont have to change your NFMs to make Classic No Respawn missions (This feature only works with Mercs PR1). - NEW FEATURE: New server APIs to set all mission parameters from a DLL. - NEW FEATURE: New server API that allows to retrieve the mission list from a DLL as a null terminated string with map names separated by CRLF. - NEW FEATURE: New version 1.0.4 of MapCycleEditor, it allows to define the Number of Waves on MapCycle entries. - Fixed the bug that allowed to crash the monitor by using characters on the server chat. Version 1.5.7 - NEW FEATURE: Improved Telnet Status command, now it reports all the server parameters. - NEW FEATURE: Custom Telnet commands are now possible into the plugin DLLs. - NEW FEATURE: Custom Chat commands are now possible into the plugin DLLs. - NEW FEATURE: Tournament mode accessible from plugins DLLs as a new API. - NEW FEATURE: Map cycle related messages moved in Server.ini, those messages were hardcoded in previous versions. Now they can be changed or suppressed. - NEW FEATURE: Server name on the Win32 Dedicated server window title bar, very useful when multiple servers run on the same host. - NEW FEATURE: Admin chat command to globally enable/disable votes (-votes on|off). - NEW FEATURE: Admin telnet command to globally enable/disable votes (votes on|off). - NEW FEATURE: Admin telnet command to change all the server settings, the command has the following syntax "Server ". Examples: Server name "My server" Server n "My server" Server password "secret" Server p "secret" Server ForceFirstPersonView on Server ffpv on Note that the param names can be abbreviated, the available params are those available as settings in Server.ini. The effect of the "Server" command is not immediate, a "Reboot" command is required to reinitialize the server. - Removed the redundant telnet commands "name" and "password". - Fixed a bug (only for V and BK): the server.ini keys "AllowJoinInProgress" and "JoinTimeLimit" did not work. - Fixed a problem not allowing bot dictionaries longer than 2048 bytes, now the limit is 32768. Version 1.5.6 - NEW FEATURE: Now it is possible to create unit taunts for those units that have the tag at the end of the nickname. - NEW FEATURE: Added an option (Server.ini) to make admins immune to kick votes. - NEW FEATURE: Admin telnet command now accept player ID too. - Fixed a problem with map votes born in 1.5.5. - Fixed again the setting "Force 1st person perspective". - Fixed again the autokick for illegal chars in nicknames. - Modified the interface to plugins DLL to make useable more easly with other languages, mainly C and C++, this mean you have to use the newer versions of ServerScript.dll and AutoReboot.dll. - Fixed a bug that allowed players to not be recognized by the bot by using duplicate nicknames. From this version duplicate nicknames can be kicked automatically (strongly suggested). Version 1.5.5 - NEW FEATURE: Randomize mode. This feature allows to change map settings randomly. Affected settings are: Visibility, TimeOfDay, Weather, Stock mechs. In MapCycle.ini there are settings to: enable/disable the feature and change the probability that a setting is changed. New vote "-vote randomize on|off", new admin command "-randomize on|off" and new telnet command "randomize on|off". - NEW FEATURE: Stock Mechs and Radar setting for mapcycle.ini entries. - NEW FEATURE: MapCycleEditor updated to support Radar and Stock settings. - Fixed the setting "Force 1st person perspective", it never worked in Mercs PR1 because the string on the server GUI was different (they finally corrected that "persion" in "person"). - Fixed a bug in autokick for illegal chars in nicknames. Version 1.5.4 - NEW FEATURE: Unit taunts. Now it is possible to define a taunts set for a whole unit. The bot checks name prefixes, see the example in EvilBot.ini file. - Fixed the chat command "-tournament on/off". - Fixed the bug that prevented to create custom taunts for nicknames containing '[' or ']' chars. This workaround must be used while defining custom taunts: write the '[' char as '((' and the ']' char as '))' into the ini file section labels. Example: write [((XYZ))Hammer] instead of [[XYZ]Hammer]. - Removed the bot name from lines generated by "-list maps" and "-list players" to reduce chat spam. Version 1.5.3 - NEW FEATURE: Added settings in server.ini for AllowJoinInProgress and JoinTimeLimit. - NEW FEATURE: Added optional command to start/stop tournament mode for public admins. Version 1.5.2 - Added support for Mercs PR1, it is gametype 3, remember to modify your server.ini. The support for PR1 will be improved in next releases, this one just makes it work. Support for CNR is needed and some modifications to the MapCycleEditor and tournament commands too. Version 1.5.1 - Fixed the problem that prevented votes, the classic < instead of >=... Version 1.5.0 - NEW FEATURE: FTP Server (limited to game directory and subtree). - NEW FEATURE: Experimental support for Vengeance and Black Knight is back. - NEW FEATURE: New parameter "MinVotesPercentage" for votes, it allows to set a minimum percentage of players voting to make the vote valid. - NEW FEATURE: New "quit" telnet command, it quits both server and monitor, use this command only if you have something that restarts the monitor automatically or you want to restart it manually. It is just like clicking the "Stop server" button. Version 1.4.12 - NEW FEATURE: The kick now puts player names into a temporary internal ban list (ban by name), by default now the kick keeps the player out of the server for 5 minutes, of course this time is configurable in server.ini. - NEW FEATURE: Warning (on connect) and kick (on join) for nicknames containing bad words. - NEW FEATURE: Daily logs, you can insert the %d macro into logs filename, the macro will expand to current date string in the form "yyyy-mm-dd" (to keep filenames correctly ordered if sorted by name). If you use this macro I suggest to put logs into a subdirectory. Example: LogFile=logs\Log %d.txt You have to create the subdirectory or the monitor will generate no logs. - NEW FEATURE: Admin log file, votes, public admin actions and telnet actions are logged here. - NEW FEATURE: Commands "-kick" and "-vote kick" now accept the numeric player ID too, the player ID is visible by using the new command "-list players". - NEW FEATURE: Command "-ban" for public admins. - NEW FEATURE: All public admin commands (-kick, -ban, -map etc) can be enabled or disabled in server.ini. - NEW FEATURE: New vote to start/stop tournament mode. The command syntax is "-vote tournament on|off". - Fix for the experimental non-English versions support, a German compatible server.ini file is included (GermanServer.ini, rename it before use). - Fixed a problem with the votes system that can be used to alter vote results. - Improved bad language filter, now it allows to define words that must be matched alone by inserting a leading and/or a trailing space, example: " ass " will only match "ass", "@ss", "a55" but not "password". The general rule is the following: "XXX" - Match XXX in any position. " XXX" - Match words starting with XXX. "XXX " - Match words ending with XXX. " XXX " - Match the word XXX (not inside other words). Version 1.4.11 - NEW FEATURE: Kick and Ban by ID from telnet. The kick/ban by name now does not require quotes but only if the name does not contain spaces or symbols (almost impossible). - NEW FEATURE: Tournament mode commands available to public admins too with the command "-set", exactly the same syntax of the telnet "set" command. - Added a PlayerId field to the player structure, this identifier is assigned at player connect time and is unique in the monitor session lifetime. The telnet command "list players" now shows the player ID. - "-map" and "-vote map" chat commands now accept the map name without quotes if the map name does not contain spaces or symbols. - "map" telnet command ow accept the map name without quotes if the map name do not contains spaces or symbols. - Made all the strings that the monitor searches in the chat box configurable into server.ini under the [Parser] section, this is required by non-English versions of dedicated server. - Introduced a fix for the bug that makes sometimes players not assigned into the right team. I think this happened when a player disconnect **while** the monitor is reading player's data from the players list box (the lines scroll). The bug was rare, so we have to wait to see if the fix really helps. - Improved the bad word filter by transforming some symbols to alpha chars, now "sh!t" will be detected as "shit". - Disabled suicide/teamkill/rejoin autokick when the server is in tournament mode. Version 1.4.10 - Modified the monitor to initialize COM with CoInitialize(). The scripting DLL requires this. - Added the "Custom Battle", "Custom Campaign" and "Custom Mission Playe" to the mission type combo box of the MapCycleEditor (version 1.0.2). Version 1.4.9 - NEW FEATURE: Bad words filter. It works just like suicides and team kills. New macro %l (L) for bot taunts, it is the bad words counter. - NEW FEATURE: Added a ServerTimeout setting in Server.ini that defines the time in seconds that the monitor waits for the server window to appear. - NEW FEATURE: Tournament Mode ON/OFF menu item on Monitor GUI. - Some minor changes in PluginsInterface.pas. Version 1.4.8 - Fixed a bug that prevented the monitor to correctly count joins (screwed in 1.4.0), the effects were the following: 1 - %j macro always reported zero. 2 - The "list players" did not show the "*" for playing players. 3 - The GUI did not show the "*" for playing players. 4 - The join/warning and join/kick were not working. 5 - The teamkill/warning and teamkill/kick were not working. - Fixed more bugs about taunt macros. - Fixed an error on ErrorLog.txt about a ESocketException, this happened restarting the server while some telnet clients were connected. The error was harmless but it is now handled properly, thanks Sir Rex. Version 1.4.7 - Minor fixes in chat parser, thanks ns13draco. - Added more messages types to ErrorLog.txt for unexpected conditions. - Fixed a bug that made the taunt macros %t, %m and %v not work (broken since 1.4.0), thanks Elisor. - Fixed a bug with team kill detection (broken since 1.4.0). - NEW FEATURE: Added commands "set StockMechs" and "set Radar" to the telnet interface (tournament mode), thanks VVarDog. - NEW FEATURE: Added settings for DelayBetweenMaps, DeadMechCantSee and DeadMechCantTalk to Server.ini, thanks Dark Phoenix. Version 1.4.6 - Fixed a bug with "Reboot" server API. - Fixed a problem with nicknames starting with *, the bot did not recognize them. - Better debug support and detailed errors/exceptions report in ErrorLog.txt. - Fixed minor bugs here and there and inserted code to catch unexpected exceptions. - NEW FEATURE: Auto-Reboot plugin DLL that allows to restart server after a configurable number of hours. Delphi source code available. - Restored the bot name in front of MW4-Monitor generated messages as it was in version 1.3.*. Version 1.4.5 - Rewrote the chat handling code, hopefully this will fix the phantom chat box bug and some other problems with chat logging. Version 1.4.4 - NEW FEATURE: Added settings for FFP, Heat and Ammo in Server.ini. Version 1.4.3 - Fixed a small bug on the GUI that made the popup menu shows clicking on any page instead of just players page. - Diet for the bot, internal optimizations resulted in smaller and faster code. - Made the server binding procedure safer and faster. Now the monitor no more uses the EnumChildWindows() to collect server data but statically linked controls. - Included version 1.0.1 of MapCycleEditor.exe that includes support for "Custom Team Battle" game type. Version 1.4.2 - This is a test version that includes better error handling and some test code to try to correct the bug that on some servers stops the mapcycle. - NEW FEATURE: Included in this version there i the Map Cycle Editor 1.0.0 that allows to edit mapcycles files. To run it just double click MapCycleEditor.exe. Version 1.4.1 - Fixed chat commands, totally broken in 1.4.0. - Fixed Player name showing as "ScannerForm" in Monitor GUI. Version 1.4.0 - NEW FEATURE: Now the monitor is "plugable" with DLLs, you can enhance your server by writing the code you need and use the monitor services with a set of "Server API". The source code of a simple DLL is included (Delphi) as a demo. Most new feature will be implemented as plugins so the core monitor will stay as stable as possible over time. Some of existing features will be moved into plugins in next releases (probably the taunts and logs). - NEW FEATURE: Telnet command to change server password. - NEW FEATURE: Telnet command to change server name. - NEW FEATURE: Telnet command to reboot the Mercs server. - This version contains a *lot* of code rework needed for next tool enhancements, this mean that this version is potentially less stable than 1.3.14. The code is more efficient, this mean a smaller load on the server but I think the difference is not noticeable because the program was already really light. Some big classes were split in smaller classes to make code more readable. Use this version for **testing only**, critical servers should use version 1.3.14. - Votes and auto-kick settings moved from Evilbot.ini to Server.ini. - Moved server-dependent messages from Evilbot.ini:[_Messages] to Server.ini:[Messages], now users don't *have* to edit Evilbot.ini but only Server.ini when installing the MW4-Monitor. - Added the %o macro to bot messages, it is replaced with connection time of the player as HH:MM:SS. Version 1.3.14 - Added a contex menu on the players box in the GUI, it allows to set/reset admin status to players from there. May be i will add more functions there in next versions (kick, ban). - Added an admin status flag into players box. - Added a setting for server password in Server.ini - Added a setting for number of players in Server.ini - Fixed a very small memory leak (on server restart). - Fixed a bug with the telnet line parser (a parser is needed for each connected client). - Modified the telnet server to close the connections while Mercs server is restarting. - Removed a lot of dead code for Vengeance/Black Knight, the monitor will no more support that games. - Raised the synchronization timeout to 60 seconds for systems with a really slow startup. Version 1.3.13 - Fixed a small bug that made a vote mission override another vote mission already running. - Fixed same problem for vote kicks and vote admins. - Fixed a problem with telnet ban command. Version 1.3.12 - Fixed a bug that always locked on the nickname-kick option. - Fixed a bug that prevented the NoRespawn setting to work in mapcycles. - Changed some sentences of EvilBot to make them not gender specific. Version 1.3.11 - New feature, kick on rejoin (see settings in Evilbot.ini). - New feature, kick on unreadable nicknames (see settings in Evilbot.ini). - Fixed a problem that prevented to set the random mapcycle mode. - Fixed a problem that prevented to set a map interval different from 120. - Fixed a problem that prevented to set the tournament mode from config file. - Improved the random mapcycle so that a map cannot repeat immediately. Version 1.3.10 - Fixed a bug that caused the Mercs server to crash at maps end on slower host machines. It was a time dependent problem, not easy to track. The code is now inherently safer. - Fixed a bug that made the status telnet command and status panel in the GUI don't show informations (bug introduced with 1.3.9). - Fixed the teamkill detection (bug introduced with version 1.3.9). Version 1.3.9 - Fixed a bug that prevented the program to work under Windows XP. Changed the method of calculating windows coordinates (GetWindowInfo() instead of GetWindowRect()). Version 1.3.8 - Fixed the wrong Streak Kills count when a TK happen. - Fixed the wrong rejoin count, it is a join count. - Increased synchronization timeout from 20 to 30 seconds. Version 1.3.7 - Fixed a small bug that caused a small message box to popup if the server crashes while the mission is running, the bug is harmless but the message box was not supposed to appear. - Fixed a problem that caused an exception when the monitor was used with MW4 server mapcycle. Version 1.3.6 - Start of the beta test. Bugs tracking starts here.