|
Changelog for the ZDaemon 1.04 -> 1.05 transition ================================================= 1. Teamplay Beta 01 (Aug. 17, 2003) ----------------------------------- 1. Implemented the Joining/Switching of teams. 2. Implemented the enforcing of team colors. 3. Implemented the Team Chat commands. 4. Implemented the Team selection from the GUI 5. Implemented the Team Score calculations. 6. Implemented the Team Score display in the clients. 7. Implemented the "resetscores" rcon command. 8. Implemented the "teamscorelimit" server parameter. 9. Fixed a zserv32 bug, where the server would often crash upon shutdown; the problem was that a background thread was not properly terminated. 2. Teamplay Beta 02 (Aug. 20, 2003) ----------------------------------- 1. Fixed a zserv bug where the server would crash when contacted by a launcher, if the master_advertise flag was zero. This is unrelated to the TeamPlay features. 2. Removed any contact between the server and the master server when the master_advertise flag is zero. This is unrelated to the TeamPlay features. 3. Improved the Team Score calculations; right now they are almost identical to those of UT. 4. Fixed some bugs in the score calculations to correctly display the end of sprees. This is unrelated to the TeamPlay features. 5. Fixed a bug in the Team Score Display; sometimes, it would not display a team when its score was zero. 6. Fixed a bug in zserv that would appear when the wadnames passed to the server contained path information. In extreme cases, the server would crash. 3. Teamplay Beta 03 (Aug. 26, 2003) ----------------------------------- 1. The server now transmits the value of the teamdamage variable to the clients (so everybody can check the server value). 2. Add some more resetting to zero when a player disconnects to avoid a rare server displaying the wrong number of frags when somebody disconnects and another player reconnects in the same "server slot". 3. Added some more logic to avoid redundant team change messages. 4. The new beta version does not allow for any loners; everybody connected to the server (while it is in teamplay mode) will belong to a team. 5. Redesigned the team score display page; it is now almost the same as that of UT. 6. Disabled team messages from spectators; it would facilitate cheating. 7. Fixed a nasty bug in the zdaemon client which gets triggered whenever there is % character in a player's name. It could crash the client if fed the player's name contained the right sequence of characters (eg., %s). 8. Implemented a new face background in the status bar; when teamplay is on, the face background takes the color of your team. 9. Fixed a zserv32 bug where it would not show the players' names in its listview control. 4. Teamplay Beta 04 (Sep. 10, 2003) ----------------------------------- 1. Implemented software support for audio announcements; the server watches for certain events, and when they happen, it transmits the appropriate code to the client; the client can then play an audio clip for each such event. The supported events are: a. "Prepare to fight" (4 seconds before the game starts) b. "Fight" (at the start of the game) c. "You win", "You lose", "It's a tie" (at the end of the game) d. "Impressive", "Humiliation", "Holy Shit" (at the end of the game when the score differential is large. e. "1 minute left", "5 minutes left", "1 frag left", "2 frags left", "3 frags left" f. "You have taken the lead", "You have lost the lead", "You are tied for the lead". g. "Teammate kill" h. "Suicide" (or a kill by the environment, such as lava). i. "Double kill", "Multi kill", "Ultra kill", "Monster kill". j. "Killing spree", "Rampage", "Dominating", "Unstoppable", "Godlike". Note that the audio announcements are *queued* on the client side, so an event may generate multiple such announcements and you will still be able to understand them. ----------------------------------------------------------------- ***IMPORTANT*** For this beta I concentrated on the software side of this feature and cannot offer any audio clips yet. However there exists a special WAD file (called zvox.wad) that contains sample sounds from Q3 and UT; this file can be used for testing this feature. However, I cannot distribute it for obvious copyright reasons. If you know where to find this file, then simply place it in your wad directory. ----------------------------------------------------------------- 2. Improved the team score display to better handle long player names and unbalanced team memberships. 3. The server now transmits the fraglimit and teamscorelimit variables to the client, so they can be used for the team score display. 4. Added a boolean console variable called "audioannouncements" to control the playing of such announcements. If set to true (the default value) the announcements will play; otherwise, they will be silenced. 5. Added a console command "toggleannouncements" that toggles the value of the "audioannouncements" variable; this makes it easy to turn on/off the audio announcements by pressing a key (ie., you can bind the "toggleannouncements" command to a key). 6. Enabled the toggling of the audio announcement from the GUI; if you go to the "Options" screen, you'll see the "Audio Announcements" option. 7. When in teamplay mode, the player's HUD shows the team frags instead of the individual frags. 8. When you use fullscreen mode in teamplay, you can still see your team color as background to the frag value (which would be team frags instead of individual frags). 9. Enabled spying on teammates; spectators can always spy on any- body; active players (in teamplay mode) can only spy on members of their own team. If either the spy or the "spied" player change teams while spying, the spying is stopped immediately. 10. Implemented the "maxteams" server variable (in zserv.cfg); it controls the number of teams that can actually participate. If for example, you set it to "2", then only members of the first 2 teams (red and blue) can join the game; members of the other teams can spectate but not join. 11. Implemented the killing of switchers; if somebody switches teams in teamplay mode, he is instantly killed (minus one frag and -5 exp. points); the team scores are not affected in any way. Of course, the killing happens only for live players; there is no switching penalty if you are dead or spectating. Furthermore, if the switcher becomes a member of a non-playing team, then he automatically becomes a spectator too. 12. Enabled the loading/saving of the "developer" console variable in zdoom.ini (it was always there, but it was not saved). This simplifies a bit the debugging of the client. 13. Fixed the "turn180" command; it should now work properly (and instantly) no matter whether you play or spectate and no matter the speed of your computer. 14. Fixed a zserv annoyance; the server now never reads or writes zdoom.ini; all its configuration is in zserv.cfg 15. Fixed a zserv32 bug, where the player names, scores and time in the game would not get properly updated. 16. Fixed another zserv32 bug where the server would not close when you pressed the Esc key and then answered "Yes" (in the "Are you sure..." question). 17. Fixed the "no camera" problem if you were spying on somebody and that person disconnected. Now instead of the "no camera" message, you will simply return to your original view. You may *still* get the "no camera" message, but this would be due to network problems or possibly another bug. At least, this bug has been fixed. 18. Provided a solution for hosting the server in a NAPT environ- ment: the heartbeat message from the server to the master server now contains the actual listening port of the server; ideally, the master server should use that value instead of checking the actual port used to send the heartbeat message (the actual port may have been translated by NAPT; it *is* a standard procedure). This change does *not* create any incompatibility between the server and the current version of the master server. This approach *may* be used in the future; the master-server<->server protocol remains the same for the time being. 19. If the "force_password" variable (in zserv.cfg) is non-zero, but the actual password is empty, then the server does not enforce any password. This bug fix was contributed by Bond. 20. Extended the server->launcher protocol by providing more detailed info about the players and teams. This was again contributed by Bond and we will soon see it in upcoming versions of IDE. This change does *not* create any incompati- bility between the server and current versions of launchers. 5. Teamplay Beta 05 (September 19, 2003) ---------------------------------------- 1. Implemented a new console command "toggleautoswitch" that toggles the value of the "neverswitchonpickup" variable. This can be useful for reducing the keys dedicated to the setting of this variable. 2. Increased from 15" to 20" the game intermission in teamplay mode, since there may be more info to read at the end of a teamplay game. 3. Enabled the display of teammates in the map in teamplay mode. 4. Replaced the "audioannouncements" boolean variable by the "snd_annvolume" floating point variable. This lets us adjust the volume of the audio announcements, which I think is more flexible. Consequently, the on/off switch in the options screen has been replaced by a slider and the "toggleaudioannouncements" cmd. has also been dropped. 5. Simplified a bit the server->launcher protocol. 6. Fixed a bug in the team switching code when a player would become a spectator by switching to a non-playing team. 7. When all members of playing teams disconnect, the team scores are automatically reset. 8. Added some chat spam control: it is activated by the "spam_window" and "spam_limit" variables in zserv.cfg; the first one is expressed in seconds, and the second in number of messages allowed with the spam_window. You can disable this feature by setting them to zero. 9. Added a chat blocking mode; it can be used to block chat messages either from all players, or from spectators, or by specific players. There are 4 related console commands: a. chat_block <parameter> b. chat_unblock <parameter> c. chat_toggle <parameter> d. chat_reset In the first three commands, the parameter can be either the special string "all" meaning all players, either the special string "spec" (or "spectators") meaning players in spectator mode, or the string "#NNN" where NNN is a player number (available from the "players" command), or the string "$XYZ" where XYZ is a player's name, or the string "@NNN" where NNN is again a player number; in the last case, the network address of the specified player is blocked. All blocks are valid only for the current zdaemon session. They are reset as soon as you exit the client. IMPORTANT: the blocks are additive: if you issue the command: "chat_block #1" (ie., you want to block player 1) and then issue the command: "chat_unblock all", then player 1 is still blocked, since he has a specific block which overrides any other block commands. If you really want to lift all blocks, use the "chat_reset" command. I realize that this policy is a bit counter-intuitive; I'll try to improve it for the next beta. If you block a player by ID, then the block is lifted as soon as the player disconnects; otherwise, you would also be blocking subsequent players who happen to be assigned the same server slot. 10. Fixed a bug in the client where chat messages would generate a sound even when you had set the msg level higher than the chat threshold. 11. Fixed another bug in the client where the last two message levels (chat and team chat) were not displayed in the Options menu. 12. Changed a bit the announcement strategy: most announcements now are not queued; they are played directly as they occur. Only practice will show if this is a better strategy. 13. Improved a bit the "say" and "say_team" commands to allow their parameters without quotation marks. However, you still cannot use semi-colons (;) since they are understood by the doom parser to separate commands; if you need to use a semi- colon, enclose it in double quotes. 6. Teamplay Beta 06 (September 23, 2003) ---------------------------------------- 1. Improved the map display: it now shows your position in white, while teammate positions are displayed in the team's color. 2. Fixed a zserv32 bug where the "Quit" command on the system tray would be ignored. 3. Fixed a zserv32 bug where the /exit or /quit commands on the server console would crash the server. 4. Added a text message when somebody connects (before he joins the game) 5. The "Barrels respawn" text in "More Gameplay Options" in zclient was misspelled. 6. Changed the "Use the attack key to join" msg. to "Press the Fire key to join" when in spectator mode. 7. Fixed the weapon changing crash when in spectator mode. 8. Replaced all version numbers by their proper value. 9. Got rid of the edit box in zserv32's about dialog; it didn't serve any purpose. 10. Reduced the max. udp packet size from 8192 to 1400; it should improve the communication between the server, client and launcher. 11. Corrected the checking for available net buffer size for several messages in the server. 12. Increased the "zoom out" factor in the map, so the map can become small enough that it doesn't require scrolling. 7. Teamplay Beta 07 (September 28, 2003) ---------------------------------------- 1. Merged Raider's and the Teamplay changes into a single version in preparation for zdaemon 1.05; Raider's improvements include: a. Consistency checking: The client must have exactly the same wad files as the server. The server will check all of the wads that the client is attempting to use before it allows the client to connect. If the client is missing any wads, has any additional wads, or has any wads that are in any way different from the wads the server is using, the server will refuse the connection. This applies to skins as well. You can only use skin wad files if the server is also using them. If the server has skins loaded and the client does not, it will refuse the connection. b. New cvar added (client): The cvar cl_loadskins was necessary to allow the clients to turn on or off the loading of skins. If you have cl_loadskins set to "true", the ZDaemon client will automatically load any skins you have in the skins folder. This would be a problem if you were to join a server that doesn't have those skins. By default, this cvar is set to "false". To change it, type: cl_loadskins true (enable skins) cl_loadskins false (disable skins) c. New cvar added (server): The server has a new cvar that turns skins on and off. If you have cl_loadskins set to "1", the ZDaemon server will automatically load any skins you have in the skins folder. By default, this cvar is set to "0". If you don't specify it in your cfg file, it will not load skins. In zserv.cfg: set load_skins "1" (enable skins) set load_skins "0" (disable skins) d. Scripting disabled: The "exec" command was removed from the client. This was necessary due to the sudden surge in "scripts" that have been showing up lately. There are a few of them, ranging from annoying to outright malicious. As a result, the ability to execute a remote cfg file was disabled. e. Fixed banlist: The ban list feature was broken. If you added more than one ban, the server would crash the next time you started it. This has been fixed. Known bugs/quirks: If you set the "load_skins" cvar in zserv.cfg, it will not recognize that change until the second time you run the server. I have no idea why it behaves this way. We'll try to fix that in the near future. For now, just remember that if you change this setting, you have to run the server, close it, then run it again for it to take effect. 2. Worked on the WAD consistency checking: the major improvements are: a. New, very secure checksum algorithm on the entire WAD files. The time penalty (experienced on the client's startup) should be 2 seconds max. in practically all cases. On most computers powerful enough to run zdaemon, the time penalty should be less than a second. b. Much more detailed and specific messages to the client when something goes wrong; it tells him the exact cause of the problem and advises him to visit a web page for help. c. Added a server variable called "optional_wads" where the server admin can specify which wads are loaded by the server, but are not really necessary and may not be loaded by the client (eg., audio or skin wads). 3. Rewrote the entire banlist code from scratch, as it still had some problems. 8. 1.05 Release Candidate 1 (September 29, 2003) ------------------------------------------------ 1. Fixed a small problem in the banlist code. 2. Enabled the resizing of the zserv32 window. 3. Introduced a new server variable called "connection_logging". If it is non-zero, then all connections to the server are logged either in the zd_connlog.txt file (Win32) or in the system log (Unix). If is is zero, no such info is saved. 9. 1.05 Release Candidate 2 (September 30, 2003) ------------------------------------------------ 1. Improved the zserv32 window resize to remember its size and position across separate invokations of the program. 2. Modified a bit the program's banner in the zserv32 window to avoid displaying the IP address of the machine; this could result in confusion on multihomed machines. 10. 1.05 Release Candidate 3 (October 2, 2003) ---------------------------------------------- 1. Completed the synchronization of the Windows, Linux and FreeBSD server code. The merging is not fully complete in the sense that there are 2 source distributions: one for Win32 and one for Unix. However, all the source files have been verified to be identical across the 2 versions. The plan is to unify these two distributions for the next zdaemon version (1.06). 2. Added a command line parameter to the server that restricts incoming connections to a particular IP address; this may be useful on multi-homed machines. Its syntax looks like: -ip 192.168.1.2 If you use this parameter, then the zserv32 window will display the listening IP address and port; otherwise, it will display just the port. 11. 1.05 Release Candidate 4 (October 2, 2003) ---------------------------------------------- 1. Fixed a bug that would truncate (or overflow) the names of the wad files as reported to the launcher. 2. Fixed a zserv32 bug where various startup errors would result in a crash instead of displaying an error msg. and exiting the program. 12. 1.05 Release Candidate 5 (October 7, 2003) ---------------------------------------------- 1. Fixed a zserv32 bug that would occur if the server banner was too long. 2. Disabled the automatic loading of zvox.wad; if you want it, you'll have to specify it with the "-file" cmd. line parameter. 3. Extended a bit the server->launcher protocol to send an optional flag about each loaded wad. 4. Cleared out player info on the client upon disconnect. 13. 1.05 Release Candidate 6 (October 18, 2003) ----------------------------------------------- 1. Removed the "connection_logging" variable from zserv.cfg; it is superceded by the "-clog" cmd. line argument which takes a filename as its parameter; this filename specifies the name of the connection log file. Under Unix, you can use the special name "syslog" instead of a filename: this instructs zserv to log connections to the system log. 2. Fixed the "pings" server command. It was always showing zero ping values. 14. 1.05 Release (October 19, 2003) ----------------------------------- 1. Changed the master port from 15200 to 15300. |