diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/ChangeLog-client.txt etpub/ChangeLog-client.txt --- et260/ChangeLog-client.txt 1969-12-31 18:00:00.000000000 -0600 +++ etpub/ChangeLog-client.txt 2005-11-03 15:42:29.000000000 -0600 @@ -0,0 +1,126 @@ + +20050519 +-------- +* josh: Added antilag debug output to the client for internal testing only + This client will also make the server hitboxes blue when g_debugBullets + is on and it will draw red hitboxes for what the client sees. Output + is on the console. +* tjw: used new PM_TraceAll() from 2.60 in playdead checking +* tjw: improved PM_TraceAll() related checking to test for players heads + and legs instead of just legs. This should prevent player models + from sticking through doors when prone or dead next to them. +* tjw: "Project: Bug Fix" 008 merged (cgame) +* tjw: "Project: Bug Fix" 009 merged (cgame) +* tjw: "Project: Bug Fix" 011 merged (cgame) +* tjw: "Project: Bug Fix" 018 merged (cgame) +* tjw: "Project: Bug Fix" 021 merged (cgame) +* tjw: "Project: Bug Fix" 023 merged (cgame) +* tjw: "Project: Bug Fix" 031 merged (cgame) +* tjw: "Project: Bug Fix" 032 merged (cgame) +* tjw: "Project: Bug Fix" 033 merged (cgame) +* tjw: "Project: Bug Fix" 034 merged (cgame) +* tjw: "Project: Bug Fix" 035 merged (cgame) +* tjw: "Project: Bug Fix" 037 merged (cgame) +* tjw: "Project: Bug Fix" 049 merged (cgame and ui) +* tjw: added 'forcecvar' server command. this will of course only work + if using the client mod. unmodified clients will see the message + "Unknown client game command: forcecvar". +* tjw: improved etpromapscripts compatibility. need client mod in order + to see "You are near the Back Door" popup. + +20050526 +-------- +* tjw: client mod won't draw the wounded message when playing dead. +* tjw: client mod won't predict EV_NOFIRE_UNDERWATER. this means if + you're using g_weapons 2 or 4 flags, you won't hear clicking + when using syringe or pliers underwater. +* tjw: removed +lookup, -lookup, +lookdown, and -lookdown commands from the + client mod. these are used for anti-recoil cheats. +* tjw: etpub_client now tries very hard not to save any of the forcecvar + cvars in the profile etconfig.cfg file. also, once forcecvar is + used to set a client cvar, the client can no longer modify it + (until they restart their client). + +20050927 +-------- +* tjw: I made a mistake merging Project: Bug Fix 049. (thanks for pointing it + out Chruker). this has to do with map name drawing in etpub_client. +* tjw: Added check for vote_allow_maprestart in vote menu +* tjw: added several 2.60 files to the SVN repo that were missing +* josh: The client is now aware of double jump so it can better predict the + effects. This means people double jumping should be able to aim better. +* matt: added cg_drawTime, cg_drawTimeSeconds, to draw local time + underneath the FPS display, cg_drawTime can be 0 (not displayed), + 1 (24 hr clock) or 2 (12 hour clock with am/pm). cg_drawTimeSeconds + will display seconds +* matt: added etpub menu option, with HUD customization choices for + customizing the drawing of local time (see cg_drawTime, + cg_drawTimeSeconds) Also added options for atmosphericeffects + (rain/snow), cg_drawFPS, cg_drawLagometer +* matt: added weapons/binocs.weap for proper display of binocs dropped +* matt: added weapons/knife.weap for proper display of throwing knives +* forty: Zinx's b_realhead code +* forty: "Project: Bug Fix" 020 merged (cgame) +* matt: preliminary integration of bacon's editable hud code from SD forums + client-side commands, /loadhud, /edithud, /dumphud + example hud hud/stumpy.hud added +* matt: Fixed bug in hud file loading that caused MinGW compiled clients + to stop displaying the chat areas +* tjw: Added etpubc.h and server version detection. You can now use + the macro ETPUB_VERSION() and the variable cgs.etpub to enable + features in the client depending on what version of etpub the + server is running. Example: + if(cgs.etpub >= ETPUB_VERSION(0,6,0)) ... + This could potentially be useful for adding config strings. +* matt: Added preliminary etpub client documentation +* tjw: decreased the text size for polls. +* tjw: added the /hidevote client command. also, the "stuck vote" + bug that people experience when joining durring a vote is + most likely fixed. +* tjw: updated the vote menu to include new etpub votes + ("next campaign", "restart campaign", "surrender", and "poll") +* tjw: used Catscratch's suggestion for putting etpubclient version + in place of "SERVER INFO" on the loading screen. +* perro: updated client to allow for adjusting stamina recharge rates + (g_staminaRecharge) and to support g_misc 16 to prevent + jumping if stamina is below approx 17%. Updated etpubc.h to show + 20050927 +* tjw: added etpub 0.5.x version detection hack +* tjw: added version detection for PM_Tracehead() now g_misc 32 +* tjw: /hidevote wasn't working correctly. It would get reset every + time the vote totals changed. + +20051016 +-------- +* perro: updated client to reflect g_staminarecharge changes +* matt: added 4 new hud elements, cpmtext, chattest, livesleft, votefttext +* matt: fixed it so that compass zoom level now sticks across maps + and sessions +* perro: updated client to show newer obits (poison, goomba, fear, + throwing knife, reflected-ff) + cleaned up minor formatting issue with fireteam invitation text + that caused two lines to print over one another +* tjw: implemented g_coverts 2 and 4 flags (see docs) +* tjw: added menu option for shufflenorestart vote +* tjw: added scale parameter to "livesleft" HUD element and adjusted + deej.hud and stumpy.hud to draw this element. It only gets drawn + on limited lives server anyway right? + +20051030 +-------- +* kw: added cg_panzerhack (default: 1) to put your SMG in weaponbank 2 + (instead of bank 3) when you're a soldier with level 4 Heavy Weapons. +* kw: client now shows your throwing knives ammo count + ([current ammo]/[max ammo]) +* tjw: support for the g_coverts 128 flag + +20051103 +-------- +* josh: bugfix: Changed PMF_DOUBLEJUMPING bitflag from 65536 to 128 since + only 16-bits are sent over to the client. This fixes a client bug, + since it is in bg, but is compiled into the server as well. Double + jumps should be right now. Thanks Zozz! +* tjw: fixed stamina recharge bug when playing on non etpub 0.6.x servers. + +current +-------- diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/ChangeLog.txt etpub/ChangeLog.txt --- et260/ChangeLog.txt 1969-12-31 18:00:00.000000000 -0600 +++ etpub/ChangeLog.txt 2005-11-02 09:42:13.000000000 -0600 @@ -0,0 +1,976 @@ +0.0.1 +* initial release + +0.0.2 +* fixed problem with !mute/!unmute +* turned hitboxes back to the default height for corpses +* made g_shrubbot and g_logAdmin cvars default to "" + +0.0.3 +* don't allow one admin to kick, ban, putteam, setlevel, or mute another + admin unless the victim has a lower (or equal) admin level. +* fixed !kick so it works like a vote kick (complete with temp ban) +* added guid stub and saved admin name to the output of listplayers +* made shoving more like shrub (no pushback) +* removed some debugging G_Printf()'s + +0.0.4 +* XPSave should now correctly remember the number of lives the client had. + This should prevent /reconnect for more lives on limited live servers. +* !unmute is REALLY fixed now. +* When a player is killed while playing dead, his death is now treated + normally. +* XPSave will no longer reset after every map when on the first run of a + campaign. + +0.0.5 +* XPSave now correctly resets the number of lives after every map. +* "Weapon not available" should only be printed now when trying to switch + to a disabled weapon (not when trying to join a locked team in warmup) +* Shoving is only allowed when you're much closer to the victim than before. +* linux binary should no longer require libstdc++ or libgcc shared libs. + +0.1.1 +* bumbed up to 0.1.x because of all the added features (be warned) +* g_XPSave now has all shrub functionality (2 and 4 flags added). +* XPSave no longer drops saved xp after 5 mins (missed that). +* added g_maxTeamLandmines cvar +* added fireteam letter in the output of !listplayers +* increased the number of players allowed on one fireteam from 6 to 8 +* added cvars for the hitsounds used (see docs) +* really fixed the "Weapon not available" message + +0.1.2 +* changed the maximum number of shrubbot admin levels from 6 to 32 +* changed the maximum number of shrubbot bans from 512 to 1024 +* changed the maximum number of shrubbot admins from 512 to 1024 +* fixed !ban so that the client is kicked normally instead of getting + phone jacked +* if names are set for level definitions, those will be used instead of + the number in the output of !listplayers +* when you kill someone playing dead it REALLY treats the kill normally now + +0.1.3 +* fixed a bug that prevented people from joining teams after the server sat + idle with no players. +* fixed a bug that prevented the game from ending after the time ran out + on a dual objective map and one team got skulled. +* XPSave will REALLY no longer drop stored XP after 5 minutes. + +0.1.4 +* changed Active Team Balance so that it will never offset teams by more than + 2 players. (too many complaints with percentage) +* when g_XPSave is set with the 2 flag XP is not lost anymore when doing a + map restart, shuffle, swapteams, etc on the first map of the campaign. +* added proper space formatting for level names in the output of !listplayers +* went on vacation + +0.1.5 +* fixed "Weapon is not available" message when going spec +* reverted etpro weapon fix that allowed lvl 3 engineer to plant dynamite + too fast +* players should no longer get lives when connecting to limited lives servers + running dual objective maps after the time runs out. +* g_XPSave should now work when a player reconnects after a crash with a new + IP address. + +0.1.6 +* fixed a nasty XPSave bug that was introduced in 0.1.5 that caused people + be kicked when someone else joined. +* included 2 new binary builds (win32 and glibc-2.1). + +0.1.7 +* fixed the "Weapon is not available" bug for what I hope is the last time. +* XPSave now restores on connect instead of on team join. Unfortunately, the + client won't draw XP in the limbo menu while on the spec team though. +* converted g_shrubbot.c and g_shrubbot.h files to DOS newlines for + consistency's sake. +* shrubbot 'flags' now support '*' as a wild card meaning all available flags + and any flag after the '*' is negated. +* !admintest now draws the level 'name' if one is set +* !listplayers now formats the level name column properly when color codes are + used in the name. +* landmines can now be diffused on dual objective maps once the time runs out. +* players joining after the time runs out on dual objective maps get no lives + on limited lives servers. I mean it this time. +* the weapon heat meter now draws properly for the tank mounted mg. + +0.1.8 +* can no longer use !setlevel to set a undefined level +* !listplayers formatting will not mess up if un-named levels > 9 are used. +* slightly defanged g_activeTeamBalance + (see http://linespeed.net/projects/etpub/ticket/21 ) +* this may be the last 0.1.x release since I'm going try adding some + features again. + +0.1.9 +* fixes a very annoying bug introduced in 0.1.7 where you can't switch to + different weapon without switching teams. +* "Weapon not available" message is replaced with "{WEAPONNAME} not available" + +0.2.1 +* incremented to 0.2.x because of all the changes (be warned) +* you can now type shrubbot commands in the chat dialog box as well as in the + client game console. +* you can now send private messages from the chat dialog box +* g_weapons now supports flags 4, 32, and 128 (see docs) +* added several cvars for adjusting Active Team Balance: g_ATB_minXP, + g_ATB_minPlayers, g_ATB_axisHoldoff, and g_ATB_alliedHoldoff (see docs). +* added g_mapConfigs cvar for per-map config files +* added g_packDistance +* added g_dropHealth +* added g_dropAmmo +* added g_tossDistance +* josh: added g_logOptions (only flag 128 supported) +* josh: added g_censor +* josh: added g_censorPenalty (only flags 1 and 4 supported) +* added g_intermissionTime +* added g_intermissionReadyPercent +* josh: added g_skills (only flags 2 and 4 supported) +* josh: added !rename shrubbot command +* hitboxes have been changed dramatically. see + http://et.tjw.org/etpub/hitboxes/ +* if the match is paused, the match will automatically unpause after + match_timeoutlength seconds even if nobody unpauses it. +* players will no longer get a skull next to their name when they switch teams + on unlimited lives servers. +* teams are no longer locked when the warmup countdown starts +* added the console commands cp, cpm, cpmsay, qsay, chat, chatclient, m, and + priv. +* players with level 4 heavy and/or light weapons skills will not lose their + class and weapons when a new map starts. However, they will still see the + limbo menu because of the client bug. +* chat, chatclient, and cp commands will recognize "\n" as a newline + character. + +0.2.2 +* fixed (I hope) a bug related to my hitbox changes that allows prone players + to get stuck in walls. +* allow shrubbot commands to be run in the server console without a ! prefixed + to them. this allows better shrubet functionality for cmds like cancelvote + and readconfig. +* fixed (I hope) a race condition that could cause the temporary hitbox + lowering to be not so temporary and allow players to get stuck in walls + on revive. + +0.2.3 +* when using g_mapConfigs, "default.cfg" will now be exec'ed. +* etpub now recognizes permanent bans in shrubbot.cfg although you still + can't make permanent bans with !ban (need time parameter). +* fixed an animation bug when standing up from playdead. +* josh: made several g_antilag fixes. +* josh: censoring now colorcode- and case-insensitive +* josh: antilag fixes for headshots, legshots, and tjw's hitboxes +* josh: antilag hitbox fixes for head and legs. Not tested yet. +* josh: antilag is pretty good except when prone. +* tjw: added g_XPSave flag 8 (see docs) + +0.3.1 +* matt: !gib(g), !warn(R), !slap(A), !news(W) now available shrubbot commands +* tjw: added g_hitboxes cvar (see docs) +* tjw: antilag won't crash the server now. +* josh: bans and kicks work with 2.60. They also give reasons to victims +* josh: double jump added with g_misc 1 (bitflagged). Like shrub. +* josh: /follow will now accept partial matches +* tjw: hitboxes are now used for all traces, not just bullets. for example, + you can now fire rifle grenades over teammate's shoulders. +* tjw: extended matt's !slap command to also support !burn. credit goes + to dvl drmmr. +* josh: added g_skipCorrection +* michael: added skill_ cvars http://linespeed.net/projects/etpub/ticket/67 +* matt: added !lock/unlock (K) +* tjw: added compatability with the 2.60 maps/radar.script +* tjw: added sanity checking to COM_BitSet(). this should prevent a common + server crash on several custom maps (e.g. glider) +* tjw: prone MG soldiers can no longer shoot people standing on them or on + their gun +* tjw: prone players are no much easier to stab. the knife reach has been + increased and head and leg hitboxes are now knifable. + +0.3.2 +* josh: fixed censor so it works on more than the last word +* josh: Added g_doubleJumpHeight defaulting to 1.4 to be tunable but feel + like shrub. g_doubleJumpHeight is a multiplier to the default jump + velocity. Your second jump velocity will be g_doubleJumpHeight time + the normal. +* tjw: added checks in COM_BitCheck() and COM_BitClear() to prevent custom + map related server crashes. +* matt: removed extra newlines from shrubbot AP() output. +* josh: added documentation for the '3' shrubbot flag +* tjw: updated to Tommes's latest German translation of the docs. +* tjw: created a new shrubbot flag for !burn (u). previously it shared the + (A) flag with !slap, but some admins may not want to enable both. +* tjw: g_knifeonly should work again. +* josh: Minor fixes to antilag. Shooting player no longer unlagged. +* josh: Body hitboxes are now unlagged when drawn with debugBullets. +* josh: Added antilag debug output from the server +* josh: Added antilag debug output to the client for internal testing only + This client will also make the server hitboxes blue when g_debugBullets + is on and it will draw red hitboxes for what the client sees. Output + is on the console. +* josh: Results of antilag debugging make it look perfect. +* tjw: removed hack that prevented players with lvl 4 light/heavy weapons from + switching to spec for the first 60 seconds of the map. this bug has + been fixed with the 2.60 patch so the hack is no longer neccessary. + +0.4.1 +* josh: fixed double jump bugs. Should be good now. +* tjw: added g_debugHitboxes cvar +* tjw: adjusted the standing/crouched head hitbox position to better match + the player model. +* matt: added new 4 new cvars for Team Damage Restrictions, 1 client side + command. cvars: g_teamdamagerestriction, g_minhits, g_autotempban, + g_autotempbantime. client side command /damage +* dvl: !lol command +* josh: reordered antilag lerping to better match the client +* josh: minor fixes to skip correction to better match ET's bg_slidemove. + This may have fixed the bouncing problem which is caused by + skip correction. +* matt: partially implemented shrubbot flag 2 (not censored) and flag 9 + (can do shrubbot commands via team and fireteam chat) +* josh: antilag debug info now only prints for the hit entity. Won't print + anything if it does not hit a player. This happens in the same place + the hitbox is drawn. +* tjw: fixed knife and syringe while crouching over wounded player +* tjw: added !reset and !restart shrubbot commands. +* tjw: added support for the - and + operators in shrubbot [admin] flags. +* tjw: added g_voting cvar (see docs) +* tjw: changed the flag for !burn from 'u' to 'U'. ('u' is reserved for + !uptime) +* tjw: added '6' and '8' shrubbot flags (see docs) +* tjw: overhauled g_goomba. you can now goomba with falls that would not + normally damage you. you can also do damage to wounded players by + jumping on them. +* tjw: corpse dragging now has a bit more pull, so corpses should keep up + when dragging from crouch. +* tjw: added g_weapons flag 256 (garands reload) +* tjw: akimbos will now reload when only 1 shot has been fired. still reloads + both though. +* matt: added g_skills flag 1, ability to spot landmines for teammates if you + have level 4 battlesense +* tjw: added g_moverScale cvar (see docs) +* matt: added basic poison needles (g_poison) +* dvl: added !pip/!pop +* matt: added mute status to !listplayers, red M is shown if player is muted + else, empty space +* matt: changed !pause/unpause from z to Z, as !pip/!pop are z in shrub +* dvl: updated !pip/pop, !lol now accepts parameter for number of nades + !lol/!pop/!pip with no param does everyone + !lol -1 X does X nades around everyone +* dvl: g_slashKill partially implemented, only flag 8, disabling /kill +* matt: added a primitive shake to poison needles +* tjw: added g_ammoCabinetTime and g_healthCabinetTime cvars (see docs) +* tjw: viewlock when wounded should no longer follow non-medics occasionally. +* tjw: XPSave should work for stopwatch gametypes now. +* tjw: ATB will not act during intermission anymore. +* matt: fixed being poisoned across death/spawn +* tjw: added flags to g_hitsounds cvar (see docs) +* tjw: added /hitsounds client console command. usage: /hitsounds [on|off] +* tjw: changed output of !admintest to better match shrubet +* matt: added g_logOptions 256, to log private messages +* tjw: added g_spectator cvar (see docs) +* tjw: fixed bug that let you keep following a teammate when he switched + teams. +* josh: Added bitflag 8 to g_censorPenalty which auto-mutes a player for + g_censorMuteTime [60] seconds. +* josh: Fixed unlagged skip correction. The bouncing is gone now. It was + caused by the velocity never being copied over in the original + ET code. So velocity was always very very wrong. g_skipCorrection 1 + should work VERY nicely now. +* tjw: fixed head hitbox position for moving animations +* tjw: increased the crouch hitbox adjustment because the moving animation + is taller than the idle one. +* matt: added g_medics CVAR, controlling various aspects of the medic + added support for changing regeneration rate of the medic +* josh: You can now use /follow to follow teammates when in limbo. +* josh: Added g_truePing(0|1). Will calculate ping as the time between the + current time and the client's last command time stamp. +* tjw: added g_maxWarp cvar (see docs) +* tjw: added g_dropObj cvar (see docs) +* tjw: fixed a custom map related scripting segfault: + http://linespeed.net/projects/etpub/ticket/192 +* tjw: players with slot 30 and higher should no longer have their names + displayed twice in the +scores +* tjw: fixed satchel auto-switch problem with 2.60 +* tjw: merged 2.60 SDK +* tjw: added clearxp server console command. +* matt: g_medics additions, medics can't self heal, can't heal self of poison +* matt: removed ability to playdead when poisoned, ticket 191. Potential fix + for using mobile MG or mounted MG to stop poison jitter effect +* matt: added fling/launch/throw shrubbot commands +* matt: fixed !slap bug that would revive if player was dead but not gibbed + +0.4.2 +* tjw: match_readypercent will now only be used for the ready percent in + warmup (like before). g_intermissionReadyPercent will be used for + ready percent during intermission. +* tjw: removed Players_Axis and Players_Allies from the server info string. + it turns out some admins do use up all of the extra space with 'sets'. + (e.g. .URL .IRC .FavoriteColor .ICQ .AstrologicalSign, etc.) +* tjw: fixed (hopefully) a bug I introduced into G_SendScores() that caused + +scores to pop up seemingly randomly on servers with lots of players. + This can also cause client crashes. +* tjw: MAX_SHRUBBOT_FLAGS increased from 32 to 64 +* tjw: MAX_SHURBBOT_ADMINS increased from 1024 to 32768 +* tjw: g_antilag was only working half the time. I didn't understand + how EF_TELEPORT_BIT was used. it's not set when the player + teleports, but rather toggled and the client looks for a change + between client frames. +* tjw: non-soldier players with level 4 heavy weapons skill can now + pickup and use enemy SMG's. + +0.4.3 +* matt: Poison Needle kills now count as 3XP toward first aid skills +* tjw: removed correction on hitboxes for players in the tank. 2.60 + fixed this, so it's no longer necessary. +* tjw: fixed tank MG overheating too fast. +* tjw: fixed "FLAMETHOWER not available" message spamming when using + team_maxFlamers. +* tjw: added g_serverInfo cvar (see docs) +* tjw: fixed a bug that caused spectators to follow the next player as + soon as ANYONE died unless the g_spectator 4 flag was set. +* tjw: shrubbot commands will now be ignored if g_shrubbot is set to "". + (for better etadmin_mod compatiblity). +* tjw: fixed the playdead on medkit bug. +* tjw: fixed a problem that caused incomplete scoreboards on servers with + high numbers of players. +* tjw: g_skipCorrection should work better now on servers with g_antilag + disabled. +* tjw: g_skipCorrection should work better now when the player is on a + ladder. +* tjw: calling !mute on a muted player will no longer unmute them. calling + !unmute on a player who is not muted will no longer mute them. +* tjw: fixed problem with holding +attack while hitting jump as spectator. + +0.4.4 +* josh: Silenced akimbos are really silenced (thanks Azyu) +* josh: Mutes persist across maps. auto_mute_time wasn't being saved, is now +* tjw: I'm a hypocrite and added yet another cvar in a bug fix release. + It's g_goombaFlags (see docs). Many people do not like goomba doing + damage to teamates. I will add more functionality to this cvar in + 0.5.1. +* josh: skip corrected entities are linked now so it will be harder to skip + over mines and players dropping packets will be more hittable if + antilag is not on. +* tjw: when using g_dropObj, players must switch to knife before they can + drop the objective. +* tjw: !reset and !restart will now work during intermission. +* tjw: fixed another problem with the scoreboard when there are over 32 + players on a server. +* tjw: soldiers can again choose between pistol, akimbo, or mp40 when + they have level 4 heavy weapon skills. +* tjw: intermission countdown will now draw correctly for the client + if g_intermissionTime is set to something other than 60. + (thanks jaybird) + +0.5.1 +* matt: !listteams shrubbot command added +* dvl: g_logOptions 512 added, to log real time instead of server up time +* azyu: g_weapons options 8,16 added, half/full restore of charge bar if + airstrike aborted +* matt: poisoned players gurgle. medics who caused the poisoning receiving + notification via a cp +* matt: g_slashkill option 16 added, can't /kill when you are poisoned +* matt: implemented azyu's patch for /kill functionality. implements 1,2 + flags, flag 4 doesn't work quite right +* matt: added g_axisSpawnInvul, g_alliedSpawnInvul +* josh: g_censorPenalty 2 flag now works. People with censored words in their + names will be kicked before they begin. If g_censorNames is not "", + censored words in names will be *'d and uncolored. +* josh: g_logOptions 1 flag will print obituaries in chat instead of cpm. + Uses extra bandwidth. +* josh: Poison and Goomba kills have new obituaries. +* josh: g_logOptions 1024 will print obits faster from server. Uses more + bandwidth like g_logOptions 1. 1 will override 1024 so if you use + both you'll get obituaries in chat. +* josh: g_killRating 1 added as default. Uses a probabilistic measure of a + players killing ability. Rating is based on how hard each kill is and + which weapon was used. See docs. /killrating shows your ratings. +* josh: if g_killRating is 1, shuffle will use overall kill ratings. +* josh: overall kill rating is included in XP save. +* josh: Fixed a small spawn point bug I had made. +* tjw: added windows installer +* tjw: added mac installer +* tjw: used new PM_TraceAll() from 2.60 in playdead checking +* tjw: improved PM_TraceAll() related checking to test for players heads + and legs instead of just legs. This should prevent player models + from sticking through doors when prone or dead next to them. +* tjw: added g_goombaFlags 2, 4, 8, and 16 (see docs) +* josh: Added g_killRating flags 1,2,4, and 8 (see docs). Default is 7 for + testing purposes (0.5.0). Feel free to change the default for 0.5.1. +* matt: added !passvote shrubbot command +* tjw: added g_shoveNoZ and g_shoveSound cvars (see docs) +* tjw: UPGRADE NOTE the value used for g_shove is significatly different + in this version of etpub. It should be much closer to the shrubet + value, so lower values pack more punch. 80 is recommended. +* tjw: added g_ATB_swap and g_ATB_rating cvars (see docs) +* tjw: added 4 flag to g_serverInfo (see docs) +* matt: added 8 flag to g_serverInfo +* tjw: added g_stats cvar (see docs) +* matt: added 2048 g_logOptions option (see docs) +* matt: shrubbot flags 4 and 7 implemented (see docs) +* tjw: added g_poisonSound (see docs) +* tjw: added visual effects to poisoned player behaviour. +* tjw: added g_hitsounds flag 16 (see docs) +* tjw: added g_poisonFlags cvar (see docs) +* tjw: "Project: Bug Fix" 002 merged +* tjw: "Project: Bug Fix" 006 merged +* tjw: "Project: Bug Fix" 007 merged +* tjw: "Project: Bug Fix" 008 merged (cgame) +* tjw: "Project: Bug Fix" 009 merged (cgame) +* tjw: "Project: Bug Fix" 010 merged +* tjw: "Project: Bug Fix" 011 merged (cgame) +* tjw: "Project: Bug Fix" 012 merged +* tjw: "Project: Bug Fix" 013 merged +* tjw: "Project: Bug Fix" 014 merged +* tjw: "Project: Bug Fix" 015 merged +* tjw: "Project: Bug Fix" 016 merged +* tjw: "Project: Bug Fix" 017 merged (ugh) +* tjw: "Project: Bug Fix" 018 merged (cgame) +* tjw: "Project: Bug Fix" 021 merged (cgame) +* tjw: "Project: Bug Fix" 023 merged (cgame) +* tjw: "Project: Bug Fix" 024 merged +* tjw: "Project: Bug Fix" 031 merged (cgame) +* tjw: "Project: Bug Fix" 032 merged (cgame) +* tjw: "Project: Bug Fix" 033 merged (cgame) +* tjw: "Project: Bug Fix" 034 merged (cgame) +* tjw: "Project: Bug Fix" 035 merged (cgame) +* tjw: "Project: Bug Fix" 036 merged +* tjw: "Project: Bug Fix" 037 merged (cgame) +* tjw: "Project: Bug Fix" 038 merged +* tjw: "Project: Bug Fix" 039 merged +* tjw: "Project: Bug Fix" 042 merged +* tjw: "Project: Bug Fix" 045 merged +* tjw: "Project: Bug Fix" 046 merged +* tjw: "Project: Bug Fix" 047 merged +* tjw: "Project: Bug Fix" 048 merged +* tjw: "Project: Bug Fix" 049 merged (cgame and ui) +* tjw: "Project: Bug Fix" 055 merged (botai) +* tjw: "Project: Bug Fix" 056 merged +* tjw: "Project: Bug Fix" 058 merged +* tjw: "Project: Bug Fix" 059 merged +* tjw: "Project: Bug Fix" 060 merged +* tjw: "Project: Bug Fix" 062 merged +* tjw: "Project: Bug Fix" 065 merged +* tjw: "Project: Bug Fix" 066 merged +* tjw: "Project: Bug Fix" 067 merged +* tjw: "Project: Bug Fix" 068 merged +* tjw: "Project: Bug Fix" 069 merged +* tjw: "Project: Bug Fix" 070 merged +* tjw: reformatted output of !showbans +* tjw: added g_tyranny (see docs) +* tjw: improved shrubbot documentation in docs/index.html +* tjw: removed *ChargeTime cvars from the serverInfo string by default + to save space. These can be added back with the 16 flag to + g_serverInfo (see docs) +* tjw: when using g_serverInfo flags 1, 2, 4, or 8 the server will populate + the relevant cvars with "." characters to their maximum length + initially. This will prevent "Info string length exceeded" crashes + from occurring mid-game if the admin has added too many 'sets' + cvars to support the g_serverInfo flag. (The crash will instead + happen when the server starts.) +* tjw: /ignore and /unignore commands now accept slot# or partial + name match +* tjw: /unignore command now prints out all ignored clients if no + name or slot# is given. +* tjw: /m now recognizes the ignore list +* tjw: /vsay, /vsay_buddy, and /vsay_team now recognize the ignore list. +* tjw: /say, /say_team, and /say_buddy messages from clients who you + are ignoring will now print to your client console (not chat) + instead of dropping them altogether. +* tjw: when you use add or remove someone from your ignore list with + /ignore or /unignore, they are notified. +* tjw: !showbans now only prints out 30 bans at a time and accepts + a parameter (number to skip). +* tjw: doors will open silently when crouching (etpro thing I guess). +* tjw: added cvar g_mapScriptDirectory (see docs) +* tjw: added preliminary support for etpromapscripts. +* tjw: changed default for g_maxWarp to 4. I also increased the number + of frames that g_skipCorrection will act on from 2 to 3. +* tjw: !showbans X supports negative number to show the last X bans in + the list. +* tjw: added !disorient and !orient shrubbot commands. +* tjw: /killrating now prints out a sorted list of all player's killratings + similar to the /players command. the list is only printed to + the client that runs the command. +* tjw: added g_campaignFile cvar (see docs) +* tjw: fixed possible covert ops weapon issue with g_classChange +* tjw: added 'forcecvar' server command. this will of course only work + if using the client mod. unmodified clients will see the message + "Unknown client game command: forcecvar". +* tjw: improved etpromapscripts compatibility. need client mod in order + to see "You are near the Back Door" popup. +* tjw: added g_fightSound cvar (see docs) +* tjw: client mod won't draw the wounded message when playing dead. +* tjw: client mod won't predict EV_NOFIRE_UNDERWATER. this means if + you're using g_weapons 2 or 4 flags, you won't hear clicking + when using syringe or pliers underwater. +* tjw: removed +lookup, -lookup, +lookdown, and -lookdown commands from the + client mod. these are used for anti-recoil cheats. +* tjw: added !resetxp shrubbot command (see docs) +* tjw: added 'playsound' server command. +* tjw: added "/callvote surrender" and cvar vote_allow_surrender +* tjw: added "/callvote restartcampaign" and cvar vote_allow_restartcampaign +* tjw: added "/callvote nextcampaign" and cvar vote_allow_nextcampaign +* tjw: added "/callvote poll" and cvar vote_allow_poll +* tjw: "/callvote nextmap" now loads the next map in the campaign instead + of loading the next campaign (when in campaign mode). +* tjw: "/callvote comp" now tries to "exec default_comp.cfg" instead of + loading the built-in competition settings. +* tjw: "/callvote pub" now tries to "exec default_pub.cfg" instead of + loading the built-in public settings. +* tjw: increased the range for shoving slightly to be more like shrubet. + it should be a lot easier to shove other players while you're + both moving now. +* tjw: added cvar g_fear (see docs) +* tjw: corpses can now be destroyed with satchel or dyno again. + (bug introduced by the 2.60 patch) +* tjw: fixed a couple of issues with inappropriate "spread scale" increases. +* matt: added basic banner support, g_msgs, g_msgpos, g_msgX (see docs) +* tjw: g_slashKill 4 flag now restores the charge bar to the same state + it was in at the moment the player issued /kill (regardless of how + long they were in limbo). +* tjw: tank mg will now consider the incline the tank is on when limiting + the pitch restriction again (oops). +* tjw: added g_obituary cvar and removed g_logOptions flag 1024 (see docs) +* tjw: etpub_client now tries very hard not to save any of the forcecvar + cvars in the profile etconfig.cfg file. also, once forcecvar is + used to set a client cvar, the client can no longer modify it + (until they restart their client). +* tjw: forcecvar remembers all forced cvars for the current map and sends + them to connecting clients. + + +0.5.2 +* tjw: !resetxp from the server console was causing a segfault. +* tjw: g_serverInfo 4 flag was only working for the first map in the + campaign. +* tjw: players who are dead or playing dead can no longer shove other + players. +* tjw: added vote_allow_maprestart cvar. the button will still appear + in the MISC vote menu unless using the upcoming etpub_client. +* tjw: players can no longer /playdead with a ticking grenade or a + spinning up panzer. +* tjw: forcevar commands will be issued to the client when they've finished + connecting instead of when they start connecting. this was causing + problems on (at least) servers without warmup because the map config + containing the forcecvar commands hadn't been executed yet. +* tjw: fixed (hopefully) a bug that was preventing most g_slashKill options + from working. +* tjw: !showbans was not accepting it's parameter when it was issued + with "say". +* tjw: you can now use /m to send private messages to yourself. this + is for etadmin_mod compatability. +* tjw: g_shoveSound and g_poisonSound now use EV_GENERAL_SOUND instead + of EV_GLOBAL_SOUND so you won't hear them so far way from the + player emitting the sound. +* tjw: prevented sending duplicate forcecvar commands to the client when + those commands are issued at the very start of a map (e.g. g_mapConfigs) + + +0.5.3 +* tjw: fixed !showbans crash bug + + +0.6.1 +* forty: fix for bug that breaks autoreload occasionally +* forty: added min_airstriketime and min_artytime cvars +* forty: added g_weapons 512 flag (garand/k43 equality) +* josh: censor autogib will work with /kill on now +* forty: added cvar g_constructibleXPSharing +* forty: fixed team_maxGrenLaunchers for axis team (wasn't working) +* forty: added cvar g_asblock +* matt: fixed !throw to throw in direction player is facing instead + of north/south (Thanks KillerWhale) +* forty: XP Saver now preserves a players mute state to prevent reconnecting + to undo a mute. +* matt: added g_weapons option 64 for binoc dropping and g_misc option 2 + for binoc master competition. NOTE: to display binoc model + correctly, client-side file weapons/binocs.weap must be downloaded + to client +* matt: Courtesy of bacon's code in SD forums, added throwing knives (see docs) + NOTE: to display knife model correctly, client-side file + weapons/knife.weap must be downloaded to client +* matt: fixed shrubbot flag 1, so admins with flag 1 set can't be vote muted +* forty: subversion lines endings are now always windows native +* forty: Zinx's b_realhead code +* forty: bugfix for b_realhead with antilag +* forty: fix some vc++ compile errors +* forty: sudden death dynamite +* matt: fixed a few throwing knives bugs, throwing knive kills now give + 3 light weapons XP +* gabriel: added party panzers +* forty: fix realhead related corpse headbox problems and reenabled waiting + for medic animation when b_realhead is enabled. +* forty: dynamite chaining +* forty: XP Save now preserves team_hits and hits to prevent teambleeders/griefs from + reconnecting to dodge team damage restriction kicks. +* forty: #339 - Limbo'd and Spectators can throw knives fix +* forty: #208 - can always obscure field ops canisters. + Added bit to g_asblock to prevent lvl 3 and higher fdops from having their + airstrikes blocked by players. +* forty: some documentation updates as well. +* forty: #84 - Added canister kicking. +* forty: fixed bugs with canister kicking, and one more I missed with dead + but following knife throwing +* forty: g_canisterKick added to the documentation. +* forty: #129 - Added 2 - adrenaline counter and options 4 - Disable the tap-out + confirmation dialog box, 8 - Display connection attempts by banned players, + and 32 - Omit "Item" lines from logfile. +* forty: disarming a teammates satchel no longer gives you xp. +* forty: #24 - playdeads no longer hold weapons. Also fixes the flame thrower fire drawing + clientside while holding down fire and playing dead. +* forty: #126 - Added 16 - report gibs +* forty: fix for dead but not gibbed can capture flags +* forty: fix for setlevel privilege escalation - players with s flag can set themselves and + and others to levels higher than themselves +* forty: Increased the number of xp savers slots. Xp saver now saves information before map + changes, so people dropped during warmup and map changes don't lose xp. Xp saver + is now more selective about which slot it will save into, It will try to overwrite + your own data first, then use the first free slot if available, then use the oldest + stored data. It also will clean it self up when appropriate, removing stale data. +* forty: Fix for fireteam crash. +* forty: Fix for switching team multiple times grants instant respawn. +* matt: Fix for team damage kick/rejoin/kick vicious cycle bug introduced by + changeset: 603 +* matt: Added !swap shrubbot command +* tjw: http://linespeed.net/projects/etpub/ticket/359 used PerroGrande's fix + for the velcro grenade problem that showed up with kickable objects. +* matt: Added !nextmap shrubbot command +* matt: Added two new g_medics flags. 16 = no akimbos, 32 = pistol only +* tjw: Added ent->client->pers.etpubc which is an integer representing + the version of the connected client (if it's etpub). This can + be useful for enabling certain behaviours only if the client's + client supports it. +* tjw: committed PerroGrande's patch for custom obituaries. + http://linespeed.net/projects/etpub/ticket/364 +* tjw: committed PerroGrande's patch for g_killingspree + http://linespeed.net/projects/etpub/ticket/368 +* matt: committed PerroGrande's updated patch for killing spree + streak messages +* tjw: committed PerroGrande's tunable-weapon-damage patches + http://linespeed.net/projects/etpub/ticket/372 +* tjw: disabled g_dropAmmo/g_dropHealth during warmup + http://linespeed.net/projects/etpub/ticket/374 +* tjw: referee's can no longer be complained against + http://linespeed.net/projects/etpub/ticket/362 +* tjw: added g_cmdTimeRestriction cvar (see docs) + http://linespeed.net/projects/etpub/ticket/374 +* matt: added team_maxMedics, Engineers, FieldOps and CovertOps + for limiting classes, based on Azyu's sample code on SD forums +* tjw: players can no longer /playdead when they have a view changing + weapon like a scope or a set heavy weapon. +* perro: added g_staminaRecharge which can be used to tweak the rate at which + players rebuild stamina. Implemented g_misc 16 which disables jumping + when stamina falls below approx 17%. Client update required for these + to be effective. + http://linespeed.net/projects/etpub/ticket/355 +* tjw: copied etpubc storage from client->pers to client->pmext so it can be + used in pmove. +* tjw: removed my overzealous version detection for PM_JUMP_STAMINA :) +* tjw: added g_misc 32 flag (see docs) +* tjw: improved version detection through the use of the ConfigString + CS_ETPUBINFO. In order to protect the already crowded + CS_SERVERINFO configstring, add cvars to this instead of using + CVAR_SERVERINFO. To do this you will need to add your cvar to + G_IsEtpubinfoCvar() and G_UpdateEtpubinfo() in g_main.c and also + to CG_ParseEtpubinfo() in cg_servercmds.c. I've already done + this with g_misc, g_doubleJumpHeight, and g_staminaRecharge. +* tjw: renamed cvar min_airstriketime to g_minAirstrikeTime +* tjw: renamed cvar min_artytime to g_minArtyTime +* tjw: renamed cvar b_realhead to g_realHead, also made it default to 1 +* tjw: removed g_cmdTimeRestriction. The normal behaviour of the client + is to throw various commands at the server in fast succession. + It was becoming very hackish allowing some commands to come in fast + and some not. I think it's best to just trust the game engine's + built in rate limiting. (a.k.a if it ain't broke don't fix it). +* perro: changed g_staminarecharge to be a floating point multiplier rather than + an offset. +* matt: Fixed typo in team_max checks +* tjw: File-based XPSave replacing cvar based XPSave. This adds two new + cvars: g_XPSaveFile and g_XPSaveMaxAge. Up to 32768 records can + be saved. If you're running with the g_XPSave 4 flag, you will + probably want to tune g_XPSaveMaxAge (default is 1 week). +* perro: Initial G_Damage code re-work to allow for Shrub-style "reflecting damage". + Removed hardwired "headshot = 50". Replaced with g_dmgHeadShot cvar that can + work in conjunction with tunable weapons. + Removed "nade-boosting" exploit that was present when FF was off. + Removed blocks of code that had been commented-out to make G_Damage + easier to read and understand. + Added g_dmg cvar which will be used in some more optional G_Damage + features/changes that I'm working on. +* matt: updated team_max checks so that it now also checks when initially + joining a team instead of only when switching classes within same + team +* perro: Added g_reflectfriendlyfire [float] cvar that allows admin to set + whether friendly fire reflects back to the player who did the damage. + Acts as a multiplier to damage. +* perro: Added #defines for future use with g_dmg cvar +* perro: Added code to handle three experimental g_dmg settings + Removed unnecessary floating-point computations in g_weapon.c +* perro: Added g_killingSpreePos cvar to control where killing spree messages + are displayed on the screen. +* tjw: cleaned up kill spree code. +* perro: turned off reflecting damage for landmines. +* tjw: fixed a bug with new xpsave and limited lives +* tjw: hopefully fixed the bug that keeps XPSave from loading stored XP + if cl_guid has not been set yet at the time of initial connect. +* perro: remove anti-landmine hack from reflecting damage. + replaced with a bitmask cvar that allows admins to select which + categories of weapons will reflect. +* perro: updated commented server.cfg to show g_reflectFFWeapons bitmask values. +* perro: actually removed the anti-landmine hack this time... +* perro: added three new g_dmg bitmasks, tweaked g_dmg 4 downward for balance. +* tjw: created a new cvar g_coverts and moved g_dmg 64 flag to g_coverts 1 +* perro: fixed small typo +* perro: corrected minor problem introduced by consolidating killing spree + into one function. It was creating sprees where sprees should not + have been (a suicide, for example, created a one-kill spree). + Corrected this problem and prevented /kill and team switch from + ending sprees and creating death sprees. +* perro: updated killing spree code to allow customizable messages. Docs to + follow. +* perro: Implemented g_dmgFlamer. + Removed brain-damaged g_dmg 8 function and replaced with tjw's + g_dmgHeadShotRatio suggestion. + Re-named g_dmgHeadshot to g_dmgHeadShotMin for clarity. +* tjw: Q_StrReplace() is now easier to use +* tjw: Added [a] for g_killingSpreeMsg_end and g_killingSpreeMsg_tk +* perro: Changed custom obits to take advantage of new parsing capabilities. + Updated docs accordingly. +* perro: Fixed uniform stealing bug. Covies can no longer steal opposition + uniforms by stealing unis from covies on their own team. + Added check for BODY_TEAM(ent) > 2 +* gabriel: Fixed buggy party panzers, now they fire correctly in all directions. +* perro: Fixed Medic-with-Panzer bug. +* gabriel: Added g_panzersVulnerable and g_panzersGravity. Renamed + g_partyPanzersSpeed to g_panzersSpeed and the setting now applies to + both normal and party panzers. +* perro: admins can now define any level of killing spree "levels" that they want + undefined levels will use g_killingspreed_default as the message. +* perro: added g_medics 64 bitflag to provide an alternative to medic tk/revive + this option allows medics to use syringes, under certain conditions, + to provide healing to living teammates. +* perro: killing sprees were counting tk's toward killing spree + added OnSameTeam() check to prevent this +* perro: reflected friendlyfire was insta-gibbing players if they took + enough damage to die. Fixed. +* tjw: dropped NO_FPHEX #ifdef in favor of always using the + non floating point hex notation for Zinx's realhead code. This + was done for compiler compatability only. +* tjw: replaced g_XPSaveMaxAge with three seperate cvars: + g_XPSaveMaxAge_xp + g_XPSaveMaxAge_mute + g_XPSaveMaxAge_killrating + These control how long to keep each these three various long + term storage values. +* tjw: changed default for g_ATB_rating to 3 (use killRating) +* tjw: changed color for default kill spree messages to ^8 + to be consistent and neutral of other meaningful chat colors. +* tjw: added g_shortcuts cvar (see docs) +* tjw: fixed a bug that caused !unmute to fail for someone who was + muted by XPSave. +* tjw: added classnames to all gentities to make debugging G_Spawn() + crashes easier. +* tjw: restricted weapon fire when the game engine starts running out of + game entities to prevent "G_Spawn: no free entities" crashes. +* tjw: prevented MatchToken crashes when parsing badly formatted + g_shrubbot or g_XPSaveFile files. +* perro: Added new g_weapons bitmask (1024). + This optional bitmask places a hitbox around mortar rounds. + When this bit is set, "horizontal mortaring" through windows + and slits becomes very difficult, or impossible, depending on + the size of the opening. +* tjw: XPSave will now only write relevant data to the file to keep the + file size and parsing time down. Also fixed a but that allowed + players to reset their killrating by disconnecting when their score + was 0xp. +* perro: Added cvars and code to allow separate tuning of damage and damage + radius for exploding weapons (including panzers which were previously + hardwired). Fixed incorrect handling of tunable landmine damage. + MAP_MORTAR will return traditional damage value (250) instead of + incorrectly matching tunable grenade launcher damage. + Docs to follow for new cvars. +* tjw: made gentities checking more strict (fun_beach causing "G_Spawn: + no free entities" crash) +* tjw: imported g_weapons, g_medics, and g_coverts into client space to + aid in prediction and add new future features. +* tjw: I may have fixed the multiple helmet bug caused by g_weapons 32 +* tjw: clearxp should now work for connecting clients who were given XP + by XPSave as well. +* josh: Added g_playerRating and most of its implementation. This will track + how valuable a player is based on how even that player wins against + teams that are good. It can be used to shuffle and for ATB as well. + player rating shuffle will override kill rating shuffle. player rating + will only be calculated if g_playerRating_minplayers have played in + the map. +* josh: Made it so ATB by kill rating works as long as any kill rating options + are enabled, since it will be calculated. +* tjw: added g_shuffle_rating cvar (see docs) +* tjw: g_XPSaveMaxAge has been re-added. It will be used in place of + g_XPSaveMaxAge_killrating and g_XPSaveMaxAge_mute and the default + maximum age for all things [xpsave] stores. +* tjw: added [mapstat] element to the xpsave.cfg file so map w/l ratio will + be available to playerRating. +* tjw: xpsave will only update [mapstat] records if there are + g_playerRating_minplayers clients are playing. +* josh: Player rating now takes the current map into account +* josh: Moved player rating to LogExit so it's calculated before the message +* josh: added g_teamForceBalance_playerrating: only allows a disparity of two + standard deviations between team ratings (200 rating points). +* perro: Fixed some minor problems with reflected fire. With ff-off, shooting at + limbo'ed teammates does not damage you. Added new MOD to support + reflected FF. +* tjw: implemented g_coverts 2 and 4 flags (see docs) +* forty: sigsegv stack traces on Linux. +* forty: updated vcproj files to include g_crash.c,cg_hud.c,g_xpsave.c/h +* perro: added g_friendlyFireOpts cvar. + g_friendlyFireOpts can be used to change the behavior of certain + friendly fire events. +* perro: added g_friendlyfireOpts bitmask to prevent teammates (other than engies) + from even triggering landmines from their teammates +* tjw: added shufflenorestart vote and vote_allow_shufflenorestart cvar. +* perro: minor change to the VS project file so that MS Visual Studio + isn't quite so whiney during compile +* tjw: turned of g_enforcemaxlives by default. it uses IP bans and xpsave + can be used instead to keep track of lives between connects. +* tjw: added readxp and writexp server console commands. readxp is + g_tyranny protected. +* josh: Added ratingsinfo server command. +* josh: Fixed a bug in g_teamForceBalance_playerrating. Now it will not allow + any player to join a team with a > 75% chance of winning in general. +* perro: Added cvars to allow tuning of damage and damage radius for artillery + and airstrikes. Docs to follow. +* tjw: added name parameter to [xpsave] element in xpsave.cfg format. +* josh: made g_teamForceBalance_playerrating override + g_teamForceBalance to prevent teamjoin deadlocks. +* gabriel: Added g_medics flag 128: disable medic health regeneration +* perro: added optional g_dmg 8 bitmask which includes a simple + bullet falloff computation based on weapon type and characteristics. + Adjusted spread for FG42 when g_dmg 32 is set. +* gabriel: Separated medic health regenerate rate adjustment into its own setting, + g_medicHealthRegen, took out the regeneration rate values from g_medics, + and added a couple more options for the sake of completeness. +* josh: Changed favored team max probability on adaptive balancing to 70%. +* josh: Mixed the map and playerrating probabilities in a more stable and + readable way. +* josh: Added team ratings info to the end of !listteams. +* tjw: added g_XPDecay and g_XPDecayRate cvars (see docs) +* perro: Added experimental damage-based XP. Added two cvars to support this: + g_dmgXP and g_dmgXPLevel (see docs). +* perro: reduced some of the minimums and defaults for damage-based xp. +* josh: modified winning probability to sum to one +* tjw: fixed g_XPDecay so that it will decay past the set skillPoints for + each level-up. Note that this currently makes the scripting play + the "Congratulations on your promotion [Rank]" when the player is + actually being demoted which is kind of funny, but should probably + be turned off if possible. +* perro: added et-pro-style damage XP option. Changed cvars from + g_dmgXP and g_dmgXPLevel to: + g_damageXP and g_damageXPLevel +* tjw: added g_XPDecayFloor cvar (see docs) +* tjw: added g_XPDecay 32 flag (see docs) +* tjw; writexp command will now update the xpsave information of all of + currently connected players. +* tjw: added !resetmyxp shrubbot command. Also fixed the !resetxp command + so that it didn't allow players to keep their skill points, rank, + and level specific weapons. +* tjw: added g_maxXP cvar (see docs) +* josh: Changed g_activeTeamBalance to g_ATB_diff, and added g_ATB + (see docs) +* josh: Added g_ATB 2 which uses playerrating to balance teams. Seems to + work well so far. +* tjw: rewrote g_dyno 1 so that checking for sudden death overtime is done + with the actualy scripting engine. this is probably buggy but it + works on battery anyway. +* tjw: implemented a workaround for mapscripts such as fueldump's that + incorrectly put a "wait" before "wm_endround". This was causing + the timelimit to be hit if the objective exploded in sudden death + incorrectly giving the defending team victory. +* matt: added team lock status to !listteams +* josh: g_ATB 2 now allows swapping with g_ATB_swap. Also, skill level in + player rating is now twice as important as map difficulty. +* tjw: may have fixed a g_shortcuts crash related to players having + shortcuts in their name. +* tjw: improved the "team" command so that it bails out if the selected + class or weapon are not available due to the team_max______ cvars. + also it will use latched weapons if no weapons were provided as + parameters. +* perro: adjusted g_damageXP 1 settings to grant damage XP for kill shots, too. + cleaned-up the damageXP code. + fixed typo in g_main.c that was preventing linking +* josh: Fixed a min players playerrating bug and added sanity checking to + mapPad. g_playerRating_mapPad allows you to add wins to the maps to + stabilize the means early on. +* forty: modernized the linux stack trace code, handles more errors (SIGILL, + SIGFPE, SIGBUS) +* perro: fixed crash bug with G_DamageXP set and clients falling to their death. + also fixed several other non-reported bugs with G_DamageXP +* kw: bugfix: players could get in a tank while looking through a sniper scope. +* kw: most servercommands now work on non-dedicated servers too. +* tjw: added some glibc #ifdefs for glibc 2.1.3 compatability in g_crash.c +* tjw: added skill_weight and map_weight to [mapstat] in xpsave file +* kw: bugfix: "Reloading" the knife let you lose all your knives. + bugfix: double attack sounds when throwing knives was off or empty clip. + bugfix: throwing knives didn't play the correct sound. +* josh: bugfix: Map padding sanity check resulted in garbage for map pad +* josh: map padding now falls off as it is replaced with real matches. +* josh: map padding defaults to 50 per team. Disappears after 100 games. +* josh: skill and map weights now start and 0.5 and adapt. Changed to start + at 0.5 since the map padding will ofset any early imbalance. +* josh: "cleaned up" ratings code. made ratings updates more accurate. +* tjw: g_teamForceBalance_playerrating no longer requires g_teamForceBalance + to be enabled (which it overrides anyway). +* josh: Increased player award to reflect the new attenuation. Increased + weight update learning rate to adapt fast. The weight update LR + doesn't really matter in this case. Too high or too low will make + it adapt slower, but not incorrectly. +* perro: reduced size of hitboxes on kickables to further reduce "velcro" effect + hitboxes are now only drawn if the kickables cvar is actually non-zero +* tjw: g_ATB 2 will now warn players they are about to be moved 10 seconds + before the switch. +* tjw: ATB will not switch players who have a disguise or who are carrying + an objective +* tjw: ATB will not switch any players if any team has two players who are + out of lives on limited lives servers. +* perro: prevented arty/air/grenade/etc damage from players who have disconnected + or dropped to spec. mode. + +* tjw: ATB will not switch any players if there's a dynamite plant ticking + that could end the game. +* tjw: added 64 and 128 flags to g_XPDecay (see docs) +* tjw: I added the raw netname to shrubbot.cfg and xpsave.cfg instead of + the "Sanitized" version. This has been requested by those who + wish to see colors and case in their parsing scripts. Also fixed + a bug with !listplayers that could screw up columns if a level + name had non alphanumerics in it. +* tjw: ATB will not switch any players if there are less than 5 mins left + in the match. +* josh: Changed my mind about some parts of the ratings for now. Needs more + work to take it to that level. Things scale as before now. +* perro: added g_coverts 8 which causes disguised covies to take half damage +* perro: added g_coverts 16 which causes disguised covies to be immune to + splash damage. +* perro: added g_coverts 64 which covers non-silenced weapons + cleaned-up the "lose your uniform" code +* tjw: g_coverts 32 will now allow coverts to keep their disguise even + if an enemy sees them firing a weapon. +* tjw: added g_coverts 128 flag that allows disguised coverts to hop on + emplaced guns without losing uniforms. firing emplaced weapons + will still lose uniforms unless the 64 flag is set. Also, because + of client side prediction, it will look like the uniform is lost + to the client until they detatch from the gun. +* tjw: fixed flickering health bar bug when looking at disguised coverts. +* tjw: added csinfo and csdump console commands for debugging the + MAX_GAMESTATE_CHARS client crash. Also added overflow protection + which might be more trouble than it's worth. +* tjw: I'm pretty sure I've tracked the MAX_GAMESTATE_CHARS client crashes + to the the initial population of SERVERINFO cvars that I added + to prevent a server crash mid-game on servers with lots of "sets" + cvars). I replaced this populating with checking. +* josh: Changed default g_teamForceBalance_playerrating to 0 and recommended + 60. People probably shouldn't start with this on. +* josh: bugfix: Changed PMF_DOUBLEJUMPING bitflag from 65536 to 128 since + only 16-bits are sent over to the client. This fixes a client bug, + since it is in bg, but is compiled into the server as well. Thanks + to Zozz for finding this. diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/CodingStyle.txt etpub/CodingStyle.txt --- et260/CodingStyle.txt 1969-12-31 18:00:00.000000000 -0600 +++ etpub/CodingStyle.txt 2005-09-07 19:57:55.000000000 -0500 @@ -0,0 +1,148 @@ + + etpub Coding Style + Stolen From: Linux kernel coding style + +I've copied the Chapters from the Linux kernel CodingStyle document that +should apply to future changes to etpub. These are Chapters 2, 3, 5, +and 7. The original can be found here: + +http://lxr.linux.no/source/Documentation/CodingStyle + +(Last updated on 16 February 2004 by a community effort on LKML) + +I've also added a Chapter 8 that is specific for etpub. + +These guidelines will not be strictly enforced, but you will make tjw angry +if you don't at least try to follow Chapter 2 and Chapter 8. + + --- + + Chapter 2: Breaking long lines and strings + +Coding style is all about readability and maintainability using commonly +available tools. + +The limit on the length of lines is 80 columns and this is a hard limit. + +Statements longer than 80 columns will be broken into sensible chunks. +Descendants are always substantially shorter than the parent and are placed +substantially to the right. The same applies to function headers with a long +argument list. Long strings are as well broken into shorter strings. + +void fun(int a, int b, int c) +{ + if (condition) + printk(KERN_WARNING "Warning this is a long printk with " + "3 parameters a: %u b: %u " + "c: %u \n", a, b, c); + else + next_statement; +} + + Chapter 3: Placing Braces + +The other issue that always comes up in C styling is the placement of +braces. Unlike the indent size, there are few technical reasons to +choose one placement strategy over the other, but the preferred way, as +shown to us by the prophets Kernighan and Ritchie, is to put the opening +brace last on the line, and put the closing brace first, thusly: + + if (x is true) { + we do y + } + +However, there is one special case, namely functions: they have the +opening brace at the beginning of the next line, thus: + + int function(int x) + { + body of function + } + +Heretic people all over the world have claimed that this inconsistency +is ... well ... inconsistent, but all right-thinking people know that +(a) K&R are _right_ and (b) K&R are right. Besides, functions are +special anyway (you can't nest them in C). + +Note that the closing brace is empty on a line of its own, _except_ in +the cases where it is followed by a continuation of the same statement, +ie a "while" in a do-statement or an "else" in an if-statement, like +this: + + do { + body of do-loop + } while (condition); + +and + + if (x == y) { + .. + } else if (x > y) { + ... + } else { + .... + } + +Rationale: K&R. + +Also, note that this brace-placement also minimizes the number of empty +(or almost empty) lines, without any loss of readability. Thus, as the +supply of new-lines on your screen is not a renewable resource (think +25-line terminal screens here), you have more empty lines to put +comments on. + + Chapter 5: Functions + +Functions should be short and sweet, and do just one thing. They should +fit on one or two screenfuls of text (the ISO/ANSI screen size is 80x24, +as we all know), and do one thing and do that well. + +The maximum length of a function is inversely proportional to the +complexity and indentation level of that function. So, if you have a +conceptually simple function that is just one long (but simple) +case-statement, where you have to do lots of small things for a lot of +different cases, it's OK to have a longer function. + +However, if you have a complex function, and you suspect that a +less-than-gifted first-year high-school student might not even +understand what the function is all about, you should adhere to the +maximum limits all the more closely. Use helper functions with +descriptive names (you can ask the compiler to in-line them if you think +it's performance-critical, and it will probably do a better job of it +than you would have done). + +Another measure of the function is the number of local variables. They +shouldn't exceed 5-10, or you're doing something wrong. Re-think the +function, and split it into smaller pieces. A human brain can +generally easily keep track of about 7 different things, anything more +and it gets confused. You know you're brilliant, but maybe you'd like +to understand what you did 2 weeks from now. + + + Chapter 7: Commenting + +Comments are good, but there is also a danger of over-commenting. NEVER +try to explain HOW your code works in a comment: it's much better to +write the code so that the _working_ is obvious, and it's a waste of +time to explain badly written code. + +Generally, you want your comments to tell WHAT your code does, not HOW. +Also, try to avoid putting comments inside a function body: if the +function is so complex that you need to separately comment parts of it, +you should probably go back to chapter 5 for a while. You can make +small comments to note or warn about something particularly clever (or +ugly), but try to avoid excess. Instead, put the comments at the head +of the function, telling people what it does, and possibly WHY it does +it. + + + Chapter 8: Newline Characters + +All files should use DOS style newline characters "\r\n" and not UNIX style +newline characters "\n". Exception can be made for files that require UNIX +carriage returns (e.g. the first line of a perl script). + +Files that are added to the subversion repository will need: + "svn propset svn:eol-stule CRLF /path/to/file" +done to them before commiting. + diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/PackageMaker/README.txt etpub/PackageMaker/README.txt --- et260/PackageMaker/README.txt 1969-12-31 18:00:00.000000000 -0600 +++ etpub/PackageMaker/README.txt 2005-09-07 19:57:55.000000000 -0500 @@ -0,0 +1,41 @@ +This directory contains all the files necessary for generating a PackageMaker +installer for OSX. + +PackageMaker is included with the Xtools distribution and installed at +/Developer/Applications/Utilities/. To build etpub.pkg double-click on +the file etpub.pmsp in this directory. When PackageMaker starts, you will +need to change the path to the Package_Root and Resources folders to +the full path to those on your system. + +This installer does not actually contain any etpub files, it just +copies them from the relative path to etpub.pkg. The files +it copies are: + + qagame_mac.bundle + ../docs/Example/Commented/server.cfg + ../docs/Example/Commented/default.cfg + ../docs/Example/Commented/shrubbot.cfg + +Because of the way the qagame shared library is handled on OSX, the installer +uses some trickery in order to install etpub without breaking the default +qagame functionality. Here are the steps the installer uses: + 1) Make a copy of 'Wolfenstein ET.app' called 'etpub.app' + 2) Replace the qagame_mac.bundle in this copy with the etpub one. + 3) Create a symbolic link in the etpub directory called + 'Wolfenstein ET.app'. This link points at '../etpub.app'. + The name is important because the dedicated server binary + (rtcw_et_server) will only load the qagame from inside + 'Wolfenstein ET.app'. + +Once the above tricks have been completed, the user can start up a dedicated +etpub server by double-clicking the included "etpub_server" binary in +"/Applications/Wolfenstein ET". This binary does essentially the same thing +as the following shell script + +#!/bin/sh +cd /Applications/Wolfenstein\ ET/etpub/ && \ + ../rtcw_et_server +set fs_game etpub +exec server.cfg $@ + +The only benefit of the etpub_server binary is that it can be double-clicked +in the Finder, where a shell script cannot be. + diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/PackageMaker/Resources/InstallationCheck etpub/PackageMaker/Resources/InstallationCheck --- et260/PackageMaker/Resources/InstallationCheck 1969-12-31 18:00:00.000000000 -0600 +++ etpub/PackageMaker/Resources/InstallationCheck 2005-09-07 19:57:55.000000000 -0500 @@ -0,0 +1,12 @@ +#!/bin/sh + +if [ ! -d /Applications/Wolfenstein\ ET ]; then + exit 112 +fi + +cd $1 +cd ../ +if [ ! -d qagame_mac.bundle ]; then + exit 113 +fi +exit 0 diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/PackageMaker/Resources/InstallationCheck.strings etpub/PackageMaker/Resources/InstallationCheck.strings --- et260/PackageMaker/Resources/InstallationCheck.strings 1969-12-31 18:00:00.000000000 -0600 +++ etpub/PackageMaker/Resources/InstallationCheck.strings 2005-09-07 19:57:55.000000000 -0500 @@ -0,0 +1,4 @@ +"16" = "Wolfenstien ET does not appear to be installed."; +"17" = "Could not find qagame_mac.bundle. + +This installer must be run from it's original location inside the etpub distribution directory."; diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/PackageMaker/Resources/PreFlight etpub/PackageMaker/Resources/PreFlight --- et260/PackageMaker/Resources/PreFlight 1969-12-31 18:00:00.000000000 -0600 +++ etpub/PackageMaker/Resources/PreFlight 2005-09-07 19:57:55.000000000 -0500 @@ -0,0 +1,30 @@ +#!/bin/sh + +WET="/Applications/Wolfenstein ET" + +if [ ! -d "${WET}/etpub" ]; then + mkdir "${WET}/etpub" + (cd "${WET}/etpub" && ln -s ../etpub.app Wolfenstein\ ET.app) +fi + +if [ ! -d "${WET}/etpub.app" ]; then + cp -r "${WET}/Wolfenstein ET.app" "${WET}/etpub.app" +fi + +rm -r "${WET}/etpub.app/Contents/Resources/qagame_mac.bundle" + +cd $1 +cd ../ +cp -r qagame_mac.bundle "${WET}/etpub.app/Contents/Resources/" + +cd .. +if [ ! -f "${WET}/etpub/server.cfg" ]; then + cp docs/Example/Commented/server.cfg "${WET}/etpub/" +fi +if [ ! -f "${WET}/etpub/default.cfg" ]; then + cp docs/Example/Commented/default.cfg "${WET}/etpub/" +fi +if [ ! -f "${WET}/etpub/shrubbot.cfg" ]; then + cp docs/Example/Commented/shrubbot.cfg "${WET}/etpub/" +fi +exit 0 diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/PackageMaker/Resources/ReadMe.html etpub/PackageMaker/Resources/ReadMe.html --- et260/PackageMaker/Resources/ReadMe.html 1969-12-31 18:00:00.000000000 -0600 +++ etpub/PackageMaker/Resources/ReadMe.html 2005-09-07 19:57:55.000000000 -0500 @@ -0,0 +1,26 @@ +This installer will create the following in your "Wolfenstein ET" folder: +
+To remove etpub from your system, simply move these 3 things to the trash. +
+ ++This installer will also copy example .cfg files to the etpub directory if +they do not exist already. These files are heavily commented to aid in +configuration. You can edit them with a text editor such as TextEdit. +
+ diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/PackageMaker/Resources/Welcome.html etpub/PackageMaker/Resources/Welcome.html --- et260/PackageMaker/Resources/Welcome.html 1969-12-31 18:00:00.000000000 -0600 +++ etpub/PackageMaker/Resources/Welcome.html 2005-09-07 19:57:55.000000000 -0500 @@ -0,0 +1,22 @@ ++etpub is a modification for for the game Wolfenstein - Enemy Territory. +
+
+You can check for the latest version of etpub here:
+http://et.tjw.org/etpub/
+
+For more information about etpub visit:
+http://etpub.org
+
+In order for this installer to function, you must have Wolfenstein ET installed +at: +
/Applications/Wolfenstein ET/ ++ +
You must also be sure to run this installer from it's original location in +the mac folder of the etpub distribution folder.
+ + diff -urNbB --exclude='.*' --exclude='release*' --exclude='debug*' --exclude='*.so' --exclude='*~' --exclude='*.o' --exclude='*.os' --exclude='*.exe' --exclude=etpub_server --exclude='*.dll' --exclude='*.pmsp' --exclude='*.dblite' --exclude='*.pyc' --exclude=unix et260/PackageMaker/etpub_server.c etpub/PackageMaker/etpub_server.c --- et260/PackageMaker/etpub_server.c 1969-12-31 18:00:00.000000000 -0600 +++ etpub/PackageMaker/etpub_server.c 2005-09-07 19:57:55.000000000 -0500 @@ -0,0 +1,27 @@ +#include