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: +
+
etpub +
folder that is used to store etpub-specific configuration files (.cfg) and + custom ET packages (.pk3). +
etpub.app +
a copy of 'Wolfenstein ET.app' with etpub installed into it. +
etpub_server +
a program that starts 'rtcw_et_server' telling it to: +
    +
  1. Use 'etpub.app' instead of 'Wolfenstein ET.app' +
  2. Use fs_game 'etpub' instead of 'etmain' +
  3. exec server.cfg +
+
+ +

+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 +int main(int argc, char **argv) { + char *params[1024]; + char *etpub_param[5] = { + "+set", "fs_game", "etpub", + "+exec", "server.cfg" + }; + int i; + + params[0] = *argv; + + params[1] = etpub_param[0]; + params[2] = etpub_param[1]; + params[3] = etpub_param[2]; + params[4] = etpub_param[3]; + params[5] = etpub_param[4]; + + i = 6; + while(*++argv && i < 1024) { + params[i] = *argv; + i++; + } + + chdir("/Applications/Wolfenstein ET/etpub/"); + execv("/Applications/Wolfenstein ET/rtcw_et_server", params); + return 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/docs/Example/Commented/default.cfg etpub/docs/Example/Commented/default.cfg --- et260/docs/Example/Commented/default.cfg 1969-12-31 18:00:00.000000000 -0600 +++ etpub/docs/Example/Commented/default.cfg 2005-10-19 15:08:54.000000000 -0500 @@ -0,0 +1,196 @@ +// +// ETPub mod - Sample Default.cfg file +// +// Updated for ETPub 0.6.1 +// +// This file will be executed upon startup for every map. Create customized +// copies of this file to change settings on every map. You should make a +// copy of this file and name it .cfg. After that customize the +// settings below for the current map. +// +// Since ETPub mod always executes Default.cfg before executing +// .cfg, any settings in a .cfg file will override +// those of Default.cfg + +// ***************************************************************************** +// * General ET Settings (non-ETPub mod) *************************************** +// ***************************************************************************** + +// timelimit [float] +// Sets the time limit (in minutes) of the current round. This can be a +// floating point value, such as 15.5 which means 15 minutes, 30 seconds. +// [Default: Set by each map] +//set timelimit 25 + +// g_userAlliedRespawnTime [integer] +// Time (in seconds) betweed allied respawns +// [Default: Varies by map] +set g_userAlliedRespawnTime 15 + +// g_userAxisRespawnTime [integer] +// Time (in seconds) between axis respawns +// [Default: Varies by map] +set g_userAxisRespawnTime 15 + +// g_covertopschargetime [integer] +// Time (in milliseconds) that it takes a covert ops to fully recharge +// [Default: 30000] +set g_covertopschargetime 30000 + +// g_soldierchargetime [integer] +// Time (in milliseconds) it takes a soldier to fully recharge +// [Default: 20000] +set g_soldierchargetime 20000 + +// g_ltchargetime [integer] +// Time (in milliseconds) it takes a lieutenant to fully recharge +// [Default: 40000] +set g_ltchargetime 30000 + +// g_engineerchargetime [integer] +// Time (in milliseconds) it takes an engineer to fully recharge +// [Default: 30000] +set g_engineerchargetime 30000 + +// g_medicchargetime [integer] +// Time (in milliseconds) it takes a medic to fully recharge +// [Default: 45000] +set g_medicchargetime 45000 + +// ***************************************************************************** +// * ETPub Mod Settings ******************************************************** +// ***************************************************************************** + +// g_spawnInvul [integer] +// The number of seconds players will be invincible after they spawn. +// [Default: 3]. +set g_spawnInvul 3 + +// g_alliedSpawnInvul [integer] +// The number of seconds Allied players will be invincible after they spawn. +// This will override g_spawnInvul if not set to 0 +// [Default: 0]. +set g_alliedSpawnInvul 0 + +// g_axisSpawnInvul [integer] +// The number of seconds Axis players will be invincible after they spawn. +// This will override g_spawnInvul if not set to 0 +// [Default: 0]. +set g_axisSpawnInvul 0 + +// g_maxTeamLandmines [integer] +// Sets the maximum number of landmines a team can have planted at any given +// time. This value should be 0 or greater. +// [Default: 10] +set g_maxTeamLandmines 10 + +// team_maxPanzers [integer] +// Limits the number of Panzerfausts per team. (A value of -1 means no limit) +// [Default: -1] +set team_maxPanzers -1 + +// team_maxMortars [integer] +// Limits the number of mortars per team. (A value of -1 means no limit) +// [Default: -1] +set team_maxMortars -1 + +// team_maxFlamers [integer] +// Limits the number of flamethrowers per team. (A value of -1 means no limit) +// [Default: -1] +set team_maxFlamers -1 + +// team_maxMG42s [integer] +// Limits the number of mobile MG's per team. (A value of -1 means no limit) +// [Default: -1] +set team_maxMG42s -1 + +// team_maxGrenLaunchers [integer] +// Limits the number of grenade launching engineer rifles per team. +// (A value of -1 means no limit) +// [Default: -1] +set team_maxGrenLaunchers -1 + +// g_misc [integer] +// This is a bitflag cvar that currently supports the following flags: +// 1 - Enable double jump. +// 2 - Enable binoc master competition. Requires g_weapons 64 to be set. +// (etpubclient >= 20050927 required) +// 8 - Enable killing spree streaks messages (see g_killingSpree) +// 16 - Prohibit jumping if stamina is low (requires etpub client) +// 32 - Players cannot put their heads into other solids when prone/playdead. +// This is the behaviour of etpub 0.5.x. (etpubclient required). If using +// etpubclient before 20050927, this must be enabled. +// [Default: 0] +set g_misc 0 + +// g_moverScale [float] +// Multiply the speed of movers (e.g. tanks) by float. +// [Default: 1.0] +set g_moverScale 1.0 + +// g_ammoCabinetTime [integer] +// The time between ammo cabinet regenerations in milliseconds. +// [Default: 60000] +set g_ammoCabinetTime 60000 + +// g_healthCabinetTime [integer] +// The time between health cabinet regenerations in milliseconds. +// [Default: 10000] +set g_healthCabinetTime 10000 + +// g_doubleJumpHeight [float] +// Adjusts the height of the second jump in a double jump. This value is a +// multiplier to the default jump velocity. The greater g_doubleJumpHeight is, +// the greater the height of the second jump. This setting has no effect if +// double jump is disabled in g_misc. The default value of 1.4 matches shrub's +// double jump. +// [Default: 1.4] +set g_doubleJumpHeight 1.4 + +// g_minAirstrikeTime [integer] +// The time (in seconds) that must elapse between airstrikes PER TEAM. +// [Default: 10] +set g_minAirstrikeTime 10 + +// g_minArtyTime [integer] +// The time (in seconds) that must elapse between airtillery strikes PER TEAM. +// Attempts to do airstrike before the timeout will get "Insuffient fire +// support" message. +// [Default: 10] +set g_minArtyTime 10 + +// g_partyPanzersEnabled [0|1] +// Set to 1 to enable party panzers +// [Default: 0] +set g_partyPanzersEnabled 0 + +// g_partyPanzersPattern [string] +// The pattern of the drawn panzers. This is a string of "bits" that represents +// where the panzers shots are aimed. The default value of +// "10001;01010;00100;01010;10001" means there are five rows of panzers fired +// (rows are separated by the semicolon (;) character), and an X pattern is +// drawn as "1" represents a panzer and "0" represents a space without a panzer. +// There is no limit to the number of panzers that can be shot, although too +// many panzers will cause extreme lag on the server. +// [Default: "10001;01010;00100;01010;10001"] +set g_partyPanzersPattern "10001;01010;00100;01010;10001" + +// g_partyPanzersDamageMode [integer] +// Damage caused by the party panzers. +// Available options are: +// 0 - No damage. +// 1 - Normal damage. Each panzer does normal damage (see g_dmgPanzer). +// 2 - Proportional. Each panzer does damage proportional to the number fired +// panzers. For example, if your pattern has 10 panzers, then each panzer +// will do 1/10 the damage that a normal panzer shot does (see g_dmgPanzer). +// [Default: 2] +set g_partyPanzersDamageMode 2 + +// g_staminaRecharge [float] +// Multiplies the rate at which stamina is rebuilt. Setting this +// value to zero will cause players to not regain any stamina once it is used +// except through the use of adrenalin. +// Setting this value is recommended only if you have etpub client versions +// 20050927 or later. +// [Default: 1.0] +set g_staminaRecharge 1.0 \ No newline at end of file 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/docs/Example/Commented/server.cfg etpub/docs/Example/Commented/server.cfg --- et260/docs/Example/Commented/server.cfg 1969-12-31 18:00:00.000000000 -0600 +++ etpub/docs/Example/Commented/server.cfg 2005-11-03 09:34:59.000000000 -0600 @@ -0,0 +1,1890 @@ +// +// ETPub mod - Sample Server.cfg file +// +// Updated for ETPub 0.6.1 +// +// NOTE: On ET versions older than 2.60 the .cfg file size limit may not allow +// you to use this file as a configuration. If you have ET older than 2.60 and +// experience problems using this config, you shouls strip out the comments or +// use the uncommented sample .cfg file. + + +// ***************************************************************************** +// * General ET Settings (non-ETPub mod) *************************************** +// ***************************************************************************** + +// NOTE: It is recommended you set these three variables via the command line +// instead of through this file. If you run into problems starting your server, +// you should move these commands to your command line before tyring anything +// else. Your command line arguments might look like this (it is all one line, +// of course): +// +// +set fs_game etpub +set dedicated 2 +set net_ip 222.111.223.224 +// +set net_port 27960 +exec config.cfg + +// dedicated [integer] +// Strongly recommend you move this parameter to the command line as described +// above! +// 1 - Dedicated server for lan +// 2 - Dedicated server for internet +// [Default: 2] +//set dedicated 2 + +// net_ip [string] +// Set the IP address ET server uses +// Strongly recommend you move this parameter to the command line as described +// above! +// [Default: "localhost"] +//set net_ip "localhost" + +// net_port [integer] +// Set port number ET server uses +// Strongly recommend you move this parameter to the command line as described +// above! +// [Default: 27960] +//set net_port 27960 + +// PASSWORDS & CLIENTS + +// sv_maxclients [integer] +// Number of players, including private slots +// [Default: 20] +set sv_maxclients 20 + +// g_password [string] +// Any player joining will have to enter this password. Leave blank for no +// password +// [Default: ""] +set g_password "" + +// sv_privateclients [integer] +// If set > 0, then this number of client slots will be reserved for connections +// [Default: 0] +set sv_privateclients 0 + +// sv_privatepassword [string] +// Password to use for private client slots (sv_privateclients) +// [Default: ""] +set sv_privatepassword "" + +// rconpassword [string] +// Remote console access password +// [Default: ""] +set rconpassword "" + +// refereePassword [string] +// Referee password +// [Default: ""] +set refereePassword "" + +// DL, RATE + +// sv_maxRate [integer] +// The maximum bandwidth to use per connected player in (bytes per second). +// The higher the sv_maxrate, the better the gameplay, but more bandwidth is +// used. 10000 is probably the absolute minimum that should be used, but 13000 +// and above makes for much better gameplay. The maximum value for this setting +// is 25000. +// [Default: 0] +set sv_maxRate 13000 + +// sv_dl_maxRate [integer] +// The rate in bits per second for in-game file downloads. The max value is +// 42000. This can make for very slow downloads (42000 bits per second equals +// 5.2 KB/s). If you are hosting a server with custom maps, it is recommended +// you switch to HTTP or FTP downloads. +// [Default: 42000] +set sv_dl_maxRate 42000 + +// sv_allowDownload [0|1] +// Toggle all downloads. 0 Means turn off all downloads, 1 means downloads are +// enabled. +// [Default: 1] +set sv_allowDownload 1 + +// sv_wwwDownload [0|1] +// Enable alternate/redirected download method (FTP or HTTP). 0 means disabled, +// 1 means enabled. For a very thorough explanation of alternate download +// configuration, visit the following web site: +// http://www.rtcw.jolt.co.uk/content/enemy_territory/server_guide/redirect_downloads.html +// [Default: 0] +set sv_wwwDownload 0 + +// sv_wwwBaseURL [string] +// Base URL for redirected downloads (eg: "http://www.myclan.com/", +// "ftp://ftp.myclan.com", or "ftp://username:password@ftp.myclan.com/etfiles/" +// [Default: ""] +set sv_wwwBaseURL "" + +// sv_wwwDlDisconnected [0|1] +// if 1, clients will download files while disconnected from the server. If 0, +// clients will stay connected to the ET server while downloading files. +// [Default: 0] +set sv_wwwDlDisconnected 0 + +// sv_wwwFallbackURL [string] +// URL to send the client to if the file download fails. +// [Default: ""] +set sv_wwwFallbackURL "" + +// sv_fullmsg [string] +// Server can give alternate messages to "server is full" by changing this cvar. +// This setting can also be configured to redirect a client to an alternate +// server by setting sv_fullmsg in the format "ET://host.to.redirect.to:port" +// [Default: "Server is full."] +set sv_fullmsg "Server is full." + +// MOTD ETC + +// sv_hostname [string] +// The name of your server as it will be displayed in the server listings. This +// setting should include any color markup you desire. +// [Default: "ETHost"] +set sv_hostname "ETHost" + +// server_motd0 [string] +// through +// server_motd5 [string] +// The message of the day. This is the block of text that appears on the bottom +// right hand corner between maps. If you leave any server_motd message blank, +// the following server_motd lines will not display. +// [Default server_motd0: " ^NEnemy Territory ^7MOTD " +// [Default (Others): ""] +set server_motd0 " ^NEnemy Territory ^7MOTD " +set server_motd1 "" +set server_motd2 "" +set server_motd3 "" +set server_motd4 "" +set server_motd5 "" + +// MISC SETTINGS + +// g_heavyWeaponRestriction [integer] +// Heavy weapon and artillery restrictions. For a thorough explanation of this +// setting, visit: +// http://www.rtcw.jolt.co.uk/content/enemy_territory/server_guide/weapons_restrictions.html +// [Default: 100] +set g_heavyWeaponRestriction 100 + +// g_antilag [0|1] +// Unlags players with slow pings +// [Default: 1] +set g_antilag 1 + +// g_altStopwatchMode [0|1] +// If enabled (value of 1), stopwatch mode runs in ABAB mode instead of ABBA. +// [Default: 0] +set g_altStopwatchMode 0 + +// g_autofireteams [0|1] +// If enabled, players will be automatically put into fireteams upon joining +// a game. +// [Default: 1] +set g_autofireteams 1 + +// g_complaintlimit [integer] +// A player will be kicked after this number of complaints. (A complaint occurrs +// when friendly fire is on, and a player kills a teammate. The killed teammate +// has a chance to file a complaint after the team kill) +// [Default: 6] +set g_complaintlimit 6 + +// g_ipcomplaintlimit [integer] +// Similar to g_complaintlimit, this setting is the number of complaints FROM +// DIFFERENT IP ADDRESSES after which the offending player is kicked. If the +// team-killing player kills many different teammates and they all file +// complaints, then this limit will be reached sooner than g_complaintlimit +// [Default: 3] +set g_ipcomplaintlimit 3 + +// g_fastres [0|1] +// If enabled, player is instantly active after being revived. +// [Default: 0] +set g_fastres 0 + +// g_friendlyFire [0|1] +// If enabled, players can shoot/harm their teammates. +// [Default: 1] +set g_friendlyFire 1 + +// g_gametype [integer] +// This should be set in the map rotation script. Sets the gametype: +// 2 - Objective +// 3 - Stopwatch +// 4 - Campaign +// 5 - LMS (Last Man Standing) +// [Default: 4] +//set g_gametype 4 + +// g_minGameClients [integer] +// The minimum number of players needed for a round to begin +// [Default: 8] +set g_minGameClients 8 + +// g_maxlives [integer] +// If set to a non-zero value, this is the maximum number of times a player can +// respawn. If set to zero, there is no limit. +// [Default: 0] +set g_maxlives 0 + +// g_alliedmaxlives [integer] +// The maximum number of lives for a player on the allies team. If set to a +// non-zero value, this value overrides the g_maxlives setting. +// [Default: 0] +set g_alliedmaxlives 0 + +// g_axismaxlives [integer] +// The maximum number of lives for a player on the axis team. If set to a +// non-zero value, this value overrides the g_maxlives setting. +// [Default: 0] +set g_axismaxlives 0 + +// g_teamforcebalance [0|1] +// If enabled, players cannot join a team with more players than the other team. +// [Default: 0] +set g_teamforcebalance 0 + +// g_noTeamSwitching [0|1] +// If enabled, prevents a player from switching teams. +// [Default: 0] +set g_noTeamSwitching 0 + +// g_voiceChatsAllowed [integer] +// Limits the number of vsays a player can say within 30 (or so) seconds of each +// other +// [Default: 4] +set g_voiceChatsAllowed 4 + +// g_doWarmup [0|1] +// Enable or disable the warmup before a match +// [Default: 0] +set g_doWarmup 0 + +// g_warmup [integer] +// Warmup time in seconds. +// [Default: 60] +set g_warmup 60 + +// sv_pure [0|1] +// Checks to make sure that client file match those of the server. This is a +// basic anti-cheat functionality. +// [Default: 1] +set sv_pure 1 + +// sv_minping [integer] +// Minimum ping (in milliseconds) a player must have to be able to connect to +// the server. A value of 0 means no limit. +// [Default: 0] +set sv_minping 0 + +// sv_maxping [integer] +// Maximum ping (in milliseconds) a player must have to be able to connect to +// the server. A value of 0 means no limit. +// [Default: 0] +set sv_maxping 0 + +// match_latejoin [0|1] +// If enabled, players can join a match after it has begun. +// [Default: 1] +set match_latejoin "1" + +// match_minplayers [integer] +// Minimum number of players to start a match +// [Default: 4] +set match_minplayers 4 + +// match_mutespecs [0|1] +// If enabled, spectators cannot talk while a match is taking place +// [Default: 0] +set match_mutespecs 0 + +// match_readypercent [integer] +// The percentage of players that must be ready before a match can begin +// [Default: 100] +set match_readypercent 100 + +// match_timeoutcount [integer] +// The numbers of non-referee players can pause a match in progress. +// [Default: 3] +set match_timeoutcount 3 + +// match_warmupDamage [0|1] +// Enables friendly fire during the warmup. +// [Default: 1] +set match_warmupDamage 1 + +// team_maxplayers [integer] +// The maximum number of players that can join each team. 0 means no limit. +// [Default: 0] +set team_maxplayers 0 + +// g_speed [integer] +// Speed of the players. +// [Default: 320] +set g_speed 320 + +// g_gravity [integer] +// Gravity in the game. +// [Default: 800] +set g_gravity 800 + +// g_knockback [integer] +// The amount of knockback experienced when a player is shot. +// [Default: 1000] +set g_knockback 1000 + +// g_inactivity [integer] +// The length of time (in seconds) a player must be in a team and idle in order +// to get auto-kicked. (0 = Infinite) +// [Default: 0] +set g_inactivity 0 + +// g_spectatorInactivity 0 +// The amount of time (in seconds) a spectator must be idle in order to get +// auto-kicked. (0 = Infinite) +// [Default: 0] +set g_spectatorInactivity 0 + +// VOTING + +// g_allowVote [0|1] +// Enables players to call votes. +// [Default: 1] +set g_allowVote 1 + +// vote_limit [integer] +// Maximum number of votes per map. +// [Default: 5] +set vote_limit 5 + +// vote_percent [integer] +// Percent of all players that must vote yes for a vote to pass +// [Default: 50] +set vote_percent 50 + +// Allowed votes [0|1] +// [Default for vote_allow_referee, vote_allow_timelimit: 0] +// [Default for all others: 1] +set vote_allow_comp 1 +set vote_allow_gametype 1 +set vote_allow_kick 1 +set vote_allow_map 1 +set vote_allow_matchreset 1 +set vote_allow_mutespecs 1 +set vote_allow_nextmap 1 +set vote_allow_pub 1 +set vote_allow_referee 0 +set vote_allow_shuffleteamsxp 1 +set vote_allow_swapteams 1 +set vote_allow_friendlyfire 1 +set vote_allow_timelimit 0 +set vote_allow_warmupdamage 1 +set vote_allow_antilag 1 +set vote_allow_balancedteams 1 +set vote_allow_muting 1 + +// PUNKBUSTER + +// sv_punkbuster is a readonly variable. Use +set sv_punkbuster on command line +// or use the command pb_sv_enable in the console. +//pb_sv_enable + +//exec punkbuster.cfg // Punkbuster Settings + +// LOGGING + +// g_log [string] +// Filename of the server log file. "" disables logging to a log file +// [Default: "etserver.log"] +set g_log "etserver.log" + +// logfile [integer] +// Console logging (the console log is a different file than the server log +// file specified by the g_log setting). If enabled, the file will be called +// etconsole.log. These are the possible values: +// 0 - Console logging disabled +// 1 - Enabled +// 2 - Enabled and synchronized (recommended setting if you use etadmin_mod) +// [Default: 0] +set logfile 0 + +// MASTER SERVERS + +// Unless you know what you are doing, do not change these. These master server +// settings allow for maximum visibility of your new server +set sv_master1 "master3.idsoftware.com" +set sv_master2 "master0.gamespy.com" +set sv_master3 "wolfmaster.idsoftware.com" +set sv_master4 "clanservers.net" +set sv_master5 "etmaster.idsoftware.com" + +// ***************************************************************************** +// * ETPub Mod Settings ******************************************************** +// ***************************************************************************** + +// g_shrubbot [filename] +// This should be set to the name of your shrubbot.cfg file if you want to +// enable shrubbot. See shrubbot documentation for more information about this +// file. +// Shrubbot functionality depends on punkbuster's GUID, so don't turn this on +// unless you have punkbuster enabled on your server. +// NOTE: If g_shrubbot is set to "", then NONE OF THE ! COMMANDS WILL WORK! +// [Default: ""] +set g_shrubbot "" + +// g_logAdmin [filename] +// The name of the file that all shrubbot commands will be logged to. +// [Default: ""] +set g_logAdmin "" + +// g_hitsounds [integer] +// This is a bitflag cvar that supports the following values +// 1 - Enables hitsounds +// 2 - Disables hitsounds when shooting wounded players. +// 4 - Disable the headshot sounds when shooting wounded players in the head. +// Default hitsound will be used in it's place unless the 2 flag is set. +// 8 - Disable the "hold your fire" sound that would normally be played when +// shooting a teammate for the first time. +// 16 - Disable hitsounds from poison damage. +// +// A client will hear a sound when they damage another player. The sounds it +// uses are ones that are included in the pak0.pk3 file so it does not require +// additonal file downloads to use this mod. +// +// A client can disable hitsounds by running +// /setu cg_hitsounds 0 +// before connecting to the server, or toggle hitsounds on the fly with the +// /hitsounds command. +// [Default: 0] +set g_hitsounds 0 + +// The hitsounds used are configurable with the following cvars: + +// g_hitsound_default [filename] +// Hitsound for body shot. +// [Default: "sound/weapons/impact/flesh2.wav"] +set g_hitsound_default "sound/weapons/impact/flesh2.wav" + +// g_hitsound_helmet [filename] +// Hitsound for hitting a player's helmet +// [Default: "sound/weapons/impact/metal4.wav"] +set g_hitsound_helmet "sound/weapons/impact/metal4.wav" + +// g_hitsound_head [filename] +// Hitsound for headshots +// [Default: "sound/weapons/impact/flesh4.wav"] +set g_hitsound_head "sound/weapons/impact/flesh4.wav" + +// g_hitsound_team_warn_axis [filename] +// Hitshound +// [Default: "sound/chat/axis/26a.wav"] +set g_hitsound_team_warn_axis "sound/chat/axis/26a.wav" + +// g_hitsound_team_warn_allies [filename] +// Hitsound +// [Default: "sound/chat/allies/26a.wav"] +set g_hitsound_team_warn_allies "sound/chat/allies/26a.wav" + +// g_hitsound_team_helmet [filename] +// Hitsound +// [Default: "sound/weapons/impact/metal4.wav"] +set g_hitsound_team_helmet "sound/weapons/impact/metal4.wav" + +// g_hitsound_team_head [filename] +// Hitsound +// [Default: "sound/weapons/impact/flesh4.wav"] +set g_hitsound_team_head "sound/weapons/impact/flesh4.wav" + +// g_hitsound_team_default [filename] +// Hitsound +// [Default: "sound/weapons/impact/flesh2.wav"] +set g_hitsound_team_default "sound/weapons/impact/flesh2.wav" + +// g_shoveSound [string] +// The sound that a player emits when shoved. Set this to "" to disable it. +// [Default "sound/weapons/grenade/gren_throw.wav"] +set g_shoveSound "sound/weapons/grenade/gren_throw.wav" + +// g_poisonSound [string] +// The sound that a poisoned player emits every second. Set this to "" to +// disable it. +// [Default: "sound/player/gurp2.wav"] +set g_poisonSound "sound/player/gurp2.wav" + +// g_fightSound [string] +// The sound that will play at the end of warmup or when the match is unpaused. +// Example +// set g_fightSound "sound/world/rooster.wav" +// Set this to "" to disable it. +// [Default: ""] +set g_fightSound "" + +// g_playDead [0|1] +// Allows players use the 'playdead' command and their character will act like +// it is dead until the playdead command is issued again (or they really die). +// [Default: 0] +set g_playDead 0 + +// g_shove [integer] +// Allows players to push other players with the "use" key. The integer adjusts +// the amount of force players shove with. 80 seems fair. +// NOTE: starting with etpub 0.5.1, this number has been changed to (hopefully) +// be more compatible with the value used in shrubet. You will need to turn down +// this value greatly when upgrading from earlier versions of etpub. +// [Defeault: 0] +set g_shove 0 + +// g_shoveNoZ [0|1] +// Set this to 1 if you want to disable shove in the up/down direction (a.k.a +// "boosting"). +// [Default: 0] +set g_shoveNoZ 0 + +// g_dragCorpse [0|1] +// Allows players do drag wounded players with the use key when moving backward +// slowly. Works best when crouching or prone. +// [Default: 0] +set g_dragCorpse 0 + +// g_classChange [0|1] +// Allows players to take the class of a gibbed teammate temporarily similarly +// to how a covert steals a uniform. Class changing does not latch, so the +// original class the player had will be restored on respawn. +// [Default: 0] +set g_classChange 0 + +// g_forceLimboHealth [0|1] +// If set to 0 it takes about 3 shots to gib a wounded player, if set to 1 it +// takes about 5. +// [Default: 1] +set g_forceLimboHealth 1 + +// g_privateMessages [0|1] +// If set to 1, players can send private messages to one another with the m +// command. Example: +// /m tjw you totally suck! +// Players can also type '/m tjw you totally suck' in the 'chat' dialog box and +// it will be recognized as a private message. +// Starting in 0.2.1 players can also type '/m tjw you totally suck' in the +// 'chat' dialog box and it will be recognized as a private message. +// Starting in 0.5.1, clients can reject private message from other individual +// clients with the /ignore client command. +// [Default: 0] +set g_privateMessages 0 + +// g_XPSave [bitmask] +// This is a bitflag with the following values (Add the desired values up to set +// your options): +// 1 - Store xp when a client disconnects +// 2 - Don't reset xp to the pre-map start values on a map restart, shuffle, +// etc. +// 4 - Never reset xp (ever). +// 8 - Force the disconnection of clients with the same GUID as the connecting +// client. This is useful in saving the stored XP of players with unreliable +// network connections since they should still get their stored XP even if +// reconnecting immediately with a new IP address. This feature is enabled +// by default unless you have sv_wwwDlDisconnected enabled. +// sv_wwwDlDisconnected seems to interfere with this feature, so do not +// enable this flag if you change pk3's on your server often because stored +// XP will be lost over disconencted downloads. +// +// Storing XP on disconnect depends on the punkbuster guid, so don't turn this +// on unless you have punkbuster enabled on your server. +// [Default: 0] +set g_XPSave 0 + +// g_XPSaveFile [string] +// Set this to the filename you want XPSave to store data in. This file will +// be relative to your fs_game directory (like g_shrubbot). +// [Default: "xpsave.cfg"] +set g_XPSaveFile "xpsave.cfg" + +// g_XPSaveMaxAge_xp [integer] +// The number of seconds that must pass without a connection from this +// player before XPSave forgets his/her xp skills. +// +// NOTE: if g_XPSaveMaxAge is less than g_XPSaveMaxAge_xp, g_XPSaveMaxAge +// will be used! +// +// [Default: 86400] (a.k.a 1 day) +set g_XPSaveMaxAge_xp 86400 + +// g_XPSaveMaxAge [integer] +// The number of seconds that must pass without a connection from this +// player before XPSave forgets his/her xp/killrating/playerrating/mute status. +// +// [Default: 604800] (a.k.a 1 week) +set g_XPSaveMaxAge 604800 + +// g_XPDecay [integer] +// This is a bitmask that controls the XP decay feature. The following bitflags +// are supported: +// 1 - Enable XP Decay +// 2 - Do not decay a player's XP when they are disconnected from the server. +// 4 - Do not decay a player's XP for the class they are currently playing as +// (e.g. Medic). +// 8 - Do not decay a player's XP while they are spectating. +// 16 - Do not decay a player's XP during warmup/intermission. +// 32 - Do not decay a player's XP when he/she is playing. This means that they +// are on a Allies or Axis and the game is active. +// 64 - Do not decay a player's Battle Sense XP when he/she is playing. +// 128 - Do not decay a player's Light Weapons XP when he/she is playing. +// See also g_XPDecayRate. +// This feature was created in response to the g_XPSave 4 flag which allows XP +// to continue building forever. +// [Default: 0] +set g_XPDecay 0 + +// g_XPDecayRate [float] +// This is the rate (in skillpoints per second) that XP skill points for each +// skill will decay when g_XPDecay is enabled. +// Setting this to 0.1 would result in a player losing 6 points per minute IN +// ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill. +// [Default: 0.0] +set g_XPDecayRate 0.0 + +// g_XPDecayFloor [float] +// This is the minimum that any particular skill can be reduced to by +// g_XPDecay. +// For example, setting this to 140.0 will ensure that no player will +// ever lose rank or skill levels due to g_XPDecay. +// [Default: 0.0] +set g_XPDecayFloor 0.0 + +// g_maxXP [integer] +// This is a vicious cvar that will reset a players XP once their overall +// XP score reaches it. It has been requested by those who run servers with +// XPSave that never resets. +// Set this to -1 to disable it. +// [Default: -1] +set g_maxXP -1 + +// g_damageXP [0|1|2] +// Optionally enables the awarding of XP based upon the amount of damage +// a player has done to the opposing team. +// Available options are: +// 0 - disabled: use normal ET XP awarding methods +// 1 - 1 point of XP is awarded per g_damageXPLevel points of damage done. +// The XP is placed in the skill category of the weapon used. +// When this mode is enabled, kills (regardless of method) are awarded +// a fixed value of 1 point of XP. +// 2 - 1 point of XP is awarded per g_damageXPLevel points of damage done. +// The XP is placed in the Battle Sense category. +// Normal XP amounts are awarded for kills (typically 3-5 XP). +// [default: 0] +set g_damageXP 0 + +// g_damageXPLevel [integer] +// This setting determines the amount of damage that a player must do to earn +// 1 point of XP. See g_damageXP for additional information. +// [default: 50] +set g_damageXPLevel 50 + +// g_weapons [bitmask] +// This is meant to match the shrubmod g_weapons cvar, but so far the only +// implemented flags are: +// 2 - Syringes work underwater +// 4 - Pliers work underwater +// 8 - Fully restore Field ops charge bar if airstrike is aborted +// 16 - Half restore FIeld ops charge bar if airstrike is aborted +// 32 - Ammo packs restore helmets +// 64 - Drop binocs (requires client side download of weapons/binocs.weap) +// 128 - Soldiers with level 4 heavy weapons don't lose their pistols +// 256 - Garands can reload when not clip is not empty +// 512 - Balance the clip size between the allies and axis rifles. allied rifles +// get same clip sizes and max ammo as the k43. +//1024 - Creates a hitbox for mortar shells. This reduces (or eliminates +// in some cases) the ability to fire mortars through smaller +// windows and bunker slits. +// [Default: 0] +set g_weapons 0 + +// g_goomba [integer] +// If set to a positive integer, players can damage each other by landing on +// each other. The integer is multiplier that determines how much damage should +// be done to the player that was fallen on. Also the impact for the falling +// player will be broken so that they only recieve 20% of the damage they would +// have normally. It is also possible to do small amounts of damage (5HP) to +// other players by hopping up and down on them. +// Falling damage can be either 500, 50, 25, 15, or 10 depending on the length +// of the fall. So if you set g_goomba to 5 and land on a player from a fall +// that would have damaged you 10HP, you will inflict 50HP of damage on the +// player you land on, and you will only recieve 2HP of damage. +// See also g_goombaFlags +// Set this to 0 to disable it +// [Default: 0] +set g_goomba 0 + +// g_goombaFlags [integer] +// This is a bitflag cvar that controls the way g_goomba is handled. Currently +// the following flags are supported: +// 1 - Cannot do goomba damage to teammates +// 2 - Short falls (hopping) on another player does no damage. +// 4 - Short falls (hopping) does no damage to teammates. (not necessary if 1 or +// 2 flag is set) +// 8 - Falling player recieves no damage when landing on any other player. +// (default is to recieve 20% of the damage the fall would have given if not +// landing on a player). +// 16 - Insta-gib goomba. All goomba damage will be 500HP regardless of fall +// distance. The exception is hopping on anther player which still does 5HP +// of damage. +// Set this to 31 to have g_goomba work like shrubet. +// [Default: 0] +set g_goombaFlags 0 + +// g_spinCorpse [0|1] +// Allow players to use +left and +right binds to spin their corpse when dead or +// playing dead. Clients can bind a key by typing this into their console: +// "/bind leftarrow +left" and so on. +// [Default: 0] +set g_spinCorpse 0 + +// g_teamChangeKills [1|0] +// If set to 0, players are allowed one non-killing team change per respawn +// cycle. If a player changes teams, he will be instantly spawned in the other +// teams default spawn point. Players will die (but not lose a life) if they +// change teams a second time in one spawn cycle. +// [Default: 1] +set g_teamChangeKills 1 + +// g_ATB [0|1|2] +// g_ATB_diff [integer] +// g_ATB controls the type of active team balancing you want to use. Active +// team // balancing will automatically move one of the top three player(s) +// from the team more likely to win, to the team more likely to lose. There are +// currently two versions. One uses XP, the other playerrating. Set g_ATB to +// choose between them. Note that g_ATB only decides WHEN to move a player, and +// NOT which player to move. See g_ATB_rating to see how ATB chooses +// which player to move. +// 0 +// No active team balancing. +// 1 +// Use team XP to balance the teams. Uses the following cvars: +// g_ATB_minXP [integer] +// g_ATB_minPlayers [integer] +// g_ATB_axisHoldoff [integer] +// g_ATB_alliedHoldoff [integer] +// Active Team Balance watches the team XP during the match and will force the +// top player of the dominant team to switch teams when his/her team hits it's +// respawn time if the following criteria is met: +// 1. One team has at least g_ATB_minXP (default 300) team XP. +// 2. There are at least g_ATB_minPlayers (default 5) players playing +// 3. The resulting team change will not give one team an advantage by number of +// players unless: +// A. If 16 or more people are playing, the losing team may get up to a 1 +// player advantage. +// B. If 26 or more people are playing, the losing team may get up to a 2 +// player advantage. +// 4. The winning team is ahead in team XP by a margin of g_ATB_diff +// percent. +// For example, setting +// g_ATB_diff 50 +// A player would be moved if he/she was the top player on the team and his/her +// team had 750XP and the other team had 500XP. +// You can also adjust the rate at which ATB moves players with the +// g_ATB_axisHoldoff (default 5) and g_ATB_alliedHoldoff (default 5) cvars. +// For example, if g_ATB_axisHoldoff is set to 5 and an axis player is moved to +// the allied team, ATB will take no other action until the axis spawn timer +// cycles 5 times. +// NOTE: this calculation is based on TeamXP NOT the total XP of all the players +// on the team. TeamXP is the total score earned for the team by all players on +// the team during the map. When a player changes teams, the TeamXP they earned +// for their team does not move with them. +// +// 2 +// Use player rating to balance the teams. This will balance the teams by +// moving one of the the top 3 players when the probability of one team winning +// exceeds g_ATB_diff. g_ATB_diff is an integer and defaults +// to 75 meaning 75%. If the Axis team has more than a 75% chance of winning, +// ATB will move one of its players to the Allies, and this will often instantly +// lower the probability enough that another move will not be necessary. This +// version will not use any of the XP version's variables and it uses +// g_playerRating_minplayers +// instead of g_ATB_minPlayers as the minimum number of players that must +// be playing before it will act. It will also not swap players between teams +// since unbalanced team numbers is fine with player rating. It will actually +// stack team numbers on purpose to even out the teams unless g_ATB_awap is +// set. +// +// Note: Read g_teamForceBalance_playerrating carefully also. You probably +// don't want to turn option 2 on until after running your server long enough +// to learn map and player stats. +// +// Note: you must set g_ATB_rating to 4 and g_shuffle_rating to 4 if you use +// g_ATB 2 or ATB will by hyperactive and ineffective +// +// See also g_teamForceBalance_playerrating. +// +// [Default g_ATB: 0] +// [Default g_ATB_diff: 75] +// [Default g_ATB_minXP: 300] +// [Default g_ATB_minPlayers: 5] +// [Default g_ATB_axisHoldoff: 5] +// [Default g_ATB_alliedHoldoff: 5] +set g_ATB 0 +set g_ATB_diff 75 +set g_ATB_minXP 300 +set g_ATB_minPlayers 5 +set g_ATB_axisHoldoff 5 +set g_ATB_alliedHoldoff 5 + +// g_ATB_swap [1|0] +// If set to 1, one of 3 loweset scoring players on the losing team will be +// moved to the winning team when ATB acts (unless the losing team has less +// players). +// [Default: 1] +set g_ATB_swap 1 + +// g_ATB_rating [integer] +// Sets the rating system used by Active Team Balance. The following options are +// supported: +// 1 - Use player XP +// 2 - Use the rate at which players have gained XP since connecting. +// 3 - Use the killRating (g_killRating must be nonzero) +// 4 - Use the playerRating (g_playerRating must be nonzero) +// [Default: 3] +set g_ATB_rating 3 + +// g_shuffle_rating [integer] +// Sets the rating system used by shuffle. The following options are supported: +// 1 - Use player XP +// 2 - Use the rate at which players have gained XP since connecting. +// 3 - Use the killRating (g_killRating must be nonzero) +// 4 - Use the playerRating (g_playerRating must be nonzero) +// [Default: 3] +set g_shuffle_rating 3 + +// g_mapConfigs [string] +// When a new map starts, load the map specific config file named [mapname].cfg +// in the folder [string]. For example if you set g_mapConfigs to 'mapcfg', when +// the map fueldump starts, the server will try to exec 'mapcfg/fueldump.cfg'. +// Set this to "" to disable it. +// Set this to "." to look for the cfg file in the current directory +// (fs_home_path). +// [Default: ""] +set g_mapConfigs "" + +// g_packDistance [integer] +// Set the distance at which health packs and ammo packs are thrown. Set this to +// 0 to make it just like etmain. The settings should be similar to shrubet so +// set this to 2 for a subtle improvement. +// [Default: 0] +set g_packDistance 0 + +// g_dropHealth [integer] +// If set to a positive integer, medics will drop [integer] number of health +// packs when they are gibbed. If set to -1, medics will drop the number of +// health packs that they could have dropped at the moment of their death. Set +// this to 0 to turn it off. +// [Default: 0] +set g_dropHealth 0 + +// g_dropAmmo [integer] +// If set to a positive integer, fieldops will drop [integer] number of ammo +// packs when they are gibbed. If set to -1, fieldops will drop the number of +// ammo packs that they could have dropped at the moment of their death. +// Set this to 0 to turn it off. +// [Default: 0] +set g_dropAmmo 0 + +// g_tossDistance [integer] +// Set the velocity at which health or ammo packs are tossed from the dead body +// when g_dropHealth or g_dropAmmo are activated. This changes the distance that +// these packs travel from the corpse. +// [Default: 0] +set g_tossDistance 0 + +// g_logOptions [integer] +// This is meant to match the shrubmod g_logOptions cvar, but so far the only +// implemented flag is: +// 1 - Use server-side obituaries displayed in chat instead of cpm. Will +// increase bandwidth usage. This will not have any effect unless +// g_obituary is set to 3. +// 2 - Adrenaline countdown displayed +// 4 - Disable display of tap-out confirmation box +// 8 - Display connection attempts by banned players +// 16 - Display gib reports (" was gibbed by ") +// 32 - Omit "item" lines from log file +// 128 - GUIDs are logged in the game log +// 256 - Log all private messages (/m commands) +// 512 - Logs the real time into logs, instead of the normal uptime of the +// server +// 2048 - Print TK death message like a normal kill message, stating killing +// weapon, except it is preceeded by a red TEAMKILL: identifier. Only +// works if g_obituary is set to 3. +// [Default: 0] +set g_logOptions 0 + +// g_censor [string] +// [string] is a comma delimited string of words that will be sensored from +// chat. +// [Default: ""] +set g_censor "" + +// g_censorNames [string] +// A comma delimited string of words that will be censored from player names. +// [Default: ""] +set g_censorNames "" + +// g_censorPenalty [integer] +// This is a bitflag that currently supports the following flags: +// 1 - Kill the player +// 2 - Kick players with names containing words in g_censorNames +// 4 - Kill, but don't gib +// 8 - Auto-mute for g_censorMuteTime [60] seconds. +// [Default: 0] +set g_censorPenalty 0 + +// g_censorMuteTime [integer] +// The number of seconds to auto-mute as a censor penalty. Only works if bitflag +// 8 is added to g_censorPenalty. +// [Default: 60] +set g_censorMuteTime 60 + +// g_intermissionTime [integer] +// Set the length of time the end of game screens displays before loading the +// next map. The client will still countdown from 60 to 0 no matter what this is +// set to. Set this to 60 for default behaviour. +// [Default: 60] +set g_intermissionTime 60 + +// g_intermissionReadyPercent [integer] +// The percent of connected players who need to hit the "READY" button to move +// on to the next map without waiting g_intermissionTime to run out. Set this to +// 100 for default behaviour. +// [Default: 100] +set g_intermissionReadyPercent 100 + +// g_skills [bitmap] +// This is a bitflag cvar that currently supports the following flags: +// 1 - Players with level 4 battle sense can spot landmines for teammates. +// 2 - Players with level 4 engineering can keep the flak jacket for other +// classes. +// 4 - Players with level 4 first aid can keep adrenaline for other classes. +// [Default: 0] +set g_skills 0 + +// g_hitboxes [integer] +// This is a bitflag cvar that currently supports the following flags: +// 1 - Lower the standing player's body hitbox to the shoulders. +// 2 - Lower the crouching player's body hitbox to the shoulders. +// 4 - Lower the wounded player's body hitbox to a reasonable height +// 8 - Lower the prone player's body hitbox to a reasonable height +// 16 - Lower the playdead player's body hitbox to a reasonable height +// The default is 31 which means use all of the improved hitboxes. Set it to 0 +// to use the unmodified hitboxes from etmain. +// See http://et.tjw.org/etpub/hitboxes/ for comparision screen shots. +// [Default: 31] +set g_hitboxes 31 + +// g_skipCorrection [1|0] +// Set this to 1 to enable Neil Toronto's unlagged2 skip correction. This will +// smooth out the movement of players with high packet loss (to a degree). +// This is similar to etpro's antiwarp, but has some differences. Neil likes +// this version better, bani likes his better. +// This replaces g_smoothClients from etmain. +// You can find a demo that shows g_skipCorrection in action at: +// http://et.tjw.org/etpub/skipCorrection/ +// [Default: 1] +set g_skipCorrection 1 + +// g_maxWarp [integer] +// This allows you to control the amount of "warping" that players with high +// packet loss can do. The [integer] is the number of server frames that you +// allow a player to miss before their next movement is put in check. +// +// A server frame is 50ms on a typical server (sv_fps set to 20). This means +// that if you set g_maxWarp to 5 you won't allow players to warp from point +// A to point B if that distance takes an normal player 1/4 of a second to +// travel. Setting this to 1 is a good way to drive off just about everyone from +// your server. +// +// As far as I can tell, 1000ms is allowed by default in the game, so setting +// this to any value higher than 39 should have no effect if sv_fps is set to +// 10. +// +// You can find a demo that shows g_maxWarp in action at: +// http://et.tjw.org/etpub/skipCorrection/ +// [Default: 4] +set g_maxWarp 4 + +// g_teamDamageRestriction [integer] +// When greater than 0, anybody that has this percentage of hits +// inflicted on a teammate will automatically be kicked. A minimum of g_minhits +// hits total required before this is calculated. Client can see current stats +// for themselves by doing a /damage in console. Implemented to mimic shrub +// behavior as much as is possible, there are other ways to implement this +// feature, which may be implemented in addition to current manner. +// [Default: 0] +set g_teamDamageRestriction 0 + +// g_minHits [integer] +// Minimum number of damaging hits required before calculating if +// player has reached g_teamDamageRestriction threshold. Flamethrower and +// landmine hits are adjusted similar to shrub. Medics get -2 hits for every +// revive. +// [Default: 6] +set g_minHits 6 + +// g_autoTempBan [0|1] +// When set, anyone kicked because of the g_teamDamageRestriction setting will +// be temporarily banned for g_autoTempBanTime seconds +// [Default: 0] +set g_autoTempBan 0 + +// g_autoTempBanTime [integer] +// The number of seconds kicked for when g_autoTempBan is set +// [Default: 1800] +set g_autoTempBanTime 1800 + +// g_voting [integer] +// This is a bitflag cvar that supports the following flags: +// 1 - Votes will pass on the number of votes cast rather than total eligible +// voters. +// 2 - Votes that pass do not count against the vote_limit for the caller. +// 4 - " (called by NAME)" is appended to the vote description where NAME is the +// name of the player that called the vote. +// [Default: 0] +set g_voting 0 + +// g_poison [integer] +// Gives medics the ability to poison enemies by sticking with their medic +// syringe. Enemies will be damaged at g_poison/second when g_poison is set to +// a value more than 0. Setting to 0 will disable poison needles. Primitive +// shake added to destabilize player being poisoned +// [Default: 0] +set g_poison 0 + +// g_poisonFlags [integer] +// This bitflag cvar controls the effects of g_poison. The following flags are +// supported: +// 1 - Poisoned player's screen shakes. +// 2 - Other players see the poisoned player's head shaking. +// 4 - Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned +// player does not see this happen.) +// 8 - Poisoned player cannot use +attack. NOTE: because of client side +// prediction, the client may see the gun firing occasionally if they hold +// down +attack, but no shots are fired. +// 16 - Poisoned player is disoriented (view turned upside down). +// [Default: 7] +set g_poisonFlags 7 + +// g_slashKill [bitmask] +// Default (0) Bitmask that controls the behavior of the /kill command. +// Currently, only the 8 flag is implemented +// 1 - Player spawns with half charge bar after /kill +// 2 - Player spawns with 0 charge bar after /kill +// 4 - 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) +// 8 - Disables /kill command +// 16 - Disable /kill when player is poisoned +// See also g_fear +//[Default: 0] +set g_slashKill 0 + +// g_spectator [integer] +// This is a bitmask that controls spectator behaviour. It supports the +// following flags: +// 1 - When in freelook mode, you can 'fire' at a player to follow. If you miss +// a player, nothing happens. +// 2 - When in freelook mode with the 1 flag set, if you shoot and miss you +// start following the next available player. +// 4 - When the player you're following goes into limbo, don't move to the next +// available player. +// 8 - When the player you're following goes into limbo, go to freelook instead +// of following the next available player. (4 has precedence) +// [Default: 0] +set g_spectator 0 + +// g_medics [bitmask] +// Bitmask to control various aspects of the medic, to nerf or otherwise change\ +// their behavior. Currently supported flags include: +// 1 - Medics can't pick up their own health packs to cure themselves of poison +// needle effects +// 2 - Medics can't pick up their own health packs at all +// 16- Medics do not spawn with akimbo pistols, regardless of light weapons +// skill level +// 32- Medics do not spawn with SMG, nor can they pick one up. However, any +// class can steal a medics uni, if g_classChange is set to 1, +// and receive the medic benefits while retaining their current weapons, +// akimbos and SMG included +// 64- Medics can use syringes to heal living teammates as an alternative +// to the tk/revive cycle. +// [Default: 0] +set g_medics 0 + +// g_medicHealthRegen [integer] +// The rate at which medics regenerate health (in HP per second). This rate is divided +// into two parts: The first is from 1 to 110-125 HP (depending on the number of +// medics per team), and then above that. The system default is 3/2 (3 HP per second, +// then 2 HP per second). +// Possible values are: +// 0 - 3/2 +// 1 - 2/2 +// 2 - 2/1 +// 3 - 2/0 +// 4 - 1/1 +// 5 - 1/0 +// 6