Assembla home | Assembla project page
 

root/trunk/ChangeLog.txt

Revision 368, 123.3 kB (checked in by pheno, 3 months ago)

changelog fix: the satchel code is server side - thx Density

Line 
1 0.0.1
2 * initial release
3
4 0.0.2
5 * fixed problem with !mute/!unmute
6 * turned hitboxes back to the default height for corpses
7 * made g_shrubbot and g_logAdmin cvars default to ""
8
9 0.0.3
10 * don't allow one admin to kick, ban, putteam, setlevel, or mute another
11   admin unless the victim has a lower (or equal) admin level.
12 * fixed !kick so it works like a vote kick (complete with temp ban)
13 * added guid stub and saved admin name to the output of listplayers
14 * made shoving more like shrub (no pushback)
15 * removed some debugging G_Printf()'s
16
17 0.0.4
18 * XPSave should now correctly remember the number of lives the client had.
19   This should prevent /reconnect for more lives on limited live servers.
20 * !unmute is REALLY fixed now.
21 * When a player is killed while playing dead, his death is now treated
22   normally.
23 * XPSave will no longer reset after every map when on the first run of a
24   campaign.
25
26 0.0.5
27 * XPSave now correctly resets the number of lives after every map.
28 * "Weapon not available" should only be printed now when trying to switch
29   to a disabled weapon (not when trying to join a locked team in warmup)
30 * Shoving is only allowed when you're much closer to the victim than before.
31 * linux binary should no longer require libstdc++ or libgcc shared libs.
32
33 0.1.1
34 * bumbed up to 0.1.x because of all the added features (be warned)
35 * g_XPSave now has all shrub functionality (2 and 4 flags added).
36 * XPSave no longer drops saved xp after 5 mins (missed that).
37 * added g_maxTeamLandmines cvar
38 * added fireteam letter in the output of !listplayers
39 * increased the number of players allowed on one fireteam from 6 to 8
40 * added cvars for the hitsounds used (see docs)
41 * really fixed the "Weapon not available" message
42
43 0.1.2
44 * changed the maximum number of shrubbot admin levels from 6 to 32
45 * changed the maximum number of shrubbot bans from 512 to 1024
46 * changed the maximum number of shrubbot admins from 512 to 1024
47 * fixed !ban so that the client is kicked normally instead of getting
48   phone jacked
49 * if names are set for level definitions, those will be used instead of
50   the number in the output of !listplayers
51 * when you kill someone playing dead it REALLY treats the kill normally now
52
53 0.1.3
54 * fixed a bug that prevented people from joining teams after the server sat
55   idle with no players.
56 * fixed a bug that prevented the game from ending after the time ran out
57   on a dual objective map and one team got skulled.
58 * XPSave will REALLY no longer drop stored XP after 5 minutes.
59
60 0.1.4
61 * changed Active Team Balance so that it will never offset teams by more than
62   2 players. (too many complaints with percentage)
63 * when g_XPSave is set with the 2 flag XP is not lost anymore when doing a
64   map restart, shuffle, swapteams, etc on the first map of the campaign.
65 * added proper space formatting for level names in the output of !listplayers
66 * went on vacation
67
68 0.1.5
69 * fixed "Weapon is not available" message when going spec
70 * reverted etpro weapon fix that allowed lvl 3 engineer to plant dynamite
71   too fast
72 * players should no longer get lives when connecting to limited lives servers
73   running dual objective maps after the time runs out.
74 * g_XPSave should now work when a player reconnects after a crash with a new
75   IP address.
76
77 0.1.6
78 * fixed a nasty XPSave bug that was introduced in 0.1.5 that caused people
79   be kicked when someone else joined.
80 * included 2 new binary builds (win32 and glibc-2.1).
81
82 0.1.7
83 * fixed the "Weapon is not available" bug for what I hope is the last time.
84 * XPSave now restores on connect instead of on team join.  Unfortunately, the
85   client won't draw XP in the limbo menu while on the spec team though.
86 * converted g_shrubbot.c and g_shrubbot.h files to DOS newlines for
87   consistency's sake.
88 * shrubbot 'flags' now support '*' as a wild card meaning all available flags
89   and any flag after the '*' is negated.
90 * !admintest now draws the level 'name' if one is set
91 * !listplayers now formats the level name column properly when color codes are
92   used in the name.
93 * landmines can now be diffused on dual objective maps once the time runs out.
94 * players joining after the time runs out on dual objective maps get no lives
95   on limited lives servers.  I mean it this time.
96 * the weapon heat meter now draws properly for the tank mounted mg.
97
98 0.1.8
99 * can no longer use !setlevel to set a undefined level
100 * !listplayers formatting will not mess up if un-named levels > 9 are used.
101 * slightly defanged g_activeTeamBalance
102   (see http://linespeed.net/projects/etpub/ticket/21 )
103 * this may be the last 0.1.x release since I'm going try adding some
104   features again.
105
106 0.1.9
107 * fixes a very annoying bug introduced in 0.1.7 where you can't switch to
108   different weapon without switching teams.
109 * "Weapon not available" message is replaced with "{WEAPONNAME} not available"
110
111 0.2.1
112 * incremented to 0.2.x because of all the changes (be warned)
113 * you can now type shrubbot commands in the chat dialog box as well as in the
114   client game console.
115 * you can now send private messages from the chat dialog box
116 * g_weapons now supports flags 4, 32, and 128 (see docs)
117 * added several cvars for adjusting Active Team Balance: g_ATB_minXP,
118   g_ATB_minPlayers, g_ATB_axisHoldoff, and g_ATB_alliedHoldoff (see docs).
119 * added g_mapConfigs cvar for per-map config files
120 * added g_packDistance
121 * added g_dropHealth
122 * added g_dropAmmo
123 * added g_tossDistance
124 * josh: added g_logOptions (only flag 128 supported)
125 * josh: added g_censor
126 * josh: added g_censorPenalty (only flags 1 and 4 supported)
127 * added g_intermissionTime
128 * added g_intermissionReadyPercent
129 * josh: added g_skills (only flags 2 and 4 supported)
130 * josh: added !rename shrubbot command
131 * hitboxes have been changed dramatically.  see
132   http://et.tjw.org/etpub/hitboxes/
133 * if the match is paused, the match will automatically unpause after
134   match_timeoutlength seconds even if nobody unpauses it.
135 * players will no longer get a skull next to their name when they switch teams
136   on unlimited lives servers.
137 * teams are no longer locked when the warmup countdown starts
138 * added the console commands cp, cpm, cpmsay, qsay, chat, chatclient, m, and
139   priv.
140 * players with level 4 heavy and/or light weapons skills will not lose their
141   class and weapons when a new map starts.  However, they will still see the
142   limbo menu because of the client bug.
143 * chat, chatclient, and cp  commands will recognize "\n" as a newline
144   character.
145
146 0.2.2
147 * fixed (I hope) a bug related to my hitbox changes that allows prone players
148   to get stuck in walls.
149 * allow shrubbot commands to be run in the server console without a ! prefixed
150   to them.  this allows better shrubet functionality for cmds like cancelvote
151   and readconfig.
152 * fixed (I hope) a race condition that could cause the temporary hitbox
153   lowering to be not so temporary and allow players to get stuck in walls
154   on revive.
155
156 0.2.3
157 * when using g_mapConfigs, "default.cfg" will now be exec'ed.
158 * etpub now recognizes permanent bans in shrubbot.cfg although you still
159   can't make permanent bans with !ban (need time parameter).
160 * fixed an animation bug when standing up from playdead.
161 * josh: made several g_antilag fixes.
162 * josh: censoring now colorcode- and case-insensitive
163 * josh: antilag fixes for headshots, legshots, and tjw's hitboxes
164 * josh: antilag hitbox fixes for head and legs. Not tested yet.
165 * josh: antilag is pretty good except when prone.
166 * tjw: added g_XPSave flag 8 (see docs)
167
168 0.3.1
169 * matt: !gib(g), !warn(R), !slap(A), !news(W) now available shrubbot commands
170 * tjw: added g_hitboxes cvar (see docs)
171 * tjw: antilag won't crash the server now.
172 * josh: bans and kicks work with 2.60. They also give reasons to victims
173 * josh: double jump added with g_misc 1 (bitflagged). Like shrub.
174 * josh: /follow will now accept partial matches
175 * tjw: hitboxes are now used for all traces, not just bullets.  for example,
176        you can now fire rifle grenades over teammate's shoulders.
177 * tjw: extended matt's !slap command to also support !burn.  credit goes
178        to dvl drmmr.
179 * josh: added g_skipCorrection
180 * michael: added skill_ cvars http://linespeed.net/projects/etpub/ticket/67
181 * matt: added !lock/unlock (K)
182 * tjw: added compatability with the 2.60 maps/radar.script
183 * tjw: added sanity checking to COM_BitSet().  this should prevent a common
184        server crash on several custom maps (e.g. glider)
185 * tjw: prone MG soldiers can no longer shoot people standing on them or on
186        their gun
187 * tjw: prone players are no much easier to stab.  the knife reach has been
188        increased and head and leg hitboxes are now knifable.
189
190 0.3.2
191 * josh: fixed censor so it works on more than the last word
192 * josh: Added g_doubleJumpHeight defaulting to 1.4 to be tunable but feel
193         like shrub. g_doubleJumpHeight is a multiplier to the default jump
194         velocity. Your second jump velocity will be g_doubleJumpHeight time
195         the normal.
196 * tjw: added checks in COM_BitCheck() and COM_BitClear() to prevent custom
197        map related server crashes.
198 * matt: removed extra newlines from shrubbot AP() output.
199 * josh: added documentation for the '3' shrubbot flag
200 * tjw: updated to Tommes's latest German translation of the docs.
201 * tjw: created a new shrubbot flag for !burn (u).  previously it shared the
202        (A) flag with !slap, but some admins may not want to enable both.
203 * tjw: g_knifeonly should work again.
204 * josh: Minor fixes to antilag. Shooting player no longer unlagged.
205 * josh: Body hitboxes are now unlagged when drawn with debugBullets.
206 * josh: Added antilag debug output from the server
207 * josh: Added antilag debug output to the client for internal testing only
208         This client will also make the server hitboxes blue when g_debugBullets
209         is on and it will draw red hitboxes for what the client sees. Output
210         is on the console.
211 * josh: Results of antilag debugging make it look perfect.
212 * tjw: removed hack that prevented players with lvl 4 light/heavy weapons from
213        switching to spec for the first 60 seconds of the map.  this bug has
214        been fixed with the 2.60 patch so the hack is no longer neccessary.
215
216 0.4.1
217 * josh: fixed double jump bugs. Should be good now.
218 * tjw: added g_debugHitboxes cvar
219 * tjw: adjusted the standing/crouched head hitbox position to better match
220        the player model.
221 * matt: added new 4 new cvars for Team Damage Restrictions, 1 client side
222        command.  cvars: g_teamdamagerestriction, g_minhits, g_autotempban,
223        g_autotempbantime.  client side command /damage
224 * dvl: !lol command
225 * josh: reordered antilag lerping to better match the client
226 * josh: minor fixes to skip correction to better match ET's bg_slidemove.
227         This may have fixed the bouncing problem which is caused by
228         skip correction.
229 * matt: partially implemented shrubbot flag 2 (not censored) and flag 9
230         (can do shrubbot commands via team and fireteam chat)
231 * josh: antilag debug info now only prints for the hit entity. Won't print
232         anything if it does not hit a player. This happens in the same place
233         the hitbox is drawn.
234 * tjw:  fixed knife and syringe while crouching over wounded player
235 * tjw:  added !reset and !restart shrubbot commands.
236 * tjw:  added support for the - and + operators in shrubbot [admin] flags.
237 * tjw:  added g_voting cvar (see docs)
238 * tjw:  changed the flag for !burn from 'u' to 'U'.  ('u' is reserved for
239         !uptime)
240 * tjw:  added '6' and '8' shrubbot flags (see docs)
241 * tjw:  overhauled g_goomba.  you can now goomba with falls that would not
242         normally damage you.  you can also do damage to wounded players by
243         jumping on them.
244 * tjw:  corpse dragging now has a bit more pull, so corpses should keep up
245         when dragging from crouch.
246 * tjw:  added g_weapons flag 256 (garands reload)
247 * tjw:  akimbos will now reload when only 1 shot has been fired.  still reloads
248         both though.
249 * matt: added g_skills flag 1, ability to spot landmines for teammates if you
250         have level 4 battlesense
251 * tjw:  added g_moverScale cvar (see docs)
252 * matt: added basic poison needles (g_poison)
253 * dvl:  added !pip/!pop
254 * matt: added mute status to !listplayers, red M is shown if player is muted
255         else, empty space
256 * matt: changed !pause/unpause from z to Z, as !pip/!pop are z in shrub
257 * dvl:  updated !pip/pop, !lol now accepts parameter for number of nades
258         !lol/!pop/!pip with no param does everyone
259         !lol -1 X does X nades around everyone
260 * dvl:  g_slashKill partially implemented, only flag 8, disabling /kill
261 * matt: added a primitive shake to poison needles
262 * tjw:  added g_ammoCabinetTime and g_healthCabinetTime cvars (see docs)
263 * tjw:  viewlock when wounded should no longer follow non-medics occasionally.
264 * tjw:  XPSave should work for stopwatch gametypes now.
265 * tjw:  ATB will not act during intermission anymore.
266 * matt: fixed being poisoned across death/spawn
267 * tjw:  added flags to g_hitsounds cvar (see docs)
268 * tjw:  added /hitsounds client console command.  usage: /hitsounds [on|off]
269 * tjw:  changed output of !admintest to better match shrubet
270 * matt: added g_logOptions 256, to log private messages
271 * tjw:  added g_spectator cvar (see docs)
272 * tjw:  fixed bug that let you keep following a teammate when he switched
273         teams.
274 * josh: Added bitflag 8 to g_censorPenalty which auto-mutes a player for
275         g_censorMuteTime [60] seconds.
276 * josh: Fixed unlagged skip correction. The bouncing is gone now. It was
277         caused by the velocity never being copied over in the original
278         ET code. So velocity was always very very wrong. g_skipCorrection 1
279         should work VERY nicely now.
280 * tjw:  fixed head hitbox position for moving animations
281 * tjw:  increased the crouch hitbox adjustment because the moving animation
282         is taller than the idle one.
283 * matt: added g_medics CVAR, controlling various aspects of the medic
284         added support for changing regeneration rate of the medic
285 * josh: You can now use /follow to follow teammates when in limbo.
286 * josh: Added g_truePing(0|1). Will calculate ping as the time between the
287         current time and the client's last command time stamp.
288 * tjw:  added g_maxWarp cvar (see docs)
289 * tjw:  added g_dropObj cvar (see docs)
290 * tjw:  fixed a custom map related scripting segfault:
291         http://linespeed.net/projects/etpub/ticket/192
292 * tjw:  players with slot 30 and higher should no longer have their names
293         displayed twice in the +scores
294 * tjw:  fixed satchel auto-switch problem with 2.60
295 * tjw:  merged 2.60 SDK
296 * tjw:  added clearxp server console command.
297 * matt: g_medics additions, medics can't self heal, can't heal self of poison
298 * matt: removed ability to playdead when poisoned, ticket 191.  Potential fix
299         for using mobile MG or mounted MG to stop poison jitter effect
300 * matt: added fling/launch/throw shrubbot commands
301 * matt: fixed !slap bug that would revive if player was dead but not gibbed
302
303 0.4.2
304 * tjw: match_readypercent will now only be used for the ready percent in
305        warmup (like before).  g_intermissionReadyPercent will be used for
306        ready percent during intermission.
307 * tjw: removed Players_Axis and Players_Allies from the server info string.
308        it turns out some admins do use up all of the extra space with 'sets'.
309        (e.g. .URL .IRC .FavoriteColor .ICQ .AstrologicalSign, etc.)
310 * tjw: fixed (hopefully) a bug I introduced into G_SendScores() that caused
311        +scores to pop up seemingly randomly on servers with lots of players.
312        This can also cause client crashes.
313 * tjw: MAX_SHRUBBOT_FLAGS increased from 32 to 64
314 * tjw: MAX_SHURBBOT_ADMINS increased from 1024 to 32768
315 * tjw: g_antilag was only working half the time.  I didn't understand
316        how EF_TELEPORT_BIT was used.  it's not set when the player
317        teleports, but rather toggled and the client looks for a change
318        between client frames.
319 * tjw: non-soldier players with level 4 heavy weapons skill can now
320        pickup and use enemy SMG's.
321
322 0.4.3
323 * matt: Poison Needle kills now count as 3XP toward first aid skills
324 * tjw:  removed correction on hitboxes for players in the tank.  2.60
325         fixed this, so it's no longer necessary.
326 * tjw:  fixed tank MG overheating too fast.
327 * tjw:  fixed "FLAMETHOWER not available" message spamming when using
328         team_maxFlamers.
329 * tjw:  added g_serverInfo cvar (see docs)
330 * tjw:  fixed a bug that caused spectators to follow the next player as
331         soon as ANYONE died unless the g_spectator 4 flag was set.
332 * tjw:  shrubbot commands will now be ignored if g_shrubbot is set to "".
333         (for better etadmin_mod compatiblity).
334 * tjw:  fixed the playdead on medkit bug.
335 * tjw:  fixed a problem that caused incomplete scoreboards on servers with
336         high numbers of players.
337 * tjw:  g_skipCorrection should work better now on servers with g_antilag
338         disabled.
339 * tjw:  g_skipCorrection should work better now when the player is on a
340         ladder.
341 * tjw:  calling !mute on a muted player will no longer unmute them.  calling
342         !unmute on a player who is not muted will no longer mute them.
343 * tjw:  fixed problem with holding +attack while hitting jump as spectator.
344
345 0.4.4
346 * josh: Silenced akimbos are really silenced (thanks Azyu)
347 * josh: Mutes persist across maps. auto_mute_time wasn't being saved, is now
348 * tjw:  I'm a hypocrite and added yet another cvar in a bug fix release.
349         It's g_goombaFlags (see docs).  Many people do not like goomba doing
350         damage to teamates.  I will add more functionality to this cvar in
351         0.5.1.
352 * josh: skip corrected entities are linked now so it will be harder to skip
353         over mines and players dropping packets will be more hittable if
354         antilag is not on.
355 * tjw:  when using g_dropObj, players must switch to knife before they can
356         drop the objective.
357 * tjw:  !reset and !restart will now work during intermission.
358 * tjw:  fixed another problem with the scoreboard when there are over 32
359         players on a server.
360 * tjw:  soldiers can again choose between pistol, akimbo, or mp40 when
361         they have level 4 heavy weapon skills.
362 * tjw:  intermission countdown will now draw correctly for the client
363         if g_intermissionTime is set to something other than 60.
364         (thanks jaybird)
365
366 0.5.1
367 * matt: !listteams shrubbot command added
368 * dvl:  g_logOptions 512 added, to log real time instead of server up time
369 * azyu: g_weapons options 8,16 added, half/full restore of charge bar if
370         airstrike aborted
371 * matt: poisoned players gurgle.  medics who caused the poisoning receiving
372         notification via a cp
373 * matt: g_slashkill option 16 added, can't /kill when you are poisoned
374 * matt: implemented azyu's patch for /kill functionality.  implements 1,2
375         flags, flag 4 doesn't work quite right
376 * matt: added g_axisSpawnInvul, g_alliedSpawnInvul
377 * josh: g_censorPenalty 2 flag now works. People with censored words in their
378         names will be kicked before they begin. If g_censorNames is not "",
379         censored words in names will be *'d and uncolored.
380 * josh: g_logOptions 1 flag will print obituaries in chat instead of cpm.
381         Uses extra bandwidth.
382 * josh: Poison and Goomba kills have new obituaries.
383 * josh: g_logOptions 1024 will print obits faster from server. Uses more
384         bandwidth like g_logOptions 1. 1 will override 1024 so if you use
385         both you'll get obituaries in chat.
386 * josh: g_killRating 1 added as default. Uses a probabilistic measure of a
387         players killing ability. Rating is based on how hard each kill is and
388         which weapon was used. See docs. /killrating shows your ratings.
389 * josh: if g_killRating is 1, shuffle will use overall kill ratings.
390 * josh: overall kill rating is included in XP save.
391 * josh: Fixed a small spawn point bug I had made.
392 * tjw:  added windows installer
393 * tjw:  added mac installer
394 * tjw:  used new PM_TraceAll() from 2.60 in playdead checking
395 * tjw:  improved PM_TraceAll() related checking to test for players heads
396         and legs instead of just legs.  This should prevent player models
397         from sticking through doors when prone or dead next to them.
398 * tjw:  added g_goombaFlags 2, 4, 8, and 16 (see docs)
399 * josh: Added g_killRating flags 1,2,4, and 8 (see docs). Default is 7 for
400         testing purposes (0.5.0). Feel free to change the default for 0.5.1.
401 * matt: added !passvote shrubbot command
402 * tjw:  added g_shoveNoZ and g_shoveSound cvars (see docs)
403 * tjw:  UPGRADE NOTE the value used for g_shove is significatly different
404         in this version of etpub.  It should be much closer to the shrubet
405         value, so lower values pack more punch.  80 is recommended.
406 * tjw:  added g_ATB_swap and g_ATB_rating cvars (see docs)
407 * tjw:  added 4 flag to g_serverInfo (see docs)
408 * matt: added 8 flag to g_serverInfo
409 * tjw:  added g_stats cvar (see docs)
410 * matt: added 2048 g_logOptions option (see docs)
411 * matt: shrubbot flags 4 and 7 implemented (see docs)
412 * tjw:  added g_poisonSound (see docs)
413 * tjw:  added visual effects to poisoned player behaviour.
414 * tjw:  added g_hitsounds flag 16 (see docs)
415 * tjw:  added g_poisonFlags cvar (see docs)
416 * tjw:  "Project: Bug Fix" 002 merged
417 * tjw:  "Project: Bug Fix" 006 merged
418 * tjw:  "Project: Bug Fix" 007 merged
419 * tjw:  "Project: Bug Fix" 008 merged (cgame)
420 * tjw:  "Project: Bug Fix" 009 merged (cgame)
421 * tjw:  "Project: Bug Fix" 010 merged
422 * tjw:  "Project: Bug Fix" 011 merged (cgame)
423 * tjw:  "Project: Bug Fix" 012 merged
424 * tjw:  "Project: Bug Fix" 013 merged
425 * tjw:  "Project: Bug Fix" 014 merged
426 * tjw:  "Project: Bug Fix" 015 merged
427 * tjw:  "Project: Bug Fix" 016 merged
428 * tjw:  "Project: Bug Fix" 017 merged (ugh)
429 * tjw:  "Project: Bug Fix" 018 merged (cgame)
430 * tjw:  "Project: Bug Fix" 021 merged (cgame)
431 * tjw:  "Project: Bug Fix" 023 merged (cgame)
432 * tjw:  "Project: Bug Fix" 024 merged
433 * tjw:  "Project: Bug Fix" 031 merged (cgame)
434 * tjw:  "Project: Bug Fix" 032 merged (cgame)
435 * tjw:  "Project: Bug Fix" 033 merged (cgame)
436 * tjw:  "Project: Bug Fix" 034 merged (cgame)
437 * tjw:  "Project: Bug Fix" 035 merged (cgame)
438 * tjw:  "Project: Bug Fix" 036 merged
439 * tjw:  "Project: Bug Fix" 037 merged (cgame)
440 * tjw:  "Project: Bug Fix" 038 merged
441 * tjw:  "Project: Bug Fix" 039 merged
442 * tjw:  "Project: Bug Fix" 042 merged
443 * tjw:  "Project: Bug Fix" 045 merged
444 * tjw:  "Project: Bug Fix" 046 merged
445 * tjw:  "Project: Bug Fix" 047 merged
446 * tjw:  "Project: Bug Fix" 048 merged
447 * tjw:  "Project: Bug Fix" 049 merged (cgame and ui)
448 * tjw:  "Project: Bug Fix" 055 merged (botai)
449 * tjw:  "Project: Bug Fix" 056 merged
450 * tjw:  "Project: Bug Fix" 058 merged
451 * tjw:  "Project: Bug Fix" 059 merged
452 * tjw:  "Project: Bug Fix" 060 merged
453 * tjw:  "Project: Bug Fix" 062 merged
454 * tjw:  "Project: Bug Fix" 065 merged
455 * tjw:  "Project: Bug Fix" 066 merged
456 * tjw:  "Project: Bug Fix" 067 merged
457 * tjw:  "Project: Bug Fix" 068 merged
458 * tjw:  "Project: Bug Fix" 069 merged
459 * tjw:  "Project: Bug Fix" 070 merged
460 * tjw:  reformatted output of !showbans
461 * tjw:  added g_tyranny (see docs)
462 * tjw:  improved shrubbot documentation in docs/index.html
463 * tjw:  removed *ChargeTime cvars from the serverInfo string by default
464         to save space.  These can be added back with the 16 flag to
465         g_serverInfo (see docs)
466 * tjw:  when using g_serverInfo flags 1, 2, 4, or 8 the server will populate
467         the relevant cvars with "." characters to their maximum length
468         initially.  This will prevent "Info string length exceeded" crashes
469         from occurring mid-game if the admin has added too many 'sets'
470         cvars to support the g_serverInfo flag.  (The crash will instead
471         happen when the server starts.)
472 * tjw:  /ignore and /unignore commands now accept slot# or partial
473         name match
474 * tjw:  /unignore command now prints out all ignored clients if no
475         name or slot# is given.
476 * tjw:  /m now recognizes the ignore list
477 * tjw:  /vsay, /vsay_buddy, and /vsay_team now recognize the ignore list.
478 * tjw:  /say, /say_team, and /say_buddy messages from clients who you
479         are ignoring will now print to your client console (not chat)
480         instead of dropping them altogether.
481 * tjw:  when you use add or remove someone from your ignore list with
482         /ignore or /unignore, they are notified.
483 * tjw:  !showbans now only prints out 30 bans at a time and accepts
484         a parameter (number to skip).
485 * tjw:  doors will open silently when crouching (etpro thing I guess).
486 * tjw:  added cvar g_mapScriptDirectory (see docs)
487 * tjw:  added preliminary support for etpromapscripts.
488 * tjw:  changed default for g_maxWarp to 4.  I also increased the number
489         of frames that g_skipCorrection will act on from 2 to 3.
490 * tjw:  !showbans X supports negative number to show the last X bans in
491         the list.
492 * tjw:  added !disorient and !orient shrubbot commands.
493 * tjw:  /killrating now prints out a sorted list of all player's killratings
494         similar to the /players command.  the list is only printed to
495         the client that runs the command.
496 * tjw:  added g_campaignFile cvar (see docs)
497 * tjw:  fixed possible covert ops weapon issue with g_classChange
498 * tjw:  added 'forcecvar' server command.  this will of course only work
499         if using the client mod.  unmodified clients will see the message
500         "Unknown client game command: forcecvar".
501 * tjw:  improved etpromapscripts compatibility.  need client mod in order
502         to see "You are near the Back Door" popup.
503 * tjw:  added g_fightSound cvar (see docs)
504 * tjw:  client mod won't draw the wounded message when playing dead.
505 * tjw:  client mod won't predict EV_NOFIRE_UNDERWATER.  this means if
506         you're using g_weapons 2 or 4 flags, you won't hear clicking
507         when using syringe or pliers underwater.
508 * tjw:  removed +lookup, -lookup, +lookdown, and -lookdown commands from the
509         client mod.  these are used for anti-recoil cheats.
510 * tjw:  added !resetxp shrubbot command (see docs)
511 * tjw:  added 'playsound' server command.
512 * tjw:  added "/callvote surrender" and cvar vote_allow_surrender
513 * tjw:  added "/callvote restartcampaign" and cvar vote_allow_restartcampaign
514 * tjw:  added "/callvote nextcampaign" and cvar vote_allow_nextcampaign
515 * tjw:  added "/callvote poll" and cvar vote_allow_poll
516 * tjw:  "/callvote nextmap" now loads the next map in the campaign instead
517         of loading the next campaign (when in campaign mode).
518 * tjw:  "/callvote comp" now tries to "exec default_comp.cfg" instead of
519         loading the built-in competition settings.
520 * tjw:  "/callvote pub" now tries to "exec default_pub.cfg" instead of
521         loading the built-in public settings.
522 * tjw:  increased the range for shoving slightly to be more like shrubet.
523         it should be a lot easier to shove other players while you're
524         both moving now.
525 * tjw:  added cvar g_fear (see docs)
526 * tjw:  corpses can now be destroyed with satchel or dyno again.
527         (bug introduced by the 2.60 patch)
528 * tjw:  fixed a couple of issues with inappropriate "spread scale" increases.
529 * matt: added basic banner support, g_msgs, g_msgpos, g_msgX (see docs)
530 * tjw:  g_slashKill 4 flag now restores the charge bar to the same state
531         it was in at the moment the player issued /kill (regardless of how
532         long they were in limbo).
533 * tjw:  tank mg will now consider the incline the tank is on when limiting
534         the pitch restriction again (oops).
535 * tjw:  added g_obituary cvar and removed g_logOptions flag 1024 (see docs)
536 * tjw:  etpub_client now tries very hard not to save any of the forcecvar
537         cvars in the profile etconfig.cfg file.  also, once forcecvar is
538         used to set a client cvar, the client can no longer modify it
539         (until they restart their client).
540 * tjw:  forcecvar remembers all forced cvars for the current map and sends
541         them to connecting clients.
542
543
544 0.5.2
545 * tjw:  !resetxp from the server console was causing a segfault.
546 * tjw:  g_serverInfo 4 flag was only working for the first map in the
547         campaign.
548 * tjw:  players who are dead or playing dead can no longer shove other
549         players.
550 * tjw:  added vote_allow_maprestart cvar.  the button will still appear
551         in the MISC vote menu unless using the upcoming etpub_client.
552 * tjw:  players can no longer /playdead with a ticking grenade or a
553         spinning up panzer.
554 * tjw:  forcevar commands will be issued to the client when they've finished
555         connecting instead of when they start connecting.  this was causing
556         problems on (at least) servers without warmup because the map config
557         containing the forcecvar commands hadn't been executed yet.
558 * tjw:  fixed (hopefully) a bug that was preventing most g_slashKill options
559         from working.
560 * tjw:  !showbans was not accepting it's parameter when it was issued
561         with "say".
562 * tjw:  you can now use /m to send private messages to yourself.  this
563         is for etadmin_mod compatability.
564 * tjw:  g_shoveSound and g_poisonSound now use EV_GENERAL_SOUND instead
565         of EV_GLOBAL_SOUND so you won't hear them so far way from the
566         player emitting the sound.
567 * tjw:  prevented sending duplicate forcecvar commands to the client when
568         those commands are issued at the very start of a map (e.g. g_mapConfigs)
569
570
571 0.5.3
572 * tjw:   fixed !showbans crash bug
573
574
575 0.6.1
576 * forty: fix for bug that breaks autoreload occasionally
577 * forty: added min_airstriketime and min_artytime cvars
578 * forty: added g_weapons 512 flag (garand/k43 equality)
579 * josh: censor autogib will work with /kill on now
580 * forty: added cvar g_constructibleXPSharing
581 * forty: fixed team_maxGrenLaunchers for axis team (wasn't working)
582 * forty: added cvar g_asblock
583 * matt:  fixed !throw to throw in direction player is facing instead
584          of north/south (Thanks KillerWhale)
585 * forty: XP Saver now preserves a players mute state to prevent reconnecting
586          to undo a mute.
587 * matt:  added g_weapons option 64 for binoc dropping and g_misc option 2
588          for binoc master competition.  NOTE: to display binoc model
589          correctly, client-side file weapons/binocs.weap must be downloaded
590          to client
591 * matt:  Courtesy of bacon's code in SD forums, added throwing knives (see docs)
592          NOTE: to display knife model correctly, client-side file
593          weapons/knife.weap must be downloaded to client
594 * matt:  fixed shrubbot flag 1, so admins with flag 1 set can't be vote muted
595 * forty: subversion lines endings are now always windows native
596 * forty: Zinx's b_realhead code
597 * forty: bugfix for b_realhead with antilag
598 * forty: fix some vc++ compile errors
599 * forty: sudden death dynamite
600 * matt:  fixed a few throwing knives bugs, throwing knive kills now give
601          3 light weapons XP
602 * gabriel: added party panzers
603 * forty: fix realhead related corpse headbox problems and reenabled waiting
604          for medic animation when b_realhead is enabled.
605 * forty: dynamite chaining
606 * forty: XP Save now preserves team_hits and hits to prevent teambleeders/griefs from
607          reconnecting to dodge team damage restriction kicks.
608 * forty: #339 - Limbo'd and Spectators can throw knives fix
609 * forty: #208 - can always obscure field ops canisters.
610          Added bit to g_asblock to prevent lvl 3 and higher fdops from having their
611          airstrikes blocked by players.
612 * forty: some documentation updates as well.
613 * forty: #84 - Added canister kicking.
614 * forty: fixed bugs with canister kicking, and one more I missed with dead
615          but following knife throwing
616 * forty: g_canisterKick added to the documentation.
617 * forty: #129 - Added 2 - adrenaline counter and options 4 - Disable the tap-out
618          confirmation dialog box, 8 - Display connection attempts by banned players,
619          and 32 - Omit "Item" lines from logfile.
620 * forty: disarming a teammates satchel no longer gives you xp.
621 * forty: #24 - playdeads no longer hold weapons. Also fixes the flame thrower fire drawing
622          clientside while holding down fire and playing dead.
623 * forty: #126 - Added 16 - report gibs
624 * forty: fix for dead but not gibbed can capture flags
625 * forty: fix for setlevel privilege escalation - players with s flag can set themselves and
626          and others to levels higher than themselves
627 * forty: Increased the number of xp savers slots. Xp saver now saves information before map
628          changes, so people dropped during warmup and map changes don't lose xp. Xp saver
629          is now more selective about which slot it will save into, It will try to overwrite
630          your own data first, then use the first free slot if available, then use the oldest
631          stored data. It also will clean it self up when appropriate, removing stale data.
632 * forty: Fix for fireteam crash.
633 * forty: Fix for switching team multiple times grants instant respawn.
634 * matt:  Fix for team damage kick/rejoin/kick vicious cycle bug introduced by
635          changeset: 603
636 * matt:  Added !swap shrubbot command
637 * tjw:   http://linespeed.net/projects/etpub/ticket/359 used PerroGrande's fix
638          for the velcro grenade problem that showed up with kickable objects.
639 * matt:  Added !nextmap shrubbot command
640 * matt:  Added two new g_medics flags.  16 = no akimbos, 32 = pistol only
641 * tjw:   Added ent->client->pers.etpubc which is an integer representing
642          the version of the connected client (if it's etpub).  This can
643          be useful for enabling certain behaviours only if the client's
644          client supports it.
645 * tjw:   committed PerroGrande's patch for custom obituaries.
646          http://linespeed.net/projects/etpub/ticket/364
647 * tjw:   committed PerroGrande's patch for g_killingspree
648          http://linespeed.net/projects/etpub/ticket/368
649 * matt:  committed PerroGrande's updated patch for killing spree
650          streak messages
651 * tjw:   committed PerroGrande's tunable-weapon-damage patches
652          http://linespeed.net/projects/etpub/ticket/372
653 * tjw:   disabled g_dropAmmo/g_dropHealth during warmup
654          http://linespeed.net/projects/etpub/ticket/374
655 * tjw:   referee's can no longer be complained against
656          http://linespeed.net/projects/etpub/ticket/362
657 * tjw:   added g_cmdTimeRestriction cvar (see docs)
658          http://linespeed.net/projects/etpub/ticket/374
659 * matt:  added team_maxMedics, Engineers, FieldOps and CovertOps
660          for limiting classes, based on Azyu's sample code on SD forums
661 * tjw:   players can no longer /playdead when they have a view changing
662          weapon like a scope or a set heavy weapon.
663 * perro: added g_staminaRecharge which can be used to tweak the rate at which
664          players rebuild stamina.  Implemented g_misc 16 which disables jumping
665          when stamina falls below approx 17%.  Client update required for these
666          to be effective.
667          http://linespeed.net/projects/etpub/ticket/355
668 * tjw:   copied etpubc storage from client->pers to client->pmext so it can be
669          used in pmove.
670 * tjw:   removed my overzealous version detection for PM_JUMP_STAMINA :)
671 * tjw:   added g_misc 32 flag (see docs)
672 * tjw:   improved version detection through the use of the ConfigString
673          CS_ETPUBINFO.  In order to protect the already crowded
674          CS_SERVERINFO configstring, add cvars to this instead of using
675          CVAR_SERVERINFO.  To do this you will need to add your cvar to
676          G_IsEtpubinfoCvar() and G_UpdateEtpubinfo() in g_main.c and also
677          to CG_ParseEtpubinfo() in cg_servercmds.c.  I've already done
678          this with g_misc, g_doubleJumpHeight, and g_staminaRecharge.
679 * tjw:   renamed cvar min_airstriketime to g_minAirstrikeTime
680 * tjw:   renamed cvar min_artytime to g_minArtyTime
681 * tjw:   renamed cvar b_realhead to g_realHead, also made it default to 1
682 * tjw:   removed g_cmdTimeRestriction.  The normal behaviour of the client
683          is to throw various commands at the server in fast succession.
684             It was becoming very hackish allowing some commands to come in fast
685             and some not.  I think it's best to just trust the game engine's
686             built in rate limiting.  (a.k.a if it ain't broke don't fix it).
687 * perro: changed g_staminarecharge to be a floating point multiplier rather than
688          an offset.
689 * matt:  Fixed typo in team_max checks
690 * tjw:   File-based XPSave replacing cvar based XPSave.  This adds two new
691          cvars: g_XPSaveFile and g_XPSaveMaxAge.  Up to 32768 records can
692          be saved.  If you're running with the g_XPSave 4 flag, you will
693          probably want to tune g_XPSaveMaxAge (default is 1 week).
694 * perro: Initial G_Damage code re-work to allow for Shrub-style "reflecting damage".
695          Removed hardwired "headshot = 50".  Replaced with g_dmgHeadShot cvar that can
696          work in conjunction with tunable weapons.
697          Removed "nade-boosting" exploit that was present when FF was off.
698          Removed blocks of code that had been commented-out to make G_Damage
699          easier to read and understand.
700          Added g_dmg cvar which will be used in some more optional G_Damage
701          features/changes that I'm working on.
702 * matt:  updated team_max checks so that it now also checks when initially
703          joining a team instead of only when switching classes within same
704          team
705 * perro: Added g_reflectfriendlyfire [float] cvar that allows admin to set
706          whether friendly fire reflects back to the player who did the damage.
707          Acts as a multiplier to damage.
708 * perro: Added #defines for future use with g_dmg cvar
709 * perro: Added code to handle three experimental g_dmg settings
710          Removed unnecessary floating-point computations in g_weapon.c
711 * perro: Added g_killingSpreePos cvar to control where killing spree messages
712          are displayed on the screen.
713 * tjw:   cleaned up kill spree code.
714 * perro: turned off reflecting damage for landmines.
715 * tjw:   fixed a bug with new xpsave and limited lives
716 * tjw:   hopefully fixed the bug that keeps XPSave from loading stored XP
717          if cl_guid has not been set yet at the time of initial connect.
718 * perro: remove anti-landmine hack from reflecting damage.
719            replaced with a bitmask cvar that allows admins to select which
720            categories of weapons will reflect.
721 * perro: updated commented server.cfg to show g_reflectFFWeapons bitmask values.
722 * perro: actually removed the anti-landmine hack this time...
723 * perro: added three new g_dmg bitmasks, tweaked g_dmg 4 downward for balance.
724 * tjw:   created a new cvar g_coverts and moved g_dmg 64 flag to g_coverts 1
725 * perro: fixed small typo
726 * perro: corrected minor problem introduced by consolidating killing spree
727          into one function.  It was creating sprees where sprees should not
728          have been (a suicide, for example, created a one-kill spree).
729          Corrected this problem and prevented /kill and team switch from
730          ending sprees and creating death sprees.
731 * perro: updated killing spree code to allow customizable messages.  Docs to
732          follow.
733 * perro: Implemented g_dmgFlamer.
734          Removed brain-damaged g_dmg 8 function and replaced with tjw's
735          g_dmgHeadShotRatio suggestion.
736          Re-named g_dmgHeadshot to g_dmgHeadShotMin for clarity.
737 * tjw:   Q_StrReplace() is now easier to use
738 * tjw:   Added [a] for g_killingSpreeMsg_end and g_killingSpreeMsg_tk
739 * perro: Changed custom obits to take advantage of new parsing capabilities.
740          Updated docs accordingly.
741 * perro: Fixed uniform stealing bug.  Covies can no longer steal opposition
742          uniforms by stealing unis from covies on their own team.
743          Added check for BODY_TEAM(ent) > 2
744 * gabriel: Fixed buggy party panzers, now they fire correctly in all directions.
745 * perro: Fixed Medic-with-Panzer bug.
746 * gabriel: Added g_panzersVulnerable and g_panzersGravity.  Renamed
747          g_partyPanzersSpeed to g_panzersSpeed and the setting now applies to
748          both normal and party panzers.
749 * perro: admins can now define any level of killing spree "levels" that they want
750          undefined levels will use g_killingspreed_default as the message.
751 * perro: added g_medics 64 bitflag to provide an alternative to medic tk/revive
752          this option allows medics to use syringes, under certain conditions,
753          to provide healing to living teammates.
754 * perro: killing sprees were counting tk's toward killing spree
755          added OnSameTeam() check to prevent this
756 * perro: reflected friendlyfire was insta-gibbing players if they took
757          enough damage to die. Fixed.
758 * tjw:   dropped NO_FPHEX #ifdef in favor of always using the
759          non floating point hex notation for Zinx's realhead code.  This
760          was done for compiler compatability only.
761 * tjw:   replaced g_XPSaveMaxAge with three seperate cvars:
762          g_XPSaveMaxAge_xp
763          g_XPSaveMaxAge_mute
764          g_XPSaveMaxAge_killrating
765          These control how long to keep each these three various long
766          term storage values.
767 * tjw:   changed default for g_ATB_rating to 3 (use killRating)
768 * tjw:   changed color for default kill spree messages to ^8
769          to be consistent and neutral of other meaningful chat colors.
770 * tjw:   added g_shortcuts cvar (see docs)
771 * tjw:   fixed a bug that caused !unmute to fail for someone who was
772          muted by XPSave.
773 * tjw:   added classnames to all gentities to make debugging G_Spawn()
774          crashes easier.
775 * tjw:   restricted weapon fire when the game engine starts running out of
776          game entities to prevent "G_Spawn: no free entities" crashes.
777 * tjw:   prevented MatchToken crashes when parsing badly formatted
778          g_shrubbot or g_XPSaveFile files.
779 * perro: Added new g_weapons bitmask (1024).
780          This optional bitmask places a hitbox around mortar rounds.
781          When this bit is set, "horizontal mortaring" through windows
782          and slits becomes very difficult, or impossible, depending on
783          the size of the opening.
784 * tjw:   XPSave will now only write relevant data to the file to keep the
785          file size and parsing time down.  Also fixed a but that allowed
786          players to reset their killrating by disconnecting when their score
787          was 0xp.
788 * perro: Added cvars and code to allow separate tuning of damage and damage
789          radius for exploding weapons (including panzers which were previously
790          hardwired).  Fixed incorrect handling of tunable landmine damage.
791          MAP_MORTAR will return traditional damage value (250) instead of
792          incorrectly matching tunable grenade launcher damage.
793          Docs to follow for new cvars.
794 * tjw:   made gentities checking more strict (fun_beach causing "G_Spawn:
795          no free entities" crash)
796 * tjw:   imported g_weapons, g_medics, and g_coverts into client space to
797          aid in prediction and add new future features.
798 * tjw:   I may have fixed the multiple helmet bug caused by g_weapons 32
799 * tjw:   clearxp should now work for connecting clients who were given XP
800          by XPSave as well.
801 * josh: Added g_playerRating and most of its implementation. This will track
802         how valuable a player is based on how even that player wins against
803         teams that are good. It can be used to shuffle and for ATB as well.
804         player rating shuffle will override kill rating shuffle. player rating
805         will only be calculated if g_playerRating_minplayers have played in
806         the map.
807 * josh: Made it so ATB by kill rating works as long as any kill rating options
808         are enabled, since it will be calculated.
809 * tjw:   added g_shuffle_rating cvar (see docs)
810 * tjw:   g_XPSaveMaxAge has been re-added.  It will be used in place of
811          g_XPSaveMaxAge_killrating and g_XPSaveMaxAge_mute and the default
812          maximum age for all things [xpsave] stores.
813 * tjw:   added [mapstat] element to the xpsave.cfg file so map w/l ratio will
814          be available to playerRating.
815 * tjw:   xpsave will only update [mapstat] records if there are
816          g_playerRating_minplayers clients are playing.
817 * josh:  Player rating now takes the current map into account
818 * josh:  Moved player rating to LogExit so it's calculated before the message
819 * josh:  added g_teamForceBalance_playerrating: only allows a disparity of two
820          standard deviations between team ratings (200 rating points).
821 * perro: Fixed some minor problems with reflected fire.  With ff-off, shooting at
822          limbo'ed teammates does not damage you.  Added new MOD to support
823          reflected FF.
824 * tjw:   implemented g_coverts 2 and 4 flags (see docs)
825 * forty: sigsegv stack traces on Linux.
826 * forty: updated vcproj files to include g_crash.c,cg_hud.c,g_xpsave.c/h
827 * perro: added g_friendlyFireOpts cvar.
828          g_friendlyFireOpts can be used to change the behavior of certain
829          friendly fire events.
830 * perro: added g_friendlyfireOpts bitmask to prevent teammates (other than engies)
831          from even triggering landmines from their teammates
832 * tjw:   added shufflenorestart vote and vote_allow_shufflenorestart cvar.
833 * perro: minor change to the VS project file so that MS Visual Studio
834          isn't quite so whiney during compile
835 * tjw:   turned of g_enforcemaxlives by default.  it uses IP bans and xpsave
836          can be used instead to keep track of lives between connects.
837 * tjw:   added readxp and writexp server console commands.  readxp is
838          g_tyranny protected.
839 * josh:  Added ratingsinfo server command.
840 * josh:  Fixed a bug in g_teamForceBalance_playerrating. Now it will not allow
841          any player to join a team with a > 75% chance of winning in general.
842 * perro: Added cvars to allow tuning of damage and damage radius for artillery
843            and airstrikes.  Docs to follow.
844 * tjw:   added name parameter to [xpsave] element in xpsave.cfg format.
845 * josh:  made g_teamForceBalance_playerrating override
846          g_teamForceBalance to prevent teamjoin deadlocks.
847 * gabriel: Added g_medics flag 128: disable medic health regeneration
848 * perro: added optional g_dmg 8 bitmask which includes a simple
849          bullet falloff computation based on weapon type and characteristics.
850          Adjusted spread for FG42 when g_dmg 32 is set.
851 * gabriel: Separated medic health regenerate rate adjustment into its own setting,
852          g_medicHealthRegen, took out the regeneration rate values from g_medics,
853          and added a couple more options for the sake of completeness.
854 * josh:  Changed favored team max probability on adaptive balancing to 70%.
855 * josh:  Mixed the map and playerrating probabilities in a more stable and
856          readable way.
857 * josh:  Added team ratings info to the end of !listteams.
858 * tjw:   added g_XPDecay and g_XPDecayRate cvars (see docs)
859 * perro: Added experimental damage-based XP.  Added two cvars to support this:
860          g_dmgXP and g_dmgXPLevel (see docs).
861 * perro: reduced some of the minimums and defaults for damage-based xp.
862 * josh:  modified winning probability to sum to one
863 * tjw:   fixed g_XPDecay so that it will decay past the set skillPoints for
864          each level-up.  Note that this currently makes the scripting play
865          the "Congratulations on your promotion [Rank]" when the player is
866          actually being demoted which is kind of funny, but should probably
867          be turned off if possible.
868 * perro: added et-pro-style damage XP option.  Changed cvars from
869          g_dmgXP and g_dmgXPLevel to:
870          g_damageXP and g_damageXPLevel
871 * tjw:   added g_XPDecayFloor cvar (see docs)
872 * tjw:   added g_XPDecay 32 flag (see docs)
873 * tjw;   writexp command will now update the xpsave information of all of
874          currently connected players.
875 * tjw:   added !resetmyxp shrubbot command.  Also fixed the !resetxp command
876          so that it didn't allow players to keep their skill points, rank,
877          and level specific weapons.
878 * tjw:   added g_maxXP cvar (see docs)
879 * josh:  Changed g_activeTeamBalance to g_ATB_diff, and added g_ATB
880          (see docs)
881 * josh:  Added g_ATB 2 which uses playerrating to balance teams. Seems to
882          work well so far.
883 * tjw:   rewrote g_dyno 1 so that checking for sudden death overtime is done
884          with the actualy scripting engine.  this is probably buggy but it
885          works on battery anyway.
886 * tjw:   implemented a workaround for mapscripts such as fueldump's that
887          incorrectly put a "wait" before "wm_endround".  This was causing
888          the timelimit to be hit if the objective exploded in sudden death
889          incorrectly giving the defending team victory.
890 * matt:  added team lock status to !listteams
891 * josh:  g_ATB 2 now allows swapping with g_ATB_swap. Also, skill level in
892          player rating is now twice as important as map difficulty.
893 * tjw:   may have fixed a g_shortcuts crash related to players having
894          shortcuts in their name.
895 * tjw:   improved the "team" command so that it bails out if the selected
896          class or weapon are not available due to the team_max______ cvars.
897          also it will use latched weapons if no weapons were provided as
898          parameters.
899 * perro: adjusted g_damageXP 1 settings to grant damage XP for kill shots, too.
900            cleaned-up the damageXP code.
901            fixed typo in g_main.c that was preventing linking
902 * josh:  Fixed a min players playerrating bug and added sanity checking to
903          mapPad. g_playerRating_mapPad allows you to add wins to the maps to
904          stabilize the means early on.
905 * forty: modernized the linux stack trace code, handles more errors (SIGILL,
906          SIGFPE, SIGBUS)
907 * perro: fixed crash bug with G_DamageXP set and clients falling to their death.
908          also fixed several other non-reported bugs with G_DamageXP
909 * kw:    bugfix: players could get in a tank while looking through a sniper scope.
910 * kw:    most servercommands now work on non-dedicated servers too.
911 * tjw:   added some glibc #ifdefs for glibc 2.1.3 compatability in g_crash.c
912 * tjw:   added skill_weight and map_weight to [mapstat] in xpsave file
913 * kw:    bugfix: "Reloading" the knife let you lose all your knives.
914          bugfix: double attack sounds when throwing knives was off or empty clip.
915          bugfix: throwing knives didn't play the correct sound.
916 * josh:  bugfix: Map padding sanity check resulted in garbage for map pad
917 * josh:  map padding now falls off as it is replaced with real matches.
918 * josh:  map padding defaults to 50 per team. Disappears after 100 games.
919 * josh:  skill and map weights now start and 0.5 and adapt. Changed to start
920          at 0.5 since the map padding will ofset any early imbalance.
921 * josh:  "cleaned up" ratings code. made ratings updates more accurate.
922 * tjw:   g_teamForceBalance_playerrating no longer requires g_teamForceBalance
923          to be enabled (which it overrides anyway).
924 * josh:  Increased player award to reflect the new attenuation. Increased
925          weight update learning rate to adapt fast. The weight update LR
926          doesn't really matter in this case. Too high or too low will make
927          it adapt slower, but not incorrectly.
928 * perro: reduced size of hitboxes on kickables to further reduce "velcro" effect
929          hitboxes are now only drawn if the kickables cvar is actually non-zero
930 * tjw:   g_ATB 2 will now warn players they are about to be moved 10 seconds
931          before the switch.
932 * tjw:   ATB will not switch players who have a disguise or who are carrying
933          an objective
934 * tjw:   ATB will not switch any players if any team has two players who are
935          out of lives on limited lives servers.
936 * perro: prevented arty/air/grenade/etc damage from players who have disconnected
937          or dropped to spec. mode.
938
939 * tjw:   ATB will not switch any players if there's a dynamite plant ticking
940          that could end the game.
941 * tjw:   added 64 and 128 flags to g_XPDecay (see docs)
942 * tjw:   I added the raw netname to shrubbot.cfg and xpsave.cfg instead of
943          the "Sanitized" version.  This has been requested by those who
944          wish to see colors and case in their parsing scripts.  Also fixed
945          a bug with !listplayers that could screw up columns if a level
946          name had non alphanumerics in it.
947 * tjw:   ATB will not switch any players if there are less than 5 mins left
948          in the match.
949 * josh:  Changed my mind about some parts of the ratings for now. Needs more
950          work to take it to that level. Things scale as before now.
951 * perro: added g_coverts 8 which causes disguised covies to take half damage
952 * perro: added g_coverts 16 which causes disguised covies to be immune to
953          splash damage.
954 * perro: added g_coverts 64 which covers non-silenced weapons
955          cleaned-up the "lose your uniform" code
956 * tjw:   g_coverts 32 will now allow coverts to keep their disguise even
957          if an enemy sees them firing a weapon.
958 * tjw:   added g_coverts 128 flag that allows disguised coverts to hop on
959          emplaced guns without losing uniforms.  firing emplaced weapons
960          will still lose uniforms unless the 64 flag is set.  Also, because
961          of client side prediction, it will look like the uniform is lost
962          to the client until they detatch from the gun.
963 * tjw:   fixed flickering health bar bug when looking at disguised coverts.
964 * tjw:   added csinfo and csdump console commands for debugging the
965          MAX_GAMESTATE_CHARS client crash.  Also added overflow protection
966          which might be more trouble than it's worth.
967 * tjw:   I'm pretty sure I've tracked the MAX_GAMESTATE_CHARS client crashes
968          to the the initial population of SERVERINFO cvars that I added
969          to prevent a server crash mid-game on servers with lots of "sets"
970          cvars).  I replaced this populating with checking.
971 * josh:  Changed default g_teamForceBalance_playerrating to 0 and recommended
972          60. People probably shouldn't start with this on.
973 * josh:  bugfix: Changed PMF_DOUBLEJUMPING bitflag from 65536 to 128 since
974          only 16-bits are sent over to the client. This fixes a client bug,
975          since it is in bg, but is compiled into the server as well. Thanks
976          to Zozz for finding this.
977
978 0.6.2
979 * gabriel: Fixed [t] shortcut for throwing knives: [t] was expanding to knives
980            plus max knives.  Now it just returns the knives in player possession.
981 * tjw:     fix for "player flicker" related to having a large number of
982            custom pk3 files on the server.
983
984
985 0.6.3
986 * tjw:     "csdump 1" command will now print the full string instead of just the
987            first 1024 characters.
988 * tjw:     GAMESTATE size tracking now correctly accounts for '\0' for each CS
989            and correctly tracks the size of CS_SYSTEMINFO.  Thanks AK.Waters.
990 * tjw:     fix for g_skipCorrection/PM_TraceLegs crash
991 * josh:    bugfix: end-of-game top overall killer was wrong, it's right now.
992 * josh:    rebalanced team sizes so that 1.5 vs. 1 is a blowout instead of 2x
993 * tjw:     xpsave will not save that the player is muted if the player has been
994            auto-muted by g_censorMuteTime.
995 * tjw:     fixed shrubbot/xpsave memory leak.  Thanks AK:Waters.
996 * kw:      Campaigns sometimes couldn't load when server had lots of campaigns.
997 * josh:    Changed initial map and skill weightings to 0.5 each.
998 * tjw:     fix kill spree messages when players have keys in their names.
999 * tjw:     fix custom obituary messages when players have keys in their names.
1000 * tjw:     fix for limited lives spectator exploit.
1001 * tjw:     g_shuffle_rating was using the wrong values.
1002 * tjw:     fix for etmain prone -> scoped weapon -> unprone bug
1003 * tjw:     fix for following a teammate as he switches teams bug
1004 * tjw:     g_throwableKnives 0 really disables /throwknife
1005 * tjw:     pass g_throwableKnives value to client in CS_ETPUBINFO
1006 * tjw:     added playsound_env for etadminmod compatability
1007 * tjw:     playsound and playsound_env are now properly g_tyranny protected
1008            when used to play a sound to a specific client.
1009
1010
1011 0.7.1
1012 * josh:    Updated player rating model so that the better players on the team
1013            get less points for winning than the worse ones, and they lose
1014            more points for losing. This will prevent rating inflation.
1015 * josh:    No more swapping with g_ATB 2, only moving. But, g_ATB 2 will move
1016            anyone, not just the top 3. It will start with the top 3. This way
1017            the best players aren't hammered as much.
1018 * josh:    Those g_ATB'd 2 swapped can't move back during the match, but the
1019            ATB count is reset on each map. This should be ok since everyone
1020            is a move candidate. Though it will mean the best are still moved
1021            first. This is kind of a hack that should be replaced with a
1022            boolean on the map that says whether or not someone has been ATB'd
1023            that map. That would be better.
1024 * josh:    Replaced the last change with map_ATBd_team which tracks the last
1025            team ATB'd too. This way the best players won't be the first on
1026            every map AND those ATB'd can only play on the last team they were
1027            ATB'd to. ATB_count is not reset now.
1028 * josh:    Added !howfair which prints a simple summary of team fairness
1029            based on player rating. This is printed to everyone on chat.
1030 * josh:    Added a fun little hack that for now shows player rating in the
1031            scoreboard instead of XP, although it still says XP. This will
1032            happen if you add 4 to g_playerRating. This will be replaced with
1033            the new scoreboard by tjw, coming soon to an etpub near josh.
1034 * josh:    Fixed a bug where ATB was never allowing you to switch teams
1035            without disconnecting.
1036 * josh:    Made it so ATB will unlock a player's ATB'd status if the team
1037            they have been switched to becomes a little too good as defined by
1038            g_teamForceBalance_playerrating. This unlock only happens when
1039            they try and move to a different team, however.
1040 * josh:    g_teamForceBalance_playerrating now checks what a team's
1041            probability of winning would be AFTER adding that player. If both
1042            teams become "too good" it will allow the player to join the
1043            lesser of the two evils.
1044 * josh:    ATB won't move a player if doing so will upset the balance the
1045            other way. It'll pick a less skilled player instead.
1046 * josh:    When g_inactivity is hit, it will putspec instead of kick.
1047 * josh:    g_ATB 2 will now also act during intermission and warmup.
1048 * josh:    Added time per team tracking for later use in pro-rating rating.
1049 * josh:    Increased player rating learning rate (award) since it updates a
1050            bit slower now based on how close a player is to his team's
1051            average.
1052 * josh:    g_spectatorInactivity will only kick if the server is full.
1053 * josh:    Player will now get messages about their end map rating change.
1054 * josh:    Player rating is now prorated by the time a player plays on each
1055            team. If you play only half the match and play on the winning
1056            team, you only get half the points, etc.
1057 * josh:    Added the "hero" flag. If you are ATB'd or if you switch to a team
1058            that only has a 35% chance or worse of winning, you become a hero.
1059            If you stay with that team, you will get full points if your team
1060            wins instead of being prorated. Any team change will untoggle the
1061            flag.
1062 * josh:    PLAYER_RATING_SCOREBOARD will now sort the scoreboard by rating.
1063 * forty:   mine id
1064 * forty:   added g_coverts 256 flag which gives xp for constructive use of smoke
1065 * josh:    Added g_misc 64, gives ZERO fall damage. For those crazy servers.
1066 * forty:   fix mine id toggling.
1067 * josh:    Made sure the ATB unlocking check passes an ent into GetWinProb.
1068 * forty:   #422 - Medpack animation fix by jaquboss
1069 * forty:   #381 - Revive Messages
1070 * forty:   #387 - Optionally forbid teammates from blocking each other's strikes.
1071 * josh:    Moved the win probability model's use of map win / loss records and
1072            size advantage calculations into allies_rating and axis_rating.
1073            This will simplify the calculations and allow the model to adapt to
1074            differences in size advantages per map. The new ratings basically
1075            say how important your average axis or allies team member is on
1076            that map.
1077 * kw:      g_msgpos/g_killingSpreePos "3" displays banners/killingsprees at the
1078            top of the screen (REQUIRES etpub_client).
1079 * kw:      g_msgpos/g_killingSpreePos "4" displays banners/killingsprees only
1080            into the console.
1081 * kw:      The servercommand "bp" prints messages at the top of the screen
1082            (REQUIRES etpub_client).
1083 * forty:   Gib logging reports all gibs.
1084 * forty:   #127 - Censor XP loss, and censor burn options
1085 * josh:    Added support for tracking if players have played enough games for
1086            their player rating to be trusted. Currently, 24 = full trust.
1087 * josh:    Fixed a bug in ATB allowing unstable moves.
1088 * josh:    Fixed a player rating bug giving the wrong points to losers.
1089 * josh:    Added a games left measure to add uncertainty to the probability
1090            measures when the players are less known.
1091 * josh:    Cleaned up some code to be more in line with the guidelines.
1092 * josh:    Fixed a potentially critical PTB prediction error.
1093 * josh:    !howfair is now customizable with g_teamForceBalance_playerrating
1094            and g_ATB_diff.
1095 * forty:   #428 - Gib Logging Crash Fix
1096 * josh:    Hero threshold moved to 0.20 or 20%.
1097 * forty:   #377 - g_dropMsg
1098 * forty:   Fix auto temp ban isn't enforced consistently across patch versions.
1099 * forty:   Clients dropped for being banned are now given the reason for banning
1100            and time until expiration.
1101 * josh:    Changed g_teamForceBalance_playerrating to just a boolean. 0 for on,
1102            1 for off. The threshold used is now g_ATB_diff. I didn't see a point
1103            in having two thresholds.
1104 * josh:    From now on, teams will always be balanced by numbers if
1105            g_teamForceBalance is on. If g_teamForceBalance_playerrating is
1106            also on, it will balance by numbers ONLY when joining either team
1107            results in a probability < g_ATB_diff. If you don't want this, set
1108            g_teamForceBalance to 0. This will also mean that
1109            g_teamForceBalance_playerrating will no longer trigger
1110            g_balancedteams, which is probably fair.
1111 * josh:    Switched player rating from being 1600-based to 0-based because of
1112            better results in simulations. This will necessitate starting the
1113            ratings over. To do this, I'm using playerrating2,
1114            rated_games_played, axis_rating2, and allies_rating2. By 0.8, these
1115            should all just replace the originals, and by 0.9, they should be
1116            removed.
1117 * josh:    If PLAYER_RATING_VISIBLE isn't set, there will be no ratings points
1118            messages at the end of the map.
1119 * magik:   added Omni-Bot support (currently supporting Omni-Bot v0.51)
1120 * forty:   Added auto temp ban isn't enforced consistently across patch versions
1121            with !kick.
1122 * kw:      Fixed a lag "blink" in health display in the crosshairnames of
1123            disguised coverts which made them easy to spot.
1124 * forty:   stack traces on win32 w/ vc 6 & vc 7.
1125 * matt:    fix linux stack trace compile error
1126 * josh:    Trying to fix a sync bug between Connect and Disconnect
1127 * josh:    Changed  g_ATB_diff default to 80 since in actuality when the model
1128            says 75 it's really close to 65, but when it says 80 it's not far
1129            from 75.
1130 * kw:      Spectators can team (voice)chat. (etpub_client >= 20060119 is needed
1131            to open the voicechat menu as spectator)
1132 * kw:      added /mt command that sends a private message to matching players
1133            in your team only.
1134 * forty:   #430 - base race mineid and map mines fix.
1135 * forty:   FORUM - specs/team specs get xp for spot.
1136 * forty:   #423 - Fix Opposite team mine spotted while being diffused
1137            (by opposing engie) renders mine un-disarmable.
1138 * kw:      major rewrite of the !help command, works more like shrub now.
1139 * forty:   enabled bad connection icon for clients newer than 20051230.
1140 * forty:   Fix riflenade bug, where after firing a rifle grenade and not having
1141            enough time to finish the automatic switching to the rifle before
1142            dying, Player ends up with a useless rifle grenade or losing their
1143            rifle.
1144 * forty:   Add g_canisterKickOwner, set this to 1 gives kicker ownership of the
1145            kicked canister.
1146 * forty:   #349 - Moved team damage kick to the end of ClientEndFrame to
1147            prevent invisible clips from forming.
1148 * forty:   #396 - Fix shooting in your own feet when g_panzersVulnerable is
1149            enabled.
1150 * josh:    Added percent_time into the player rating model. It will now take
1151            into account how much time has passed and therefore ATB can detect
1152            the spawnkilling of the the achieving team, or at least if the
1153            achieving team is being held longer than average. When this
1154            happens, ATB can move players to that team.
1155 * tjw:     use etmain uniform handling related to satchel/smoke/knife/binoc
1156            when g_coverts is 0.
1157 * forty:   some additional things needed for etpro mapscripts
1158 * forty:   spawn function for fake brushes
1159 * tjw:     added some modifiers to the time parameter of the !ban command.
1160            the modifiers are 'm', 'h', 'd', and 'w' meaning minutes, hours,
1161            days, and weeks respectively.  for example, it is now possible to
1162            use the command "!ban tjw 2w take two weeks off" to ban tjw for
1163            2 weeks instead of trying to add up how many seconds that would be.
1164 * josh:    Added SHUFR_PROB which is basically a smarter player rating shuffle.
1165            It will take into account the map now when it shuffles and greedily
1166            give the teams closest to 50/50. It's not optimal. If someone wants
1167            to, they can code up a time bounded branch and bound to find the
1168            optimal teams. It's option 5, 4 is normal prate shuffle.
1169 * forty:   fun_on_ice/jv-trainjump-v3 crash fix.
1170 * tjw:     ATB must not run run during GS_WARMUP because it goes nuts as
1171            people connect at the start of warmup.  Also without a respawn
1172            timer, ATB has no time restraint.
1173 * tjw:     ATB warning message now uses correct color to describe the other
1174            team.
1175 * tjw:     ATB will stop its infinite swapping fits if moving a player
1176            would not improve the losing team's score.
1177 * kw:      fixed a server crash issue in the team command.
1178 * kw:      selected weapons are saved over class and team changes.
1179 * kw:      fixed single pistol wasn't selectable at level 4 light weapon skill.
1180 * kw:      added etpro's class and nextteam commands.
1181 * tjw:     don't drop people for g_inactivity when in limbo
1182 * josh:    changed the hero threshold to (1 - g_ATB_diff) and the default
1183            g_ATB_diff to 70 since recent model evaluations show the time
1184            weights to make the model conservative instead of extreme.
1185 * tjw:     removed XPSave persistence across STOPWATCH rounds.
1186 * josh:    Added disconnect tracking and fixed a couple of bugs in rating
1187            updates as well.
1188 * josh:    Changed non-updating calls to GetWinProb to take into account the
1189            amount of time the players have spent so far, and assume they are
1190            going to spend the rest of the time on their current team. ATB and
1191            PTB will have better info this way. What this means is if a player
1192            joins half-way through, he'll only count as HALF a player instead
1193            of a full-player. This means PTB will let him join teams it
1194            wouldn't have in the past.
1195 * josh:    Player rating now assumes the worth of the number of players per
1196            team grows exponentially instead of linearly. This should result in
1197            less unevenness in numbers when ATB is running.
1198 * tjw:     added g_coverts 512 flag to bring back the pre 0.6.4 disguise
1199            handling for knife/binoc/smoke/satchel.
1200 * tjw:     possible fix for GAMESTATE length tracking.
1201 * josh:    ATB uses sums instead of means for team ratings. This prevents a
1202            lone player from having an effectively high rating.
1203 * josh:    Major changes to ATB. It's back to using win record information
1204            instead of explicit map weights. So the map rating weights in xpsave
1205            don't do anything for now, maybe for awhile. This also means that
1206            g_playerRating_mapPad is used again. Also, in stopwatch mode, rating
1207            and ATB will ignore all map info. This changes should help ATB
1208            handle map info information in a more balanced way.
1209 * kw:      Throwing knives inside a tank, while leaning or using binocs fixed.
1210 * josh:    g_shuffle_rating 5 should work OK now. Let me know if it doesn't.
1211 * josh:    In stopwatch mode, rating updates will proceed the same, but non-
1212            updating calls to G_GetWinProbability will ignore map info. This
1213            makes the updating calls more fair.
1214 * tjw:     added message for dropped clients related to g_XPSave 8
1215 * josh:    Fixed a bug that broke hero detection.
1216 * josh:    Fixed a team force balance bug that prevented ATB'd players from
1217            rejoining their ATB'd team if it had too many players and it wasn't
1218            to unfair.
1219 * josh:    Even stopwatch rounds will be ignored in ratings updates until the
1220            probability model accounts for the shorter timelimit.
1221 * tjw:     possible fix for g_shortcuts related crashes
1222 * josh:    PLAYER_RATING_DATASET now logs when objectives are accomplished and
1223            outputs the timelimit on maps.
1224 * josh:    Began adding support for including objective times in ratings.
1225 * josh:    Added tc_base.script to the Examples because the original tc_base
1226            marks completed objectives as "failed" instead of "complete" which
1227            will confuse later versions of the player rating system. Whoever
1228            writes the docs for 0.7.1, PLEASE tell them to use this script if
1229            they are going to use player rating with tc_base.
1230 * forty:   ps->grenadeTimeLeft was not fully predicted.
1231 * josh:    Added rank to xpsave_table.php
1232 * tjw:     fixed coloring of "(called by NAME)" when using g_voting 4 flag
1233            (this only effects newer etpub_client)
1234 * tjw:     even g_ATB 2 is now limited to only moving one person per team
1235            spawn cycle.
1236 * tjw:     Applied jaybird's fix for possible floating point calculation
1237            problem that can lead to crashing in G_RunThink().  Thanks jaybird.
1238 * tjw:     seperated code for g_ATB 1 and g_ATB 2 so it's more readable.
1239 * tjw:     g_ATB 2 now tries to keep the teams balanced in number of players
1240            as well as skill.
1241 * tjw:     duplicate guid drop message should not contain guid since it gets
1242            broadcast to all players.
1243 * tjw:     g_ATB 2 will now try to balance teams by number immediatly after
1244            moving someone.
1245 * tjw:     discover max timelimit from mapscript to use in calculations for
1246            playerrating, ATB, and max live computation on maps with variable
1247            timelimits like temple and daybreak.
1248 * tjw:     added checking to keep party panzer from using up all available
1249            game entities and crashing the server.
1250 * josh:    Added network code for sending http posts to a web server. I don't
1251            recommend using it without threads. bgr is preparing a thread
1252            library we can use. The net code will be used for sending any
1253            information you like to a web server. The example I coded in will
1254            send chats to a web server somewhere. This way you can have a web
1255            page that shows server chats. But don't use it as is. It will lag
1256            the server on every chat. That's why I put that qfalse there. I'll
1257            make it grab the host name, etc., only once per url change. Also,
1258            the net code isn't adapted for windows yet. I need to add some
1259            ifdefs that I haven't yet, sorry.
1260 * josh:    Added windows support to g_http_client.c. Probably. Needs testing
1261 * tjw:     changed ATB shutoff time from 5 mins before map end to 3 mins.
1262 * josh:    Added some preliminary threading support, but it's useless until we
1263            can link threading libraries statically into qagame. Anyone know
1264            how to do that?
1265 * josh:    Increased kill rating points on the flamethrower from 4 to 8 based
1266            on tjw's discovery that there are at least twice as many kills with
1267            the 4 point panzer.
1268 * josh:    Added !balance (uses shuffle's admin rights 'S') which calls one
1269            cycle of ATB to balance teams.
1270 * josh:    ATB wouldn't even the numbers if it didn't bring the odds below
1271            g_ATB_diff---even if it did improve them. Now ATB will be able to
1272            move players to even numbers even when it won't completely fix the
1273            odds---as long as they don't get worse. This will allow numbers
1274            balancing when odds balancing may not be possible or easy.
1275 * josh:    Also, ATB wouldn't move anyone to odds balance if it didn't bring
1276            the prob below ATB_diff. Now, it will still move a player even if
1277            it doesn't completely fix things. The next ATB run may be able to
1278            fix things even more. We could make it odds balance more than one
1279            at a time by letting it recurse for that reason too, but we may not
1280            have to. It does mean waiting an extra spawn though.
1281 * josh:    Modified kill rating to prorate the update based on the amount of
1282            damage you do instead of just the kill itself. This will make sure
1283            whoever does the most damage to you gets the update. So if someone
1284            much better than you almost kills you, you won't lose to much if a
1285            n00b comes along and finishes you off.
1286 * josh:    Made kill rating a float so you don't miss out on small points.
1287 * josh:    Fixed a major bug in player certainty for !howfair.
1288 * josh:    Found another bug in player certainty for !howfair.
1289 * josh:    If you've been ATBd, you can't change to another team unless the
1290            map changes or the odds swing the other way---even if ATB is turned
1291            off. This is to make !balance more effective on non-ATB servers.
1292 * josh:    Added "Start of warmup." and "Start of round." to the log. Used
1293            this convention because it's how shrubet did it and those no reason
1294            to do it different. For log watchers mostly.
1295 * tjw:     pthreads is now dlopen()'d in an effort to make the qagame.so
1296            compatable for glibc 2.1 through 2.3.  Thanks bgr for figuring
1297            this out for me.
1298 * tjw:     "Project: Bug Fix" 073 merged
1299 * tjw:     "Project: Bug Fix" 080 merged
1300 * tjw:     "Project: Bug Fix" 081 merged
1301 * tjw:     "Project: Bug Fix" 083 merged
1302 * josh:    Added an http ratings post. At the end of each map it will post one
1303            line per player with GUID, PR, KR_match, KR_overall, and name.
1304            Currently it will create one thread per player. When bgr adds the
1305            thread queue stuff, I'll make it more efficient. Set
1306            g_httpPostURL_ratings to enable this.
1307 * tjw:     added initial support for killrating and playerrating score commands.
1308 * forty:   fix for !resetmyxp gives a full chargebar exploit
1309 * josh:    match_killrating is now the change in overall_killrating within a
1310            match instead of a separate killrating.
1311 * forty:   fix for multiple helmets with antilag disabled
1312 * tjw:     fixed bug with checking for game ending dyno plants that let
1313            the "cvar" script action run.
1314 * josh:    Fixed a bug in damage-based kill rating that gave too much credit
1315            to single instances of high damage.
1316 * josh:    Added preliminary g_tactics code. So far what this does is make it
1317            so when you shoot an SMG with at least one enemy within your fOV,
1318            you will hit that player no matter what. It will pick the closest
1319            player to you. It makes sure they're visible as well. I need to add
1320            something to the client that takes the angles stored in
1321            ps.stats[STAT_AIMING_*] and actually moves the aim of the player.
1322            This will make it more intuitive. I also still need to add some
1323            randomness based on your LW, BS, and distance.
1324 * josh:    Added snapping to server-side aiming. It will snap the client's view
1325            to the chosen target now.
1326 * josh:    Added g_httpPostURL_log (ticket 464). All log entries in
1327            G_LogPrintf will be posted if a URL is given. Only on linux and
1328            maybe MacOS (untested?) currently. The LogPrintfs in the posting
1329            code won't get http posted though. Maybe later.
1330 * josh:    ATBd team is now tracked across disconnects.
1331 * josh:    tactics auto-aiming is done randomly based on distance, LW, and BS.
1332            You start at 66% likely to hit and go up / down from there. Still
1333            need to make weapon specific effects. I also need to change the
1334            hackish way I prevent you from damaging when you "miss". I just set
1335            damage to 0 but still call Bullet_Fire. I need to simulate a real
1336            miss.
1337 * josh:    Auto-aimed misses are handled in Bullet_Fire_Extended now.
1338 * forty:   Added g_floodprotect which moves the flood protection code into the
1339            mod code and disables the engine flood protection.
1340            callvote, say/vsay/teamsay/etc, fireteam, rconauth, ready, specinvite,
1341            teamready, ref are currently rate limited.
1342 * josh:    Cleaned up antilag code and fixed the real unremovable helmet bug.
1343 * josh:    Added headshots to g_tactics. Also, you will ALWAYS aim at the head
1344            now, even if the randomness decides you will only hit the body. The
1345            only time you won't aim at the head is if you roll almost 3 higher
1346            than the difficulty. This is, like, a critical miss and you won't
1347            aim at all.
1348 * forty:   Added thread/http_client support for win32.
1349 * tjw:     fixed damage stats so they don't count more damage than the victim
1350            had to give.  This was most noticable on goomba kills and
1351            construction madness.  (Ticket 468)
1352 * tjw:     added some shrubbot flags:
1353               '0' - is not effected by any inactivity setting (removed from the
1354                     '1' flag.)
1355               '!' - any shrubbot command will have no effect on a player with
1356                     this flag.
1357               '@' - no matter what level a player with this flag has, he
1358                     will show up as a level 0 admin in !listplayers.
1359 * josh:    Tactics now aims MG42s on tanks, etc., and the weapons are now
1360            balanced for skill and distance.
1361 * forty:   Fixed bug with flood protect.
1362 * tjw:     g_shuffle_rating 5 now does essentially the same thing as !shuffle
1363            followed by !balance if g_shuffle_rating was 4.
1364 * josh:    g_tactics aiming will ignore playdeads. They can be shot normally.
1365 * tjw:     added SBP() as a buffered alternative to SP() for use with shrubbot
1366            commands with a lot of output.  This should help !listplayers lag.
1367 * tjw:     added SBP() support to !listteams, !help, and !showbans
1368 * tjw:     the "made" parameter should now be consistent across all platforms
1369            this will make the output of !showbans consistent for newly created
1370            bans.
1371 * tjw:     added a new optional shrubbot.cfg element called [command].
1372            (see docs)
1373 * tjw:     cache probabilities when using g_playerRating to lessen server load.
1374 * tjw:     added playerrating tracking for a player's skill levels (e.g. battle
1375            sense) at the time of every playerrating change.  in the future,
1376            this will be used to adjust playerrating importance in win
1377            probability calculations depending on the players current class
1378            and skill level.  currently off by default, requires g_playerRating
1379            32 flag for now.
1380 * tjw:     updated skill pr tracking so that it desperses rating points based
1381            on total time a player was at each skill level instead of just using
1382            the skill level class he was using at the end of the round.
1383 * tjw:     added caching if cl_guid from ClientConnect() so reduce the
1384            amount of userinfo parsing. WARNING: if you're running nightly
1385            builds you probably want to backup your xpsave.cfg and shrubbot.cfg
1386            just in case.
1387 * josh:    Rebalanced the weapon ratings for kill rating.
1388 * tjw:     added disconnect tracking for skill-based playerrating tracking.
1389 * tjw:     Oops, I never fully added lives tracking into the new XPSave.
1390            I added it now using the new disconnect tracking.
1391 * josh:    Added prinfo and krinfo console / rcon commands which give player
1392            and kill ratings sorted and by team. Also made the prob model
1393            global in level.win_probability_model for more informative howfair
1394            info, etc. Really shouldn't be used without a G_GetWinProb call
1395            beforehand though.
1396 * josh:    Replaced console / rcon command ratingsinfo with winprob which
1397            gives A LOT of info about the current win_probability_model,
1398            including timeleft! Yay!
1399 * josh:    krinfo gives averages and so does prinfo. prinfo also  gives time
1400            related info per player now, including the effective player rating
1401            of that player for that team, assuming he stays on that team for the
1402            rest of the match. Note that the average given in prinfo takes into
1403            account disconnects. Disconnects are shown as well.
1404 * josh:    Fixed a bug that allowed KR updates when the victim was already
1405            dead. This could lead to large, negative KRs since the damage ratio
1406            would be negative.
1407 * tjw:     fix for getting stuck in walls/solids.
1408 * tjw:     set default shrubbot levels properly.
1409 * tjw:     new shrubbot flags '!' and '@' do not get implied with the '*'
1410            wildcard.  they are meant for individual admins only.
1411 * matt:    hopefully fixed team_maxCLASS cvars incorrectly calculating team
1412            totals
1413 * kw:      Referee's can vote a second time to instantly pass/fail a running
1414            vote. Referee's can now also vote as spectator.
1415 * tjw:     Added ensiform's COM_StripExtensionSafe and fixed remapShader arg
1416            handling. (from ticket:502)
1417 * josh:    ATB will ignore map info DURING a stopwatch round. At the end of
1418            the first round it will still update using map info. It will not
1419            update at the end of the second round since we would have to track
1420            either the effects of time or how long each player spent on both
1421            teams throughout both rounds.
1422 * josh:    Made major changes to the player rating and related systems. The
1423            main difference is that there is now a measure of uncertainty
1424            with the players' ratings. They have a rating and a variance. The
1425            currently stored player_rating_variance is NOT the variance though,
1426            it is a running SUM over 25 matches of the variance. Maps have
1427            ratings again, and variances with those ratings as well. Again,
1428            divide by 25 to get the variance. Take the square root of that to
1429            get the standard deviation. A player's effective rating on a map
1430            is: player_rating + map_rating. So if a player's rating is 1.2 and
1431            the axis rating for the current map is -0.2, his effective rating
1432            is 1.0.
1433
1434            Fairness is no longer judged by an arbitrary cutt-off either.
1435            Instead, if 2 standard deviations lower than a team's mean winning
1436            probability is still above 50%, then that time is "too" likely to
1437            win. This is when both ATB and forced balancing will kick in. This
1438            means etpub will change the threshold adaptively based on how well
1439            it knows the teams and how well it knows the map.
1440
1441            Updated howfair to use a range instead of a point as well. The
1442            ranges used are generally 2*std_dev.
1443
1444            I removed a lot of no longer used stuff as well. This WILL reset
1445            your player ratings.
1446 * josh:    Added the /adrenother command in conjuction with g_medics 128. If
1447            this is enabled, level 4 medics can adren others by using the
1448            command /adrenother. It will be altfire in etpubclient.
1449            It will act like normal adren and use the full
1450            charge bar and one medic needle.
1451 * josh:    Added g_medics 256 which prevents medics from using adren on
1452            themselves. Medics won't even GET adren.
1453 * josh:    The PR code is now Bayesian with normal / gaussian distributions
1454            for priors on both the map and player ratings. The prior
1455            distribution is currently N(0,2.0) or 0-mean 2.0 variance for the
1456            players, and N(0,0.66) for the map-side ratings. The mean and
1457            variance of the players and maps will always "shrink" a little back
1458            towards the priors. The more games you play, the more you can
1459            overcome the priors. We can now say we have a Bayesian PR system,
1460            yay!
1461 * josh:    ATB will display howfair before an odds balance as well as after
1462            so players can see why it acted.
1463 * josh:    Removed some of the vsp-specific stuff I had left in
1464            xpsave_table.php. Sorry.
1465 * josh:    Fixed some more xpsave.php bugs
1466 * josh:    Added some preliminary structures for using g_etpub_stats_id, etc.
1467            The matchinfo structures are for queueing match results to
1468            eventually send them to a master server.
1469 * josh:    rated_games for players is now a float. It's the sum of the percent
1470            of the games each player played in. So playing half of two games is
1471            the same as playing one full game.
1472 * josh:    Added a server bias to the PR system since it results in closer to
1473            70% overall accuracy vs. the 64% we're at now.
1474 * josh:    Added prresetplayers and prreseteverything commands to allow admins
1475            to completely reset parts of the PR system. These may be useful for
1476            admins who have run pre-release versions of the system that are no
1477            longer as valid mathematically at release time.
1478 * josh:    Added some preliminary code for later improving the curse filter
1479 * matt:    Hopefully fixed nightly build problems, win32 compile problems
1480 * josh:    Fixed a bug that allowed bots to log team and class changes before
1481            logging ClientConnect.
1482 * josh:    g_censorNames now catches renames as well as connects.
1483 * josh:    Fixed resetting variance in prreset and prreseteveryting. Thanks
1484            NHLfan.
1485 * josh:    fixed a censor problem that was always using the names dictionary
1486            instead of the words one for chats.
1487 * josh:    fixed some of the stat theory and changed the priors on the
1488            variances to ones that work better. This will make predictions
1489            more accurate.
1490 * josh:    Switched back from using ranges on the probability of a team
1491            winning to using just the prediction and a threshold because it's
1492            actually more correct. Always use
1493            level.win_probability_model.moderated_probability when making a
1494            judgement call from a prediction. The moderated_probability takes
1495            into account the current uncertainty about players, maps, and the
1496            server itself. This is better to use in ATB, PTB, howfair, and the
1497            scoreboard. NOTE: Remember to call G_GetWinProbability before using
1498            level.win_probability_model.
1499 * josh:    Fixed a bug where stopwatch ATB'ing was still taking into account
1500            map variance.
1501 * matt:    Implemented map voting features if server is set to gametype 6
1502 * josh:    Ported Neil Toronto's censor filter over from the altfire cgame to
1503            qagame. It'll catch some symbol and number replacements, and spaces
1504            now. It also adds some common words and common words with "swears"
1505            in them that should really be OK. For example, it will not censor
1506            "assassin" but it will censor "ass". If you want Neil's word
1507            lists, then set g_censorNeil and g_censorNamesNeil to 1. These are
1508            decent word lists, by the way, I recommend setting those to 1. You
1509            can view the lists in g_censor.c. If there's a NULL next to a word,
1510            then that word is OK whereas if there's a substitution next to it,
1511            then it's NOT OK.
1512 * josh:    Adding 4 to g_killRating will result in log file lines that give
1513            the guids of the players involved in kills. This makes kill
1514            tracking a lot easier.
1515 * magik:   Added support for Omni-Bot 0.52 stable.
1516 * josh:    Removed "shag" from Neil's filter. If it's offensive where you are,
1517            add it to g_censor.
1518 * josh:    Changed xpsave.php and xpsave_table.php to reflect the effects of a
1519            player's kill rating and player rating in more understandable
1520            terms. KR K/D is how many kills a player would get against other
1521            *average* players before dying. It's an adjusted Kills per Death
1522            measure. PR Win% is how often you would win if you played with 19
1523            other players who were all average players. We will eventually work
1524            these numbers into the scoreboard.
1525 * josh:    Added etpub_stats.pl as an extra for etadmin_mod, etc., users.
1526 * josh:    Added some suggestions from deej for consistency and compiling on
1527            64-bit architectures.
1528 * matt:    Fixed bug that caused clients joining during intermission to create
1529            negative vote totals
1530 * matt:    Hopefully fixed objective/bot bug
1531 * matt:    Fixed mapvoting exploit
1532 * josh:    Converted most of the player rating reports to show PR win %
1533            instead.
1534 * josh:    Converted KR reports to show KR K/D. This requires the new client
1535            to look right since KR was an int before client-side.
1536 * josh:    Only send KR K/D to new enough clients.
1537 * josh:    Added support for submission of match info to a central stats
1538            server. Ready for global stats alpha / beta soon. Servers
1539            that want to participate in the beta need to contact me
1540            directly---do NOT just set g_etpub_stats_id at this point without
1541            talking to me first.
1542 * zeebok (josh):  Debugged my (josh) match sending stats code. Thanks!
1543 * josh:    Made the match posting code non-threaded. It doesn't crash now, as
1544            far as I can tell. It could potentially lag intermission a bit if
1545            there's a tcp timeout, but it's just intermission---no biggie.
1546 * josh:    The time counter for player time per team will now ignore skulled
1547            players. This will only slightly affect ATB since ATB won't move
1548            anyone after a few skulls anyways. Endgame stats updates will be
1549            more accurate though.
1550 * gabriel: Merged in exploit fix by Dens: [p] shortcut could be used to
1551            detect an enemy in disguise
1552 * gabriel: Merged in CheckIntermissionExit() fixes by Dens: 1) Spectators and
1553            newly-connected players do not count for intermission ready pct,
1554            2) /ref allready ends intermission again, and 3) Fixes a bug in
1555            which etpub does not load the next map until a player connects
1556 * gabriel: Merged in G_shrubbot_admintest() fix by Dens: !admintest does not
1557            display the level name of a user when that user is not in the
1558            shrubbot.cfg file (which would make the user level 0)
1559 * gabriel: Merged fix by Dens: !warn does not display the warning message in
1560            the intermission
1561 * gabriel: CheckIntermissionExit() changes: Undid a change by Dens: Spectators
1562            count for readypercent (since they can press the ready button), and
1563            can vote on maps (since the client counts their vote).  Also, bots
1564            are now completely disregarded for readypercent and map voting
1565            purposes
1566 * gabriel: Another bugfix by Dens (Thanks!): !ban command without a time
1567            modifier removed the last character in the time parameter
1568 * gabriel: Dens bug fix merged for G_shrubbot_ban_check(): 1) Connecting
1569            permanently banned players see "NEVER" as the ban expiration date
1570            now. 2) Users banned without a reason do not see "Reason: " anymore
1571 * gabriel: Removed spaces from omni-bot's GUID to work around a bug in
1572            g_xpsave.c (multiple spaces in the settings are not preserved), that
1573            caused many duplicate entries for bots in the xpsave file
1574 * gabriel: Dens bug fix merged for G_players_cmd(): Ready spectators were being
1575            ignored in /players command
1576 * gabriel: Fixed G_shrubbot_admintest() bug: If the server was set up with
1577            non-sequential shrubbot level numbers, !admintest would use the
1578            wrong shrubbot element index
1579 * josh:    Slight change to g_medics 256. Medics won't get self-adren ammo at
1580            all now, like before. But if non-medics are allowed adren, they will
1581            be able to use it fine. If you don't want non-medics to have adren,
1582            then change your g_skills setting.
1583 * gabriel: Applied kamikazee's bugfixes for map scripts, as explained here:
1584            http://splashdamage.com/index.php?name=pnPHPbb2&file=viewtopic&t=15243
1585 * gabriel: Forced g_ATB_rating and g_shuffle_rating to have legal values when
1586            g_ATB is set to 2
1587 * gabriel: Merged in changes for omni-bot 0.521
1588 * gabriel: Fixed VC6 project files so that: 1) correct omni-bot interface file
1589            is compiled, and 2) post-build file copy step is eliminated.
1590
1591 0.7.2
1592 * gabriel: added comma (,) as a separator for party panzer pattern
1593 * gabriel: hopefully fixed a bug with buffered prints and rcon
1594 * gabriel: fixed server crashes with shortcuts when run from the console
1595 * gabriel: several cosmetic fixes to !listplayers output: omnibots display
1596            "*OMNIBOT*" instead of the GUID fragment, shrubbot level names with
1597            color codes are correctly justified now
1598 * gabriel: fixed a bug where if g_hitsounds bit 4 was set, no headshot sounds
1599            were ever heard
1600 * gabriel: fixed !showbans formatting when color codes are in the banned server
1601            name or in the banner
1602 * gabriel: merged KillSpree bugfix code by Dens: All kill spree message
1603            locations now print where they should
1604 * gabriel: bugfix: lvl4 soldiers can no longer hold both mp40 and thompson at
1605            the same time
1606 * gabriel: bugfix: prevented players from circumventing /kill restrictions by
1607            throwing knives to their own feet and killing themselves
1608 * gabriel: exploitfix: implemented mandatory low value for g_throwKnifeWait
1609            (0.2 sec) to prevent players from binding /throwknife to mouse wheel
1610            and throwing a ton of knives within a very short amount of time
1611 * gabriel: exploitfix: expanded g_fear to apply to team changes in addition to
1612            /kill, as some players were switching teams instead of /kill to
1613            circumvent g_fear
1614 * gabriel: bugfix: Put in bugfix by Dens: headshots were being counted even
1615            though g_stats flag 1 was enabled
1616 * gabriel: bugfix: several cosmetic changes as submitted by Dens
1617 * gabriel: exploitfix: players that disconnect or change teams will have their
1618            artillery and airstrikes canceled/removed
1619 * gabriel: bugfix: If there were more than 63 bans no custom commands would be
1620            read from the shrubbot.cfg file
1621 * josh:    bufix: winprob should work from rcon now.
1622
1623 0.8.1
1624 * gabriel: g_damageXP added to serverinfo string
1625 * gabriel: implemented g_bot_maxXP - Like g_maxXP but for bots only
1626 * gabriel: implemented g_bot_minPlayers - See docs
1627 * gabriel: implemented g_bot_flags with flag 1: disable xpsave for bots
1628 * gabriel: added shortcuts for custom ! commands
1629 * gabriel: added [g] (GUID) shortcut
1630 * gabriel: added parameter placeholders [1]..[9] to the [command] section
1631 * gabriel: added kill and death spree sounds
1632 * gabriel: added SPC functionality as submitted by Dens.  The result of some
1633            commands will be switched from SP() to SPC() so that the result
1634            prints on both the console and the chat area instead of just the
1635            console
1636 * gabriel: merged in _shrubbot_immutable() function submitted by ensiform for
1637            better error messages when shrubbot commands are performed on immune
1638                    (! flag) targets
1639 * gabriel: implemented shrubbot command replies using Dens' SPC() function. Now
1640            shrubbot command replies/results are displayed in the chat area as
1641            well as the console
1642 * gabriel: "Project: Bug Fix" 087 merged - Player always mouting the last gun
1643            used, on multiple tank maps
1644 * gabriel: "Project: Bug Fix" 089 merged - Player view is distorted in
1645            intermission if you have ridden an vehicle, mounted a tank
1646 * gabriel: "Project: Bug Fix" 091 merged - Spawnpoints not movable
1647 * gabriel: "Project: Bug Fix" 094 merged - Playing time shown at debriefing
1648            keep increasing
1649 * gabriel: "Project: Bug Fix" 095 verify already merged - Campaign window not
1650            big enough to contain big campaigns
1651 * gabriel: "Project: Bug Fix" 097 merged - Kick command is not able to kick
1652            some players by name
1653 * gabriel: "Project: Bug Fix" 099 merged - Calling for a lot of artillery or
1654            airstrikes can result voice over spam
1655 * gabriel: added g_killingSpreeOpts cvar: Controls whether killing sprees end
1656            when player does /kill or switches teams
1657 * gabriel: changed killspree sounds to have a configurable sound for every kill
1658            spree message that can be displayed.  It can be said that there is
1659            full killspree sound support as of this change
1660 * gabriel: added modifiers to g_xpDecayRate (/d: per day, /m: per minute,
1661            etc...) see docs for full details
1662 * gabriel: added modifiers to g_XPSaveMaxAge ((d)ays, m(o)nths, etc...) see
1663            docs for full details
1664 * gabriel: added modifiers to g_XPSaveMaxAge_xp ((d)ays, m(o)nths, etc...) see
1665            docs for full details
1666 * gabriel: added g_bot_flag #2 flag: Bots are automatically granted ! command
1667            immunity (the ! shrubbot privilege flag)
1668 * gabriel: added g_bot_flag #4 flag: Bots cannot be !kicked or !banned
1669 * gabriel: added g_maxXPResetWarn, which enables warnings to players who are
1670            about to get their XP reset due to g_maxXP
1671 * gabriel: expanded g_maxXPResetWarn to be able to hold negative values which
1672            will be interpreted to mean offsets from g_maxXP (-50 means 50 XP
1673            before reset, -5% means when 95% of g_maxXP has been reached)
1674 * gabriel: implemented client-side weapons restrictions enforcement (team_max*
1675            cvars): Unavailable weapons will be marked as "not available" in the
1676            limbo menu. Requires etpub client > 20060818.
1677 * josh:    bugfix: Helmet loss and regain with antilag on is now stable.
1678 * josh:    bugfix: major ATB bug repaired. It was NEVER helping the Allies,
1679            only Axis.
1680 * josh:    Major upgrade of PR system, code cleanup (a little). Much more
1681            accurate. This will require major changes to etpub_stats.pl and the
1682            php stuff.
1683 * josh:    Updated extras for new ratings.
1684 * josh:    Removed warn from ATB. It was either not noticed or abused.
1685 * josh:    Fixed howfair before and after ATB so it reports before correct.
1686 * josh:    g_noTeamSwitching now forces same teams even after goin spec and
1687            disconnecting. Notice, this will allow players to join back on
1688            potentially unfair or unbalanced teams, and therefore is not
1689            recommended without some form of team balancing, be it ATB or
1690            active admins.
1691 * josh:    Going back to only one move per map with ATB. This gets reset if
1692            you go spec though.
1693 * matt:    Added crude g_excludedMaps support for g_gametype 6
1694 * matt:    Added g_mapConfigs support for files names vote_X.cfg when in
1695            g_gametype 6 mode (See docs)
1696 * gabriel: Added "X%-" format to team_max* cvars.  This uses a floor() call
1697            instead of ceil() for computing allowed class types per team.
1698 * gabriel: Added weapons restrictions percentages.  This will enable admins to
1699            restrict weapons depending on the number of players in the server.
1700            The same percentage rules apply as the team_max* cvars
1701 * josh:    Added g_ATB_offtime which shuts off ATB after offtime minutes. It's
1702            so admins can leave ATB on for just the first 5 minutes, etc.
1703            Defaults to 0. This is for those who don't like ATB fixing things
1704            mid-map even when they get bad. Hopefully there is less churn
1705            after, say, 5 minutes. Then, if g_teamForceBalance_playerrating is
1706            on, new joiners will be balanced passively anyways.
1707 * tjw:     antilag was adjusting for a time that is slightly too old
1708 * forty:   fix overbounces.
1709 * forty:   pmove_fixed _should_ work right now. recoil problems and jitters
1710            fixed.
1711 * forty:   #367 - added preliminary fixed physics. This is just Haste's
1712            pmove_accurate code from q3.
1713            only options 0 and 1 implemented for now.
1714 * forty:   fix negative damage stats.
1715 * forty:   bacon's dyno counters
1716 * forty:   #601 - jaguboss's client-side hitbox prediction
1717 * forty:   #528 - constructible xp sharing - repairing an em placed mg42
1718 * matt:    g_asblock option (32) added to give 2 XP Battle Sense for blocking
1719            an airstrike.  No XP given for blocking a teammate's or your own
1720            airstrike
1721 * forty:   #258 - !spec999 -> notification when 0 users moved to spec
1722 * forty:   #453 - Ammo packs resupply Adrenaline
1723 * forty:   #589 - Dens slashkill exploit fix
1724 * forty:   #515 - g_inactivity moves MG42 although player is active
1725 * forty:   #303 - Make etpub client check the xp needed to level
1726 * forty:   #608 - g_fear minor bug
1727 * forty:   #607 - Merge in Density's damage received display code
1728 * forty:   Added g_misc 256, 512, 1024 options
1729            256 - Enable New TraceAllParts Code - Default
1730            512 - Stock Prone Box Height
1731            1024 - Old Etpub CrouchMaxZ
1732 * forty:   #612 - playdeads on tank
1733 * forty:   PatheticCockroach's vote_allow_shufflenorestart display fix.
1734 * forty:   Ensiform's rcon !help fix.
1735 * forty:   Den's minimum shrubbotlevel required to connect patch.
1736 * forty:   #474 - don't give xp if we're picking up our own ammo/med packs.
1737 * forty:   #511 - make an rcon command for shuffling without restart
1738 * forty:   Keep landmines from being merged into snapshots if they are not in a
1739            players PVS. (2.56 and up)
1740 * forty:   Make sweeps for landmines take a bit less time.
1741 * matt:    fixed g_classChange bug that gave thompson to axis player when they
1742            stole a teammates uni
1743 * matt:    !uptime (u) shrubbot flag
1744 * josh:    Added preliminary player behavior tracking: just mouse velocity
1745 * forty:   DrEvil - Omni-bot 0.6 support
1746 * forty:   VC6 Fixes for Omni-bot 0.6 support
1747 * josh:    g_tactics: Made tactics a rock paper scissors-type game. Each class
1748            has a class it can kill easily, one not so easy, and one very hard.
1749            M > S > E > F > C > M.
1750 * matt:    added uneven team notification (g_unevenTeamDiff, g_unevenTeamFreq)
1751 * matt:    hopefully fixed ws exploit and unignore crash without breaking
1752            functionality
1753 * matt:    merged Density's anti IP/GUID spoofing code
1754 * stephan: fixed floodprotection bug that disabled /ref commands
1755 * stephan: added greeting which is displayed when a shrubbot admin connects
1756 * stephan: !admintest will now show level 0 when a user has the incognito (@)
1757            flag
1758 * stephan: added !finger (f) shrubbot command
1759 * stephan: added g_weapons flag 1: a level 0 field ops doesn't spawn with
1760            binoculars
1761 * stephan: fixed a bug where a medic would get adrena upon reaching level 4,
1762            even though adrena was disabled
1763 * stephan: removed a small !help display bug
1764 * stephan: all shrubbot command output should have the same look now
1765 * stephan: added g_noVoteTime cvar that sets a minimum time between two votes
1766 * stephan: completely changed the killingspree system. All old killinspree
1767            cvars are removed and g_setting, g_spreeOptions and g_multikillTime
1768            are added. Furthermore a new settings file is made which contains
1769            the spree settings. Finally multikills are added. Read the docs
1770            carefully and look at the example settings.cfg to see how to enable
1771            sprees.
1772 * stephan: fixed a small omnibot 0.6 path problem (needs 0.61 omnibot files
1773            though)
1774 * stephan: added cvar g_spoofing which gives admins the possibility to disable
1775            the spoofing protection (see the docs for more information about
1776            this protection)
1777 * stephan: added !userinfo (e) shrubbot command
1778 * stephan: added !stats (t) shrubbot command
1779 * stephan: fixed a bug in omnibot 0.6 where gibbing a bot would cause an extra
1780            body and a weird spectator mode
1781 * stephan: added [banner] blocks to the g_settings file. This replaces the old
1782            cvars g_msgs, g_msgpos and g_msgX.
1783 * stephan: added g_mapVoteFlags 16 which makes a nextmap vote go to
1784            intermission so people can vote which map should be played next
1785 * stephan: added multiple output for one spree/end/multikill
1786 * stephan: added g_bot_flags 8: bots cannot mount tanks
1787 * stephan: g_spoofing removed and g_spoofOptions added (better name). A lot of
1788            changes made to this cvar, so read the docs carefully
1789 * stephan: added g_coverts flag 1024: a disguised covert can still steal an
1790            enemy uniform
1791 * stephan: added g_spreeOptions flag 128: multikill messages will be delayed to
1792            prevent flooding
1793 * stephan: added advanced warnings. Cvars: g_warningDecay, g_warningOptions and
1794            g_maxWarnings
1795 * stephan: someone who is kicked for reaching the max amount of warnings is now
1796            kicked for 120 secs
1797 * stephan: changed g_auoTempBan into a bitflag, so teamdamage, !kick and !warn
1798            tempbans are separated
1799 * stephan: added g_spreeOptions flag 256: killing bots doesn't count in
1800            sprees/multikills
1801 * josh:    Turned off threads. They're a pain and not used.
1802 * josh:    Changed g_teamForceBalance_playerrating to override and allow
1803            players to enter unfair teams if the numbers are imbalanced.
1804 * josh:    Made g_ATB 2 event driven so it only runs once per team change, and
1805            will not run after a !putteam command.
1806 * josh:    Made it so ATB will allow unfair teams when numbers balancing if
1807            numbers are off by more than 2.
1808 * stephan: added an orange W to !listplayers output, that appears when someone
1809            has a warning. Also moved the fireteam letter to appear right after
1810            the team letter
1811 * josh:    Added kill rating tracking to match outcome logging in order to
1812            investigate the possiblity of including kill rating in predicting
1813            winners.
1814 * stephan: removed shrubbot !finger command and added shrubbot flag $ instead.
1815            $ allows users to do an !admintest on other players
1816 * stephan: fixed bots not leaving when setting g_bot_minplayers 0
1817 * josh:    ATB will allow 2 more players on a team, but not 3
1818 * josh:    Made sure ATB will only run after someone goes spec or disconnects.
1819            This means it won't fight with PTB. If you can get on a team by
1820            your server's rules (balancing) then ATB won't try and fix it.
1821 * josh:    !putteam only turns off ATB when it puts a player on axis or
1822            allies.
1823 * stephan: fixed a bug where ending a spree with a teamkill, would play the
1824            selfkill sound
1825 * stephan: g_bot_minplayers default value is now -1
1826 * stephan: added g_voting flag 8 that displays the number of YES and NO votes
1827            after a vote passed or failed. This also displays if a vote is
1828            is passed or canceled by an admin.
1829 * stephan: added g_privateMessageSound which plays a sound to all player that
1830            receive a private message
1831 * stephan: /players command now gives the total number of humans and bots
1832 * stephan: !passvote and !cancelvote give some output when there is no vote
1833 * stephan: added g_maxNameChanges cvar, that limits the number of namechanges
1834            at one map
1835 * stephan: added g_medicHealthRegen flag 7 and 8 which allow medic to
1836            regenerate health only when they have full "normal" health allready
1837 * stephan: omnibot 0.65 support added by gabriel
1838 * josh:    With zinx's code and permission and a little help from Jaybird, added
1839            etpro's antiwarp code. Use g_antiwarp 1. It will override both
1840            g_maxWarp AND g_skipCorrection in order to keep things consistent.
1841 * stephan: removed g_bot_flags cvar. All options can be set by using the
1842            omnibot cvar omnibot_flags. See the (ETPub) docs for more details
1843 * stephan: from now on bots won't be tempbanned for doing too much teamdamage
1844 * stephan: The g_dropMsg is now added to every !kick and !ban and not just to
1845            the message shown when a banned player tried to reconnect
1846 * stephan: added g_medics flag 4: when a level 4 medic gets revived he will
1847            always receive full health (same goes for syringe heal)
1848 * stephan: added g_floodWait which controls the miminum time between 2 (v)says
1849 * matt:    Fixed minor map voting bug
1850 * stephan: added g_disableComplaints flag 8: no complaints for dynamite tk
1851 * stephan: added omnibot 0.66 support
1852 * stephan: added g_misc flag 4 (display killer health) as submitted by chaos
1853 * stephan: applied g_medicSelfhealTime patch by Chaos. This CVAR prevents a
1854            medic to pick up its own medpacks after being hit
1855 * stephan: added g_maxPanzerSuicides which makes panzerfaust shoot medpacks
1856            after too much panzerselfkills. Idea based on OPENShrub's special
1857            panzer, but bit different functionallity
1858 * stephan: fixed minor nameCensor bug (Thanks ensiform)
1859 * stephan: added variable mutetime storage in the XPSave file. The !mute
1860            command now supports the optional [TIME] and [REASON]. Time can be
1861            a number of seconds, or a time with modifier (see !ban for more
1862            information). Note that all players that are muted will be unmuted
1863            the first time you use 0.8.x
1864 * stephan: added g_damageXPLevel to the serverinfo string (splatterladder
1865            request)
1866 * stephan: added g_dyno flag 8: dynamite can only be disarmed by the other team
1867 * stephan: fixed a bug where getting revived after being killed while reloading
1868            made a player hold WP_NONE (no weapon)
1869 * stephan: added g_spoofOptions flag 256 which checks the userinfo in a similar
1870            way as Reyalp's lua script. Also changed the default g_spoofOptions
1871            value to 323 because just too many innocent people were getting
1872            kicked for guidspoofing
1873 * stephan: added g_dyno flag 16: enable dynamite ID. With ETPubclient >=
1874            20070719 you can see the owner of a dynamite when you point at it
1875 * stephan: added adminchat "/ma". All users with the shrubbot flag ~ and all
1876            referees can type and read this chat. When a new adminchat message
1877            is received, the user will hear the g_privateMessageSound and see
1878            the adminchat message in orange
1879 * stephan: changed the color of the location (A,1) in team and fireteam chat to
1880            yellow, so that it better matches fireteam and vsay locations
1881 * stephan: fixed an (omnibot) bug where grabbing unnamed objectives (like the
1882            christmas star on "Northpole") results in a server crash
1883 * tijmen:  added g_misc flag 8: disable self damage as requested by ticket #408
1884 * stephan: added vote_allow_putspec that gives people the possibility to vote a
1885            player into spec
1886 * tijmen:  added g_maxSelfkills: amount of times a person can user /kill per
1887            map
1888 * stephan: added g_panzerPackDistance which controls the packdistance of the
1889            medpacks fired from the panzerfaust when g_maxPanzerSuicides is
1890            enabled
1891 * stephan: added g_maxPanzerSuicides option -2: always enabled
1892 * tijmen:  added g_showVoteResults: show the amount of votes per team to
1893            admins (and optionally other clients)
1894            as requested by ticket #482
1895 * tijmen:  bugfix: xp now writes when someone uses !nextmap, !restart,
1896            /callvote maprestart, /callvote nextmap, /callvote map *
1897 * tijmen:  added g_minCommandWaitTime: this command sets the time you have to
1898            wait between using shrubbot commands.
1899 * stephan: removed g_slashkill flag 8 (disable /kill). This can be achieved by
1900            setting g_maxSelfkills 0
1901 * stephan: fixed g_maxPanzerSuicides display bug
1902 * stephan: changed g_minCommandWaitTime to show the time in milliseconds when
1903            smaller then 2 secs. Hopefully also fixed the crashes
1904 * stephan: added g_warningOptions flag 16: allow clients to do /warnings
1905 * stephan: added g_knifeKillSound as submitted by balgo
1906 * stephan: added g_XPSave flag 16, which makes the xpsaving at !restarts,
1907            mapvotes etc optional. Also expanded this to work at campaignvotes.
1908            Finally made sure that the disconnects get erased at a !restart etc
1909 * stephan: added g_spreeOptions flags 512 + 1024. Flag 512 will display the map
1910            and overall spreerecords when entering intermission. Spree records
1911            are saved into the xpsave file automatically (as long as
1912            g_xpSaveFile is set). When a !restart or something similar (see
1913            g_XPSave flag 16) takes place, the spreerecords aren't stored by
1914            default because this might take some extra resources. It can be
1915            enabled by setting flag 1024. The most resources are used when
1916            g_XPSave flag 16 is NOT set. Though these resources aren't that bad,
1917            it is a bit useless to enable this flag when you don't use the
1918            spreerecords
1919 * stephan: added shrubbot command !spreerecord (t) which shows the spreerecords
1920 * stephan: added consolecommand /clearspreerecords that deletes all records
1921 * stephan: removed shrubbot % flag and g_showVoteResults and added
1922            g_voteResultsMinLevel instead, because I think this should not have
1923            been a shrubbot flag and the old CVAR was redundant. See the docs
1924 * stephan: added "warner" line in the [warning] shrubbot block. The "warner" is
1925            also displayed when using !dewarn [player]
1926 * stephan: changed SPC to remove newlines before text is sent to CLIENTS. There
1927            should NOT be a trailing \n in an SPC message. This should improve
1928            the output of shrubbot commands when there are more than 1 username-
1929            matches
1930 * stephan: hopefully fixed antiwarp. Thanks zinx
1931 * stephan: g_spoofOptions default value changed (again) to 339
1932 * josh:    Added support for logging the distance kills happen at for later
1933            use in an improved kill rating.
1934 * stephan: [g] and !userinfo changed from full guid, to last 8 characters of
1935            the guid
1936 * stephan: removed one !rename message (admins would see the !rename twice)
1937 * stephan: fixed weaponrestriction infokey bug
1938 * josh:    g_ATB 2 now uses g_ATB_minPlayers instead of
1939            g_playerRating_minplayers
1940
1941 0.8.2
1942 * stephan: g_teamChangeKills 0 now doesn't save the health anymore (so you will
1943            always start with full health). This also fixes a bug where you
1944            sometimes didn't have full health the very first time when you join
1945            a team
1946 * stephan: fixed a small vote coloration bug
1947
1948 0.9.1
1949 * josh:    Revamped kill rating. Now it will is based purely on skill and
1950            distance to target.
1951 * josh:    Updated the xpsave.cfg php viewers to reflect KR change.
1952 * josh:    Major bugfix to new kill rating system. Anyone who started using it
1953            already may want to delete distance_rating, distance_variance, and
1954            kill_* from their xpsave .cfg.
1955 * josh:    Fixed etpub_stats.pl to work with new kill rating.
1956 * stephan: added healthdepending speed cvars g_healthSpeedStart and
1957            g_healthSpeedBottom. See docs for more info
1958 * stephan: added g_weapons flag 2048: knife always gibs a dead player
1959 * stephan: added g_damageBonus and g_damageBonusOpts. See docs for more info
1960 * stephan: moved the promotion rewards from the client to the server, so that
1961            the server can check if players should really get promotions like
1962            adrena (requires etpubclient >= 20070819)
1963 * tijmen:  added !gib -1|all, which gibs every player in the game
1964 * tijmen:  added !panzer and !sniperwar, which was finished by Elf Friend
1965 * tijmen:  added custom voicechats, made by Elf Friend
1966            command: g_customVoiceChats
1967 * quad:    added GeoIP country flags in scoreboard, made by mcwf
1968            g_scoreboard_cf / cg_scoreboard_cf
1969 * quad:    backstab works on wounded players (instant gib) by Elf
1970 * quad:    added panzer/rifle/sniper war by Elf (was missing from the sources)
1971            also !panzer, !sniper, !riflewar, and !giba, !splat, !splata
1972 * quad:    added a patch from redeye, with some fixes, greeting sound,
1973            some shrubbot commands, and others.
1974 * quad:    g_noSkillUpgrades, and the changes yada made to the /ref system
1975            renamed g_scoreboard_cf to g_countryFlags (and cg_countryFlags too)
1976 * quad:    added foxX's code for ready icon
1977 * quad:    partial support for ETTV, also fix for Ticket #5
1978            fix for Ticket #10 by RedEye
1979 * flms:    added g_spawnInvulFair by PCR
1980 * drevil:  added support for Omni-bot 0.7
1981 * flms:    allow negative shrubbot levels
1982 * quad:    added more control over "energy" ( class weapon time ) via cvar
1983            g_chargeType
1984 * flms:    added g_flushItems (NQ)
1985 * flms:    mg's can make headshots
1986 * flms:    you also hear hitsounds when Friendly Fire is off and
1987            g_reflectFriendlyFire is on
1988 * flms:    mg's can reload midclip
1989 * quad:    Lua API for ETPub, aiming for compatibility with ETPro
1990            http://wolfwiki.anime.net/index.php/Lua_Mod_API (TODO: Docs!)
1991 * stephan: added an oversized userinfo check to g_spoofOptions flag 256 and
1992            added the \n char to the list of characters that may not be used in
1993            a userinfo string. A user with any of the forbidden chars in his/her
1994            userinfo will be dropped from the server from now on
1995 * quad:    added sv_maxConnsPerIP as a prevention for fakeplayer DoS attack
1996 * stephan: changed sv_maxConnsPerIP to g_maxConnsPerIP, since it is a game cvar
1997            and not an engine cvar
1998 * stephan: changed the flags of g_damageBonusOpts and added
1999            g_damageBonusNearMedics and g_damageBonusTotalMedics. See docs
2000 * stephan: changed g_spoofOptions again. Some of the old flags are not optional
2001            anymore. This prevents the innocent guidspoofkick many people were
2002            experiencing. Furthermore an empty IP field is not allowed anymore.
2003            Default value set to 3
2004 * pheno:   fixed xpsave [serverstat] parse error on distance_variance
2005 * pheno:   added et.ClientIsFlooding() library call to Lua API. This function
2006            only checks for flooding, necessary fields are not updated!
2007 * pheno:   made more Lua API additions
2008 * pheno:   added read-only access to gentity fields
2009 * pheno:   added SHA-1 routines
2010 * pheno:   fixed Lua's et.G_Print()/et.G_LogPrint() library call on et_Print()
2011            callback server crash bug
2012 * pheno:   added et.G_shrubbot_permission( ent, flag ) library call to Lua API
2013 * pheno:   added lua_allowedModules: If set, only lua modules with the matching
2014            sha-1 signatures listed in this cvar will be allowed to load
2015 * pheno:   fixed LUA_PATH to ease use of the require() function
2016 * pheno:   Lua API: added RW access to gentity field sess.ignoreClients
2017 * pheno:   Lua API: added et.G_AddSkillPoints( ent, skill, points )
2018            library call
2019 * pheno:   Lua API: added RO access to gentity field sess.skillpoints
2020 * pheno:   Lua API: added et.G_shrubbot_level( ent ) library call
2021 * pheno:   Lua API: added RW access to missing s.eventParm gentity field
2022 * pheno:   Lua API: fixed and registered et.G_TempEntity() library call
2023 * pheno:   Lua API: added error handling for getting or setting nonexistent
2024            gentity fields
2025 * pheno:   added mcwf's code for additional font characters from 0x7F to 0xFF
2026 * pheno:   Lua API: fixed et_Print() callback won't run on G_LogPrintf()
2027 * pheno:   hopefully fixed the bug that keeps XPSave from loading stored XP
2028            at the time of client initial connect
2029 * pheno:   Lua API: fixed a bug that causes an server crash on error output
2030            within et_Print() callback
2031 * flms:    added [revive] spree blocks
2032 * flms:    fixed g_noSkillUpgrades
2033 * pheno:   reworked team_max* restrictions. Players stay on their last weapon
2034            if they choose a disabled weapon unless their last weapon is
2035            disabled too.
2036 * pheno:   !freeze (F) and !unfreeze (F) now available shrubbot commands
2037 * pheno:   fixed a bug where some weapons can inflict damage to a frozen player
2038 * pheno:   made additions to !freeze (F) and !unfreeze (F) shrubbot commands
2039 * pheno:   removed flamethrower flames from third persons view if player is
2040            frozen. To remove the flames from players view you need to install
2041            the etpub client > 20090112.
2042 * pheno:   modified foxX's code to update players ready state during
2043            intermission
2044 * pheno:   reworked the way how ready state was sent to the client
2045 * pheno:   removed weapon auto switching on enabled panzerwar mode
2046 * pheno:   fixed a bug where the ready icon isn't drawn in warmup after player
2047            died
2048 * pheno:   made it possible to disable bot greeting
2049 * pheno:   reworked a second time the way how ready state was sent to the
2050            client. This will fix the broken scoreboard on more than 30 players.
2051 * pheno:   Lua API: added et.G_LoseSkillPoints( ent, skill, points )
2052            library call
2053 * pheno:   added shoutcaster sclogin, sclogout, shoutcastlogin and
2054            shoutcastlogout commands (NOTE: shoutcaster status is only available
2055            with installed etpub client > 20090112)
2056 * pheno:   Lua API: added et.G_ClientSound( clientnum, soundindex )
2057            library call
2058 * pheno:   fixed [command] element command line length
2059 * pheno:   fixed landmine snapshot callback for shoutcasters in follow mode
2060 * pheno:   added shoutcaster console commands
2061 * pheno:   added [i] shortcut for shrubbot [command] elements only
2062 * pheno:   added shoutcaster referee commands
2063 * pheno:   added cointoss callvote command
2064 * pheno:   added friendly hitsounds for disguised coverts
2065 * pheno:   fixed class change with scoped weapon bug (prevents scoped sten)
2066 * pheno:   added headshot mode (g_headshot [0|1])
2067 * pheno:   added instagib damage (bitflag 2) to headshot mode. g_headshot is
2068            now a bitflag cvar.
2069 * pheno:   added g_goombaFlags flag 32 - falling corpses won't cause damage
2070 * pheno:   added g_shrubbotOptions bitflag cvar (see docs)
2071 * pheno:   added death anim and medic call to playdead command
2072 * pheno:   fixed server crash when calling shrubbot command with [i] shortcut
2073            at server console
2074 * pheno:   added g_slashKill flag 8 - disable /kill when player is frozen
2075 * pheno:   a frozen player cannot switch teams for now
2076 * pheno:   Lua API: fixed a bug where gclient entity fields are not available
2077            on et_ClientConnect() callback
2078 * pheno:   fixed broken FF voting
2079 * pheno:   Lua API: load API from external library
2080 * pheno:   fixed !rename if player has reached max name changes
2081 * pheno:   added support for ETPro's delete mapscript command
2082 * pheno:   fixed delete mapscript command causes server crashes
2083 * pheno:   added g_ettvFlags bitflag cvar (see docs)
2084 * pheno:   Lua API: added redeye's et.ClientNumberFromString() library call
2085 * pheno:   reworked inactivity code and renamed g_shrubbotOptions bitflag
2086            cvar to g_inactivityOptions (see docs)
2087 * pheno:   firstblood message - added configurable message and position
2088 * pheno:   added lastblood message
2089 * pheno:   fixed g_teamDamageRestriction won't kick players bug
2090 * pheno:   fixed wrong GUID in !listplayers output when following an bot
2091 * pheno:   fixed no inactivity moving if g_inactivityOptions flag 2 was set
2092 * pheno:   added shrubbot flag '&' - can rename himself regardless of
2093            g_maxNameChanges limit (see docs)
2094 * pheno:   fixed kick callvote won't kick players bug
2095 * pheno:   Lua API: added IlDuca's and core's Lua API additions -
2096            et.G_EntitiesFree(), et.G_GetSpawnVar() and et.G_SetSpawnVar()
2097 * pheno:   added core's fix for airstrike-cans getting kicked after plane
2098            knows its targets
2099 * pheno:   added g_mode bitflag cvar (see docs)
2100 * pheno:   added etpub_version console command
2101 * pheno:   added redeye's XP overflow fix
2102 * pheno:   satchel remains as long as the player was not gibbed
2103 * pheno:   added logout referee command
2104 * cs:      added Omni-bot 0.8 support
2105 * pheno:   added core's mapvote fix. Thanks to NQ team.
2106 * pheno:   fixed resetting *war modes on map changes
Note: See TracBrowser for help on using the browser.