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
b. chat_unblock
c. chat_toggle
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.
|